Automating link building outreach with Zapier and Hunter

Executive overview

Finding prospects, locating emails, verifying them, and sending outreach is repetitive work that takes hours. Three of those steps — email finding, validation, and outreach — can be semi-automated with a Zapier multi-step Zap using Hunter, NeverBounce, and Mailshake.

The trigger is a Google Sheets row update: entering a contact's last name kicks off the entire sequence. Manual prep is still required for prospect vetting and finding names; the automation handles everything after.

Entering a last name in your sheet triggers email finding, validation, and outreach automatically.

Prerequisites and setup

  • Export prospect lists from Ahrefs Site Explorer and vet them manually
  • Find first and last names of contacts to email — this is the remaining manual step
  • Need at least one row of sample data to build and test the Zap
  • Set the trigger column to "Last Name" so the Zap fires only when a name is added

Step-by-step Zap structure

  1. Trigger — Google Sheets: New or updated row, fires when Last Name column is updated
  2. Find email — Hunter: Map domain, first name, last name from the sheet; Hunter searches for a matching address
  3. Lookup spreadsheet row — Google Sheets: Finds the correct row to update (prevents overwriting wrong rows)
  4. Update spreadsheet — Google Sheets: Writes Hunter's found email back to the sheet
  5. Filter — only continue if email contains "@": Stops the Zap if Hunter found nothing
  6. Verify email — NeverBounce: Returns a status code: Valid, Catch-All, Invalid, or Unknown
  7. Update spreadsheet — Google Sheets: Writes NeverBounce status to a Verify column
  8. Filter — only continue if Valid or Catch-All: Blocks outreach to invalid addresses
  9. Add recipient — Mailshake: Adds the contact to an existing campaign with first/last name and a merge field (e.g., referring page URL)
  10. Update spreadsheet — Google Sheets: Writes Mailshake's status ID back to the sheet for tracking

Email finding edge cases

  • No first or last name found: Zap won't trigger; find the email manually
  • First name only, no last name: Enter "A" as a placeholder last name — works for firstname@domain.com patterns; worst case returns an invalid email that won't send

NeverBounce status codes

  • Valid: ~98% deliverable
  • Catch-All: ~80–85% correct
  • Invalid / Unknown: almost always undeliverable — filter stops the Zap here

Mailshake personalisation

  • Map first name, last name, and referring page URL from Google Sheets into Mailshake
  • Use merge fields (text replacements) in your email template to personalise at scale
  • Campaign and follow-up sequences are set up in Mailshake separately before building this Zap

More like this — when you're ready for early access.

Join the waitlist for a personal account and content recommendations based on what you're working on.

No spam. Unsubscribe at any time.

You're on the list. We'll be in touch before launch.

Get early access to the full library.

Join the waitlist for a personal account and content recommendations based on what you're working on.

No spam. Unsubscribe at any time.

You're on the list. We'll be in touch before launch.

Be among the first to get personalised recommendations tailored to your stage in business.

No spam.

You're on the list. We'll be in touch before launch.

Be among the first to get personalised recommendations tailored to your stage in business.

No spam.

You're on the list. We'll be in touch before launch.