LinkedIn Company Scraper — Exact Employee Count avatar

LinkedIn Company Scraper — Exact Employee Count

Pricing

from $1.99 / 1,000 company-records

Go to Apify Store
LinkedIn Company Scraper — Exact Employee Count

LinkedIn Company Scraper — Exact Employee Count

Scrape public LinkedIn company pages. Get company records with exact employee counts, HQ, funding, and featured employee IDs. Run with slugs or URLs; no login. Pricing: $0.00205 per delivered row + $0.00005 per Actor Start event on Free.

Pricing

from $1.99 / 1,000 company-records

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

8

Bookmarked

171

Total users

63

Monthly active users

8 hours ago

Last modified

Features

Limited permissions

Share

LinkedIn Company Scraper for Exact Employee Counts

Scrape public LinkedIn company home pages for exact employee counts, firmographics, HQ details, funding, and featured employees. On the Free plan, delivered rows cost $0.00205 each; non-paying accounts get 3 companies per run, with enrichment and HTML dumps off.

  • Extract exact employee counts alongside LinkedIn size ranges.
  • Build sales and lead records with company type, industry, website, HQ, specialties, and tagline.
  • Research funding rounds, investors, followers, and founded years.
  • Resolve names and website domains to LinkedIn slugs and check linkedin_url.
  • Run without a LinkedIn login or cookies; only your Apify account is required.

What you get

The Actor fetches each public LinkedIn company home page and returns one dataset row per delivered company. Core firmographics use public Organization ld+json when available; other values use the page and overview card. Nullable scalars are null; arrays and objects use the empty forms below.

Field familyFieldsTypeDescription
Company identitycompany_name, slug, linkedin_urlstringName, normalized slug, and full URL. Name falls back to slug.
Company profiletagline, description, industry, company_type, company_sizestring or nullProfile and firmographic details; each can be null.
Exact employeesemployee_count, employee_count_sourceinteger or null; stringExact ld+json integer or null; source is ldjson_exact or absent. Missing counts add missing_employee_count and subtract 0.15 from parse_confidence.
Specialties and websitespecialties, websitearray of strings; string or nullSpecialties or []; decoded website or null.
Headquartershq_address, hqstring or null; objectAddress or null; hq has street, city, region, postal, and country, or {}. Nested values can be null.
Company signalslogo_url, follower_count, founded_yearstring or null; integer or null; integer or nullExtracted logo, followers, and founded year.
Fundingfundingobject or nullnull without a funding block. Otherwise may contain round counts, investors, last-round fields, and crunchbase_url.
Featured employeesfeatured_employee_ids, featured_employeesarray of strings; array of objectsIDs or []; enriched objects or []. Featured employees are typically 1–4. Objects have full_name, headline, location, current_title, current_company, profile_url, photo_url, and followers; values can be null. Failed profiles also have error.
Run metadatascraped_at, parse_source, parse_confidence, warningsISO 8601 string; string; number; array of stringsUTC timestamp; ldjson or html_fallback; score from 0 to 1; warning codes.
Fetch metadatafetch_sourcestringapify_residential or web_unlocker.

parse_confidence starts at 1.0. A missing Organization block subtracts 0.40, adds blocked for an auth wall or layout_drift_suspected otherwise, and selects html_fallback. Missing name, employee count, or HQ subtracts 0.20, 0.15, or 0.05. A page missing the Organization block, name, and count loses another 0.10. Other warning codes include missing_company_name, missing_hq, and resolved_from_input:<value>.

Sample output

One real dataset record (long text shortened).

{
"company_name": "Stripe", "slug": "stripe", "linkedin_url": "https://www.linkedin.com/company/stripe/",
"tagline": "Help increase the GDP of the internet.",
"description": "Stripe builds programmable financial services. Millions of companies—from the world’s largest enterprises to the most ambitious startups—use Stripe to accept payments, grow their revenue, and accelerate new business opportunities.",
"industry": "Technology, Information and Internet", "company_type": "Privately Held", "company_size": "5,001-10,000 employees",
"employee_count": 16694, "employee_count_source": "ldjson_exact",
"specialties": [], "website": "https://stripe.com", "hq_address": "354 Oyster Point Blvd, South San Francisco, California, 94080, US",
"hq": {
"street": "354 Oyster Point Blvd",
"city": "South San Francisco",
"region": "California",
"postal": "94080",
"country": "US"
},
"logo_url": "https://media.licdn.com/dms/image/v2/D560BAQE2ZfJyfn-VCg/company-logo_200_200/B56ZlyKwpUKIAI-/0/1758557047806/stripe_logo?e=2147483647&v=beta&t=En4Hm6NDGbDTYCoOQ0Ko5Ne2gylx0WRb0yL2GlOeXBQ",
"follower_count": 1808774, "funding": null, "featured_employee_ids": ["danielalmenara", "jhorman", "binoyg", "claire-hughes-johnson-7058"], "featured_employees": [],
"founded_year": 2010, "scraped_at": "2026-11-06T14:39:17.926378+00:00", "parse_source": "ldjson", "parse_confidence": 1, "warnings": [], "fetch_source": "apify_residential"
}

Pricing

On the Free plan, each delivered company row costs $0.00205 (apify-default-dataset-item event). Each row is charged when added to the dataset.

