Company Contact Enricher - Website to B2B Leads
Pricing
from $0.01 / 1,000 results
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
(2)
Developer
The Howlers
Maintained by CommunityActor stats
4
Bookmarked
162
Total users
5
Monthly active users
20 days ago
Last modified
Categories
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)
Quick Start
Run with real data
{"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
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
websiteUrls | array | - | No | Company website URLs to enrich (e.g., https://example.com) |
targetTitles | array | ["CEO","CTO","Founder","Owner","VP","Director"] | No | Filter contacts by job titles (e.g., CEO, CTO, VP) |
maxContactsPerSite | integer | 10 | No | Maximum contacts to return per company |
apolloApiKey | string | - | Yes* | Your Apollo.io API key for B2B contact lookup (primary source) |
hunterApiKey | string | - | Yes* | Hunter.io API key for email finding (SMB fallback + email verification) |
anthropicApiKey | string | - | Yes* | Anthropic API key for AI-powered contact extraction from websites |
firecrawlApiKey | string | - | Yes* | Firecrawl API key for fetching website content (required for AI extraction) |
enableHunterFallback | boolean | true | No | Use Hunter.io domain search when Apollo has no results |
enableBBB | boolean | true | No | Search Better Business Bureau for owner/principal info |
enableSocialLookup | boolean | false | No | Cross-reference LinkedIn/Facebook business pages for owner info |
enableStateSOS | boolean | true | No | Search 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. |
companyCity | string | - | No | City for BBB lookup (e.g., Austin) |
companyState | string | - | No | State code for SOS/BBB lookup (e.g., TX, CA) |
gbpData | array | - | No | GBP data from google-maps-scraper (auto-populated in pipelines) |
socialProfiles | object | - | No | Social profiles for cross-reference (linkedin, facebook, instagram, twitter) |
decisionMakerMode | boolean | false | No | When 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). |
targetRoles | array | [] | No | Only return contacts matching these roles (fuzzy match — 'CEO' matches 'Chief Executive Officer', 'Dir. of Marketing' matches 'Director'). Leave empty to return all roles. |
seniorityFilter | string | "any" | No | Only 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. |
lookupLinkedIn | boolean | false | No | Cross-reference contacts with LinkedIn (additional charge per lookup) |
detectEmailPattern | boolean | true | No | Generate emails using detected company pattern (first.last@domain.com) |
includePhoneNumbers | boolean | true | No | Include phone numbers when found |
webhookUrl | string | - | No | URL to send results when complete (Zapier, Make, n8n) |
proxyConfiguration | object | {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]} | No | Proxy settings for web scraping fallback |
Pricing
This actor uses pay-per-event billing:
| Event | Description | Price |
|---|---|---|
| Website Scanned | Charged for each company website scanned for contact information | $0.10 |
| Contact Enriched | Charged for each contact found with email or LinkedIn profile | $0.15 |
| LinkedIn Lookup | Charged when calling LinkedIn Profile Scraper for additional data | $0.10 |
Troubleshooting
"API key is required"
- 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?
Built by John Rippy | Actor Arsenal