LinkedIn Company Employees Scraper With Growth Tracker avatar

LinkedIn Company Employees Scraper With Growth Tracker

Pricing

Pay per usage

Go to Apify Store
LinkedIn Company Employees Scraper With Growth Tracker

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

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

86

Total users

10

Monthly active users

7 days ago

Last modified

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 snapshotLabel for 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?

FieldExample ValueUse 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_identifierLinkedIn profile URL / "janedoe"Direct link and stable handle
follower_count / is_influencer / is_creator1200 / false / falseGauge the employee's own LinkedIn presence
recommendations_received / personal_website12 / "https://janedoe.dev"Additional profile-quality signals
type / isSnapshot"companyHeadcountSnapshot" / trueDistinguish the company snapshot row from employee rows
totalEmployeesScraped / totalEmployeesAttempted / employeesWithErrors10 / 10 / 0This 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

ParameterRequiredTypeDescriptionExample Value
companyTargetsNo (min 1 item)arrayCompany URLs or plain names to track["https://www.linkedin.com/company/google"]
employeesPerSnapshotNointeger (1-10,000)Employees scraped per company for this snapshot10 (default)
includeDepartmentBreakdownNobooleanInclude the rule-based department breakdowntrue (default)
snapshotLabelNostringFree-text tag stamped onto this run's snapshot row"Q3-week1"
proxyConfigurationNoobjectProxy 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 NameWhat it extracts
LinkedIn Company About Scraper With Firmographic EnrichmentIndustry, employee count, and headquarters data
LinkedIn Company Scraper: Search By Name, Keyword or URLCompany discovery/search by name or keyword
LinkedIn Profile ScraperIndividual profile experience and education data
LinkedIn B2B Email ScraperCorporate email and phone leads sourced from LinkedIn
LinkedIn Post Scraper & Comments ReactionsCompany/individual post content with engagement data
Instagram Followers: With Bot Profile checkerComparable 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 ApifyClient
client = 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.

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.