← all playbooks

Find where your bounced contacts went, and an address that works

Your bounce list with an answer on every row: still at the employer or moved, the company and title for the movers, a replacement address on the right channel that has passed a deliverability check, and the corrected records written to your CRM once you approve them.

use when
a campaign came back with bounces, and you want the people behind them found again, not only the dead addresses removed
starts from
A list

The prompt

Paste it into Claude Code or the Claude desktop app with Hyreflow connected. The first line tells your agent to use Hyreflow, so it reads the play, asks before it spends anything, and hands the work back to you.

paste this into Claude
Use hyreflow and find the people behind the bounces from my last campaign,
and an address that works for each of them.

The bounces are in <EXPORT_FILE_OR_CAMPAIGN_NAME>. These people are
<CLIENT_CONTACTS_OR_CANDIDATES>, so pick the channel to match: work email
for client contacts, personal email for candidates. Never a candidate's
work email.

How I want it run:
- First the free part: take out duplicates, shared inboxes and anyone on
  <SUPPRESSION_FILE_OR_COLUMN>, and tell me which rows have no LinkedIn URL.
- Check each dead address once more, so temporary bounces drop out.
- For the rest, check whether the person is still at <EMPLOYER_COLUMN>. If
  they moved, give me the company they joined and their title there.
- Find a replacement address on the right channel and verify it. If a
  lookup hands back the address that bounced, count it as a miss.

Run five rows first and tell me what the full run costs before you do the
rest. Show me the changes before you write anything to the CRM. Do not
send anything, and do not put anyone back into a campaign.

Replace every <PLACEHOLDER> with your own detail. Everything else can stay as written.

What you need first

  • The bounce list: an export from your sequencer, or a connected lemlist or SendKit account the bounces can be read from
  • A LinkedIn URL and the employer you hold for each person, or at least a name and that employer
  • A decision on who these people are: client contacts or candidates
  • A Hyreflow workspace with credits

Tools it can reach for

The agent picks per step from what your workspace has. Nothing here is required by name.

What happens when you run it

Free steps are marked free. Anything that spends credits is marked, and the agent asks before the first paid run of any size.

  1. 1

    Get the bounce list

    free

    An export from any sequencer works. With lemlist or SendKit connected, the bounced leads of a campaign are read straight from your own account, which costs nothing and changes nothing there.

  2. 2

    Run the free checks

    free

    Duplicates, shared inboxes such as info@ and anyone on your suppression list come out by plain comparison. Rows with no LinkedIn URL are counted, because the job-change check needs one.

  3. 3

    Check the dead address once more

    credits

    A full mailbox or a mail server that was down also produces a bounce. Each address gets one deliverability check, which costs less than the job-change check, and the ones that pass are handed back as temporary bounces.

  4. 4

    Pilot five rows and price the rest

    credits

    Five rows run end to end so you see a real answer and a real charge per row. The agent then states the most the remaining rows could cost and waits for your go-ahead.

  5. 5

    Check who has moved

    credits

    Each person's profile is compared with the employer on your record. The answer is still there, or moved, with the company they joined and their title. It reports a change of employer only, not a promotion.

  6. 6

    Find the address on the right channel

    credits

    Client contacts get a work email at the company they are at today. Candidates get a personal email, never an address their employer owns. Each chain runs in a set order and stops at the first hit.

  7. 7

    Verify the replacement

    credits

    A found address is checked before it is called a fix. If it fails, the row is reported as located but not reachable by email, which is still more than the bounce told you.

  8. 8

    Review, then correct the records

    free

    You see record, field, old value and proposed value first. Only the rows you approve are written, one record first, and nobody is put back into a campaign.

What a run costs

Credits are spent per record the play actually works, and a lookup that finds nothing usually costs nothing. The two figures are the run where the first provider answers and the run where every lookup walks its full chain.

recordsif the first provider answersif every lookup walks the chain
25$7.676 credits$18180 credits
100$27270 credits$63630 credits
500$1311310 credits$3033030 credits
1,000$2612610 credits$6036030 credits

Free before anything is charged

  • Get the bounce list
  • Run the free checks
  • Review, then correct the records

