Email Pattern Finder — Name + Domain to Business Email avatar

Email Pattern Finder — Name + Domain to Business Email

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Email Pattern Finder — Name + Domain to Business Email

Email Pattern Finder — Name + Domain to Business Email

Find business emails from a person's name and company domain, in bulk. Generates and ranks every email format (first.last@, flast@, first@…), learns a company's exact pattern from one known address, and validates domains via MX. Keyless email finder for lead gen, sales and outreach.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Features

Limited permissions

Share

Apify Actor Maintenance Data Format Bulk Processing Lead Generation Speed

Turn a person's name and company domain into the most likely business email address — in bulk. Give this email pattern finder a list like Jane Doe, acme.com and for every contact it returns the most probable business email, the email syntax pattern used, a 0–100 confidence score, real-time MX mail server validation, and a complete set of ranked alternatives. No third-party credits, no expensive per-lookup API bills, and no rate limits.

Equipped with smart pattern reverse-engineering: feed it one known confirmed email per company (e.g., John Smith, jsmith@acme.com) and the actor automatically uncovers that company's exact naming convention (pattern-learned, ~92% confidence) and applies it to every employee at that domain.


⚡ At a glance

FeatureDetails
Input FormatFull Name, company.com or structured JSON objects
Output DataBest-guess email, pattern name, confidence score, MX status, ranked alternatives
Pattern LearningReverse-engineers company format from a single sample address
Supported Patterns12 standard business formats (first.last, flast, first, f.last, etc.)
Domain ValidationLive asynchronous DNS MX record checks with domain-level caching
International NamesFull Unicode accent normalization (José → jose, Müller → muller)
Processing Speed50–200 simultaneous parallel DNS lookups; hundreds of contacts per second
Export FormatsDataset (JSON, CSV, Excel, XML), Key-Value store, REST API
Platform IntegrationDirect webhooks, Python SDK, Node.js SDK, Make, Zapier, n8n

🔎 Why use an email pattern finder?

In modern sales prospecting and lead generation, sales and recruiting teams rarely possess direct verified email addresses right away. Instead, you start with names and company affiliations gathered from conference attendee lists, webinar registrations, company org charts, alumni directories, or speaking rosters.

Manually guessing formats or paying $0.10 to $0.50 per record to proprietary enrichment providers is neither scalable nor cost-effective.

Primary applications for bulk email pattern finding:

  • B2B outbound list building: Convert target accounts and decision-maker rosters into deliverable email outreach campaigns.
  • CRM and pipeline enrichment: Backfill missing business email fields in HubSpot, Salesforce, Pipedrive, or Airtable.
  • Conference and event lead capture: Turn participant names and sponsor company domains into contactable leads within minutes.
  • Talent sourcing and recruiting: Generate direct work email addresses for prospective executive and technical candidates.
  • Cost optimization: Replace recurring SaaS subscription costs from services like Hunter, Apollo, or Clearbit with direct DNS generation.
  • Fallback candidate generation: If the primary predicted format bounces, retrieve ranked backup candidate formats instantly.

⚖️ Comparative overview: Why generate emails in bulk?

Feature / MetricProprietary Enrichment (Apollo / Hunter)Manual GuessingEmail Pattern Finder
Cost per 1,000 Contacts$50 – $200+Dozens of wasted hoursFractions of a cent (compute only)
Speed1–5 lookups / sec (rate limited)1 contact every 2 minutes100+ lookups / sec
Pattern LearningProprietary black boxIntuition / trial & errorReverse-engineers exact format from sample
Data PrivacyContact lists shared with vendorHigh manual exposureZero third-party data transmission
API & WebhooksRigid enterprise tier paywallsNoneNative Apify API, webhooks & SDKs
Alternative FormatsUsually 1 email returned1 at a timeAll 12 ranked formats provided

📐 Supported Email Patterns Reference

The actor evaluates 12 distinct naming conventions, weighted according to comprehensive real-world enterprise adoption datasets:

