LinkedIn Email Scraper with Website & Phone Number avatar

LinkedIn Email Scraper with Website & Phone Number

Pricing

$19.99/month + usage

Go to Apify Store
LinkedIn Email Scraper with Website & Phone Number

LinkedIn Email Scraper with Website & Phone Number

LinkedIn Email Scraper with Website & Phone Number Extract business emails, profile data with ease ๐Ÿ’ผ๐Ÿ“ง Get names, job titles, company details, verified contact info, and profile links for smarter outreach. Perfect for lead generation, recruitment, sales prospecting, and B2B research at scale ๐Ÿš€

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeLabs

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

2

Monthly active users

11 days ago

Last modified

Share

A LinkedIn lead generation scraper that finds public LinkedIn pages โ€” profiles, company pages, posts, articles, and job postings โ€” and extracts every contact channel it can find on them: email addresses, phone numbers, and business website links. No LinkedIn login, no cookies, no session required.

It works by searching Google's public index of LinkedIn pages (site:linkedin.com + your keywords), then reading the real, publicly-visible text of each matching result for a contact detail someone already self-published โ€” a bio, a headline, a /pulse/ article, a company "About" section, a job posting. It never logs into LinkedIn and never accesses private/gated content โ€” only what Google itself has already crawled and indexed.

This is an extended, superset build of the base LinkedIn Email Scraper: every base input still works exactly as before and the base's email-extraction output is unchanged โ€” this variant adds two new lead-contact channels (phone number + website) as additional, independently-toggleable search passes.

What it extracts

Data TypeDescription
networkSource platform (linkedin.com)
keywordThe keyword that produced this result
titleResult title โ€” usually the profile/company/post name or headline
descriptionSnippet text from the result, which may contain contact info
urlDirect link to the LinkedIn page
emailPublicly available email address found on the page
phoneNumberPublicly available phone number found on the page, normalized to E.164 (+<countrycode><number>)
websiteA real external business/personal domain mentioned on the page (LinkedIn itself, Google infrastructure, URL shorteners, and major social platforms are excluded)
matchedViaWhich search pass surfaced this row (email_search, phone_search, website_search_company, or website_search_profiles) โ€” a provenance/trust marker

A result row is kept whenever it carries at least one of email / phoneNumber / website โ€” a row does not need all three to be included.

Phone number extraction

Toggle: Extract Phone Numbers (default ON) + Country / Dial Code (default United Kingdom (+44)).

When ON, the actor runs an additional search pass per keyword pairing your selected country's dial code with the keyword, then extracts phone numbers from the matching pages using a hardened normalization pipeline: it strips trunk prefixes ((0)), rejects year ranges (2020 - 2024) and price/ZIP-adjacent digit runs that could otherwise glom into a fake number, handles NANP-merged Caribbean dial codes and India's fixed 10-digit numbering plan as special cases, and only returns numbers that pass an E.164 plausibility check (8โ€“15 digits, not an all-repeated-digit placeholder). Coverage is keyword- and country-dependent, same as the email feature โ€” business/contact-oriented keywords paired with company pages tend to yield the most hits.

Website extraction

Toggle: Extract Websites (default ON) + Website Search Scope.

  • Company Pages Only (default, recommended) โ€” searches LinkedIn company pages specifically. This is the reliable scope: live-tested at a 40โ€“80% hit rate across multiple keyword/query combinations, with real, name-plausible business domains and no observed false positives.
  • All LinkedIn Pages โ€” ADDS a second pass over personal profile pages on top of the company-page pass (it does not replace it). Real hits exist here too, but this scope is noisier: a website match on a personal profile page can occasionally pick up a sidebar/related-content domain rather than the person's own site. Treat personal-profile website matches as best-effort, not headline-accurate โ€” this scope split is disclosed here so you can choose the reliability level you need.

A denylist excludes LinkedIn's own domain, Google infrastructure (google.com, googleusercontent.com, gstatic.com, withgoogle.com), URL shorteners (bit.ly, goo.gl, lnkd.in, tinyurl.com), common personal-webmail providers (so an email's own domain never leaks in as a fake "website"), and major social platforms (Facebook, Twitter/X, Instagram, YouTube, Wikipedia, Amazon, Apple, Microsoft) โ€” so only genuine external business/personal websites are returned.

