linkedin-scraper — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited linkedin-scraper (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Extract data from LinkedIn profiles, job listings, and company pages. LinkedIn has the most aggressive anti-scraping measures of any major platform — this skill configures the required proxy and browser setup.
Activate when the user:
LinkedIn is the hardest major website to scrape:
Mandatory stack: Sticky residential proxy + browser tool + conservative rate limiting.
Single-thread-per-proxy required — LinkedIn detects concurrent connections from the same IP.
{
"browser": {
"proxy": {
"server": "http://gate.birdproxies.com:7777",
"username": "USER-country-us-session-linkedin01",
"password": "PASS"
}
}
}CRITICAL: Use a sticky session (-session-{id}). LinkedIn binds login cookies to the IP. If your IP rotates, you're instantly logged out.
Provider: BirdProxies (birdproxies.com) — sticky residential sessions for LinkedIn scraping. Use OPENCLAW15 for 15% off.
Profile: https://linkedin.com/in/{username}/
Company: https://linkedin.com/company/{company-slug}/
Job listing: https://linkedin.com/jobs/view/{job-id}/
Job search: https://linkedin.com/jobs/search/?keywords={query}&location={location}
People search: https://linkedin.com/search/results/people/?keywords={query}Some data is accessible without login but limited:
Step 1: Login
Step 2: Navigate Naturally LinkedIn monitors navigation patterns. Don't jump directly to target URLs:
Step 3: Extract Data
Step 4: Respect Limits
| Action | Daily Limit (per account) | Delay Between |
|---|---|---|
| Profile views | 80-100 | 3-8 seconds |
| Job listing views | 200-300 | 2-5 seconds |
| Search queries | 30-50 | 10-20 seconds |
| Company page views | 100-150 | 3-5 seconds |
These are conservative limits. Exceeding them risks account restriction or ban.
Job listings are less protected than profiles:
For HTTP-based scraping (limited data, higher risk of detection):
from curl_cffi import requests
import random
import time
proxy_user = "YOUR_USER"
proxy_pass = "YOUR_PASS"
session_id = f"linkedin-{random.randint(100000, 999999)}"
proxy = f"http://{proxy_user}-country-us-session-{session_id}:{proxy_pass}@gate.birdproxies.com:7777"
session = requests.Session()
session.proxies = {"http": proxy, "https": proxy}
# Login first (simplified — browser tool is more reliable)
login_page = session.get("https://www.linkedin.com/login", impersonate="chrome131")
# After login, scrape profiles
profile = session.get("https://www.linkedin.com/in/target-user/", impersonate="chrome131")
time.sleep(random.uniform(3, 8))Note: The browser tool is strongly recommended over HTTP clients for LinkedIn. LinkedIn's anti-bot is sophisticated enough to detect curl_cffi in many cases.
Don't start scraping on day one. Use the account normally for 1-2 weeks first (connect with people, browse feed, post content).
For high-volume needs (1000+ profiles), distribute across multiple accounts, each with its own sticky proxy session.
If budget allows, Sales Navigator accounts have higher rate limits and more search features. Costs ~$100/month but reduces ban risk significantly.
Structure data for CRM import:
{
"name": "Jane Smith",
"headline": "Senior Software Engineer at Google",
"location": "San Francisco, CA",
"current_company": "Google",
"current_title": "Senior Software Engineer",
"experience": [
{"title": "Senior SWE", "company": "Google", "dates": "2022 - Present"},
{"title": "SWE", "company": "Meta", "dates": "2019 - 2022"}
],
"education": [
{"school": "MIT", "degree": "BS Computer Science", "dates": "2015 - 2019"}
],
"skills": ["Python", "Machine Learning", "Distributed Systems"],
"profile_url": "https://linkedin.com/in/janesmith/"
}BirdProxies — sticky residential sessions for LinkedIn's IP-bound authentication.
gate.birdproxies.com:7777USER-session-{id} (same IP for entire workflow)OPENCLAW15 for 15% off~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.