LinkedIn People Scraper avatar

LinkedIn People Scraper

Pricing

from $50.00 / 1,000 results

Go to Apify Store
LinkedIn People Scraper

LinkedIn People Scraper

Advanced LinkedIn People Scraper for high-quality lead generation. Extract verified profile data including names, job titles, companies, locations, emails, and phone numbers using secure authenticated sessions. Perfect for sales prospecting, recruitment, and B2B outreach at scale.

Pricing

from $50.00 / 1,000 results

Rating

5.0

(1)

Developer

Angelus

Angelus

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

3 days ago

Last modified

Share

Scrape LinkedIn people profiles by search query with advanced filters. Extracts structured profile data including name, headline, location, current role, experience, education, and skills. In Full Profile with Email mode, the actor also extracts email addresses directly from LinkedIn's Contact Info section and by crawling external websites linked on each profile β€” no third-party enrichment API required.

Features

  • πŸ” Fuzzy people search with keyword queries
  • πŸ”’ Authenticated scraping via your LinkedIn session cookie (li_at)
  • πŸ“§ Email extraction from LinkedIn Contact Info and linked external websites
  • 🎯 14 filter types: location, company, school, job title, seniority, headcount, and more
  • πŸ“„ Pagination control: set start page and number of pages to scrape
  • πŸ’Ύ Dataset output with configurable views + HTML snapshots in key-value store
  • πŸ“‹ Run metadata saved for audit and debugging

This actor requires a valid LinkedIn session cookie (li_at) to access profile data. LinkedIn does not expose contact info or full profiles to unauthenticated visitors.

