LinkedIn Company Employees Scraper With Growth Tracker
Pricing
Pay per usage
LinkedIn Company Employees Scraper With Growth Tracker
LinkedIn Company Employees Scraper extracts employee lists from LinkedIn company pages, including names, roles, locations, experience, and profile URLs. Ideal for recruiting, lead generation, market research, and automating structured employee data collection at scale
Pricing
Pay per usage
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
86
Total users
10
Monthly active users
7 days ago
Last modified
Categories
Share
LinkedIn Company Scraper — Employees, Headcount and Department Mix
LinkedIn Company Employees Scraper With Growth Tracker scrapes a company's public employee roster and logs a headcount snapshot — total employees scraped plus a rule-based department breakdown — stamped with scrapedAt on every run. Schedule it to run repeatedly on Apify (daily, weekly, monthly) and your dataset accumulates one snapshot per run, so you build your own headcount-over-time growth series. No LinkedIn login is required. It's built for B2B sales teams tracking account headcount, market researchers studying hiring trends, and anyone monitoring a company's team composition over time.
What is LinkedIn Company Employees Scraper With Growth Tracker?
LinkedIn Company Employees Scraper With Growth Tracker is an Apify Actor that scrapes a company's public employee list and produces both individual employee rows and one company-level headcount snapshot row per run — entirely logged-out, no LinkedIn account needed. Key capabilities:
- Track one or many companies per run, by LinkedIn company URL or a plain company name for discovery
- Get full public employee profile data — name, headline, location, current company, follower count, contact links
- Get a rule-based department classification per employee (Engineering/Sales/Marketing/Product/Design/Finance/HR/Operations/Legal/Customer Success/IT/Data & Analytics/Executive/Consulting/Unclassified), derived from public headline text
- Get one company-level snapshot row per run with total scraped headcount and a department-breakdown roll-up
- Tag each run with an optional free-text
snapshotLabelfor identifying specific snapshots later - Automatic detection of LinkedIn's permanent HTTP 999 block, skipping wasted retries
What data can I extract with LinkedIn Company Employees Scraper With Growth Tracker?
| Field | Example Value | Use Case |
|---|---|---|
fullname / first_name / last_name | "Jane Doe" / "Jane" / "Doe" | Identify the employee |
headline / departmentGuess | "Senior Software Engineer at Google" / "Engineering" | See the employee's role and inferred department |
current_company / location | "Google" / {"city": "Mountain View", ...} | Confirm employer and location |
profile_url / public_identifier | LinkedIn profile URL / "janedoe" | Direct link and stable handle |
follower_count / is_influencer / is_creator | 1200 / false / false | Gauge the employee's own LinkedIn presence |
recommendations_received / personal_website | 12 / "https://janedoe.dev" | Additional profile-quality signals |
type / isSnapshot | "companyHeadcountSnapshot" / true | Distinguish the company snapshot row from employee rows |
totalEmployeesScraped / totalEmployeesAttempted / employeesWithErrors | 10 / 10 / 0 | This run's real scrape yield (snapshot row only) |
departmentBreakdown / departmentBreakdownPercent | {"Engineering": 4, "Sales": 2, ...} / {"Engineering": 40.0, ...} | This run's department headcount mix (snapshot row only) |
snapshotLabel / trackingNote | "Q3-week1" / (explanatory text) | Identify and understand this specific snapshot |
One honest snapshot per run — you build the growth series
This is the most important thing to understand about "Growth Tracker" in the name: the Actor does not compute growth, trend, or historical comparison within a single run. Each run produces exactly one snapshot — the real headcount and department mix scraped in that run, stamped with scrapedAt. trackingNote on every snapshot row states this explicitly. To get an actual growth-over-time series, schedule this Actor to run repeatedly (e.g. weekly) against the same companyTargets entry, then compare totalEmployeesScraped/scrapedAt across your own accumulated snapshot rows yourself. No historical data is fabricated or inferred — only what's genuinely scraped in each run.
Rule-based department classification
departmentGuess and the snapshot's departmentBreakdown/departmentBreakdownPercent are computed by keyword-matching each employee's real public headline text against a fixed set of department categories — this is a text heuristic, not a query against LinkedIn's own internal org-chart data (which isn't publicly exposed). An employee with an ambiguous or unusual headline may be classified Unclassified or into an imperfect bucket; keep employeesPerSnapshot consistent across scheduled runs so department-mix comparisons stay apples-to-apples.
Why not build this yourself?
LinkedIn's official API (Marketing Developer Platform / Talent Solutions) is partner-gated and doesn't expose arbitrary employee-roster scraping to general developers, and public employee-list pages trigger LinkedIn's aggressive HTTP 999 anti-bot response on direct/naive requests. Building an equivalent tool yourself means handling that block behavior (this Actor detects HTTP 999 specifically and skips wasted retries rather than hammering a permanently blocked request), plus building the department-classification heuristic from scratch. All of that is already implemented in this Actor's source.
How to use data extracted from LinkedIn?
B2B sales and account monitoring
Schedule a weekly run against your target accounts' companyTargets and compare totalEmployeesScraped across accumulated snapshots to spot accounts that are actively growing — a signal worth flagging for expansion outreach.
Market research and hiring-trend analysis
Track departmentBreakdownPercent across a set of companies in the same industry over repeated scheduled runs to see whether the sector is skewing toward more engineering hires or more sales/go-to-market hires over time.
Individual employee-data enrichment
Use the individual employee rows (fullname, headline, profile_url, current_company) to build a contact list of a target company's team, filtered by departmentGuess to focus on a specific function.
AI agents and automated pipelines
An agent can call this Actor on a schedule to feed a company-monitoring dashboard, using totalEmployeesScraped and departmentBreakdown as structured inputs for a headcount-trend visualization the agent builds itself.
🔼 Input sample
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
companyTargets | No (min 1 item) | array | Company URLs or plain names to track | ["https://www.linkedin.com/company/google"] |
employeesPerSnapshot | No | integer (1-10,000) | Employees scraped per company for this snapshot | 10 (default) |
includeDepartmentBreakdown | No | boolean | Include the rule-based department breakdown | true (default) |
snapshotLabel | No | string | Free-text tag stamped onto this run's snapshot row | "Q3-week1" |
proxyConfiguration | No | object | Proxy config; residential recommended for fewer blocks | {"useApifyProxy": true} |
{"companyTargets": ["https://www.linkedin.com/company/google"],"employeesPerSnapshot": 50,"includeDepartmentBreakdown": true,"snapshotLabel": "Q3-week1"}
Common pitfall: to build a real growth series, keep employeesPerSnapshot identical across every scheduled run for the same company — changing the sample size between runs makes totalEmployeesScraped comparisons across snapshots misleading.
🔽 Output sample
Output is typed, normalized JSON with two row types: individual employee rows and one company-level snapshot row per company per run (exportable as JSON, CSV, or Excel).
{"type": "companyHeadcountSnapshot","isSnapshot": true,"company_url": "https://www.linkedin.com/company/google","companyName": "Google","targetInput": "https://www.linkedin.com/company/google","scrapedAt": "2026-07-26T14:02:11Z","snapshotLabel": "Q3-week1","totalEmployeesScraped": 10,"totalEmployeesAttempted": 10,"employeesWithErrors": 0,"departmentBreakdown": {"Engineering": 4, "Sales": 2, "Marketing": 1, "Unclassified": 3},"departmentBreakdownPercent": {"Engineering": 40.0, "Sales": 20.0, "Marketing": 10.0, "Unclassified": 30.0},"trackingNote": "This is a single-run snapshot with scrapedAt. Schedule this Actor to run repeatedly (e.g. daily/weekly) on Apify and your dataset will accumulate one snapshot per run — build your own headcount-over-time growth series by comparing scrapedAt/totalEmployeesScraped across runs. No historical comparison or fabricated data is produced within a single run."}
All 33 fields shown across the snapshot and employee row types are the Actor's real dataset columns.
How do you filter and target specific companies?
companyTargets accepts either an exact LinkedIn company URL or a plain company name/keyword for discovery — the latter is the closest thing to a free-text query here. includeDepartmentBreakdown is the on/off switch for the department-analytics layer. There's no numeric quality threshold since this is a direct company-tracking tool rather than a filtered directory search; the real control is employeesPerSnapshot, which sets both the sample size the snapshot is computed from and the volume of individual employee rows returned — keep it consistent across scheduled runs for comparable snapshots over time.
{ "companyTargets": ["https://www.linkedin.com/company/openai"], "employeesPerSnapshot": 100, "snapshotLabel": "monthly-check" }
{ "companyTargets": ["stripe", "https://www.linkedin.com/company/notion"], "includeDepartmentBreakdown": true }
{ "companyTargets": ["https://www.linkedin.com/company/google"], "employeesPerSnapshot": 10, "includeDepartmentBreakdown": false }
▶️ Want to try other LinkedIn scrapers?
| Scraper Name | What it extracts |
|---|---|
| LinkedIn Company About Scraper With Firmographic Enrichment | Industry, employee count, and headquarters data |
| LinkedIn Company Scraper: Search By Name, Keyword or URL | Company discovery/search by name or keyword |
| LinkedIn Profile Scraper | Individual profile experience and education data |
| LinkedIn B2B Email Scraper | Corporate email and phone leads sourced from LinkedIn |
| LinkedIn Post Scraper & Comments Reactions | Company/individual post content with engagement data |
| Instagram Followers: With Bot Profile checker | Comparable audience/roster quality scoring for Instagram |
How to extract LinkedIn data programmatically
Every run is a standard Apify Actor call — one API request with your token, JSON input, JSON results back.
Python example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"companyTargets": ["https://www.linkedin.com/company/google"],"employeesPerSnapshot": 50,"snapshotLabel": "weekly-check",}run = client.actor("<YOUR_USERNAME>/linkedin-company-employees-scraper-with-growth-tracker").call(run_input=run_input)for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("isSnapshot"):print(row["companyName"], row["totalEmployeesScraped"], row["departmentBreakdownPercent"])
Export to spreadsheets or CRM
Export the dataset directly as CSV or Excel, then map companyName/scrapedAt/totalEmployeesScraped into a growth-tracking spreadsheet, appending each scheduled run's snapshot as a new row for your own trend chart.
Is it legal to scrape LinkedIn employee data?
Employee names, headlines, and profile links are personal data, so GDPR and CCPA obligations apply to storing and using this data. Public LinkedIn employee profiles are visible to any logged-out visitor, but downstream storage of individual employees' profile content should follow applicable data-protection rules. Consult legal counsel for commercial applications involving bulk storage of personal data.
❓ FAQ
Does this Actor track growth automatically?
No — each run produces one honest snapshot, not a comparison. You build the growth series yourself by scheduling repeated runs against the same company and comparing totalEmployeesScraped/scrapedAt across your own accumulated snapshot rows. This is stated explicitly in every snapshot's trackingNote field.
How accurate is the department classification?
It's a rule-based text-matching heuristic against each employee's real public headline, not a query against LinkedIn's actual internal org structure (which isn't exposed). Ambiguous or unusual headlines may land in Unclassified or an imperfect bucket.
Are error rows charged?
No — individual employee rows and the company snapshot row are only charged under row_result when they contain genuine successfully-scraped data. A snapshot with zero successful profiles (all errors) is pushed but not charged, and individual employee error rows are likewise pushed uncharged.
How many employees can I sample per snapshot?
employeesPerSnapshot (1-10,000, default 10) sets this — keep it consistent across scheduled runs for the same company so snapshots remain comparable.
Do I need a LinkedIn account to use this?
No — the Actor scrapes public employee-list pages logged-out.
Does LinkedIn Company Employees Scraper With Growth Tracker work with Claude, ChatGPT, and AI agent frameworks?
It has no dedicated MCP server registration in this Actor's current setup, but it is callable as a standard Apify API endpoint by any agent framework that can make an authenticated HTTP request and parse JSON.
How does this compare to other LinkedIn employee scrapers?
No independently verifiable competitor listing could be confirmed at the time of writing, so no specific comparison is made here. This Actor's distinguishing feature is the structured snapshot format (designed for repeat scheduled runs) plus the rule-based department breakdown, computed at no extra request cost.
What happens when LinkedIn permanently blocks a request (HTTP 999)?
The Actor detects this specific response and skips further retries for that request rather than wasting run time hammering a request that will never succeed — logged honestly as an error, not silently retried forever.
Conclusion
LinkedIn Company Employees Scraper With Growth Tracker turns a company's public employee roster into a structured snapshot — real headcount, individual employee data, and a rule-based department breakdown — designed to be run repeatedly so you build your own growth-over-time series. It's built for B2B sales teams, market researchers, and anyone monitoring company team composition. Schedule it to run on a recurring basis against your target companies to start building your growth series.