Leadership Contact Finder avatar

Leadership Contact Finder

Under maintenance

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Leadership Contact Finder

Leadership Contact Finder

Under maintenance

Crawl corporate websites to discover leadership contacts. Extracts names, titles, emails, LinkedIn URLs, phone numbers, and infers department, seniority, and location for each decision maker.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

ToolzerHub

ToolzerHub

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

An Apify Actor that crawls corporate websites, discovers leadership contacts (executives, founders, VPs, directors, etc.), generates their likely email addresses from detected domain patterns, and optionally verifies them via SMTP.

Features

  • Targeted page discovery — Sitemap + homepage navigation scanning for /about, /team, /leadership, /people, /founders, /management, and similar pages.
  • Multi-strategy person extraction
    • Schema.org JSON-LD Person objects (highest confidence)
    • DOM pattern detection for team-member containers
    • Text regex fallback for title + name patterns
  • Email pattern detection — Learns common patterns (first.last, f.last, first, firstlast, first_last, etc.) from emails found on the site.
  • SMTP email verification — Async batch verification with MX lookup, connection reuse, conservative rate limits, and catch-all domain detection.
  • Company enrichment — Extracts company name, industry keywords, location, and social profiles.
  • Title inference — Infers department, function, and seniority from job titles.
  • Anti-bot infrastructure — Scrapling-based stealth browser with adaptive proxy escalation: rotates datacenter IPs first, then escalates to residential only when a domain keeps blocking.
  • Clean output — Names, titles, phones, and locations are whitespace-normalized to avoid broken values like embedded \n characters.

Input

{
"domain": "example.com",
"rolesPreset": "decision_makers",
"customRoles": ["CMO", "Managing Director"],
"maxItems": 50,
"verifyEmails": true,
"useProxy": {
"useApifyProxy": false,
"apifyProxyGroups": []
},
"useStealth": true,
"solveCloudflare": false,
"includeContactText": true,
"stayOnDomain": true,
"maxConcurrency": 10
}

Either domain or startUrls is required. maxItems controls how many leadership contacts you want back; the actor automatically crawls enough pages (up to maxItems × 15, capped at 500) to find them. maxConcurrency lives under the Advanced section. concurrentRequests is accepted as a backward-compatible alias for maxConcurrency.

Roles presets

PresetCovers
decision_makersCEO, CTO, Founder, COO, VP, Director, President, Chief, Head, Manager, Lead, Owner, Partner, Executive
c_suiteCEO, CTO, CFO, COO, CMO, President, Chief
foundersFounder, Co-Founder
vp_directorsVP, Director, Head, Senior Manager
all_leadershipUnion of all presets
customUses the keywords you provide in customRoles

Output

The actor pushes one flat item per discovered leadership contact:

{
"name": "Kate Bueker",
"firstName": "Kate",
"lastName": "Bueker",
"email": "kbueker@hubspot.com",
"emailConfidence": "verified",
"phone": "+18884827768",
"linkedinUrl": "http://www.linkedin.com/in/kate-bueker-25b0231",
"title": "Chief Financial Officer",
"department": "c_suite, finance",
"functions": "finance",
"seniority": "c_suite",
"headline": "Chief Financial Officer at HubSpot",
"positionHistory": [],
"location": "Boston, Massachusetts, United States",
"city": "Boston",
"country": "United States",
"companyName": "HubSpot",
"domain": "hubspot.com",
"sourceUrl": "https://hubspot.com/about",
"extractionMethod": "schema_org",
"extractionConfidence": "high",
"catchAllDomain": false,
"companyInfo": {
"industry": ["software", "technology", "saas"],
"location": "Cambridge, MA",
"socials": {
"linkedin": "https://linkedin.com/company/hubspot",
"twitter": "https://twitter.com/hubspot"
}
}
}

Field notes

  • department combines inferred seniority and function.
  • functions is the normalized business function (finance, marketing, sales, engineering, etc.).
  • seniority is one of: c_suite, founder, owner, vp, director, manager, senior.
  • positionHistory is currently empty ([]) because the actor does not scrape full career history.
  • phone uses the first company phone discovered on the domain when a direct line is not available.
  • sourceUrl is the page where the contact was discovered.
  • companyInfo includes industry keywords, employee-count estimate, location, and social profile links discovered on the homepage.

Confidence Levels

  • verified — SMTP server accepted the email recipient.
  • pattern_match — Generated from the site's most common email pattern but not SMTP-verified.
  • catch_all — Domain accepts all addresses; verification is unreliable.
  • failed — SMTP server rejected the generated candidate.
  • unknown — Verification disabled or could not be completed.

Best Practices

  1. Use a proxy — SMTP verification and stealth browsing both benefit from a proxy. The actor auto-enables a datacenter proxy when stealth is on. Residential proxy is used automatically only after repeated blocks on the same domain, or when you explicitly select a residential proxy group.
  2. Disable verification for speed — If you only need candidate emails, set verifyEmails: false to skip SMTP checks.
  3. Tune roles — Use the custom preset with industry-specific keywords (e.g., CMO, Principal, Managing Director).
  4. Respect rate limits — The actor uses conservative delays between domains and emails; avoid aggressive concurrency on the same mail server.

Limitations

  • SMTP verification may be blocked or rate-limited by recipient mail servers.
  • Catch-all domains make verification unreliable; the actor flags these explicitly.
  • Some websites hide team data behind JavaScript or require authentication; stealth mode helps but cannot guarantee access.
  • Position history is not extracted from websites.