Email Finder Waterfall — verified email from any combination of identifiers
Give it a name + a domain (or a LinkedIn URL, or any combo of identifiers) — it returns a verified professional email or a structured failure. Three-step waterfall: agntdata orchestrator → Exa deep search → verifier. Stateless primitive, called by other agents.
Build this with agnt_
Skip the copy-paste. We'll spin up a builder session prepopulated with this blueprint's spec — providers, schedule, database schema, and the questions the agent should ask you to personalize it for your product.
Sign up free · no credit card
The motion
Every GTM pipeline eventually needs the same question answered: "I have a name and a company — what's their email?" This agent is the canonical answer. It runs a three-step waterfall: first the agntdata orchestrator (which internally runs Hunter → Prospeo → LeadMagic and returns the best already-verified candidate), then an Exa deep web search with 3–5 targeted query patterns when the orchestrator returns nothing, then `people_email_verifier` on Exa hits to gate on `deliverable`. Stateless on purpose — no DB writes, no Slack, no Instantly. The agent does one thing: input → verified email or structured failure. Call it from other agents whenever you need an email and you have partial info: lead enrichers, signup handlers, Calendly webhooks, anywhere identity needs to become contactability.
The agntdata orchestrator runs Hunter / Prospeo / LeadMagic internally — one credit per lead, not three vendor subscriptions to manage.
Never returns an email as "found" unless it passed `people_email_verifier` with status=deliverable. Risky and unknown emails are reported as not found.
When the orchestrator gives up, Exa deep-searches with 3–5 targeted query patterns. Surfaces emails the structured tools missed.
No DB, no Slack, no Instantly. Just input → verified email. Call from other agents wherever identity needs to become contactability.
The cheapest-first email-finder primitive. Always try the agntdata orchestrator first (it runs Hunter / Prospeo / LeadMagic internally and pays once for the whole waterfall). Only fall back to Exa when that returns nothing — and verify every Exa hit before returning. Stateless, callable from anywhere.
Build this with agnt_
Skip the copy-paste. We'll spin up a builder session prepopulated with this blueprint's spec — providers, schedule, database schema, and the questions the agent should ask you to personalize it for your product.
Sign up free · no credit card
Or copy a prompt into another platform
Prefer to build with OpenClaw, Hermes, or Claude Code? Drop this prompt into your agent of choice — it seeds the goal, the agntdata endpoints to use, and a step-by-step plan.
You are helping me build an Email Finder Waterfall agent. Give it any combination of identifiers for a person — name, company, domain, LinkedIn URL, X/Twitter URL — and it returns their verified professional email address. Three-step waterfall that short-circuits on the first verified hit.
This is a primitive, not a standalone outbound tool. Call it from other agents (lead enrichers, signup qualifiers, demo-form handlers) whenever you need an email and you have partial info. The agent is intentionally one-shot — no DB writes, no Slack, no Instantly. Webhook-triggered or invoke-as-skill.
REFERENCE DOCS
- agntdata API documentation: https://agnt.mintlify.app/apis/overview
- agntdata orchestrator: `people_email_finder` (multi-vendor internal waterfall — Hunter / Prospeo / LeadMagic), `people_email_verifier` (deliverable / risky / undeliverable).
- Exa connector: `search` (fallback web search when the orchestrator returns nothing).
ABOUT MY MOTION
- What's calling this agent? <UPSTREAM_USE_CASE — e.g. "a lead enricher that has name + LinkedIn URL", "a Calendly handler that has name + company domain", "a signup-form processor that has a personal email + work domain">
- Are there domains you should NEVER return an email for? <ALLOWLIST_OR_DENYLIST — e.g. only return emails matching the person's company domain (the default); deny @gmail.com / @yahoo.com / personal-domain results>
THE WATERFALL (encode this verbatim in the system prompt)
Step 1 — `people_email_finder`
Call with whatever identifiers were provided (first_name, last_name, domain — strip protocol/www from any URL). The orchestrator runs Hunter → Prospeo → LeadMagic internally and returns the best candidate. If it returns an email, accept it immediately (no extra verification call — the orchestrator already verified). Short-circuit.
Step 2 — Exa deep search (fallback)
If step 1 returned nothing, run multiple targeted Exa queries. Examples:
- `"<full name>" <company domain> email`
- `"<full name>@<company domain>" OR "<initial>.<lastname>@<company domain>"`
- `site:linkedin.com/in "<full name>" <company> email`
If a LinkedIn or X URL was provided, use it to refine the queries. Extract any email address from the results that matches the company domain.
Step 3 — Verify Exa hits
For any email surfaced by Exa, call `people_email_verifier`. Accept only if status === 'deliverable'.
WHAT TO BUILD
- A webhook-triggered or skill-invoked agent (claude-sonnet-4-6 — query crafting for Exa is the judgment call).
- No schedule, no workspace_db. Stateless primitive.
- Three tools: `people_email_finder`, `people_email_verifier`, `exa_search`.
RESPONSE FORMAT
- ✅ Found: `{ email, source: 'agnt' | 'exa', verified: true }`
- ❌ Not found: `{ reason: <brief explanation of what was tried and why it failed> }`
GUARDRAILS
- NEVER accept an email that doesn't match the person's company domain (unless they explicitly told you it would be a personal email).
- NEVER report an email as 'found' unless it's verified deliverable.
- Be creative with Exa query patterns — try 3–5 variations before giving up.
- Keep responses tight. This is a primitive; the caller doesn't want chatter.
When you're ready, ask me the ABOUT MY MOTION block.Paste into OpenClaw to scaffold this agent. Tweak the inputs and goal at the top of the prompt.
How to build it
5 steps. Each one links to the underlying agntdata endpoints — open them in a new tab to inspect parameters and pricing as you build.
One key gets you the people_email_finder + verifier orchestrator (Hunter / Prospeo / LeadMagic internally) and the Exa connector. Credit-based pricing.
On the dashboard, install the Exa connector. Used only for the step-2 fallback.
Click "Build with agnt_". The meta-agent asks what's calling this agent and your domain constraints, deploys with the webhook URL.
Try (a) easy: name + domain that has a clean orchestrator hit. (b) Medium: only LinkedIn URL provided. (c) Hard: name + domain where the orchestrator gives up — should trigger Exa fallback.
Either: (i) make the URL a webhook the calling agent POSTs to, or (ii) wire it as a sub-agent / skill the calling agent invokes directly. Treat the response as the contract — `{ email, source, verified }` or `{ reason }`.
Endpoints used
The agntdata endpoints this blueprint depends on. All available with one API key.
Find a person's professional email
/people/email-finder
The cheap-path waterfall — Hunter → Prospeo → LeadMagic internally, returns verified candidates. Always tried first.
View endpoint docsVerify a professional email
/people/email-verifier
Gates Exa-discovered candidates on deliverable. Step 1 candidates are already verified by the orchestrator.
View endpoint docsShip this blueprint today
One click spins up a builder session prefilled with this blueprint's spec. We'll ask you a handful of personalization questions, then generate the agent.
Related blueprints
Browse all →Hand any X username to this agent and get back a qualified, ICP-scored lead with a verified email and a resolved LinkedIn profile.
Hand any LinkedIn profile URL to this agent and get back a qualified, ICP-scored lead with a verified email and a website summary attached.
Takes the partial hiring contacts a scraper produces and turns them into a sequenceable pipeline: verified emails for every lead, plus inferred buying committees for the hiring companies where LinkedIn returned no hiring team. Hourly cron. Pair upstream with a hiring-signal scraper, downstream with a sequencer.