LinkedIn Profile Scraper - People, Job Changes & B2B Leads avatar

LinkedIn Profile Scraper - People, Job Changes & B2B Leads

Pricing

$4.00 / 1,000 profile scrapeds

Go to Apify Store
LinkedIn Profile Scraper - People, Job Changes & B2B Leads

LinkedIn Profile Scraper - People, Job Changes & B2B Leads

Scrape public LinkedIn profiles into rich people records: name, headline, current company & title, location, full work experience, education, languages, follower & connection counts and a lead score. Feed profile URLs or search by keyword. Job-change monitor mode. No login, no cookies, no browser.

Pricing

$4.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

LinkedIn Profile Scraper — People, Job Changes & B2B Leads

Turn any list of public LinkedIn profiles into rich, structured people records — full name, headline, current company & title, location, complete work experience, education, languages, exact follower & connection counts, and a 0–100 lead score. Feed profile URLs (or usernames) straight from your CRM or Sales Navigator export, and optionally expand into related profiles ("People also viewed") to snowball a small seed list into hundreds of similar prospects. Then switch on monitor mode to get job-change alerts — the single strongest B2B buying signal there is.

No login, no cookies, no browser — fast, public-data extraction.

Why this LinkedIn profile scraper?

Most LinkedIn scrapers either need your account cookies (risky) or return a thin record with the headline and little else. This actor merges two sources on every public profile — the embedded JSON-LD and the rendered page — to ship the richest dataset in the category, and it never asks for your login.

DataTypical scrapersThis actor
Full name, headline, location
Current company, title & senioritypartial
Complete work experience (title, company, company URL, date range, duration)
Education (school, school URL, degree, years)
Exact follower count (not "12M")
Connection countpartial
Languages, awards, external links
Lead score (0–100) per profile
Job-change / title-change / headline-change detection✅ monitor mode
Related-profile discovery ("People also viewed")✅ snowball
Needs your LinkedIn cookies?often❌ never

