LinkedIn Company Custom Headcount Scraper avatar

LinkedIn Company Custom Headcount Scraper

Pricing

from $10.00 / 1,000 company headcount results

Go to Apify Store
LinkedIn Company Custom Headcount Scraper

LinkedIn Company Custom Headcount Scraper

Count employees at a public LinkedIn company by keyword, location, function, skill, or school. Returns official LinkedIn employeeCount plus a cookieless public-profile sample for custom filters. No login. MCP-ready.

Pricing

from $10.00 / 1,000 company headcount results

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Turn one or more public LinkedIn company pages into a headcount record. Paste https://www.linkedin.com/company/apple and get official employeeCount, size band, industry, and headquarters. Add keyword, location, function, skill, or school filters to attach a cookieless public /in/ sample; customHeadcount then equals that sample size, while employeeCount stays the LinkedIn-published census. No LinkedIn login or cookies.

Built for B2B sales, recruiting, and market-research teams who need TAM and team-composition signals without a Sales Navigator seat. Pair it with LinkedIn Company by Domain Scraper when you start from a website instead of a company URL, then continue with LinkedIn Company Search Scraper when the starting point is a keyword rather than a known page.

Best fit for this Actor

  • Strongest starting condition: a public /company/ URL or vanity slug such as apple.
  • Useful output: one dataset row per company with official employeeCount and, when filters are set, a public-profile sample.
  • For people lists instead of counts, start with LinkedIn Profile Search Scraper and pass title plus company filters.

Who it is for (and why it matters)

  • Account executives — size a target account before outreach and see whether engineering or sales talent shows up in public profiles.
  • Recruiters — compare official LinkedIn headcount with a public sample of people matching a role and location.
  • Market researchers — bulk-count a competitor set without logging into LinkedIn.
  • AI agents — one tool call with companyUrls returns structured headcount rows, countMethod, and OUTPUT.outcome.

Input reference

FieldTypeDefaultWhat it controls
companyUrlsarray (required)1 Apple URLPublic /company/ URLs or vanity slugs, up to 100
keywordsstringemptyExtra people-search phrase such as software engineer
locationsstring arrayemptyWhere they live, e.g. United States
functionsstring arrayemptyWhat they do, e.g. Engineering
skillsstring arrayemptySkill phrases such as Python
schools / fieldsOfStudystring arraysemptyEducation phrases
whereTheyLive / whatTheyDo / …integer arraysemptyOptional LinkedIn IDs mapped to labels when known
includeSampleProfilesbooleantrueAttach matching public /in/ rows when filters are set
maxSampleProfilesinteger10Cap on the custom sample (1–50)
maxCompaniesinteger25Cap on billed company rows this run
includeSubsidiariesbooleanfalseAccepted for compatibility; subsidiaries are not expanded
providerOrderenumscrapecreators-firstPublic-data provider priority

Quick start input

{
"companyUrls": ["https://www.linkedin.com/company/apple"],
"maxCompanies": 1
}

That input selects one well-known public company page so the run stays inside the five-minute quality window and still returns a real official headcount.

Example input — custom filter sample

{
"companyUrls": ["https://www.linkedin.com/company/apple"],
"keywords": "software engineer",
"locations": ["San Francisco"],
"functions": ["Engineering"],
"maxSampleProfiles": 5,
"maxCompanies": 1
}

Human-readable filters are the agent-friendly path. Known LinkedIn IDs such as whatTheyDo: [8] (Engineering) and whereTheyLive: [103644278] (United States) are mapped to the same labels.

What data you receive

One dataset item is one company. Official census fields always come from the public company page. Custom filters change customHeadcount to the public-sample size and set countMethod to public_profile_sample.

{
"inputCompany": "https://www.linkedin.com/company/apple",
"companyName": "Apple",
"companyUrl": "https://www.linkedin.com/company/apple/",
"companyId": "162479",
"employeeCount": 212408,
"employeeRange": "10,001+ employees",
"customHeadcount": 212408,
"countMethod": "linkedin_company_page",
"industry": "Computers and Electronics Manufacturing",
"headquarters": "Cupertino, California, United States",
"outcome": "FOUND",
"provider": "scrapecreators",
"scrapedAt": "2026-08-21T00:00:00.000Z"
}

