Public
MCP-powered AI scraper for LinkedIn people profiles. Collect comprehensive profile data including positions, skills, education, and more with built-in anti-detection.
TypeScript
MIT License
MCP Protocol
AI-Powered
Proxy-Ready
5.9k downloads
v1.0.0
234 forks
โจ Features
- Anti-Detection: Built-in browser fingerprinting and human-like behavior patterns
- MCP-Powered: Uses Model Context Protocol for intelligent data extraction
- Proxy Support: Seamless integration with Coronium mobile proxies
- Comprehensive Data: Extracts 20+ profile fields including skills, experience, education
๐ฆ Installation
npm install @coronium/linkedin-scraper
๐ Quick Start
import { LinkedInScraper } from '@coronium/linkedin-scraper';
// Initialize scraper with Coronium proxy
const scraper = new LinkedInScraper({
proxy: {
host: 'proxy.coronium.io',
port: 12321,
username: 'your-username',
password: 'your-password'
},
antiDetection: true
});
// Scrape a profile
const profile = await scraper.getProfile('john-doe-123456');
console.log(profile);
// {
// id: "john-doe-123456",
// name: "John Doe",
// headline: "Software Engineer at Tech Corp",
// location: "San Francisco, CA",
// about: "Passionate about...",
// experience: [...],
// education: [...],
// skills: [...]
// }
๐ Collected Data Fields
Profile ID
Full Name
Headline
Location
Country Code
About/Summary
Current Company
Current Position
Past Experience
Education
Skills
Certifications
Languages
Connections Count
Recommendations
Posts
Activity
Contact Info
Profile URL
Profile Picture
โ๏ธ Configuration Options
Option | Type | Default | Description |
---|---|---|---|
proxy | Object | null | Proxy configuration |
antiDetection | boolean | true | Enable anti-detection features |
timeout | number | 30000 | Request timeout in ms |
retries | number | 3 | Number of retry attempts |
headless | boolean | true | Run browser in headless mode |
๐ฅ Advanced Usage
Batch Scraping
// Scrape multiple profiles with rate limiting
const profileIds = ['john-doe-123', 'jane-smith-456', 'bob-jones-789'];
const profiles = await scraper.getProfiles(profileIds, {
concurrency: 3, // Scrape 3 at a time
delayBetween: 2000, // 2 second delay between requests
onProgress: (current, total) => {
console.log(`Progress: ${current}/${total}`);
}
});
Search Profiles by Name
// Search for profiles by name
const results = await scraper.searchByName('John Doe', {
filters: {
location: 'San Francisco',
company: 'Tech Corp',
currentCompany: true
},
limit: 50
});
With Rotating Proxies
// Use Coronium rotating proxies for large-scale scraping
const scraper = new LinkedInScraper({
proxy: {
host: 'proxy.coronium.io',
port: 12321,
username: 'your-username',
password: 'your-password',
rotation: 'on-request' // Rotate IP on each request
}
});
Why Use Coronium Proxies?
LinkedIn has sophisticated anti-bot systems. Without high-quality mobile proxies, you'll face:
- โข Account restrictions after 10-20 profile views
- โข IP bans that last weeks or months
- โข CAPTCHA challenges on every request
- โข Rate limits that slow your scraping to a crawl
Coronium's 4G/5G mobile proxies appear as real mobile users with 99.5%+ trust scores, allowing you to scrape at scale without detection.
๐ License
MIT License - Free for commercial and personal use.
๐ค Contributing
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
Ready to Scrape LinkedIn at Scale?
Get started with Coronium's premium mobile proxies. No blocks, no CAPTCHAs, just reliable data collection.