Use cases

  • B2B lead generation & prospecting — enrich a list of profile URLs into a complete sales record: name, title, company, seniority, location and lead score. Prioritize decision-makers (seniorityLevel = Owner/C-Level or VP/Director).
  • Job-change alerts (buying signals) — run in monitor mode on a schedule and get a record the moment a prospect changes jobs, gets promoted, or updates their headline. New-in-role buyers are the warmest leads in B2B.
  • Recruiting & sourcing — build candidate shortlists with full experience and education history; track when passive candidates become open to work.
  • CRM enrichment — keep contact records fresh with current title, company and location.
  • Market & talent intelligence — map who works where, seniority distribution, and follower influence across a company or industry.
  • Influencer & creator research — rank profiles by exact follower count and recent activity.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the LinkedIn Profile Scraper, paste Profile URLs (or usernames) — optionally turn on Discover related profiles — and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"profileUrls": [
"https://www.linkedin.com/in/williamhgates",
"satyanadella"
],
"discoverRelated": false,
"maxRelatedPerProfile": 20,
"maxProfiles": 100,
"includeExperience": true,
"includeEducation": true,
"includeActivity": false,
"monitorMode": false
}
  • profileUrls — LinkedIn profile URLs (https://www.linkedin.com/in/<username>) or bare usernames. The primary, fastest, most reliable input.
  • startUrls — alternative request-list of profile URLs (handy when chaining from another actor).
  • discoverRelated (default false) — expand each seed profile into its "People also viewed" people (one level deep), bounded by maxRelatedPerProfile and maxProfiles. The reliable way to grow a seed list into similar prospects without supplying every URL.
  • maxProfiles (default 100) — cap the number of profiles; set 0 for no limit (explicit opt-in).
  • includeExperience / includeEducation (default true) — full experience & education lists (same page, no extra request).
  • includeActivity (default false) — recent public posts/activity when present.
  • monitorMode (default false) — emit a record only when a profile changed since the last run (new job / title / headline). See below.
  • maxConcurrency (default 8) — profiles fetched in parallel.
  • proxyConfiguration — keep the default (Apify residential, US); LinkedIn blocks datacenter IPs.

Output

One record per profile (type: "profile"):

{
"type": "profile",
"profileUrl": "https://www.linkedin.com/in/williamhgates",
"publicId": "williamhgates",
"fullName": "Bill Gates",
"firstName": "Bill",
"lastName": "Gates",
"headline": "Chair, Gates Foundation and Founder, Breakthrough Energy",
"currentTitle": "Co-chair",
"currentCompany": "Gates Foundation",
"currentCompanyUrl": "https://www.linkedin.com/company/gates-foundation",
"seniorityLevel": "Owner/C-Level",
"locationName": "Seattle, Washington, United States",
"city": "Seattle",
"country": "United States",
"about": "Chair of the Gates Foundation. Founder of Breakthrough Energy. Co-founder of Microsoft…",
"profilePhotoUrl": "https://media.licdn.com/dms/image/v2/…/profile-displayphoto.jpg",
"followerCount": 40467271,
"connectionCount": 500,
"connectionCountText": "500+",
"experience": [
{ "title": "Co-chair", "company": "Gates Foundation", "companyUrl": "https://www.linkedin.com/company/gates-foundation", "dateRange": "2000 - Present", "durationText": "26 years", "startDate": 2000, "isCurrent": true },
{ "title": "Co-founder", "company": "Microsoft", "dateRange": "1975 - Present", "startDate": 1975, "isCurrent": true }
],
"experienceCount": 3,
"education": [
{ "school": "Harvard University", "schoolUrl": "https://www.linkedin.com/school/harvard-university", "dateRange": "1973 - 1975", "startYear": 1973, "endYear": 1975 }
],
"educationCount": 2,
"languages": ["English"],
"jobTitles": ["Co-chair", "Founder", "Co-founder"],
"isInfluencer": true,
"leadScore": 92,
"source": "url",
"scrapedAt": "2026-06-26T12:00:00.000Z"
}

Job-change monitoring (the killer feature)

Turn on monitorMode and combine it with an Apify Schedule (e.g. weekly). On the first run every profile is emitted as first_seen. On later runs the actor compares each profile to its stored snapshot and emits a record only when something changed:

{
"fullName": "Jane Doe",
"changeType": "new_job",
"currentTitle": "VP of Marketing",
"currentCompany": "Acme Corp",
"previousTitle": "Director of Marketing",
"previousCompany": "Globex",
"changedFields": ["company", "title"],
"lastChangedAt": "2026-06-26T12:00:00.000Z",
"profileUrl": "https://www.linkedin.com/in/janedoe"
}

Monitor mode is orthogonal to Apify Schedules — the Schedule decides when the actor runs; monitor mode decides what it emits. Wire a webhook or Zapier zap to push job-change alerts straight into your CRM or Slack. State is kept in a named key-value store (monitorStoreName).

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/linkedin-profile-scraper').call({
profileUrls: [
'https://www.linkedin.com/in/williamhgates',
'satyanadella',
],
maxProfiles: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} LinkedIn profiles`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new profiles or job-change alerts straight into your CRM.
  • Slack — get notified when a monitored prospect changes jobs.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "enrich these LinkedIn URLs into a lead list and flag anyone who changed jobs this month" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete B2B lead-gen & sales-intelligence stack:

Tips

  • Profile URLs are the most reliable input. Turn on Discover related profiles to snowball from a handful of seeds into many similar prospects.
  • Keep the residential proxy. LinkedIn blocks datacenter IPs; the actor rotates a fresh residential IP per request and retries transient rate-limits automatically.
  • For job-change monitoring, reuse the same monitorStoreName across scheduled runs so snapshots persist.
  • Cost control — each profile is one request; lower maxConcurrency for steadier runs on very large lists.

FAQ

Do I need my LinkedIn account or cookies? No. This actor reads public profile pages only — no login, no cookies, no browser.

Which fields can it get? Name, headline, current company/title, seniority, location, about, profile photo, exact follower count, connection count, full work experience (with company URLs and dates), education, languages, awards, external links, and recent activity (opt-in) — plus a lead score.

Why is a field sometimes empty? Profiles are member-filled. Sections like About, Languages, Awards or external links are null only when the member didn't add them (or LinkedIn doesn't expose them to logged-out visitors), never because the scraper skipped them. Skills and certifications are not shown on logged-out public profiles.

Can I discover profiles without supplying every URL? Yes — turn on discoverRelated and the actor expands each seed profile into the people LinkedIn lists under "People also viewed" (one level deep, bounded by your caps). Start with a few good seeds and let it snowball into similar prospects.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

Is scraping LinkedIn legal? This actor collects only publicly available data. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and LinkedIn's terms. Scraping of public profile data has been upheld in the U.S. (hiQ v. LinkedIn), but rules vary by jurisdiction and use case — get advice for your situation.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.