Pattern NameSyntax TemplateReal-World WeightExample (Jane Doe, acme.com)
first.last{first}.{last}@{domain}65jane.doe@acme.com
flast{first_initial}{last}@{domain}58jdoe@acme.com
firstlast{first}{last}@{domain}50janedoe@acme.com
f.last{first_initial}.{last}@{domain}48j.doe@acme.com
first{first}@{domain}45jane@acme.com
first_last{first}_{last}@{domain}38jane_doe@acme.com
firstl{first}{last_initial}@{domain}33janed@acme.com
last.first{last}.{first}@{domain}29doe.jane@acme.com
first-last{first}-{last}@{domain}27jane-doe@acme.com
last{last}@{domain}23doe@acme.com
lastfirst{last}{first}@{domain}20doejane@acme.com
fl{first_initial}{last_initial}@{domain}16jd@acme.com

✨ Key features

  • 🧠 Pattern-Learning Engine: Detects the exact email formula when given just one verified address from a company domain.
  • 🌐 Instant MX Validation: Runs asynchronous DNS queries to verify mail exchange records exist before scoring confidence.
  • 🔤 Deep Unicode & Accent Handling: Strips diacritics and converts non-decomposing Latin characters (ø, æ, ß, ł, đ, ı, œ) safely to standard email characters.
  • ⚡ High-Throughput Parallelism: Concurrency pool processes up to 200 checks concurrently with per-domain DNS caching to avoid redundant queries.
  • 🚫 Role & Free Provider Detection: Flags generic addresses (info@, sales@, support@) and freemail providers (gmail.com, yahoo.com, outlook.com).
  • 📊 Ranked Alternative Fallbacks: Provides allCandidates as a semicolon-separated list of secondary formats for immediate outreach retry.
  • 🛡️ Zero API Keys Required: Uses native system DNS resolution without external API subscription dependencies.
  • 📁 Flexible Input Schemas: Accepts plain comma-delimited strings, pipe-delimited lines, or full JSON structured objects.

📥 Input parameters

The scraper accepts contact strings, company domains, and configuration flags:

FieldTypeDefaultDescription
peopleArray of strings["Tim Cook, apple.com", ...]List of people formatted as Full Name, domain.com. Pipe or semicolon delimiters also accepted.
domainString""Global fallback company domain applied to any person record without an explicit domain.
knownEmailsArray of strings[]Confirmed sample emails formatted as Full Name, user@domain.com used to learn the company's pattern.
verifyMxBooleantrueValidates that the company domain has active mail exchanger (MX) DNS records.
includeAllCandidatesBooleantrueGenerates all 12 ranked email variations in the allCandidates field.
maxConcurrencyInteger50Maximum parallel workers executing DNS checks (1 to 200).
maxItemsInteger0Optional maximum records to process. Set to 0 for all provided inputs.
proxyConfigurationObject{ "useApifyProxy": false }Optional proxy settings. Defaults to off since DNS is utilized.

📋 Extracted data fields

Each output item represents a normalized contact record with predicted email coordinates:

👤 Contact & company coordinates

FieldDescriptionCoverage
fullNameProvided full name of the prospect🟢 High (100%)
firstNameParsed first name token🟢 High (98%)
lastNameParsed surname token🟢 High (95%)
domainNormalized target corporate domain🟢 High (100%)
companyOrganization name slug inferred from root domain🟢 High (100%)

✉️ Email prediction & confidence metrics

FieldDescriptionCoverage
emailPrimary predicted business email address🟢 High (98%)
patternIdentifier of format utilized (e.g., first.last, flast)🟢 High (100%)
confidenceNumerical certainty score between 0 and 100🟢 High (100%)
confidenceLabelQualitative rating bracket (high ≥75, medium ≥45, low <45)🟢 High (100%)
methodPrediction engine (pattern-learned vs statistical)🟢 High (100%)

🔍 Mail exchange & candidate alternatives

FieldDescriptionCoverage
hasMxString boolean indicating active mail exchange DNS records🟢 High (100%)
mxHostPrimary responding mail server hostname🟢 High (95%)
isFreeProviderString boolean indicating personal consumer mail host🟢 High (100%)
isRoleBasedString boolean indicating generic role mailbox🟢 High (100%)
allCandidatesSemicolon-separated string of all 12 ranked alternative formats🟢 High (98%)
candidateCountTotal candidate addresses evaluated🟢 High (100%)
scrapedAtISO 8601 generation timestamp🟢 High (100%)