Filtered example keeps the official census and adds the sample:

{
"companyName": "Apple",
"employeeCount": 212408,
"customHeadcount": 5,
"countMethod": "public_profile_sample",
"hasMore": true,
"searchQuery": "site:linkedin.com/in \"Apple\" \"software engineer\" \"San Francisco\" Engineering",
"sampleCount": 5,
"outcome": "FOUND"
}

Every terminal run also writes OUTPUT and RUN_SUMMARY with a named outcome, per-company counters, and billing.

Workflow story: from a competitor list to TAM and team-shape signals

A sales-ops lead keeps 12 competitor domains in a sheet. She first resolves them with LinkedIn Company by Domain Scraper, then feeds the returned /company/ URLs here with functions: ["Engineering"] and locations: ["United States"]. Each row comes back with official employeeCount for TAM and a public engineering sample she can skim. She exports the overview view, sorts by employeeCount, and schedules a weekly run so the census stays current.

Use through the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~linkedin-company-custom-headcount-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyUrls": ["https://www.linkedin.com/company/apple"],
"maxCompanies": 1
}'

Results land in the run's default dataset. The same Actor is exposed through Apify MCP as apify--linkedin-company-custom-headcount-scraper.

Use with AI agents through Apify MCP

Given these LinkedIn company URLs, return official employeeCount, industry, and headquarters. If I also pass a function and location, attach a public-profile sample and set customHeadcount to that sample size. Inspect OUTPUT.outcome and keep companyUrl as the source identifier.

Connect through Apify MCP. Cap maxCompanies so spend stays predictable. Treat NOT_FOUND as a completed empty lookup for that slug, not a reason to retry the same input.

Connect the workflow

Pricing

This Actor uses Pay per event plus Apify platform usage. Open the live Pricing tab for current event details, and use Apify's run cost controls to keep the workflow aligned with your budget.

EventPriceCharged when
Actor start$0.00005Once per run (scaled by memory)
headcount-result$0.01One found company headcount row

Invalid URLs, unknown company slugs, and provider-empty lookups are not billed as headcount-result.

RunFound rowsEvent cost (approx.)
1 company, official count1~$0.01
12 competitors, official count12~$0.12
12 competitors with engineering filter12~$0.12

Platform usage is billed on top at Apify's rates — the live Pricing tab is the current source of truth.

Best results

  • Provide canonical /company/ URLs. Vanity slugs such as apple work; /in/, /school/, and /showcase/ pages are rejected.
  • Use human-readable locations and functions for new jobs. LinkedIn numeric IDs are compatibility-only and skip unknown values.
  • Keep maxSampleProfiles small. The sample is a public-index slice, not a Recruiter census.
  • includeSubsidiaries is recorded as requested and left unexpanded because public cookieless data does not expose a subsidiary graph.
  • Confirm countMethod before you compare numbers across companies: linkedin_company_page is the official census; public_profile_sample is the filtered sample size.

Builder's note

I built this after probing ScrapeCreators and SociaVault live on 2026-08-21. Neither provider exposes a LinkedIn people-search count, and Google Search returns organic hits without totalResults. The honest public path is therefore the company-page employeeCount (Apple returned 212408) plus an optional site:linkedin.com/in sample for custom filters. That is why customHeadcount equals the official census when filters are empty, and equals the public sample size when filters are present, instead of inventing a Recruiter-style intersection count.

Responsible use

Use this Actor on public LinkedIn company pages you are authorized to process for legitimate sales, recruiting, or research. It reads public company pages and public web search results only. It does not log into LinkedIn, does not use your cookies, and is not a private org-chart or Recruiter dump. Follow GDPR, CCPA, LinkedIn's terms, and any local law that applies to your workflow.

This tool is provided for lawful public-data collection. You are responsible for how you use the output.