Company Contact Enricher - Website to B2B Leads avatar

Company Contact Enricher - Website to B2B Leads

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Company Contact Enricher - Website to B2B Leads

Company Contact Enricher - Website to B2B Leads

Transform company website URLs into enriched B2B contact data. Automatically scrapes team pages, detects email patterns, cross-references LinkedIn & identifies decision makers. - Website Scanning - Contact Extraction - Email Pattern Detection - LinkedIn Integration - Title Filtering - Webhooks

Pricing

from $0.01 / 1,000 results

Rating

1.0

(1)

Developer

The Howlers

The Howlers

Maintained by Community

Actor stats

3

Bookmarked

119

Total users

43

Monthly active users

4 days ago

Last modified

Share

Transform company website URLs into enriched B2B contact data. Scrapes team pages, detects email patterns, cross-references LinkedIn profiles, and identifies decision makers.

BYOK (Bring Your Own Key) -- you provide your own API credentials.


Before You Start

This actor requires your own API credentials to fetch real data.

Where to get your key: Your Apollo.io API key for B2B contact lookup (primary source)

You can test with Demo Mode first (free, no key needed) to see the output format before committing.


Quick Start

Test with Demo Mode (free, no API key needed)

{
"demoMode": true,
"websiteUrls": [
"https://apify.com"
],
"targetTitles": [
"CEO",
"CTO",
"Founder",
"Owner",
"VP",
"Director"
],
"targetRoles": [
"CEO",
"Owner",
"Founder",
"Marketing Director"
]
}

Run with real data

{
"demoMode": false,
"websiteUrls": [
"https://apify.com"
],
"targetTitles": [
"CEO",
"CTO",
"Founder",
"Owner",
"VP",
"Director"
],
"maxContactsPerSite": 10,
"apolloApiKey": "YOUR_API_KEY_HERE",
"hunterApiKey": "YOUR_API_KEY_HERE",
"anthropicApiKey": "YOUR_API_KEY_HERE",
"firecrawlApiKey": "YOUR_API_KEY_HERE",
"enableHunterFallback": true,
"enableBBB": true,
"enableSocialLookup": false,
"enableStateSOS": true,
"decisionMakerMode": false,
"targetRoles": [
"CEO",
"Owner",
"Founder",
"Marketing Director"
],
"seniorityFilter": "any",
"lookupLinkedIn": false,
"detectEmailPattern": true,
"includePhoneNumbers": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

Input Parameters

ParameterTypeDefaultRequiredDescription
demoModebooleantrueNoReturn sample data for testing (no charges). Set to false for live data.
websiteUrlsarray-NoCompany website URLs to enrich (e.g., https://example.com)
targetTitlesarray["CEO","CTO","Founder","Owner","VP","Director"]NoFilter contacts by job titles (e.g., CEO, CTO, VP)
maxContactsPerSiteinteger10NoMaximum contacts to return per company
apolloApiKeystring-Yes*Your Apollo.io API key for B2B contact lookup (primary source)
hunterApiKeystring-Yes*Hunter.io API key for email finding (SMB fallback + email verification)
anthropicApiKeystring-Yes*Anthropic API key for AI-powered contact extraction from websites
firecrawlApiKeystring-Yes*Firecrawl API key for fetching website content (required for AI extraction)
enableHunterFallbackbooleantrueNoUse Hunter.io domain search when Apollo has no results
enableBBBbooleantrueNoSearch Better Business Bureau for owner/principal info
enableSocialLookupbooleanfalseNoCross-reference LinkedIn/Facebook business pages for owner info
enableStateSOSbooleantrueNoSearch state Secretary of State business registrations for all 50 states. Uses 3-tier cascade: direct HTML scrapers for FL/NJ, Firecrawl+AI extraction for all states (with state-specific URLs + OpenCorporates fallback), and Google SERP for remaining coverage. Filters out corporate registered agents to find real business owners.
companyCitystring-NoCity for BBB lookup (e.g., Austin)
companyStatestring-NoState code for SOS/BBB lookup (e.g., TX, CA)
gbpDataarray-NoGBP data from google-maps-scraper (auto-populated in pipelines)
socialProfilesobject-NoSocial profiles for cross-reference (linkedin, facebook, instagram, twitter)
decisionMakerModebooleanfalseNoWhen enabled, prioritizes decision makers and filters out contacts without recognizable decision-making titles. Each contact gets a seniorityLevel and decisionMakerScore (0-100). Results are sorted by score descending (most senior first).
targetRolesarray[]NoOnly return contacts matching these roles (fuzzy match — 'CEO' matches 'Chief Executive Officer', 'Dir. of Marketing' matches 'Director'). Leave empty to return all roles.
seniorityFilterstring"any"NoOnly return contacts at or above this seniority level. C-Level includes CEO, CTO, CFO, President, etc. VP includes Vice President, SVP, EVP. Director includes Director, Head of. Manager includes Manager, Lead, Supervisor. 'Any' returns all contacts.
lookupLinkedInbooleanfalseNoCross-reference contacts with LinkedIn (additional charge per lookup)
detectEmailPatternbooleantrueNoGenerate emails using detected company pattern (first.last@domain.com)
includePhoneNumbersbooleantrueNoInclude phone numbers when found
webhookUrlstring-NoURL to send results when complete (Zapier, Make, n8n)
proxyConfigurationobject{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}NoProxy settings for web scraping fallback

*Required when Demo Mode is off.


Pricing

This actor uses pay-per-event billing:

EventDescriptionPrice
Website ScannedCharged for each company website scanned for contact information$0.10
Contact EnrichedCharged for each contact found with email or LinkedIn profile$0.15
LinkedIn LookupCharged when calling LinkedIn Profile Scraper for additional data$0.10

Demo mode is free -- no charges for sample data.


Troubleshooting

"API key is required"

You have Demo Mode turned off but didn't provide an API key. Either:

  • Turn Demo Mode on to test with sample data
  • Add your API key in the input

"API error 403" or "Unauthorized"

Your API key is invalid, expired, or doesn't have access to this specific API endpoint. Double-check your key and account permissions.

"API error 429" or "Rate limit"

Too many requests. Wait a minute and try again, or reduce the number of items per run.

No results or empty dataset

Check the run log for error messages. Common causes:

  • Invalid input format (check the examples above)
  • API key without proper permissions
  • The target data doesn't exist or is too small to track

How do I test without an API key?

Enable Demo Mode in the input. This returns realistic sample data so you can verify the output format works for your workflow.


Built by John Rippy | Actor Arsenal