Skip to main content

Web Scraping for Lead Generation: The Complete B2B Data Collection Guide (2026)

· 7 min read
Yassine El Haddad
Software Developer & Automation Specialist

I build production AI agents, web scrapers, and automation pipelines. Most of what I publish here comes from the actual problems they run into: proxies that get banned, anti-bot stacks that fingerprint your client, RAG that drifts when the underlying data moves. Stack: Python, TypeScript, Go, FastAPI, LangChain, Crawlee, Playwright, deployed on AWS, GCP, and Cloudflare.

B2B lead gen pulls from company sites, contact pages, LinkedIn, Google Maps, Crunchbase, job boards, and similar public surfaces. Scraping automates the collection step; you still layer enrichment (Hunter.io, Clearbit), scoring (rules or a model), and CRM push (HubSpot, Salesforce). This guide maps sources, GDPR/CCPA basics, pipeline shape, and how Apify compares to Apollo.io and ZoomInfo for that stack.

For the evergreen reference version with field-by-field source tables and a full Apify Store walkthrough, see the B2B lead generation with web scraping use-case guide.

B2B Lead Gen Data Sources

SourceWhat You GetApify ActorNotes
Company websitesContact pages, emails, LinkedInWebsite Content Crawler, customCheck /contact, /about, /team
LinkedInProfile URL, name, title, companyLinkedIn ScraperRate limits, ToS risk
Google MapsBusiness name, phone, address, website, ratingGoogle Maps ScraperGreat for local/SMB
CrunchbaseStartups, funding, teamCrunchbase ActorStartup-focused
Job boardsHiring signals, company growthIndeed, LinkedIn JobsIndicates expansion

See Make.com lead generation pipeline for an automated Apify → Make → CRM flow.

GDPR and CCPA Compliance

  • Business vs personal data: B2B contact data (work email, job title, company) is often treated differently from personal data under GDPR. Work email may be "business contact" in some jurisdictions. Check local guidance.
  • Lawful basis: For cold outreach, legitimate interest is commonly claimed. Document your assessment. Offer opt-out.
  • B2B email rules: EU ePrivacy allows B2B emails without prior consent in many cases, provided you identify yourself and offer unsubscribe. B2C has stricter rules.
  • Best practice: Prefer data you have a relationship with (website visitor, form submit). For scraped data, use for research and enrichment; avoid mass unsolicited outreach without legal review.

LinkedIn Scraping

What Apify's LinkedIn Scraper can extract: Profile URL, name, headline, company, location, connection degree (when logged in). Search by keyword, company, or sales navigator URL.

Rate limits: LinkedIn blocks aggressively. Use residential proxies. Limit concurrency. Run during off-peak. Expect blocks; design for retry and backoff.

Safe usage: Small batches (50–100 profiles/day). Rotate sessions. Don't scrape at commercial scale without evaluating Sales Navigator API or LinkedIn Official Partner tools.

Google Maps Lead Generation

Extract local businesses by search query (e.g., "restaurants Austin", "plumbers Denver"). Output: business name, phone, address, website, rating, reviews count, categories.

Implementation:

  • Google Maps Scraper with search query and location.
  • Filter by rating, category. Extract website. Visit website for contact email (or use Hunter.io).
  • Push to CRM with business + contact fields.

See extract emails from Google Maps and Octoparse Google Maps for alternative approaches.

Contact Email Discovery

  • Website scrape: Extract from /contact, /about, /team. Look for mailto: and common patterns (info@, hello@, sales@).
  • Hunter.io: Domain → find emails. API or manual. Validates deliverability.
  • Apollo.io: Similar. Has Chrome extension and API.
  • LinkedIn: Some profiles show email. Scrapers may extract when present.

Data Enrichment Pipeline

Raw lead (company, website)
→ Website scrape for LinkedIn/contact
→ Hunter.io for email
→ Clearbit/Apollo for company data (revenue, employees, industry)
→ Score by ICP (rules or Claude)
→ Push to CRM if score >= threshold

Make.com lead generation automation implements this: Apify for collection, Make for enrichment and scoring, HubSpot/Salesforce for storage.

CRM Integration

Push qualified leads to HubSpot, Salesforce, or Airtable via API.

  • HubSpot: Create contact, company. Map fields. Use workflows for sequences.
  • Salesforce: Create Lead or Contact. Use custom objects if needed.
  • Airtable: Append to base. Use Automations for downstream steps.

