LinkedIn Company Custom Headcount Scraper
Pricing
from $10.00 / 1,000 company headcount results
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
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 asapple. - Useful output: one dataset row per company with official
employeeCountand, 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
companyUrlsreturns structured headcount rows,countMethod, andOUTPUT.outcome.
Input reference
| Field | Type | Default | What it controls |
|---|---|---|---|
companyUrls | array (required) | 1 Apple URL | Public /company/ URLs or vanity slugs, up to 100 |
keywords | string | empty | Extra people-search phrase such as software engineer |
locations | string array | empty | Where they live, e.g. United States |
functions | string array | empty | What they do, e.g. Engineering |
skills | string array | empty | Skill phrases such as Python |
schools / fieldsOfStudy | string arrays | empty | Education phrases |
whereTheyLive / whatTheyDo / … | integer arrays | empty | Optional LinkedIn IDs mapped to labels when known |
includeSampleProfiles | boolean | true | Attach matching public /in/ rows when filters are set |
maxSampleProfiles | integer | 10 | Cap on the custom sample (1–50) |
maxCompanies | integer | 25 | Cap on billed company rows this run |
includeSubsidiaries | boolean | false | Accepted for compatibility; subsidiaries are not expanded |
providerOrder | enum | scrapecreators-first | Public-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
- Start from a website domain with LinkedIn Company by Domain Scraper, then pass
linkedinCompanyUrlintocompanyUrlshere. - Search by keyword with LinkedIn Company Search Scraper when you do not already have company URLs.
- After you have matching
/in/URLs from the sample, continue with LinkedIn Profile Details Scraper for the public about view.
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.
| Event | Price | Charged when |
|---|---|---|
| Actor start | $0.00005 | Once per run (scaled by memory) |
headcount-result | $0.01 | One found company headcount row |
Invalid URLs, unknown company slugs, and provider-empty lookups are not billed as headcount-result.
| Run | Found rows | Event cost (approx.) |
|---|---|---|
| 1 company, official count | 1 | ~$0.01 |
| 12 competitors, official count | 12 | ~$0.12 |
| 12 competitors with engineering filter | 12 | ~$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 asapplework;/in/,/school/, and/showcase/pages are rejected. - Use human-readable
locationsandfunctionsfor new jobs. LinkedIn numeric IDs are compatibility-only and skip unknown values. - Keep
maxSampleProfilessmall. The sample is a public-index slice, not a Recruiter census. includeSubsidiariesis recorded as requested and left unexpanded because public cookieless data does not expose a subsidiary graph.- Confirm
countMethodbefore you compare numbers across companies:linkedin_company_pageis the official census;public_profile_sampleis 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.