← all playbooks

Get verified work emails for hiring managers you can already name

Your list of named hiring managers with a work email on each row where a provider had one, checked against the company on the row and for deliverability. Addresses on catch-all domains are labelled, and rows where nothing was found stay empty.

use when
you have the hiring manager's name and company, from a job ad, an event or a referral, and no address to write to
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 work email for each hiring manager on this list.

The list is <FILE_PATH_OR_PASTED_ROWS>. Each row has a name and a company.
I got them from <SOURCE, E.G. JOB ADS, AN EVENT, REFERRALS>. They are client
contacts, not candidates, so work email is the right channel.

How I want it run:
- Put the company's web domain on every row first, and show me any company
  you are not sure you have identified correctly.
- Only accept an address that belongs to the company on the row.
- Never build an address from a pattern such as first.last@ and hand it to
  me as found. If no provider has it, leave the cell empty.
- Check every address for deliverability, and label the ones on catch-all
  domains so I can decide whether to send to them.
- Skip anyone on <DO_NOT_CONTACT_OR_EXISTING_CLIENT_LIST>.

Run five rows first and tell me what the full run costs before you do the
rest. Wait for my go-ahead.

Give me back my list with the email, its source, the verdict and a status
on every row. Do not send anything and do not load it anywhere.

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

What you need first

  • A list with first name, last name and company for each person. A LinkedIn URL or the company's web domain improves the match
  • Confirmation that these are client contacts or hiring managers, not candidates
  • A Hyreflow workspace with credits, or your own provider keys connected

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

    Read the list and confirm the channel

    free

    The agent counts the rows and confirms these are client contacts, because that is what makes work email the right address. Candidates are a different channel and do not belong in this run. Anyone on your do-not-contact or existing-client list is set aside.

  2. 2

    Put a company domain on every row

    credits

    A name and a company name can be matched, but a web domain matches better and lets a found address be checked properly. Companies listed by name only are resolved to their official domain by web search, and the doubtful ones are shown to you.

  3. 3

    Pilot five rows and price the run

    credits

    Five rows run end to end so you see real output and real cost. The agent then states the most the full list could cost and waits for your go-ahead.

  4. 4

    Run the work-email chain

    credits

    Each row walks four providers in a fixed order and stops at the first accepted address, so a row found early never reaches the later ones.

  5. 5

    Check the address belongs to the company

    free

    An address whose domain does not match the company domain on the row is refused and not charged, and the row carries on down the chain. Where the row has only a company name, a conflict is flagged for you and not refused, because companies do send mail from unrelated domains.

  6. 6

    Check deliverability and label catch-all domains

    credits

    An address that fails the check is dropped and the row carries on. An address on a catch-all domain is kept only when the check clears it, and is labelled either way.

  7. 7

    Hand the list back

    free

    Your list with the work email, the provider behind it, the company match, the verdict and what each row cost. Empty rows say why: nothing found, found but refused, or no usable identifier.

What a run costs

Credits are spent per contact 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.

contactsif the first provider answersif every lookup walks the chain
25$2.121 credits$12120 credits
100$7.777 credits$43430 credits
500$38380 credits$2092090 credits
1,000$75750 credits$4174170 credits

Free before anything is charged

  • Read the list and confirm the channel
  • Check the address belongs to the company
  • Hand the list back

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 contacts 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.

Found, checked and labelled, or left empty

You have a name and a company. A job ad named the hiring manager, a delegate list gave you the head of engineering, a candidate told you who runs the team. What you do not have is an address, and the shortcut is obvious: work out that the company uses first.last@ and type it in.

The trouble is what that does to your list. A guessed address and a found one look the same in a spreadsheet. The difference shows up later, as a bounce, or as a message delivered to somebody else with a similar name. This play never writes an address nobody found. Every value comes from a provider's record and carries that provider's name. Where none of them has it, the cell stays empty and says so.

Two checks sit on top of the lookup. The address must belong to the company on the row, and it must pass a deliverability check. Both run before you see it.

What you get back

Your list with a work email column. Beside it: the source, whether the address matched the company on the row, the deliverability verdict, and a catch-all label where one applies. Rows with no address say why: nothing found, found but refused, or no usable identifier.

Nothing is sent, and nothing is loaded into a sequencer or a CRM.

Variations worth knowing

You have the ad but not the name. Then the person has to be found first, which is what work both sides of a job ad does. Use this play when the names are already in your hand.

Names from an event. A delegate sheet is this play's input as it stands. If all you have is the exhibitor page, work the conference exhibitor list finds the people first.

A second pass on the misses. Rows the chain missed can go through BetterContact, which checks several sources in one job. You approve it separately.

Candidates, or a mobile as well. Not here. Use get emails and mobiles for a list you already have.

Where this goes wrong

Two companies with one name. Turning a company name into a web domain is imperfect, and the wrong domain means every good address for that row is refused. The agent shows you the companies it was unsure of before the paid run, not after.

A group that mails from another domain. Staff at a subsidiary often use the parent's domain. With the subsidiary's domain on the row, a correct address is refused as a mismatch, and the status says so.

The person has moved on. If they have left the company on your row, their current address fails the company check and the old one fails deliverability. The row comes back empty, which is the right answer.

Reading catch-all as verified. The check clears some catch-all addresses and the rest stay labelled. Send to those knowingly or not at all.

Questions

Why not work out the company's email pattern and fill in the rest?

Because a guessed address and a found one look the same in a spreadsheet, and the difference only shows up as a bounce or as a message delivered to a namesake. Every address in this play comes from a provider's record and carries that provider's name. Where no provider has it, the cell stays empty. You can still choose to guess, and you will know which rows those are, because the agent did not write them.

What is a catch-all domain, and what does risky mean?

Most mail servers reject mail for a mailbox that does not exist, which is how a check can confirm an address. A catch-all domain accepts mail for any address at all, so that test proves nothing, and providers label such an address risky or catch-all. It may be perfectly good. The deliverability check used here is able to confirm some of them. Those are kept as sendable, and the rest stay labelled as unconfirmed so that sending to them is a choice you make.

Do I pay for rows that come back empty?

Mostly no. The first providers in the chain bill only on a hit, and an address that is refused, for the wrong company or a failed check, is not charged as a find. One provider late in the chain charges a small lookup fee even when it finds nothing. The deliverability check is billed per address checked, whatever the verdict. The pilot shows what each row was really charged, and the figure you approve is a worst case.

What if the person has left the company?

Then the row comes back empty, with the reason. Every found address is checked against the company on your row, so their address at the next employer is refused as a mismatch, and the old one fails the deliverability check. That is the play working as intended. Names from a referral or an old delegate list are the ones to check before the run.

Can I run this on candidates as well?

No. A candidate's work email is never the channel, because their employer owns that inbox. Candidates get a personal email and LinkedIn, which is a different provider chain with different rules. Split a mixed list before you start.