LinkedIn Profile Scraper - People, Job Changes & B2B Leads
Pricing
$4.00 / 1,000 profile scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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.
| Data | Typical scrapers | This actor |
|---|---|---|
| Full name, headline, location | ✅ | ✅ |
| Current company, title & seniority | partial | ✅ |
| Complete work experience (title, company, company URL, date range, duration) | ❌ | ✅ |
| Education (school, school URL, degree, years) | ❌ | ✅ |
| Exact follower count (not "12M") | ❌ | ✅ |
| Connection count | partial | ✅ |
| 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
- Sign up for Apify — the free plan is enough to try this actor.
- Open the LinkedIn Profile Scraper, paste Profile URLs (or usernames) — optionally turn on Discover related profiles — and click Start.
- Watch results stream into the dataset table.
- 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
0for 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:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run hourly/daily/weekly to refresh records or watch a set of prospects for job changes.
- Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
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:
- LinkedIn Company Scraper — firmographics & company B2B leads (size, industry, HQ, website).
- LinkedIn Jobs Scraper — job postings as hiring-intent signals.
- LinkedIn Ad Library Scraper — competitor B2B ads & creatives.
- Website Contact Scraper — emails, phones & socials from any domain (enrich your profile leads with contact details).
- Google Maps Scraper — local business leads, emails & contacts.
- Salesforce AppExchange Scraper — ISV vendor & publisher leads.
- IndiaMART Scraper — B2B supplier & product leads.
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
monitorStoreNameacross scheduled runs so snapshots persist. - Cost control — each profile is one request; lower
maxConcurrencyfor 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.