Business Contact Extractor
Pricing
Pay per event
Business Contact Extractor
Extract business emails and phone numbers from company websites. High-accuracy AI-enabled business contact extractor using smart crawling, LLM and AI extraction, heuristics, and PDF extraction. Finds emails/phones even on complex sites. Supports CSV bulk input and outputs clean, CRM-ready data.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Sue
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
The most thorough and accurate contact extractor available — powered by AI and built with enterprise-grade verification.
Extract verified business emails and phone numbers from company websites, even when contact info is buried in PDFs, hidden behind navigation menus, or scattered across multiple pages. This Actor combines smart multi-page crawling, strict multi-layer validation, and optional AI-powered extraction to deliver results that other scrapers simply miss.
Why AI Makes the Difference
When you provide a Gemini API key, this Actor uses LLM-powered extraction to:
- Understand page context — AI reads the page like a human, identifying contact sections even on modern, JavaScript-heavy sites with minimal visible text
- Extract from complex layouts — Finds emails and phones embedded in stylized designs, image-based text, or unconventional formatting
- Validate intelligently — Cross-references extracted contacts against the page content to reject false positives
- Achieve 100% email accuracy — In real-world benchmarks, LLM mode eliminated all email errors
Even without AI, this Actor runs 50+ validation rules on every email and phone number — rejecting hex IDs, placeholder text, vendor emails, invalid formats, and other junk that pollutes typical scraper output.
Ideal for lead generation, B2B prospecting, data enrichment, and CRM automation. Works as a business email scraper, website contact finder, and phone number extraction API.
Pricing
This Actor uses Apify's pay-per-event model:
| Fee Type | Cost |
|---|---|
| Actor Start | $0.05 per run |
| Result | $0.01 per domain |
Example: Processing 100 domains costs approximately $1.05 ($0.05 start fee + $1.00 for 100 results).
LLM Cost (Optional)
The optional LLM feature uses Gemini 2.0 Flash, which has an extremely generous free tier. For most users, the LLM cost is completely free or negligible — typically just a few cents even for thousands of domains.
Get a free Gemini API key at https://aistudio.google.com/
Why This Scraper Is Different
Most contact scrapers only scan a single page or rely on simple pattern matching. That misses a huge amount of real business contact information.
This Actor is designed to be far more thorough and reliable, using a hybrid system that dramatically improves both coverage and accuracy:
🔍 Smart Multi-Page Crawling
Automatically looks for:
- Contact pages
- About/team/support pages
- Footer links
- Auto-discovered subpages
This avoids the “homepage only” limitation of basic scrapers.
🧠 AI-Powered Extraction + Strict Verification
Every contact goes through a multi-stage validation pipeline:
- Format validation — Rejects malformed emails, hex IDs, UUID fragments, and datetime strings
- Domain matching — Prioritizes emails matching the company's own domain
- Vendor filtering — Excludes generic vendor emails (e.g., orders@toasttab.com)
- Phone normalization — Converts all numbers to E.164 international format
- Duplicate detection — Removes redundant entries across all pages
With the optional Gemini AI integration, the Actor can also:
- Parse JavaScript-rendered content that basic scrapers miss
- Understand semantic context to find contacts on unconventional page layouts
- Cross-validate LLM findings against strict rules to eliminate hallucinations
📄 PDF Contact Extraction
Many companies hide contact details inside:
- brochures
- catalogs
- downloadable spec sheets
This Actor automatically fetches and scans PDFs for emails and phone numbers — a major upgrade over typical HTML-only scrapers.
🧹 Enterprise-Grade Data Quality
This isn't just extraction — it's verification at scale. Every result passes through 50+ validation rules:
- Rejects placeholder emails (test@, noreply@, example@)
- Filters out vendor/third-party emails (toasttab, squarespace, wix)
- Removes invalid phone patterns (hex IDs, tracking codes, dates)
- Normalizes all phones to E.164 international format
- Deduplicates across all crawled pages
- Prioritizes brand-matching emails as the primary contact
The result: CRM-ready data you can trust, not a list of garbage to clean up manually.
📦 Bulk CSV Upload
Upload a CSV of domains and process hundreds of websites in one run.
Performance (Based on Real-World Benchmarking)
Testing with 30 trade show exhibitor domains:
| Metric | Without LLM | With LLM |
|---|---|---|
| Email accuracy | 92% | 100% |
| Email coverage | 80% | 83% |
| Phone coverage | 87% | 90% |
These results are significantly higher than traditional scrapers.
Input Options
Option 1 — Domain List
{"domains": ["example.com", "another-company.com"],"maxPagesPerDomain": 10,"llmApiKey": "your-gemini-api-key"}
Option 2 — CSV Upload
Upload a CSV with a domain, website, or url column:
domainexample.comanother-company.comacme-corp.net
Parameters
| Parameter | Type | Description |
|---|---|---|
| domains | array | List of domains or URLs to scrape |
| csvFile | file | CSV file with domain/website/url column |
| maxPagesPerDomain | integer | Max pages to crawl per domain (default: 10) |
| llmApiKey | string | Gemini API key for enhanced accuracy |
Get a free Gemini API key at https://aistudio.google.com/
Output Format
Each domain produces one result:
{"domain": "example.com","primary_email": "contact@example.com","primary_phone": "+14155551234","supplemental_emails": ["sales@example.com", "support@example.com"],"supplemental_phones": ["+14155555678"]}
Output Fields
| Field | Description |
|---|---|
| domain | Domain that was scraped |
| primary_email | Best email found (prefers brand domain) |
| primary_phone | Best phone found (E.164 format) |
| supplemental_emails | All other valid emails found |
| supplemental_phones | All other valid phones found |
Usage Tips
- Add a Gemini API key for maximum coverage and 100% email accuracy
- Increase
maxPagesPerDomainif contacts aren’t found (try 15–20) - Use CSV upload for large batches (100+ domains)
- Find results in the Dataset tab after the run completes
Limitations
- Cannot extract contacts behind login walls
- Cannot retrieve contacts locked behind form submissions
If you need high-quality business contact data at scale, this Actor provides the most robust and accurate extraction method available on Apify.