B2B Lead Scraper - Emails, Phones & Lead Scoring
Pricing
from $30.00 / 1,000 leads
B2B Lead Scraper - Emails, Phones & Lead Scoring
Turn company domains into sales-ready B2B leads: emails, phones, decision-makers, tech stack and a transparent 0-100 lead score. Pay only for leads that pass your quality gate. No LinkedIn scraping. MCP-ready for AI agents.
Pricing
from $30.00 / 1,000 leads
Rating
0.0
(0)
Developer
Виталий Белогуров
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
24 days ago
Last modified
Categories
Security
Limited permissionsShare
B2B Lead Scraper — Company Email Finder & Lead Scoring
B2B lead scraper and company email finder from websites. Give this Actor company domains and it returns emails, phone numbers, decision-makers with seniority, social profiles, tech stack and a transparent 0–100 lead score — all from public website data, with no database subscription and no LinkedIn scraping.
If you want Apollo-style company enrichment without a per-seat contract, this is a pay-per-lead alternative: you only pay for leads that pass your quality gate (~$30 per 1,000 leads at the promotional rate).
What you get for every company
| Data | Details |
|---|---|
| Company profile | Name (from JSON-LD / Open Graph / title), description, logo, address, founding date, employee count when published |
| Emails | Published addresses classified as personal or generic (info@, sales@…), on-domain flag, MX record check |
| Email pattern | Detected naming convention such as {first}.{last}@company.com, with a confidence value |
| Phones | International-format numbers from tel: links and page text |
| Decision-makers | Name, title and seniority: C-level / VP / Director / Manager / Other, plus direct email and LinkedIn profile when the site lists them |
| Social links | Company LinkedIn, Twitter/X and Facebook pages |
| Tech stack | 75+ technologies detected from HTML, scripts and HTTP headers: CMS, e-commerce, CRM, marketing automation, analytics, live chat, CDN, hosting |
| Lead score | leadScore 0–100 and a full leadScoreBreakdown that shows every point |
| Metadata | scrapedAt ISO timestamp, pages crawled, PII mode flag |
Honest by design. The Actor only reads what companies publish on their own websites. It does not scrape LinkedIn, does not buy or fake employee databases, and does not invent email addresses. If a site lists no team, you get no contacts — and a lower score that says so.
Why this Actor beats typical lead scrapers
- Transparent scoring. You see why a lead scored 72. Seven components (email quality, deliverability, phone, decision-makers, social, company profile, tech stack) each report their points and signals.
- Quality gate. Set
minLeadScoreand weak leads are dropped before they are charged. - Incremental runs. Schedule weekly runs on the same list; domains enriched within
incrementalFreshnessDaysare skipped, so you pay only for new or stale companies. - Deliverability signal. Every company domain gets a DNS MX lookup, so you can filter out dead domains before they hit your CRM.
- Privacy option.
piiSafeModereplaces emails and phone numbers with deterministic SHA-256 hashes — handy for matching against your own hashed lists, analytics, or compliance reviews. - Webhook delivery. Push enriched leads straight into your CRM, Zapier, Make or n8n flow.
- Clean input handling. Paste domains, full URLs,
www.hosts or even email addresses; they are normalized and de-duplicated automatically.
How the lead score works
leadScore = round(100 × pointsEarned ÷ pointsAvailable)
| Component | Max points | Examples of signals |
|---|---|---|
| Email quality | 20 | any email, email on company domain, named email, pattern detected |
| Email deliverability | 10 | company domain publishes MX records |
| Phone | 10 | phone found, extra / direct number |
| Decision-makers | 25 | named contact with title, C-level (10) / VP (8) / Director (6) / Manager (3), direct email or LinkedIn |
| Social | 14 | LinkedIn company page (8), Twitter/X (3), Facebook (3) |
| Company profile | 12 | name, description, address, JSON-LD organization data |
| Tech stack | 9 | technologies detected, business-relevant tools |
If you switch an enrichment module off (for example enrichTechStack: false), its points are removed from the denominator, so scores stay comparable and your minLeadScore keeps working. Every record contains leadScoreBreakdown.components.*.signals listing the exact +N reasons.
Input
| Field | Description |
|---|---|
companies | Domains or URLs, one per line (required) |
maxResults | Stop after this many delivered leads (default 100) |
maxContactsPerCompany | Contacts returned per company, 0 disables contact extraction (default 5) |
minLeadScore | Quality gate 0–100; lower-scoring leads are dropped and not charged |
enrichEmails / enrichSocial / enrichTechStack | Toggle modules |
skipSocialEnrichment | Hard override that disables social extraction |
incrementalMode, incrementalFreshnessDays | Skip recently enriched domains |
webhookUrl | POST results to your endpoint |
piiSafeMode | Hash emails and phones |
proxyConfiguration | Optional; off by default. Enable only for large lists / rate limits. No captcha needed. |
Ready-to-use example: examples/input.json.
Example output
{"domain": "acme-industrial.com","website": "https://www.acme-industrial.com/","companyName": "Acme Industrial","emails": [{ "value": "jane.doe@acme-industrial.com", "type": "personal", "domain": "acme-industrial.com", "onCompanyDomain": true, "mxValid": true, "hashed": false }],"emailPattern": { "pattern": "{first}.{last}", "exampleTemplate": "{first}.{last}@acme-industrial.com", "confidence": 0.8, "sampleSize": 3, "basis": "named-contacts" },"phones": ["+15551234567"],"contacts": [{ "name": "Jane Doe", "title": "Chief Executive Officer", "seniority": "C-level", "isDecisionMaker": true, "linkedinUrl": "https://www.linkedin.com/in/janedoe" }],"social": { "linkedin": "https://www.linkedin.com/company/acme-industrial", "twitter": null, "facebook": null },"techStack": [{ "name": "HubSpot", "category": "Marketing automation" }],"leadScore": 82,"scrapedAt": "2026-10-11T09:30:00.000Z"}
Pricing
Pay-per-event pricing:
| Event | Price | When it is charged |
|---|---|---|
lead-enriched | $0.03 (about $30 per 1,000 qualified leads) | One lead delivered to your dataset |
Leads below minLeadScore, unreachable websites, skipped incremental domains and invalid records are never charged. If your maximum cost per run is reached, the Actor stops cleanly. Use minLeadScore (40–60 recommended for outreach) so you only pay for usable contacts.
Common use cases
- Outbound sales and SDR teams — build account lists with contacts and a score to prioritize outreach.
- Agencies — qualify prospects by tech stack ("uses Shopify, no analytics") and decision-maker availability.
- CRM hygiene — refresh stale company records on a schedule with incremental mode.
- Market research — map technology adoption across a list of competitors or customers.
- Marketing ops — enrich inbound signups by domain and route high scorers to sales.
Tips for best results
- Use
minLeadScorebetween 40 and 60 for outreach lists. - Enable Apify Proxy for lists above a few hundred domains.
- Schedule runs with
incrementalModefor monitoring. - Combine
piiSafeModewith a webhook when you only need hashed identifiers downstream. - Pages that render team members only with JavaScript will yield fewer contacts; the score reflects that.
Limits and good practice
- Data comes only from the company's own public pages (homepage plus contact, about and team pages when linked).
- Contact detection is heuristic. Always sample-check before large campaigns.
- Email addresses are not verified by sending mail; the MX check confirms the domain can receive mail, not that a mailbox exists.
- You are responsible for lawful use of the data, including GDPR, CAN-SPAM and local B2B marketing rules.
piiSafeModehelps limit exposure of personal data.
Integrations
Export results as JSON, CSV, Excel or via the Apify API, or connect with Zapier, Make, n8n, Google Sheets and HubSpot. The webhook receives leads.enriched batches (up to 25 leads) and a final run.finished event with run statistics. Statistics are also stored in the key-value store record RUN_STATS.
Use with AI agents (MCP)
Works with the Apify MCP server:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=fetch-actor-details,call-actor,invincible_brookbed/b2b-lead-gen-pro"}}}
Authenticate via OAuth or an Apify API token. Your agent can read the input schema and run this Actor with call-actor.
FAQ
Does it scrape LinkedIn? No. It only finds the company's LinkedIn page URL linked from its own website.
Can it find emails that are not published? No. It reports published addresses and the detected naming pattern; it never guesses or fabricates addresses.
How does incremental mode remember domains? In a named key-value store (b2b-lead-gen-pro-incremental) in your account, so state survives between runs.