Apify has HubSpot and Make.com integrations. Or use webhooks to trigger your own API.

Quality vs Quantity

PracticeBenefit
ICP scoringFocus on accounts that fit. Higher conversion.
Email verificationReduce bounces. Hunter, NeverBounce, ZeroBounce.
DeduplicationAvoid duplicate outreach. Merge on domain/email.
Review gateHuman check borderline leads before sequence.

Apify vs Apollo.io vs ZoomInfo

AspectApifyApollo.ioZoomInfo
ModelBuild your own pipelinePre-built database + enrichmentEnterprise data platform
Cost per leadVariable (compute + proxy)~$0.10–0.50/lead (plan-based)$$$ (enterprise contracts)
Data freshnessYou control scrape frequencyDatabase updated regularlyHigh freshness, verified
CustomizationFull control over sourcesLimited to Apollo databaseLimited to ZoomInfo
Best forCustom sources, Google Maps, niche verticalsOutbound sales, broad databaseEnterprise, compliance-critical

Use Apify when you need custom sources (Google Maps, vertical sites, job boards), want to own the pipeline, or Apollo/ZoomInfo don't cover your ICP. Use Apollo/ZoomInfo when you want a ready-made database and don't need custom scraping. Many teams run hybrid: Apollo for broad outreach, Apify for niche verticals (e.g., restaurants, contractors) where Google Maps or industry directories are the primary source. The Make.com lead generation pipeline supports both patterns.

Scaling and Maintenance

As your lead pipeline grows, monitor quality metrics: email bounce rate, reply rate, conversion to opportunity. If bounce rate spikes, tighten verification. If reply rate drops, refine ICP scoring or messaging. Schedule periodic re-scrapes of high-value accounts to refresh contact data. Rotate proxy IPs; LinkedIn and some sites track repeat offenders. Keep a blocklist of domains that explicitly opt out. Document your data sources and refresh cadence so compliance and sales can align.

Apify Affiliate Banner 728x90Apify Affiliate Banner 728x90Apify Affiliate Banner 300x50Apify Affiliate Banner 300x50
Start with Google Maps

For local and SMB lists, Maps is often the fastest honest win: run your ICP query (e.g., "HVAC contractors California"), pull a small batch—say 100 listings—enrich with Hunter.io, and ship only the top fits to CRM before you widen the net.



Try Apify Lead Gen Actors | Make.com Lead Pipeline

Frequently Asked Questions

Pair Make.com with Apify: schedule a Google Maps Actor, pass rows through Hunter.io in Make, then create contacts in HubSpot or Salesforce with a simple rating/category filter. You can get a first version live quickly; see the Make.com lead generation pipeline post for the full wiring.

LinkedIn's ToS prohibits scraping. US courts (hiQ v. LinkedIn) ruled scraping public data doesn't violate CFAA. Enforcement targets commercial resellers. For internal lead gen, use reasonable limits. EU adds GDPR considerations for personal data. Consider Sales Navigator API for scale.

Company websites (contact/team pages), Hunter.io by domain, Apollo.io. LinkedIn sometimes shows emails. Avoid purchased lists; they're often stale and high-bounce.

Verify emails. Use opt-out. Segment by relevance. Don't blast. Warm up domains. Follow CAN-SPAM and GDPR. Quality and relevance reduce complaints more than source.

Yes. Apify has HubSpot integration. Or use Make.com: Apify → Make → HubSpot. Map dataset columns to HubSpot contact/company fields. Trigger workflows on create.

Apify is bring-your-own sources and glue; Apollo ships a database plus enrichment. Reach for Apify when Maps or niche directories matter; use Apollo when their coverage matches your ICP and you want less plumbing.

Common mistakes and fixes

LinkedIn blocks or rate limits scraper

Use residential proxies. Limit concurrency. Run during off-peak hours. LinkedIn aggressively blocks—consider Sales Navigator API or official partner tools for scale.

Contact emails not found on website

Try Hunter.io, Apollo, or similar for enrichment. Contact pages often use obfuscation. Check /about, /team, /contact. LinkedIn may have emails.

Duplicate leads in CRM

Deduplicate before push. Use (domain, email) or company_id as key. Run merge logic. Validate with CRM's duplicate detection.