Email Finder — Name + Domain to Work Email + Score
Pricing
$1.50 / 1,000 email results
Email Finder — Name + Domain to Work Email + Score
Find a person's likely work email from their name + company domain. Returns an MX-validated best-guess address with a numeric confidence score, role & disposable flags, and ranked alternative candidates — not a single bare guess.
Pricing
$1.50 / 1,000 email results
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
2 hours ago
Last modified
Categories
Share
Email Finder — Name + Domain → Best-Guess Work Email
Give this actor a person's name and their company domain, and it returns the most likely work email — with a numeric confidence score, MX validation, and a ranked list of alternative candidates. No API key, no signup, no monthly seat.
What you actually get: a ranked, MX-gated best guess, not a hard-confirmed mailbox. The actor attempts live SMTP verification, but most cloud networks (including Apify's) block outbound port 25, so it degrades to MX + pattern ranking and labels the method
mx_pattern. SMTP confirmation only fires where the run network allows it.
Why this one
Most email-finder actors hand back a single guessed address and, at best, a catch_all
flag. That leaves you to guess whether the address is real. This actor instead:
- Builds frequency-ranked candidate patterns —
first.last,flast,first,firstlast, and ~9 more — weighted by how common each scheme actually is in corporate email. - Validates what it can — one MX lookup per domain to confirm the mail server exists,
then (where the network allows) a catch-all probe and RCPT verification of candidates in
priority order. A confirmed mailbox is marked
verified; on port-25-blocked networks the best guess is markedunverified_guesswith its MX host and confidence. - Tells you the truth — every record carries
confidence(0–1), theverificationMethod(smtp/mx_pattern/none),isCatchAll,isDisposable,isRoleAccount, and the rankedalternativeEmailsso you can fall back if the top pick bounces.
If the run network blocks outbound port 25 (common on cloud), the finder degrades
gracefully to MX + pattern ranking and labels the method mx_pattern — you still get a
ranked, MX-gated best guess instead of a hard failure.
Input
{"people": [{ "firstName": "Patrick", "lastName": "Collison", "domain": "stripe.com" },{ "firstName": "Tobias", "lastName": "Lutke", "domain": "shopify.com" }],"verifySmtp": true,"maxAlternatives": 5,"smtpTimeoutSecs": 8,"maxItems": 0}
| Field | Type | Notes |
|---|---|---|
people | array | Each item: firstName (required), lastName or surname, optional fullName, and domain (required). |
verifySmtp | boolean | Attempt live SMTP RCPT verification. Auto-falls back to MX + pattern if port 25 is blocked. Default true. |
maxAlternatives | integer | Ranked alternatives returned per person. Default 5. |
smtpTimeoutSecs | integer | Per-probe SMTP timeout. Default 8. |
maxItems | integer | Total output cap, 0 = unlimited. |
Output (per person)
{"firstName": "patrick","lastName": "collison","domain": "stripe.com","email": "patrick.collison@stripe.com","confidence": 0.45,"status": "unverified_guess","verificationMethod": "mx_pattern","isCatchAll": null,"isDisposable": false,"isRoleAccount": false,"mxFound": true,"mxHost": "aspmx.l.google.com","patternUsed": "first.last","alternativeEmails": [{ "email": "pcollison@stripe.com", "pattern": "flast", "confidence": 0.319, "smtpStatus": "not_checked", "smtpCode": null }],"parse_confidence": 0.9,"warnings": ["smtp_unreachable_port25"]}
The example above is a real Apify-cloud result (port 25 blocked →
mx_pattern). On a network with outbound SMTP open,statusbecomesverified/accept_all,verificationMethodbecomessmtp, andconfidencerises accordingly.
status values: verified (SMTP confirmed the mailbox) · accept_all (domain accepts
all mail — can't single one out) · unverified_guess (MX present, SMTP not usable, ranked
best guess) · no_valid_pattern (SMTP worked but no candidate accepted) · no_mx (domain has
no mail server).
Pricing
Pay-per-result. You are charged once per person record produced — never for an invalid input. You run it on your own Apify account, so compute is billed to you at platform cost.
Use it from your existing tools
Use with Claude Desktop / Cursor / Cline (MCP)
This actor is part of the Apify Lead Generation Suite — a curated set of 6 actors you can load together as agent tools. Call it directly from your AI assistant via the Apify MCP server — no Store browsing needed. Paste this into your MCP client config (e.g. claude_desktop_config.json) and restart the client:
{"mcpServers": {"apify-lead-gen": {"command": "npx","args": ["-y","@apify/actors-mcp-server","--tools","bovi/google-maps-scraper,bovi/email-finder,bovi/company-lookup-scraper,bovi/b2b-leads-list-builder,bovi/linkedin-profile-scraper,bovi/google-maps-leads"],"env": {"APIFY_TOKEN": "YOUR_APIFY_TOKEN"}}}}
Replace YOUR_APIFY_TOKEN with your own Apify API token (free at apify.com → Settings → Integrations). Curated to a handful of tools so the agent selects reliably.
Works with Clay
Run this actor as an HTTP enrichment step inside a Clay table:
- Method:
POST - URL:
https://api.apify.com/v2/acts/bovi~email-finder/run-sync-get-dataset-items?token={{apify_token}} - Body (JSON): map your Clay columns to the actor input (see the Input section above), e.g.
{"people": "{{clay_column}}"}
The run finishes synchronously and returns the dataset rows straight into your Clay table. It runs on Apify's cloud under your own token and usage. Synchronous runs must complete within 300 seconds.