LinkedIn Company Scraper
Pricing
from $3.00 / 1,000 company profiles
LinkedIn Company Scraper
The LinkedIn Company Scraper turns company slugs or profile URLs into full firmographic records — exact employee headcount, followers, industry, size, type, founded year, headquarters, website and About text, plus open-role counts and similar pages — ideal for lead enrichment and market mapping.
Pricing
from $3.00 / 1,000 company profiles
Rating
0.0
(0)
Developer
FalconScrape
Maintained by CommunityActor stats
1
Bookmarked
23
Total users
12
Monthly active users
a day ago
Last modified
Categories
Share
🚀 LinkedIn Company Scraper: Headcount, Firmographics and Hiring Data
The LinkedIn Company Scraper turns a list of company names, slugs or LinkedIn company profile URLs into complete firmographic records, exported as JSON, CSV or Excel. Each row has the exact headcount LinkedIn counts today, the self-reported company size band, followers, industry, type, founding year, headquarters, website, specialties and About text, plus how many roles the company has open right now and the similar companies LinkedIn links to. Use it for lead enrichment, company data enrichment in your CRM, market mapping and account research, without a LinkedIn login.
🎯 Use Cases for LinkedIn Company Data
- Lead enrichment: add headcount, industry, size and website to a list of target accounts before outreach.
- Firmographic data for scoring: segment and score accounts by industry, company type, founding year and real employee count.
- Hiring and growth signals: see which accounts have open roles right now and how many, to spot companies that are growing.
- Find similar companies: turn a few known customers into a lookalike list from the similar pages LinkedIn shows on each profile.
- CRM hygiene: refresh company size, headquarters and website on existing records with a scheduled run.
- Account and market research: map a market or a group of subsidiaries through each company's affiliated pages.
✨ Features: Company Headcount, Firmographics and Hiring
- Real employee count, not only the band. Most LinkedIn company data stops at the self-reported range such as "5,001-10,000 employees". This scraper also returns the number of people LinkedIn counts as employees today: in a recent run Stripe 16,694 against a band of 5,001–10,000, Notion 7,211 against 501–1,000, Microsoft 231,136. You get both: the band for filtering, the real figure for scoring.
- Live hiring signal on every row.
openRolesis how many jobs the company advertises on LinkedIn worldwide at the moment of the run (Vercel 116, Notion 165). A0means nothing is open. - Worldwide job counts. Open roles are counted globally on purpose, not for one country, so the number reflects the whole company.
- Similar and affiliated pages. Every row carries the companies LinkedIn lists as similar (name, URL, slug, industry, location), so one run of known accounts becomes a lookalike list. Affiliated pages surface subsidiaries and showcase pages: Microsoft returns 52, Vercel 4.
- Showcase pages work too.
linkedin.com/showcase/microsoft-azureis accepted like a company page. - Names, slugs or URLs, mixed freely.
Stripe,stripe,linkedin.com/company/stripeorhttps://fr.linkedin.com/company/stripe/about/. Names are matched through LinkedIn's own company search; a slug or URL is exact. - No duplicates, no double billing. The same company given twice, as a slug and as a URL, or as two spellings of its name, is saved and charged once.
- Honest nulls. A company with no logo gets
null, not LinkedIn's grey placeholder. A company with no listed website getsnull, not a guess. The website is the company's own URL, not a LinkedIn redirect link. - Unmatched companies are reported. A company that can't be found is named in the log and in the
RUN_SUMMARYrecord, never silently dropped. If no company can be scraped at all, the run fails instead of ending as an empty success. - Respects your limits. The run stops at Maximum companies or at your max charge, whichever comes first.
🛠️ How It Works
- Enter companies: a name (
Stripe), a slug (stripe) or a LinkedIn company profile URL, one per line. - Run the scraper. Each company's public profile is read and its open roles are counted.
- Export the results as JSON, CSV or Excel, or pull them through the Apify API.
There is nothing else to tune: every field comes back on every row.
⚙️ Input
| Field | What it does |
|---|---|
| LinkedIn companies | Required. Company names, slugs or profile URLs (company or showcase pages). Names are matched through LinkedIn's company search. |
| Maximum companies | Stop after this many companies. Default 100. Anything past the limit is reported in the log. |
{"companies": ["stripe", "Notion", "https://www.linkedin.com/company/vercel"],"maxItems": 100}
💰 Pricing
Pay only for the company profiles you get. Nothing is charged for a company that couldn't be found or scraped, and a duplicate is charged once.
| Event | Price | What you get |
|---|---|---|
| Company profile | $0.004 (Free and Bronze), $0.0036 (Silver), $0.003 (Gold, Platinum, Diamond) | One full company record, all fields |
| Actor start | $0.00005 per run | Charged once when the run starts. |
Examples on the Free plan: 25 companies = $0.10 · 100 companies = $0.40 · 1,000 companies = $4.00. On Gold, 1,000 companies = $3.00.
📊 Sample LinkedIn Company Profile Output
{"companyName": "Vercel","companyLogo": "https://media.licdn.com/dms/image/v2/D560BAQHsF1EIN5BnIw/company-logo_200_200/…/vercel_logo…","companyTagline": "Agentic Infrastructure for every app and agent. Creators of AI SDK, Next.js, Turborepo, and v0.","companyDescription": "Vercel is the platform where humans and AI agents build, ship, and scale software together…","companyIndustry": "Software Development","companyWebsite": "https://vercel.com","companyHeadquarters": "San Francisco, California","companySize": "501-1,000 employees","companyEmployeeCount": 1000,"companyFollowers": 268031,"companyFounded": "2015","companySpecialties": "Next.js, Developer Velocity, Open Source, Developer Experience, React, and Web Development","companyType": "Privately Held","companyEmployeesOnLinkedIn": 1029,"similarPages": [{"name": "Supabase","companyUrl": "https://www.linkedin.com/company/supabase","companySlug": "supabase","industry": "IT Services and IT Consulting","location": null},"…"],"affiliatedPages": [{"name": "v0 by Vercel","companyUrl": "https://www.linkedin.com/company/v0dev","companySlug": "v0dev","industry": "Software Development","location": null},"…"],"companySlug": "vercel","companyId": "16181286","companyUrl": "https://www.linkedin.com/company/vercel","companyJobsUrl": "https://www.linkedin.com/jobs/search?f_C=16181286&geoId=92000000","openRoles": 116,"openRolesIsLowerBound": false,"scrapedAt": "2026-10-18T06:07:21.554Z"}
companyEmployeesOnLinkedIn is the exact headcount; companySize is the self-reported band and companyEmployeeCount is the band's upper bound as a number, for sorting. companySlug and companyId are stable join keys across runs, and companyUrl is normalised so a locale subdomain doesn't split one company in two. When LinkedIn shows a capped job count such as "1,000+" or "2,000+", openRoles holds that floor and openRolesIsLowerBound is true.
| Field group | Fields |
|---|---|
| Identity | companyName, companySlug, companyId, companyUrl, companyLogo, companyTagline |
| Firmographics | companyEmployeesOnLinkedIn, companySize, companyEmployeeCount, companyFollowers, companyIndustry, companyType, companyFounded, companyHeadquarters, companyWebsite, companySpecialties, companyDescription |
| Hiring signal | openRoles, openRolesIsLowerBound, companyJobsUrl |
| Related pages | similarPages, affiliatedPages (each with name, companyUrl, companySlug, industry, location) |
| Run info | scrapedAt (ISO 8601) |
🔁 Schedule and Integrate
Headcount and open roles move every week, so for account monitoring run the same company list weekly (or daily for a short list of key accounts): each run is a dated snapshot, and together they show headcount growth and hiring trends. Set it up in Apify Schedules. Send the results to Google Sheets, Zapier, Make, n8n or a webhook with Apify integrations, so fresh company data lands in your CRM or spreadsheet.
🤖 Use with AI Agents (MCP)
This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:
{ "companies": ["stripe", "vercel"], "maxItems": 10 }
❓ FAQ
Does LinkedIn have an official API for company data? LinkedIn's official APIs, including the Organization and Community Management APIs, need a registered developer app approved for the relevant product, and full page data is tied to admin access for the pages you manage. There is no open API where you look up any company's public profile with a key. This Actor needs no key, app approval or LinkedIn account, and returns the public profile plus the exact headcount, open roles and similar pages.
Do I need a LinkedIn account or cookies? No. The scraper doesn't log in and uses no cookies or session of yours; it only reads what LinkedIn shows publicly on company pages.
How many employees does a company have on LinkedIn?
companyEmployeesOnLinkedIn is the number of people who list the company as their employer today. companySize is the band the company typed in, sometimes years ago. They often disagree: Stripe shows 5,001–10,000 and counts over 16,000.
Where do I find a company's slug?
It's the part of the profile URL after /company/. For https://www.linkedin.com/company/stripe the slug is stripe. You can paste the whole URL or just the company name instead.
Why is a field empty?
Fields are null when the company hasn't filled them in on LinkedIn: many profiles have no specialties, tagline or founding year, and showcase pages usually have no headquarters, followers or employee count. Showcase pages get openRoles, openRolesIsLowerBound and companyJobsUrl as null, because LinkedIn lists their jobs under the parent company, and their companyUrl is the /showcase/ URL. Otherwise openRoles is null only when the count couldn't be read; the profile is still saved.
Why did a company return nothing?
Either no LinkedIn company matched the name or slug, or the page couldn't be read at that moment. The company is named in the log and in RUN_SUMMARY, and it isn't charged.
Can I get the actual job listings, not just the count? Yes, use the LinkedIn Company Jobs Scraper with the same company list.
🔗 Related Scrapers
- LinkedIn Decision Maker Finder: CEOs, CTOs, VPs and founders at the companies you enrich here.
- LinkedIn Company Jobs Scraper: every open role behind the
openRolescount. - LinkedIn Job Details Scraper: full job postings with salary, seniority and applicant counts.
- LinkedIn People Search Scraper: find profiles by job title, company and location, no login.
- Company Career Page Scraper: open roles straight from each company's own career page, using the
companyWebsitefrom this scraper.