What moves the number

  • The channel. This play buys work email, because these are people you are approaching about work you want to win. A work address is the cheaper of the two to find.
  • Coverage on work email. The chain stops at the first provider that answers, and only that provider bills.
  • How many records survive the free filters. Everything dropped before the paid steps costs nothing.
  • Providers you connect with your own key. Those calls bill your account, not your credits.

An estimate, not a quote, priced at the volume credit rate. Your agent sizes the run against your own workspace and tells you what it will cost before it spends anything.

A bounce is a forwarding notice nobody read

A sequencer treats a bounce as the end of a lead. It stops sending and moves on. For a recruiter it is news. Work mailboxes are closed when people leave, so a hard bounce on a hiring manager usually means a change of employer. That is two facts at once: someone who knows you is sitting inside a company you may not work with yet, and the account they left has lost your contact.

So each bounce is two jobs, in this order. Find where the person is today, then find the address that works there. Doing only the second is how a record ends up with a fresh address at the wrong company.

This play starts where checking a list before you send stops. That one gives verdicts and finds nothing. This one takes the addresses that failed in a live campaign and repairs the people behind them.

What you get back

Your bounce list, one row per person: the result of the second check on the old address, still at the employer or moved, the company and title for the movers, the replacement address with the provider it came from and its verdict, and what the row cost. Rows that could not be fixed say why: no LinkedIn URL, no profile found, no address found, or found and undeliverable.

Beside it sits a review list of proposed CRM changes. Nothing is written until you approve rows, and nobody is enrolled in a campaign again.

Variations worth knowing

Client contacts who moved. A mover is a lead at the company they joined and a gap at the account they left. Follow your client contacts when they move company qualifies that company and drafts both messages.

Candidates with a work address on file. Old databases often hold a candidate's work email. When it bounces, the fix is a personal email, not the address at their next employer.

No LinkedIn URL on the row. The job-change check needs one. A name and an employer can often be resolved to a profile first, as its own approved step. Those matches are weaker and each is marked.

Where this goes wrong

Soft bounces treated as moves. A full mailbox or a server outage bounces too. That is why the old address gets one more check before anything dearer runs.

The dead address comes back. A provider can hand back the very address that bounced. It is compared with your bounce list and counted as a miss.

A profile nobody updated. The check reads a public profile. Someone who left last month and has not edited theirs shows as still there. Those rows are worth a phone call to the switchboard.

Sending to the fix straight away. A replacement address has never heard from you. Start it at the top of your normal sequence, not at the step where the old one died.

Questions

Why not just delete the bounced contacts?

Because the address is dead, not the person. A hiring manager who bounced has usually changed employer. That makes them a warm contact inside a company you may not work with yet, and it leaves the account they left without your contact. Deleting the row throws both away. The agent could not delete it in any case: none of the CRM connections expose a delete.

Which sequencers can it read the bounces from?

lemlist and SendKit. In lemlist the bounce events and the bounced leads of a campaign are readable, and SendKit lists a campaign's leads by status, bounced included. Both are reads of your own account and cost nothing. Smartlead's analytics give the bounce count for a campaign, which is a useful check that your export is complete. For Smartlead and every other sequencer, export the bounced leads as a file and hand that over.

Does every bounce mean the person has left?

No, and that is why the check comes before the lookup. A rebrand, a merger, a changed surname or a closed mailbox kills an address while the person stays where they are. For those rows the work-email chain runs against the same employer. Only a confirmed move sends the lookup to a different company.

What does it cost, and do I pay for rows that find nothing?

Reading the bounces, the free checks, the review list and the CRM write cost nothing. The deliverability check is billed per address checked, whatever the verdict. The job-change check is billed per person it finds, moved or not. On the email chains a miss usually costs nothing, though one provider late in the work-email chain charges a small lookup fee even when it finds nothing. The five-row pilot shows the real charge per row before you approve the rest.

Can this run after every campaign?

Yes, once you have run it by hand and trust the output. With lemlist or SendKit connected it converts into a scheduled workflow that reads the latest bounces and leaves the corrected list waiting in your workspace. Prove it by hand first, because a scheduled run spends credits without asking each time. It never sends outreach, and the write to your CRM stays a step you approve.