Steps (Chrome):

  1. Open linkedin.com and log in to your account
  2. Press F12 to open DevTools
  3. Click the Application tab
  4. In the left sidebar, expand Cookies and click https://www.linkedin.com
  5. Find the cookie named li_at in the list
  6. Click it and copy the full Value (it's a long string)
  7. Paste it into the "LinkedIn Session Cookie (li_at)" input field

Firefox: Same steps, but DevTools is under Storage β†’ Cookies.

Security note: Your cookie value is marked as isSecret in this actor β€” it is never logged to the console or saved to the dataset output. Treat your li_at cookie like a password. Do not share it.

Cookie expiry: LinkedIn session cookies typically last 1 year, but LinkedIn can invalidate them earlier if suspicious activity is detected. If the actor returns a "cookie expired" error, simply repeat the steps above to get a fresh cookie value.


Scraper Modes

Full Profile

Scrapes authenticated profile data for each person:

  • Full name, headline, location
  • About / summary text
  • Current job title and company
  • Full work experience history
  • Education history
  • Skills list
  • Languages
  • Follower count
  • Profile URL

Full Profile with Email

Everything in Full Profile, plus:

  • LinkedIn Contact Email β€” extracted directly from the Contact Info modal (only visible when logged in)
  • External Website URLs β€” collected from the Contact Info section
  • Emails from Websites β€” each linked website is crawled (homepage + contact/about pages) and emails are extracted from the HTML
  • Best Email β€” the highest-confidence email selected from all sources, scored by name match and domain relevance

Input

FieldTypeRequiredDescription
linkedInSessionCookiestringβœ…Your li_at cookie value from LinkedIn
scraperModeselectβœ…fullProfile or fullProfileWithEmail
searchQuerystringβœ…Keyword or name query (e.g. "Marketing Manager", "John Doe")
maxProfilesintegerMax profiles to collect. Default: 50
startPageintegerPage to start from. Default: 1
numberOfPagesintegerPages to scrape. Default: 5 (β‰ˆ 50 profiles)
websiteCrawlDepthintegerDepth to crawl external websites for emails (1–3). Default: 2
locationFilterarrayFilter by location (e.g. "United States", "Nairobi")
currentCompanyFilterarrayFilter by current employer name
pastCompanyFilterarrayFilter by past employer name
schoolFilterarrayFilter by educational institution
currentJobTitleFilterarrayFilter by current job title keywords
pastJobTitleFilterarrayFilter by past job titles
yearsOfExperienceFilterselectFilter by total years of experience
yearsAtCurrentCompanyFilterselectFilter by tenure at current company
seniorityFilterarrayFilter by seniority level (Entry, Senior, Director, CXO, etc.)
functionFilterarrayFilter by job function / department
firstNamesFilterarrayFilter by first name
lastNamesFilterarrayFilter by surname
profileLanguagesFilterarrayFilter by profile language
companyHeadcountFilterarrayFilter by company size
companyHQLocationsFilterarrayFilter by company HQ location
proxyConfigurationproxyProxy settings. Residential proxies strongly recommended

Output

Dataset β€” Scraped Profiles

Each item in the dataset contains:

{
"profileUrl": "https://www.linkedin.com/in/jane-doe/",
"fullName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"headline": "Head of Marketing at Acme Corp",
"location": "San Francisco, California",
"about": "Passionate marketer with 10+ years in B2B SaaS...",
"currentJobTitle": "Head of Marketing",
"currentCompany": "Acme Corp",
"experience": [
{ "title": "Head of Marketing", "company": "Acme Corp", "duration": "Jan 2021 – Present", "description": null },
{ "title": "Marketing Manager", "company": "Beta Inc", "duration": "2018 – 2020", "description": null }
],
"education": [
{ "school": "University of California, Berkeley", "degree": "B.A. Communications", "dates": "2012 – 2016" }
],
"skills": ["B2B Marketing", "Demand Generation", "HubSpot", "Content Strategy"],
"languages": [{ "language": "English", "proficiency": "Native or bilingual proficiency" }],
"connectionDegree": "2nd",
"followerCount": "500+",
"websiteUrls": ["https://janedoe.com"],
"contactEmail": "jane@janedoe.com",
"emailsFromWebsites": ["jane@janedoe.com", "hello@janedoe.com"],
"bestEmail": "jane@janedoe.com",
"scrapedAt": "2025-01-15T09:23:41.000Z"
}

Fields contactEmail, emailsFromWebsites, and bestEmail are only populated in Full Profile with Email mode.

Key-Value Store

KeyContents
snapshot-page-001Raw HTML of search results page 1
snapshot-page-002Raw HTML of search results page 2
profile-<username>Raw HTML of each visited profile page
run-metadataJSON summary of the run (query, filters, counts, timing)

Proxy recommendations

LinkedIn is one of the most aggressively protected websites to scrape. Residential proxies are strongly recommended and are set as the default. Datacenter proxies are almost always blocked within a few requests.

On the Apify platform, use the built-in RESIDENTIAL proxy group. When running locally, either disable proxy (useApifyProxy: false) for development testing, or configure a residential proxy provider.


Important notes

  • Terms of Service: LinkedIn's Terms of Service prohibit automated scraping. Use this actor only for lawful purposes and in compliance with applicable laws (GDPR, CCPA, etc.). Do not use scraped data for spam or unsolicited contact.
  • Rate limits: The actor runs with maxConcurrency: 1 and randomised delays between requests to mimic human behaviour. Aggressive settings will result in blocks.
  • Profile availability: Some profiles may be private, deleted, or restricted to 1st-degree connections. These will be partially populated or skipped.
  • Email coverage: Not all LinkedIn users list their email in Contact Info or link to external websites. Email extraction coverage varies by audience β€” professional communities and freelancers tend to have higher coverage than corporate employees.

Local development

# Install dependencies
npm install
# Set your cookie in storage/key_value_stores/default/INPUT.json
# Then run locally:
apify run
# Results appear in:
# storage/datasets/default/ ← scraped profiles
# storage/key_value_stores/default/ ← snapshots and metadata

See the implementation plan document for full local development and testing instructions.