Website Lead Extractor - Emails, Phones & Social Profiles avatar

Website Lead Extractor - Emails, Phones & Social Profiles

Pricing

$10.00 / 1,000 contact info founds

Go to Apify Store
Website Lead Extractor - Emails, Phones & Social Profiles

Website Lead Extractor - Emails, Phones & Social Profiles

Crawl a company website and extract publicly listed emails, phone numbers, and social profile links (LinkedIn, X/Twitter, Facebook, Instagram, GitHub) as clean JSON.

Pricing

$10.00 / 1,000 contact info founds

Rating

0.0

(0)

Developer

Timothy Kelvin

Timothy Kelvin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Website Lead Extractor — Emails, Phones & Social Profiles

Built with Crawlee Runs on Apify

Give it a company website. It crawls the site (within the same domain, up to a configurable depth) and returns every publicly listed email address, phone number, and social profile link (LinkedIn, X/Twitter, Facebook, Instagram, GitHub) it finds, as clean JSON.

Built for sales teams, recruiters, and researchers who need contact info from a list of company sites without manually opening each "Contact" or "About" page — a 50-domain prospect list that would take an SDR most of an afternoon to work by hand runs here in a couple of minutes.

Run it

Via the Apify API — works for anyone with an Apify account:

curl "https://api.apify.com/v2/acts/m_ctim~website-lead-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{ "url": "https://example.com" }],
"maxDepth": 1,
"maxPagesPerDomain": 20
}'

Or clone this repo and run it locally with the Apify CLI:

git clone https://github.com/timmKal01/website-lead-extractor.git
cd website-lead-extractor
npm install
apify run

Input

FieldTypeDescription
startUrlsarray of URLsWebsite(s) to scan.
maxDepthinteger (default 1)How many link-hops from each start URL to follow within the same domain, e.g. to reach a Contact page.
maxPagesPerDomaininteger (default 20)Safety cap on pages visited per domain.
{
"startUrls": [{ "url": "https://example.com" }],
"maxDepth": 1,
"maxPagesPerDomain": 20
}

Output

One record per page where contact info was found:

{
"url": "https://example.com/contact",
"domain": "example.com",
"emails": ["hello@example.com"],
"phones": ["+1 415-555-0132"],
"socialProfiles": {
"linkedin": "https://linkedin.com/company/example",
"twitter": "https://x.com/example"
}
}

How it works

Plain HTTP crawl via Crawlee's CheerioCrawler — no headless browser, no proxy. It reads only what's already rendered in the raw HTML response, so it works on static/server-rendered sites; heavily JS-rendered sites may need a browser-based crawler instead.

Notes

  • Only extracts information the site itself publishes publicly (e.g. a "Contact us" page) — it does not access anything gated behind a login.
  • Respects a per-domain page cap so it won't run away on large sites.

Pricing note

Billed per page where contact info was found — a domain with no public contact info anywhere costs nothing, and a domain where 3 pages all list contact info costs the same as extracting it manually from all 3 yourself.