DEV Community

Get Anything
Get Anything

Posted on

Turn a list of domains into a lead list: emails, phones, socials

The most universal sales task there is: "I have a list of company websites — get me their emails and phone numbers." Here's how to do it reliably, and cheaply, without a browser.

Where the data actually hides

Businesses rarely put their email on the homepage. It's on the contact / about / imprint / support page. So the trick isn't just fetching one URL — it's following the few same-domain links that look like contact pages, then scanning those too.

The highest-confidence sources are mailto: and tel: links; after that, scan visible text with a well-filtered regex (drop asset filenames like logo@2x.png, tracking IDs, and example addresses).

Pure HTTP is enough (and cheap)

No browser needed. curl_cffi with Chrome TLS impersonation fetches the pages; BeautifulSoup + regex pull the contacts. That keeps cost per site tiny — which matters when you're processing thousands of domains.

Input / output

{
  "startUrls": [{ "url": "https://example.com" }, { "url": "acme.io" }],
  "crawlContactPages": true,
  "maxPagesPerSite": 5
}
Enter fullscreen mode Exit fullscreen mode
{
  "domain": "apify.com",
  "emails": ["hello@apify.com", "support@apify.com"],
  "phones": ["+1 ..."],
  "socials": { "linkedin": "...", "twitter": "...", "youtube": "..." }
}
Enter fullscreen mode Exit fullscreen mode

Use it for

  • Lead generation — enrich a list of company domains with reachable contacts.
  • Sales prospecting — pair it with a Google Maps or directory scraper: one finds the businesses, this gets their contacts.
  • CRM enrichment — fill missing email/phone fields.

Ready-made: Contact & Email Extractor on Apify. Public pages only — and respect anti-spam / data-protection laws (GDPR, CAN-SPAM) when you reach out.

Top comments (0)