LinkedIn Profile Scraper + Verified Email Leads
Pricing
from $14.00 / 1,000 leads
LinkedIn Profile Scraper + Verified Email Leads
Scrape LinkedIn profiles by URL or search query into a contactable lead list — name, title/headline, company, location, profile URL, plus a verified email (seeded or enriched from a personal/company site), phone, a 0-100 lead score, dedupe, and optional AI cold openers. Export CSV/JSON.
Pricing
from $14.00 / 1,000 leads
Rating
0.0
(0)
Developer
Flash Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
LinkedIn Leads Scraper — turn profiles and searches into contactable, scored leads
Turn LinkedIn profiles into a lead list you can actually email. Feed this actor LinkedIn /in/ profile URLs and/or free-text people searches (e.g. "VP of Marketing SaaS") and get back one clean row per person: name, title/headline, company, location, profile URL, email, phone, website, an email_status flag, and a 0–100 lead score that sorts the best leads first. Built for B2B cold email, recruiting, sales prospecting, and agency outreach teams that are tired of raw profile dumps that still need hours of spreadsheet cleanup. It's pay-per-result — you're charged only for the leads delivered after your filters — and it needs no LinkedIn login or cookie.
What it does
- Scrapes LinkedIn profiles from
/in/URLs, public identifiers, or free-text search queries — profile data is fetched through theharvestapi/linkedin-profile-scraperdata provider, so no LinkedIn cookie or credentials are ever needed. - Finds an email for each person: the email search on the profile side is seeded first, then (with
enrichEmailson) the actor visits any personal or company website linked from the profile — home,/contact,/contact-us, and/aboutpages — and extracts real emails plus LinkedIn/Facebook/Twitter social links. Link-in-bio pages (Linktree, Beacons, etc.) are resolved one hop further, but only to domains that match the person's own name or handle, so a sponsor's email never sneaks into your list. - Filters before you pay: keep only people whose title/headline contains your keywords (
titleIncludes), only people with a website, or only people with an email. - Scores every lead 0–100 — email +40, phone +10, title/seniority match +15, company present +10, location +5 — and sorts the dataset best-first.
- Dedupes automatically by profile URL and email, so the same person never appears twice.
- Optionally writes an AI cold-email opener per lead (one personalized sentence referencing their role or company), using your own OpenAI or Anthropic API key — the key is used once per run and never stored.
Use cases
- B2B cold email — turn a search like "founder fintech London" into a deduped, scored list with emails, ready for your sequencer.
- Recruiting — convert a shortlist of candidate profile URLs into an enriched CSV with contact details for direct outreach.
- Sales prospecting — build a decision-maker list filtered by title keywords (CEO, Head of, Director) and sorted by contactability.
- Agency lead gen — deliver clean LinkedIn lead lists to clients as a productized service, exported to CSV or synced to a CRM.
- Account-based marketing — enrich a target-account contact list with emails, phones, and websites in one run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
profileUrls | array | — | LinkedIn /in/ profile URLs or public identifiers, one per line (e.g. https://www.linkedin.com/in/williamhgates/ or williamhgates). |
searchQueries | array | — | Free-text people searches, one per line (e.g. VP of Marketing SaaS). Use instead of, or alongside, profile URLs. |
maxItems | integer | 50 | Maximum profiles to scrape across all URLs and queries (1–1000). |
titleIncludes | array | — | Keep only people whose title/headline contains one of these keywords. Matches also add to the lead score. |
onlyWithWebsite | boolean | false | Drop people with no personal/company website. |
onlyWithEmail | boolean | false | Drop people where no email could be found — best for cold-email campaigns. |
enrichEmails | boolean | true | Turn on the email search and visit the linked website to extract emails and social links. |
writeOpeners | boolean | false | Generate a personalized one-sentence AI opener per lead (requires your key below). |
llmProvider | string | "openai" | openai or anthropic — which model writes the openers. |
llmApiKey | string | — | Your own OpenAI/Anthropic API key. Used only for openers; never stored. |
llmModel | string | — | Optional model override (defaults: gpt-4o-mini / claude-haiku-4-5). |
{"profileUrls": ["https://www.linkedin.com/in/williamhgates/"],"searchQueries": ["VP of Marketing SaaS"],"maxItems": 50,"titleIncludes": ["CEO", "Founder", "Head of"],"onlyWithEmail": true,"enrichEmails": true,"writeOpeners": false}
Provide at least one of profileUrls or searchQueries — everything else has a sensible default.
Output
One dataset row per unique person, sorted best lead first. Rows export to CSV, JSON, or Excel from the Output tab, or via the Apify API.
{"name": "Jane Doe","title": "VP of Marketing at Acme SaaS","headline": "VP of Marketing at Acme SaaS","company": "Acme SaaS","location": "Austin, Texas, United States","profile_url": "https://www.linkedin.com/in/janedoe/","handle": "janedoe","email": "jane@acmesaas.com","phone": null,"website": "https://acmesaas.com","email_status": "found","lead_score": 70}
When website enrichment finds more, rows also carry extra_emails (up to 5 additional addresses) and any linkedin / facebook / twitter company links found on the site. With writeOpeners on, each lead gets an icebreaker field.
Pricing
This actor uses Apify pay-per-event pricing: a fraction of a cent per result — see the Pricing tab for the exact rate. You're charged only for leads delivered after dedup and your filters — if you set onlyWithEmail, you don't pay for the profiles that had no email. There's no subscription and no charge for empty runs, and the free Apify plan is enough to try it on a real prospect list before spending anything.
Tips / FAQ
Will every profile have an email? No. Emails come from the profile-side email search and from the person's own linked website. People with no public email anywhere show email_status: "missing" — turn on onlyWithEmail to keep only contactable leads (and to pay only for them).
Are the emails deliverability-verified? They're extracted from real public sources, but this actor doesn't do SMTP verification. Run the output through the Bulk Email Verifier before a large campaign.
Do I need a LinkedIn account, cookie, or API key? No login and no cookie. The only optional key is your own OpenAI/Anthropic key, and only if you want AI openers.
Where does the profile data come from? Profiles are fetched via an upstream data provider (harvestapi/linkedin-profile-scraper). If that provider has a transient outage, this run ends gracefully with a "temporarily unavailable — please retry" message and you're charged nothing.
How does maxItems behave? The upstream provider returns roughly one profile per URL or query; the cap is enforced on this actor's side, so you never receive (or pay for) more than maxItems leads.
Is this legal? It reads public profile data only. Use the leads for legitimate outreach and follow LinkedIn's terms plus anti-spam laws (CAN-SPAM, GDPR) in your messaging.
Related actors
- Bulk Email Verifier — verify every email before you hit send
- Company & Domain Enricher — turn lead websites into full company records
- Twitter/X Leads Scraper — the same scored-leads approach for X/Twitter audiences
Support: found a bug or need a feature? Open an Issue on this actor's Issues tab — typical response within 1 business day.