LinkedIn Company Employees Scraper
Pricing
Pay per event
LinkedIn Company Employees Scraper
Extract employee profiles from any LinkedIn company — name, title, location, and profile URL. Cookie-free mode uses Google SERP discovery; authenticated mode (li_at cookie) returns full paginated employee lists.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
10
Total users
5
Monthly active users
3 days ago
Last modified
Categories
Share
Extract employee profiles from any LinkedIn company page — name, job title, headline, location, and profile URL. Works without a LinkedIn account via Google SERP discovery, or with your li_at session cookie for a complete paginated employee list.
🔍 What does it do?
LinkedIn Company Employees Scraper finds people who work (or have worked) at any LinkedIn company. It supports two modes:
- 🔐 Authenticated mode (li_at cookie): Accesses LinkedIn's Voyager API with your session cookie to return a complete, paginated list of current employees — hundreds or thousands of people, fully paginated.
- 🌐 Cookie-free mode (no login required): Uses Google SERP discovery to find LinkedIn profiles matching the company, typically returning 50–100 employees per company without any login.
Give it a list of company URLs or slugs — https://www.linkedin.com/company/google/ or just google — and get back a structured dataset of employee profiles ready for CRM import, sales outreach, or competitive research.
👤 Who is it for?
Sales Development Representatives
Build targeted prospect lists from any competitor or partner company without manual LinkedIn browsing. Scrape 50+ contacts in the time it takes to find ten manually.
Recruiters and Talent Sourcers
Identify candidates at target companies. Input the company, set a reasonable limit, and get a shortlist of profiles to review — without LinkedIn Recruiter licenses.
Market Researchers and Analysts
Profile the workforce of companies you're analyzing. Understand headcount by role, identify key decision-makers, and track leadership changes over time.
Competitive Intelligence Teams
Monitor the teams behind competitors — who's hiring, who's leaving, which departments are growing. Track leadership changes by running the scraper periodically.
Lead Generation Agencies
Build account-based marketing contact lists at scale. Run multiple companies in a single job and export to CSV, Google Sheets, or your CRM.
💡 Why use this scraper?
- ✅ No LinkedIn account required — cookie-free mode uses public data via Google
- ✅ Complete employee lists with your cookie — hundreds of results via LinkedIn Voyager API
- ✅ Works on any company — Fortune 500, startups, agencies, non-profits
- ✅ Clean structured output — name, title, LinkedIn URL, location ready for CRM import
- ✅ Batch mode — scrape multiple companies in one run
- ✅ Residential proxy included — handles LinkedIn's aggressive anti-bot without extra setup
- ✅ Pay only per result — PPE pricing means you're charged per employee extracted, not per run
📊 Output data
Each extracted employee record contains:
| Field | Type | Description |
|---|---|---|
name | string | Employee full name |
headline | string | LinkedIn headline (title and company) |
location | string | Geographic region |
profileUrl | string | Full LinkedIn profile URL |
companyUrl | string | Source company page URL |
companyName | string | Company display name |
companySlug | string | LinkedIn company slug |
source | string | voyager (cookie) or serp (Google discovery) |
scrapedAt | string | ISO timestamp |
💰 How much does it cost to scrape LinkedIn company employees?
This actor uses pay-per-event (PPE) pricing — you pay per employee profile extracted, not per run. There is a small start fee per run.
| Plan | Start fee | Per employee |
|---|---|---|
| Free | $0.005 | $0.005 |
| Bronze | $0.005 | $0.005 |
| Silver | $0.005 | ~$0.004 |
| Gold | $0.005 | ~$0.003 |
| Platinum | $0.005 | ~$0.002 |
| Diamond | $0.005 | ~$0.0014 |
Estimate your costs:
- 50 employees (1 company): ~$0.255
- 200 employees (4 companies): ~$1.005
- 1,000 employees: ~$5.005
The free plan includes $5 of free usage each month. A scrape of 50 employees costs about $0.25, so you can run roughly 20 such jobs on the free tier before paying.
🚀 How to scrape LinkedIn company employees
Quick start (no cookie needed)
- Open the actor at apify.com/automation-lab/linkedin-company-employees-scraper
- In Company URLs or Slugs, enter any company URL or slug:
- Full URL:
https://www.linkedin.com/company/google/ - Slug only:
google
- Full URL:
- Set Max Employees per Company (default 50, max 500)
- Click Start — results appear in seconds
With li_at cookie for complete lists
- Log into LinkedIn in your browser
- Open DevTools (F12 or Cmd+Opt+I on Mac)
- Go to Application → Cookies →
https://www.linkedin.com - Copy the value of
li_at - Paste it into the li_at Cookie field
- Run — now gets fully paginated results including all current employees
Via API
curl -X POST https://api.apify.com/v2/acts/automation-lab~linkedin-company-employees-scraper/runs \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"companyUrls": ["https://www.linkedin.com/company/stripe/"],"maxEmployees": 100}'
⚙️ Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
companyUrls | array | required | LinkedIn company page URLs or slugs |
maxEmployees | integer | 50 | Max profiles to extract per company (1–500) |
liAtCookie | string | optional | Your LinkedIn li_at session cookie for authenticated access |
Tips for companyUrls:
- Both formats work:
https://www.linkedin.com/company/netflix/ornetflix - Add multiple companies to scrape them all in a single run
- Company slug is the part after
/company/in the URL
📤 Output example
{"profileUrl": "https://www.linkedin.com/in/jeffreyliu","name": "Jeffrey Liu","headline": "Engineering Manager at Stripe","location": "San Francisco Bay Area","companyUrl": "https://www.linkedin.com/company/stripe/","companySlug": "stripe","companyName": "Stripe","source": "voyager","scrapedAt": "2026-05-01T10:00:00.000Z"}
🔐 Two scraping modes explained
Cookie-free mode (default)
When no li_at cookie is provided, the scraper uses Google SERP discovery:
- Fetches the company's LinkedIn page to identify the company name
- Searches Google for
site:linkedin.com/in "company-name"to discover employee profiles - Parses names and headlines from Google result titles
- Returns 50–100 employees per company
Pros: No LinkedIn account needed, no risk of account action, works on any plan.
Cons: Limited to ~100 results per company, includes current and former employees, no location data.
Authenticated mode (with li_at cookie)
When a valid li_at cookie is provided, the scraper uses LinkedIn's Voyager API:
- Fetches the company page with your session to get the internal company ID
- Calls LinkedIn's internal people search API, filtered to current employees
- Paginates through all results
Pros: Gets all current employees (hundreds or thousands), includes location, high accuracy.
Cons: Requires your LinkedIn session cookie, rate limits apply, use responsibly.
💡 Tips and best practices
- Start with a small limit — set
maxEmployees: 20for your first run to verify the company slug and check result quality before running at full scale - Use your li_at cookie for accurate results — Google SERP results include former employees; Voyager API returns only current employees
- Your cookie expires periodically — if you get "authentication failed" errors, re-copy your
li_atfrom your browser - Multiple companies in one run — scraping 10 companies with
maxEmployees: 50each is more cost-efficient than 10 separate runs (only one start fee) - Export to CSV — use Apify's built-in export to download results as CSV for CRM import
- Company slug vs URL — both work; the slug is just the readable identifier in the URL path
🔗 Integrations
CRM enrichment (Salesforce, HubSpot)
Scrape target account employees → export CSV → import to CRM. Map name to Contact Name, headline to Job Title, profileUrl to LinkedIn URL. Run weekly to catch new hires.
Google Sheets via Zapier
Connect with Zapier: trigger on "Apify run finished" → action "Add row to Google Sheet" → map fields. Result: every run automatically populates a shared prospecting sheet.
Webhook to Slack
Set an Apify webhook on run completion to POST results to a Slack channel. Your sales team gets notified the moment a new employee list is ready.
Scheduled competitive monitoring
Use Apify's scheduled runs to scrape your top 5 competitors monthly. Export to BigQuery or Snowflake to track workforce trends over time.
Clay / Apollo enrichment pipeline
Export profileUrl as a column → import into Clay or Apollo for email finding and enrichment. Combine with the LinkedIn Profile Scraper for full work history.
🛠️ API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/linkedin-company-employees-scraper').call({companyUrls: ['https://www.linkedin.com/company/anthropic/'],maxEmployees: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/linkedin-company-employees-scraper').call(run_input={'companyUrls': ['https://www.linkedin.com/company/anthropic/'],'maxEmployees': 100,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['name'], item['headline'])
cURL
# Start a runcurl -X POST "https://api.apify.com/v2/acts/automation-lab~linkedin-company-employees-scraper/runs" \-H "Authorization: Bearer YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"companyUrls":["https://www.linkedin.com/company/openai/"],"maxEmployees":50}'# Get results (replace with your dataset ID from the run response)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \-H "Authorization: Bearer YOUR_TOKEN"
🤖 Use with AI (MCP / Claude)
This actor is available as an MCP tool for use with Claude and other AI assistants.
Claude Code (terminal)
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/linkedin-company-employees-scraper"
Claude Desktop / Cursor / VS Code
Add to your MCP config file (~/.claude/claude_desktop_config.json or equivalent):
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/linkedin-company-employees-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Example prompts
Once connected, ask Claude:
- "Find me 50 employees at Stripe and save them to a CSV"
- "Scrape the employees of stripe and anthropic, give me a table with name and headline"
- "Who works at OpenAI? Scrape their employees and filter for engineering roles"
- "Get the LinkedIn profiles of Notion employees for sales outreach"
⚖️ Legality and terms of service
This actor scrapes publicly available LinkedIn data in cookie-free mode, using data that Google indexes from LinkedIn's public pages. In authenticated mode, it uses your own session to access data you have personal access to.
Cookie-free mode: Data returned is the same data visible to anyone searching Google. LinkedIn profiles indexed by Google are public by default (users control this via privacy settings).
Authenticated mode: You use your own account credentials. You are responsible for complying with LinkedIn's Terms of Service regarding automated access.
Scraping publicly available data is generally considered lawful in most jurisdictions following the hiQ Labs v. LinkedIn (9th Circuit) ruling. This actor does not bypass authentication barriers or scrape private data.
Use this data responsibly. Do not use scraped employee data for spam, unsolicited mass messaging, or harassment. Always comply with applicable data protection laws (GDPR, CCPA) when storing and processing personal data.
❓ FAQ
Do I need a LinkedIn account?
No. The cookie-free mode works without any LinkedIn account using public search data from Google. For complete paginated employee lists, provide your li_at session cookie.
How many employees can I scrape?
- Without cookie: ~100 per company (limited by Google SERP results)
- With li_at cookie: Up to
maxEmployees(max 500 per run, no Google limit)
Why does Google SERP mode return fewer results than the company headcount?
Google's search index only surfaces a subset of LinkedIn profiles — typically the most active/visited ones. For a company with 10,000 employees, you'll get 50–100 via SERP. For complete lists, use authenticated mode.
The actor returns 0 results — what should I check?
- Verify the company slug is correct — check the URL at
linkedin.com/company/SLUG - If using cookie mode, your
li_atmay have expired — log in to LinkedIn and copy a fresh cookie - Some small companies have very few public profiles on Google — try increasing
maxEmployeesor switching to cookie mode - If SERP mode returns "Google search failed", the proxy may be rate-limited — wait a few minutes and retry
Can I scrape employees of multiple companies in one run?
Yes. Add multiple URLs or slugs to the companyUrls list. All companies are scraped in the same run.
Is the li_at cookie safe to share with this actor?
Your li_at cookie is treated as a secret and never logged. However, your cookie gives access to your LinkedIn account — only use it on Apify's platform and rotate it if you have concerns. Apify runs in an isolated environment and your data is not stored beyond the run.
How fresh is the data?
Authenticated mode returns real-time data from LinkedIn's Voyager API. SERP mode returns data as indexed by Google, which may lag by days to weeks for newer profiles.
🔗 Related scrapers
- LinkedIn Profile Scraper — Scrape full profile data (education, experience, skills, follower count) from LinkedIn profile pages
- LinkedIn Company Scraper — Extract company metadata: description, headcount, industries, website, specialties
- LinkedIn Jobs Scraper — Scrape job listings with filters for location, keyword, experience level
- LinkedIn Company Posts Scraper — Scrape posts from company pages including likes, comments, and content