The Actor Start event is charged once per GB of run memory, with a minimum of one event.

Charge eventFree plan price
apify-default-dataset-item$0.00205 per event
Actor Start$0.00005 per event

Worked example: 1,000 delivered company rows = $2.05005 on the Free plan: 1,000 × $0.00205 + 1 × $0.00005. 10,000 delivered company rows = $20.50005 on the Free plan: 10,000 × $0.00205 + 1 × $0.00005. The default 1024 MB (1 GB) run uses 1 Actor Start event.

The Apify Free plan includes $5 of monthly platform usage credit. On the Free plan, the $5 credit covers 2,439 company rows after the Actor Start event.

You pay only for the events above. This Actor does not use Pay per event + usage, so compute, proxy traffic, and storage are not billed separately.

How to use

  1. Add slugs, company, school, or showcase URLs, names, or website domains to companies.
  2. Set maxCompanies to a positive integer, or leave it at 0 for all targets.
  3. Enable enrichEmployees for the featured employees shown on each home page. It works only on accounts Apify marks as paying.
  4. Keep the default residential proxyConfiguration.
  5. Run the Actor and review delivered rows; unresolved inputs and statuses are written to OUTPUT.
  6. Repeat through Apify Schedules; weekly is a reasonable starting point for recurring firmographic refreshes.
  7. Export the dataset as JSON or CSV, or read it through the Apify dataset API.
{
"companies": ["microsoft", "stripe", "https://www.linkedin.com/company/anthropic/"],
"maxCompanies": 0,
"enrichEmployees": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

On non-paying accounts, enrichEmployees: true has no effect and the example is limited to the first 3 companies.

Input parameters

ParameterWhat it doesDefault
companiesCompany slugs, company, school, or showcase URLs, names, or website domains. Names and domains are matched to a LinkedIn slug and flagged in warnings.No default; provide entries
maxCompaniesMaximum companies; 0 processes all entries. Minimum 0.0
enrichEmployeesFetches profiles for the featured employees shown on the company page, typically 1–4.false
proxyConfigurationProxy settings for company and optional profile fetches. Default uses Apify Proxy with RESIDENTIAL.useApifyProxy: true, group RESIDENTIAL
debugDumpHtmlStores fetched HTML under RAW_HTML_<slug> in the key-value store. Ignored on non-paying accounts.false
disableUsageStatsTurns off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat you seeWhat to do
Only the public company home page is available/about/ and /people/ redirect to login and are not scraped.Use the home-page slug or URL.
enrichEmployees is enabled on a paying accountOnly the featured employees shown on the company page are enriched; the full /people/ list is inaccessible.Treat it as limited enrichment.
Apify does not mark the account as payingThe first 3 valid targets are processed; enrichment and HTML dumps are off. Invalid inputs do not count.Use a paying account or reduce the input.
A name or domain resolves to a LinkedIn pageA resolved_from_input:<value> warning is added.Check linkedin_url.
A person URL, numeric company ID, or unsupported target is suppliedOUTPUT.results has status: invalid_input; no row is delivered.Use linkedin.com/company/<slug>.
Every input is confirmed not foundAfter two independent HTTP 404/410 answers, the run ends Succeeded with an empty dataset and a 0 companies scraped... status message. The reason is in OUTPUT.summary, OUTPUT.notFound, and OUTPUT.results.Check slugs or use the LinkedIn company address.
Zero rows result from invalid, blocked, unresolved, errored, or temporarily unreachable inputsThe run fails with a status message listing rejected inputs and reasons.Correct inputs or re-run after the temporary problem.
The same LinkedIn page is supplied more than onceThe later input has status: "duplicate" and pushed: false; it is not billed.Remove duplicates.
Some inputs fail but others deliver rowsThe run ends Succeeded; failures are in OUTPUT.failedCompanies and are not charged.Re-run failed inputs.
LinkedIn or the proxy is temporarily unreachable on every retryNo row is delivered; a run with no rows and only unreachable inputs fails.Re-run with the residential proxy configuration.
Run aborted, timed out, or failed mid-runDelivered rows remain in the dataset and are charged; OUTPUT is not written.Re-run inputs with no row.
LinkedIn page structure changesparse_confidence is reduced; parse_source may be html_fallback, with warning codes for missing parts.Review warnings and parse_confidence, then check the source page.
debugDumpHtml is enabled on a non-paying accountIt is switched off and no HTML dump is created.Use a paying account if raw HTML is needed.

FAQ

How much does it cost to scrape LinkedIn company pages?

On the Free plan, each delivered company row costs $0.00205 and the Actor Start event costs $0.00005. The 1,000-row example is shown in Pricing.

What happens if the dataset is empty?

If every input is confirmed not found after two independent HTTP 404/410 answers, the run ends Succeeded with an empty dataset and the reason in OUTPUT.summary, OUTPUT.notFound, and OUTPUT.results. Other zero-row outcomes fail; when rows are delivered, the run succeeds.

Why might a company not be working?

LinkedIn or the proxy can return an auth redirect, HTTP 999, or another temporary failure. The Actor retries retryable failures on fresh proxy sessions. Check the status and re-run affected inputs.

The Actor uses public LinkedIn company pages and does not require a login or cookies. Whether a use is allowed depends on source terms and applicable law for the use case; review those requirements before using the data.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields

⌂ 换网址