Email-finding waterfall that only pays for misses
Hunter + Findymail + HubSpot
Who it's for
RevOps and SDRs with CRM contacts that have no email, who want to fill the gaps with a second provider only where the first one missed. Hunter or Findymail can be swapped for LeadMagic, Prospeo or RocketReach. HubSpot can be swapped for Salesforce, Attio or Pipedrive.
What you get
Waterfall results and the HubSpot updates waiting for approval. Sample output: every company and person in it is fictional.
HubSpot contacts with no email in 'Q4 target accounts': 50 Skipped before lookup: 4 (no company domain) Round 1, Hunter Email Finder: 46 lookups, 31 found Round 2, Findymail find_email (Hunter misses only): 15 lookups, 9 found Not found by either: 6 Verification (Hunter Email Verifier): 40 checked, 34 verified, 6 not verified | Contact | Company | Email | Found by | Verified | |---|---|---|---|---| | Dana Okafor | Larkspur Freightworks (fictional) | [email protected] | Hunter | yes | | Sam Whitlock | Quarry Lane Analytics (fictional) | [email protected] | Findymail | yes | | Priya Raman | Mossgate Labs (fictional) | [email protected] | Hunter | no | | Alex Rivera | Fernhill Software (fictional) | none found | none | n/a | Calls made: Hunter 46 finder + 40 verifier, Findymail 15 finder. Check the credit figures for each tool on the tool pages; your plan may differ. No HubSpot records changed yet. Ready to write: 34 verified emails, each to a contact whose email is still empty. Reply 'write 34' to approve, or list contacts to leave out.
Time and cost
Estimate About 15–25 minutes for 50 contacts, most of it reviewing the results.
Assumptions: 50 HubSpot contacts with no email, a Hunter hit rate of about two in three, and every found email verified once.
- Hunter: One Email Finder call per contact with a domain, then one Email Verifier call per found email, each after you approve the count. Some tools use credits. A search uses 1 credit and a verification 0.5 (Free plan figures); Discover company search is free, and saving, updating and deleting leads is free. Other usage counts against the user's Hunter plan. Source: hunter.io, checked 2026-10-16
- Findymail: One find_email call per Hunter miss only, after you approve the count. Every call uses credits. README: each API call consumes credits from your Findymail account; find_employees costs 1 finder credit per contact. Source: npmjs.com, checked 2026-10-16
- HubSpot: One search for contacts with no email, a fresh read before writing, then one contact update per approved email. Credit use not confirmed by HubSpot.
Exact credit costs depend on your plan with each vendor. Check the tool pages before a large run.
MCP servers
Every server is confirmed in: Claude
-
ClaudeChatGPTClaude CodeCursorCopilotRead + writeSome tools use credits
https://mcp.hunter.io/mcp -
ClaudeClaude CodeRead + writeEvery call uses creditsDeveloper setup
https://mcp.findymail.com/mcp -
ClaudeChatGPTRead + writeCredits not confirmedNeeds admin or IT
https://mcp.hubspot.com
Set up in a chat app
Every server in this recipe is confirmed for Claude. Connect each one, then paste the prompts below into one conversation.
- Connect Hunter without code (Claude, ChatGPT)
- Connect Findymail without code (Claude)
- Connect HubSpot without code (Claude, ChatGPT)
Developer setup
Auth setup and mcp.json for Claude Code and Cursor
- Hunter: Use OAuth sign-in for interactive use. For headless runs, use an API key in the
X-Api-Keyheader. - Findymail: Paste an API key from the vendor's settings into the config (header or URL). There's no browser login, so it works well headless.
- HubSpot: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token.
Put this in .mcp.json (Claude Code, project root) or ~/.cursor/mcp.json (Cursor). Swap the example keys for your own, and don't commit real ones. Remove the // comment lines if your client requires strict JSON.
{
"mcpServers": {
"hunter": {
"url": "https://mcp.hunter.io/mcp"
// headless alternative: "headers": { "Authorization": "Bearer YOUR_HUNTER_API_KEY" }
},
"findymail": {
"url": "https://mcp.findymail.com/mcp"
// headless alternative: "headers": { "Authorization": "Bearer YOUR_FINDYMAIL_API_KEY" }
},
"hubspot": {
"url": "https://mcp.hubspot.com"
}
}
}
Step-by-step prompts
- Find HubSpot contacts in {list_or_filter} with no email address. Show me a table with first name, last name, company and company domain, and the count. List any with no domain separately. Don't change anything.
- Tell me how many Hunter Email Finder lookups that is. After I approve it, run Hunter Email Finder for each contact with a domain. Show me hits and misses.
- Tell me how many Hunter misses there are. After I approve it, run Findymail find_email only for those misses. Show me what it found.
- After I approve it, verify every found email with Hunter Email Verifier. Show me one table: contact, email, which tool found it, and whether it verified. Add a count of calls made to each tool.
- After I approve it, write the verified emails to the matching HubSpot contacts. Re-read each contact first and skip any that now have an email. Then tell me how many were written and skipped.
Run it on a schedule (optional)
- Run it by hand on a list or segment first, and compare a few results against what you know.
- Once you trust it, a weekly run on newly created contacts keeps the gaps small. In a scheduled run, stop at the results table and approve every lookup batch and HubSpot write yourself.
- Findymail connects with an API key (in the Claude Desktop config file, or a Bearer header), not a sign-in. Set that up and test one lookup before you schedule anything.
Where this goes wrong
- Paying twice for the same contact. Findymail should only get Hunter's misses. Before round 2, show me the count of misses and confirm it equals round 1 lookups minus hits.
- Wrong or missing company domain. Email finders need the right domain. Skip contacts with no domain, and flag any where the domain on the contact doesn't match the company's website domain in HubSpot.
- An email for the wrong person. A nickname or common name can return someone else at the same company. Check that the returned email's name part fits the contact's first or last name, and mark the rest for review.
- Overwriting an email someone added since. A rep may fill in an email while the run is going. Re-read each contact just before writing, and only write where the email is still empty.
Gotchas
- Hunter's listed figures are 1 credit per search and 0.5 per verification on the Free plan. Usage on other plans counts against your Hunter plan, so check your balance first.
- Every Findymail API call uses credits from your Findymail account, so the waterfall order matters.
- Findymail's ChatGPT support isn't confirmed. In Claude Desktop it runs locally from the config file with your API key.
- Hunter can also start email sequences that send real emails. This recipe only uses the finder and verifier.
- On Claude Team or Enterprise, only workspace Owners can add Hunter as a custom connector. HubSpot needs a Super Admin to approve the connector for non-admin users.
Download
Get the prompts, guardrails and expected output as one Markdown file. Paste it into a Claude Project or ChatGPT project's instructions, or save it as CLAUDE.md for Claude Code.
Download email-finding-waterfall.md
New recipe and breakage notes every week
Vendor sites: HubSpot. If we join an affiliate program, these links will be labeled as affiliate links.