Input Parameters

๐Ÿ“ฆ Example Input (JSON)

{
"keywords": ["founder", "marketing", "hiring"],
"platform": "Linkedin",
"location": "London",
"emailDomains": ["@gmail.com", "@outlook.com"],
"maxEmails": 20,
"extractPhoneNumbers": true,
"country": "United Kingdom (+44)",
"extractWebsites": true,
"websiteScope": "Company Pages Only",
"engine": "legacy",
"proxyConfiguration": { "useApifyProxy": false }
}

Input Table

FieldTypeRequiredDescription
keywordsarrayโœ… YesKeywords used to find relevant LinkedIn pages. One or more.
platformstringNoPlatform to scrape. Currently Linkedin.
locationstringNoOptional location filter (e.g. London). Empty = global.
emailDomainsarrayNoKeep only emails from these domains (e.g. @gmail.com). Only filters rows that HAVE an email โ€” phone-only/website-only rows are never removed by this filter. Empty = all domains.
maxEmailsintegerNoMax result rows to collect per keyword, combined across email + phone + website (default 10, range 1โ€“100000).
extractPhoneNumbersbooleanNoTurn phone-number extraction on/off (default true).
countrystringNoCountry whose dial code is used for the phone search + normalization (default United Kingdom (+44)). Only used when extractPhoneNumbers is on.
extractWebsitesbooleanNoTurn website extraction on/off (default true).
websiteScopestringNoCompany Pages Only (default, reliable) or All LinkedIn Pages (adds a noisier personal-profile pass). Only used when extractWebsites is on.
enginestringNoProcessing engine. Currently legacy.
proxyConfigurationobjectNoProxy settings. Empty = the actor auto-selects the best proxy (recommended).

โ„น๏ธ All three lead-contact fields are sourced from publicly available, Google-indexed information only. LinkedIn is heavily login-gated for most of its content, so yield depends on how many indexed public pages expose a contact detail, and results vary run-to-run as Google's own index changes. Running with extractPhoneNumbers and/or extractWebsites ON adds extra search passes per keyword (roughly doubles or triples request volume vs. email-only), so expect a longer run when all three channels are enabled.

Output Format

๐Ÿ“ Example Output (JSON)

[
{
"network": "linkedin.com",
"keyword": "founder",
"title": "Jane Founder โ€” Startup Co.",
"description": "Founder & CEO at Startup Co. ยท Open to connect ยท reach.jane@gmail.com for partnerships ยท Visit our website www.startupco.com",
"url": "https://www.linkedin.com/in/jane-founder-example/",
"email": "reach.jane@gmail.com",
"phoneNumber": "+447700900123",
"website": "www.startupco.com",
"matchedVia": "email_search"
}
]

Use Cases

Lead generation โ€” build targeted outreach lists with email, phone, and company website in one row, without buying separate lookup tools for each channel.

Sales prospecting / B2B lead scraper โ€” search by industry keyword and pull company pages with a real published website and contact number.

Recruitment โ€” gather contact channels from public job postings and profiles.

Market research โ€” analyze which companies/profiles surface for a given keyword, with their contact footprint.

FAQ

Does this actor log into LinkedIn? No. It never uses a LinkedIn account, cookie, or session โ€” it only reads Google's public index of LinkedIn pages.

Will it find a contact for every result? No โ€” only pages where the email/phone/website was already publicly self-published and indexed by Google. Coverage is inherently keyword- and index-dependent; leave a field's toggle off if you only want a subset of the three channels.

Is emailDomains required? No โ€” leave it empty to collect emails from every domain, or narrow to specific domains (personal webmail or a business domain).

Why does turning on phone/website extraction slow the run down? Each additional channel runs its own extra Google search pass per keyword, so total request volume scales with how many channels are enabled.

Can I get only phone numbers, or only websites? Yes โ€” the email search pass always runs (base behavior), but you can independently toggle extractPhoneNumbers and extractWebsites off; rows are kept as long as they carry at least one of the three fields.