LinkedIn Profile Scraper
Pricing
Pay per usage
LinkedIn Profile Scraper
👔 Extract rich LinkedIn profile data at scale — names, headlines, locations, about sections, work experience, education, skills, and connection counts. Uses Playwright with proxy rotation to reliably scrape public profiles. Perfect for lead generation, talent sourcing, and professional net
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Luan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Extract structured profile data from LinkedIn at scale.
Collect names, headlines, locations, about sections, work experience, education, skills, and more — all through a reliable, proxy-backed Playwright crawler built on Apify.
✨ Features
- Full profile extraction — name, headline, location, about section, profile picture URL
- Work experience — titles, companies, duration, descriptions
- Education — schools, degrees, years attended
- Skills — complete list of profile skills
- Connection count — approximate follower/connection numbers
- Proxy-powered — uses Apify residential proxies to avoid blocks and rate limits
- Configurable concurrency — tune speed vs. reliability
- Headless by default — runs in headless Chromium for production, switch to headful for debugging
- Error resilient — failed profiles are logged with HTML snapshots for later review
- Clean JSON output — every profile is saved as a structured dataset row
🚀 Quick Start
Run on Apify Cloud
- Go to oneary/linkedin-profile-scraper
- Click Try or Run
- Paste LinkedIn profile URLs (one per line)
- Hit Start
Run Locally with Apify CLI
# Clone and installgit clone https://github.com/oneary/linkedin-profile-scraper.gitcd linkedin-profile-scrapernpm install# Run locallyapify run -p
📥 Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | [] | LinkedIn profile URLs to scrape (e.g. https://www.linkedin.com/in/username/) |
maxProfiles | integer | 10 | Maximum number of profiles to scrape (0 = no limit) |
proxyConfiguration | object | Apify proxy (RESIDENTIAL) | Proxy settings for reliable scraping |
maxConcurrency | integer | 5 | Simultaneous browser pages |
useHeadful | boolean | false | Run browser in visible mode (debug only) |
waitForTimeoutSecs | integer | 30 | Max seconds to wait for page load |
Example input:
{"startUrls": [{ "url": "https://www.linkedin.com/in/satyanadella/" },{ "url": "https://www.linkedin.com/in/sundarpichai/" }],"maxProfiles": 25,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"maxConcurrency": 3}
📤 Output
Each scraped profile produces a JSON object like this:
{"name": "Satya Nadella","headline": "Chairman and CEO at Microsoft","location": "Redmond, Washington, United States","about": "Satya Nadella is the Chairman and Chief Executive Officer of Microsoft...","profilePicture": "https://media.licdn.com/dms/image/...","experience": [{"title": "Chairman and CEO","company": "Microsoft","duration": "Feb 2014 - Present","description": "Responsible for the overall strategy..."}],"education": [{"school": "University of Chicago Booth School of Business","degree": "MBA","years": "1997 - 1999"}],"skills": ["Leadership", "Cloud Computing", "AI", "Strategy", "M&A"],"connections": 500,"url": "https://www.linkedin.com/in/satyanadella/","scrapedAt": "2026-05-30T12:00:00.000Z"}
Results are stored in the Apify dataset and can be exported as JSON, CSV, XML, or Excel.
🛡️ Proxy & Anti-Blocking
This actor uses Apify Residential Proxies by default — the gold standard for LinkedIn scraping. Key strategies:
- Random user-agent rotation per request
- Realistic viewport dimensions
networkidlewait condition ensures full page render- Configurable concurrency to stay under rate limits
- HTML snapshots saved on failure for forensics
Tip: For best results, use residential proxies from the same region as your target profiles.
📦 Dependencies
- Crawlee — web scraping framework by Apify
- Playwright — browser automation
- Apify SDK — Apify platform integration
🧪 Development
# Install dependenciesnpm install# Run with local inputapify run -p# Debug with headful browserapify run -p --input-variable useHeadful=true# Run testsnpm test
🔒 Disclaimer
This actor scrapes public LinkedIn profile data, visible to anyone without logging in. Always comply with LinkedIn's User Agreement and respect robots.txt directives. The authors are not responsible for misuse.
📄 License
Apache 2.0 — see ./LICENSE for details.
Built with ❤️ by oneary on Apify