B2B Lead Scraper - Emails, Phones & Lead Scoring avatar

B2B Lead Scraper - Emails, Phones & Lead Scoring

Pricing

from $30.00 / 1,000 leads

Go to Apify Store
B2B Lead Scraper - Emails, Phones & Lead Scoring

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 Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

24 days ago

Last modified

Categories

Security

Limited permissions

Share

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

DataDetails
Company profileName (from JSON-LD / Open Graph / title), description, logo, address, founding date, employee count when published
EmailsPublished addresses classified as personal or generic (info@, sales@…), on-domain flag, MX record check
Email patternDetected naming convention such as {first}.{last}@company.com, with a confidence value
PhonesInternational-format numbers from tel: links and page text
Decision-makersName, title and seniority: C-level / VP / Director / Manager / Other, plus direct email and LinkedIn profile when the site lists them
Social linksCompany LinkedIn, Twitter/X and Facebook pages
Tech stack75+ technologies detected from HTML, scripts and HTTP headers: CMS, e-commerce, CRM, marketing automation, analytics, live chat, CDN, hosting
Lead scoreleadScore 0–100 and a full leadScoreBreakdown that shows every point
MetadatascrapedAt 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 minLeadScore and weak leads are dropped before they are charged.
  • Incremental runs. Schedule weekly runs on the same list; domains enriched within incrementalFreshnessDays are 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. piiSafeMode replaces 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)

ComponentMax pointsExamples of signals
Email quality20any email, email on company domain, named email, pattern detected
Email deliverability10company domain publishes MX records
Phone10phone found, extra / direct number
Decision-makers25named contact with title, C-level (10) / VP (8) / Director (6) / Manager (3), direct email or LinkedIn
Social14LinkedIn company page (8), Twitter/X (3), Facebook (3)
Company profile12name, description, address, JSON-LD organization data
Tech stack9technologies 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

FieldDescription
companiesDomains or URLs, one per line (required)
maxResultsStop after this many delivered leads (default 100)
maxContactsPerCompanyContacts returned per company, 0 disables contact extraction (default 5)
minLeadScoreQuality gate 0–100; lower-scoring leads are dropped and not charged
enrichEmails / enrichSocial / enrichTechStackToggle modules
skipSocialEnrichmentHard override that disables social extraction
incrementalMode, incrementalFreshnessDaysSkip recently enriched domains
webhookUrlPOST results to your endpoint
piiSafeModeHash emails and phones
proxyConfigurationOptional; 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:

EventPriceWhen 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

  1. Use minLeadScore between 40 and 60 for outreach lists.
  2. Enable Apify Proxy for lists above a few hundred domains.
  3. Schedule runs with incrementalMode for monitoring.
  4. Combine piiSafeMode with a webhook when you only need hashed identifiers downstream.
  5. 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. piiSafeMode helps 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.