💡 Example output record

{
"fullName": "Marc Benioff",
"firstName": "Marc",
"lastName": "Benioff",
"domain": "salesforce.com",
"company": "salesforce",
"email": "mbenioff@salesforce.com",
"pattern": "flast",
"confidence": "92",
"confidenceLabel": "high",
"method": "pattern-learned",
"hasMx": "true",
"mxHost": "mx1.salesforce.com",
"isFreeProvider": "false",
"isRoleBased": "false",
"allCandidates": "mbenioff@salesforce.com; marc.benioff@salesforce.com; marcbenioff@salesforce.com; m.benioff@salesforce.com; marc@salesforce.com",
"candidateCount": "12",
"scrapedAt": "2026-11-10T16:30:00.000Z"
}

🛠️ Step-by-step usage guide

  1. Format Input Contacts: Create a list of names and domains in the format First Last, domain.com (e.g., Satya Nadella, microsoft.com).
  2. Add Known Samples (Recommended): If you know one valid address for key companies, add them to knownEmails (e.g., Amy Hood, ahood@microsoft.com) to unlock 92% confidence for all contacts at that company.
  3. Verify Settings: Keep verifyMx enabled to verify domain deliverability.
  4. Execute Run: Start the actor. Results populate within seconds.
  5. Download Output: Export records as CSV, Excel, or JSON for immediate import into your cold email automation tool or CRM.

💼 End-to-End Prospecting Workflow Example

1. Sourcing Names & Companies
├── Scrape LinkedIn / Conference Attendees / Crunchbase
└── Result: "Satya Nadella, microsoft.com", "Sundar Pichai, google.com"
│
2. Email Pattern Finder (This Actor)
├── Input names + domains + optional known emails
├── Fast parallel MX lookup + pattern prediction
└── Output: Structured JSON / CSV with predicted emails & ranked alternatives
│
3. Optional Mailbox Verification
├── Run highest-priority leads through dedicated mailbox tester
└── In case of bounce, immediately failover to second candidate in allCandidates
│
4. Outbound Automation
└── Push directly into Lemlist / Instantly / HubSpot / Outreach

💻 Integration Examples

Python with Apify Client

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"people": [
"Jensen Huang, nvidia.com",
"Colette Kress, nvidia.com",
"Michael Dell, dell.com"
],
"knownEmails": [
"Ian Buck, ibuck@nvidia.com"
],
"verifyMx": True
}
run = client.actor("haketa/email-pattern-finder").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['fullName']} -> {item['email']} ({item['confidence']}% [{item['confidenceLabel']}])")

Node.js with Apify Client

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const input = {
people: [
'Jane Doe, stripe.com',
'John Smith, stripe.com'
],
domain: 'stripe.com',
knownEmails: ['Patrick Collison, patrick@stripe.com'],
};
const run = await client.actor('haketa/email-pattern-finder').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((r) => {
console.log(`${r.fullName} | Email: ${r.email} | Pattern: ${r.pattern} | Conf: ${r.confidence}%`);
});

cURL / REST API

curl "https://api.apify.com/v2/acts/haketa~email-pattern-finder/runs" \
-X POST \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"people": ["Sundar Pichai, google.com", "Ruth Porat, google.com"],
"verifyMx": true
}'

⚡ Automated CRM Sync & Webhook Architecture

Integrate generated business emails directly into outbound marketing automation platforms:

  1. Trigger via Webhook: Configure your form handler, Apollo list export, or Google Sheet script to send contact names to the actor via the Apify Run API.
  2. Real-time Processing: DNS MX lookups and pattern learning execute within milliseconds.
  3. Downstream Delivery: Set an Apify run-succeeded webhook to forward completed records to:
    • Zapier / Make: Stream parsed contacts directly into HubSpot, Salesforce, or Airtable.
    • Lemlist / Instantly / Smartlead: Automatically launch personalized outbound sequences for contacts with confidenceLabel: "high".
    • Internal Data Warehouses: Ingest JSON records straight into PostgreSQL, Snowflake, or BigQuery.

🛡️ Error Handling, Resiliency & Graceful Degradation

Enterprise contact rosters frequently include noisy or incomplete records. The actor handles edge cases cleanly without aborting execution:

  • Unparseable Single Names: If an input only contains a single word (e.g., "Madonna, artist.com"), the actor tags the record with pattern: "unparseable-name" and confidence: "0" rather than throwing an exception.
  • Missing Domains: If a contact is submitted without a company domain and no global fallback domain is set, pattern: "missing-domain" is returned.
  • Free & Consumer Domains: Contacts at consumer email providers (Gmail, Outlook, Yahoo) are tagged with isFreeProvider: "true", preventing incorrect business pattern assumptions.
  • Dead or Suspended Domains: Domains lacking DNS MX records have hasMx: "false", with confidence scores lowered to reflect non-deliverability.

🎯 Best Practices for High Deliverability

  1. Leverage Pattern Learning: Providing even a single confirmed sample address elevates precision from statistical heuristic to confirmed architectural truth.
  2. Segment by Confidence Bracket:
    • high (≥75%): Ready for targeted account executive outbound.
    • medium (45–74%): Suitable for automated marketing newsletter sequences with fallback alternatives.
    • low (<45%): Typically indicates domains lacking valid MX mail servers or unparseable names.
  3. Utilize allCandidates on Bounce: If an email provider uses non-standard patterns, retain the allCandidates string to automatically retry the secondary format (firstlast or f.last).
  4. Domain MX Caching: The actor automatically memoizes DNS MX lookups across multiple contacts at the same company, ensuring high execution speeds even across 10,000+ person datasets.

❓ Frequently Asked Questions (FAQ)

Does this actor send ping emails or connect to mailboxes?

No. The actor resolves DNS mail exchanger (MX) records and computes mathematical pattern distributions. It does not initiate SMTP handshakes or send test messages, preventing server blacklisting and ensuring 100% compliance.

How accurate are the predicted emails?

When provided with a known sample in knownEmails, accuracy reaches ~92% across corporate domains. In statistical mode without samples, the top ranked candidates reflect the majority of enterprise naming conventions (first.last and flast account for over 70% of modern B2B email architecture).

How fast does the actor run on large lists?

Because DNS lookups are highly parallelized and memoized, lists of 1,000 contacts typically process in 5 to 15 seconds.

Can it handle names with special characters and accents?

Yes. International characters are automatically transliterated into valid email ASCII equivalents (e.g., Björn → bjorn, François → francois).

What happens if a domain does not have mail servers?

If a company domain has no active MX records (meaning it cannot receive email), the hasMx field is set to false and the confidence score is automatically downgraded to near zero.

What export formats are supported?

You can export results in JSON, CSV, Microsoft Excel (XLSX), XML, or access them programmatically via the Apify API.

What if I have contacts working at the same company?

You can specify the company domain once in the domain input field, and list only names in people. Any contact without a domain will automatically inherit the global domain.

Can I run 10,000+ contacts in a single run?

Yes. The actor processes items concurrently in memory with low CPU and memory footprints. Running 10,000 lookups typically requires less than 256 MB RAM and completes in under two minutes.


Combine this actor with complementary data extraction tools to build an end-to-end prospecting engine:



📋 Changelog

Version 1.2 (2026-11)

  • High-Volume list scaling: Unlocked seamless processing for 1,000+ contact lists with automated batch concurrency.
  • Deep Unicode transliteration: Expanded support for non-decomposing European characters and compound surnames.
  • Refined MX caching: Domain-level memoization reduces DNS network overhead by 80% on large enterprise company lists.
  • Enhanced pattern ranking: Updated pattern weights based on latest enterprise mail server conventions.

Version 1.1

  • Added knownEmails pattern reverse-engineering engine.
  • Added role-based and freemail provider classification.

Version 1.0

  • Initial release with 12-pattern statistical engine and asynchronous DNS MX verification.
⌂ 换网址