Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
LinkedIn Company Employees Scraper icon

LinkedIn Company Employees Scraper

Find a company's employees on LinkedIn, no login. Give a company URL or name. Get name, headline, job title, location and profile URL. $1.80 per 1,000.

5 from 1 review on Apify 2,471 runs on Apify $0.0018 per employee found ($1.8 / 1,000)
Run this in the cloudRun on Apify →

Job Market Scrapers

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust companies, jobTitles, locations (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0018 per employee found = $1.8 per 1,000

You are charged forWhenPrice
Employee foundCharged once for each employee returned with a name, headline, public LinkedIn profile URL and, where LinkedIn published them, a job title and location. Sample rows, diagnostic rows, duplicates and people removed by your filters are never charged.$0.0018

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-15, and they are what you are actually charged.

Inputs

FieldWhat it doesType
companiesLinkedIn company URLs (https://www.linkedin.com/company/stripe) or plain company names. Leave empty to get one free labelled sample row.array
jobTitlesOnly keep people whose public profile text contains one of these words, e.g. Software Engineer. Filtered-out people are never charged.array
locationsOnly keep people whose public profile text contains one of these places, e.g. London. Filtered-out people are never charged.array
searchQueryFree-text terms added to the public search, e.g. recruiting OR talent.string
resultsLimitHard cap on charged employee rows for the whole run, across all companies. 1-500.integer
includeMentionsOff by default. When off, a person is only returned if LinkedIn's own public text names the company as their employer. Turn it on to also get consultants, partners, alumni and anyone whose profile merely mentions the company.boolean

What you get

A structured dataset — each result includes fields like:

companyNamecompanyUrlfullNamefirstNamelastNameheadlinecurrentTitlelocationprofileUrlpublicIdentifiercurrentCompanyeducationmatchStrength

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

1 ready-to-run use cases

LinkedIn Company Employees by Job Title

List a company's employees on LinkedIn filtered by job title. Get name, headline and profile URL from the public page.

Related tools in Job Market Scrapers

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Indeed Jobs Scraper iconJob Market Scrapers

Indeed Jobs Scraper

Scrape Indeed jobs by keyword and location in 11 countries. Get company, salary, benefits, remote flag, employer rating and apply URL. $4.00 per 1,000.

16 use cases

Glassdoor Company Reviews Scraper iconJob Market Scrapers

Glassdoor Company Reviews Scraper

Scrape Glassdoor reviews: pros, cons, six sub-ratings, recommend rate and CEO approval. First page per company without login. $2.50 per 1,000.

20 use cases

StepStone Jobs Scraper iconJob Market Scrapers

StepStone Jobs Scraper

Scrape StepStone jobs in DE, AT, UK, NL and BE by keyword and location. Get company, salary, posted date, remote flag and links. $3.00 per 1,000 jobs.

4 use cases

Remotive Jobs Scraper iconJob Market Scrapers

Remotive Jobs Scraper

Scrape remote jobs from Remotive by keyword or category: company, region, salary, tags and plain-text descriptions. $2.00 per 1,000 jobs.

3 use cases

Multi-ATS Jobs Scraper (Greenhouse, Lever, Ashby) iconJob Market Scrapers

Multi-ATS Jobs Scraper (Greenhouse, Lever, Ashby)

Scrape open jobs from Greenhouse, Lever and Ashby boards. Get the title, location, department, posted date, description and apply link. $3.00 per 1,000.

3 use cases

LinkedIn Jobs Scraper iconJob Market Scrapers

LinkedIn Jobs Scraper

Scrape public LinkedIn jobs by keyword, location, URL or ID. Filter by date, workplace type and experience. Full descriptions. $0.80 per 1,000 jobs.

Ready to run — no setup

See all Job Market Scrapers →

LinkedIn Company Employees Scraper: the people who work at a company, from public profiles only

Give it a company page URL or just the company name and get one row per person: full name, headline, job title, location and their profile link. No account, no cookies, no login.

Here is the thing to understand before you buy. LinkedIn hides a company's employee list from anyone who is not signed in, so there is no list to read. This works from public profile pages instead, which means you get the people whose profiles are publicly visible, not the org chart. For a large employer that is usually a few hundred rather than the tens of thousands the company page claims. If you need the complete roster, this is the wrong purchase, however cheap it is.

InputCompany page URLs, or plain company names
OutputOne row per person
Ceiling500 people per run, 20 companies
Account neededNone from you
Price$1.80 per 1,000 employees, flat on every plan

🏢 What LinkedIn Company Employees Scraper does

You can hand it https://www.linkedin.com/company/stripe or just Stripe. With a URL it reads the company page first to get the real display name, so a slug like acme-holdings-ltd comes back as the name people actually write.

Each person is judged on the public text of their own profile. matchStrength says which way it went: employer means the text names this company as where they work, mention means the company merely appears somewhere. Only employer rows come back unless you turn on Also keep people who only mention the company, which adds consultants, partners, alumni and anyone else who names it.

That judgement is made on words. A headline reading "Shopify Engineer at Peloton" counts as Peloton, and a past-tense "ex-Stripe" never counts. Someone who left months ago and never updated their headline still does.

The job title and location filters run before anything is charged, so narrowing down costs you nothing.

📥 What you give it

{
  "companies": ["https://www.linkedin.com/company/stripe"],
  "jobTitles": ["Software Engineer", "Engineering Manager"],
  "locations": ["London"],
  "resultsLimit": 25
}

Everything here is optional, and the form arrives with starting values rather than schema defaults, so clearing a box is not the same as choosing what the form showed.

FieldForm starts atWhat it is
companiesone Stripe URLUp to 20 company page URLs or plain names, mixed freely.
jobTitlesemptyUp to 10 words. Only people whose public profile text carries one of them are kept.
locationsemptyUp to 10 places, same idea.
searchQueryemptyFree text added to the public search, like recruiting OR talent. Up to 300 characters.
resultsLimit25The hard cap on charged rows for the whole run, across every company, up to 500. This is the number that decides your bill.
includeMentionsoffAdds the people who only mention the company rather than working there.

Leave Companies empty and you get one labelled sample row, so you can see the shape before committing a real run.

📤 What you get back

A real row from a real run, with one internal field left out:

{
  "ok": true,
  "_sample": false,
  "charged": true,
  "companyName": "Stripe",
  "companyUrl": "https://www.linkedin.com/company/stripe",
  "fullName": "Patrick Collison",
  "firstName": "Patrick",
  "lastName": "Collison",
  "headline": "Stripe CEO",
  "currentTitle": "CEO",
  "location": null,
  "profileUrl": "https://www.linkedin.com/in/patrickcollison",
  "publicIdentifier": "patrickcollison",
  "currentCompany": "Stripe",
  "education": null,
  "matchStrength": "employer",
  "source": "linkedin-public-profile",
  "retrievedAt": "2026-09-21T01:45:18.534Z"
}
FieldWhat it is
profileUrlThe canonical linkedin.com/in/<slug> link. Country hosts are collapsed, so the same person never appears twice as uk. and www..
publicIdentifierThe slug on its own, which is the stable key to de-duplicate against your CRM.
headlineTheir own headline text, or the lead of the public snippet when there is no headline.
currentTitleThe title pulled out of the headline, and only when the employer in it is this company. null when it could not be read cleanly rather than a guess.
matchStrengthemployer or mention, as above. Worth keeping in your export: it is the difference between a colleague and a consultant.
location, educationFrom the public snippet when it carries them, and null often enough that you should not build a filter on them downstream.
companyUrlnull when you passed a plain name rather than a URL.

🧾 Reading the output

RowHow to spot itBilled
A real personok: true, charged: trueyes
The sample row_sample: trueno
A diagnostic_diagnostic: true with an errorCodeno

Filter on charged == true and you have your people. Treat that flag as what tells a real row apart from a sample or a diagnostic, not as a receipt for what was billed.

Rows stream out as they are found, so a long run fills the dataset as it goes.

CodeWhat it means
COMPANY_NOT_FOUNDThat company URL or name could not be resolved to a company at all.
NO_RESULTSThe company resolved and nothing public was found for it.
SKIPPED_AFTER_EMPTYThree companies in a row came back empty, so the remaining ones were skipped instead of spending on them.
TIME_BUDGETThe run ran out of time before reaching that company.
SEARCH_UNAVAILABLEDiscovery could not run for that company on this run. Retry it.
BAD_INPUTThe entry was not a usable company URL or name.
UNEXPECTED_ERRORSomething we did not classify. Send us the run id.

A diagnostic row carries company rather than companyName, so it reads as a nearly empty line in the table view.

▶️ How to run it

1. Open LinkedIn Company Employees Scraper and click Try for free. 2. Put company page URLs or names into Companies, one per line. 3. Set Maximum employees low while you are testing, since that is what you pay for. 4. Add Job title filter and Location filter words if you only want part of the staff. Filtering costs nothing. 5. Click Start, then download the dataset as JSON, CSV or Excel, or pull it from the Apify API.

💰 How much does it cost?

$1.80 per 1,000 employees. Flat on every Apify plan, no volume tiers.

Maximum employees is the number that decides your bill, and it applies to the whole run rather than to each company, so three companies and a limit of 25 gives you 25 people in total.

People removed by your title or location filters are not charged. Neither are mention-only people while Also keep people who only mention the company is off, nor diagnostic rows, nor the sample row. A person found under two of your companies is charged once.

💡 What people use it for

  • Building an account-based prospect list: pick the companies, filter to the titles you sell to.
  • Recruiting: filter by title and city to see who does that job at the companies you hire against.
  • Checking a list you have: diff publicIdentifier against your CRM to see who left and who is new.
  • Partner research, with mentions on, which surfaces the people around a company rather than in it.

🚧 What it does not do

  • It is not a staff directory. Only publicly visible profiles are reachable, and for a large

employer that means a few hundred people, not the headcount on the company page.

  • No contact details. No e-mail, no phone, no connection count, no skills, no full job history.
  • location and education are often null, because the public snippet does not always carry

them.

  • currentTitle is read out of the headline, so a creative headline gives a rough title or none.
  • Someone who has left may still appear. The judgement is made on what their profile says today,

and plenty of people do not update it.

  • resultsLimit is run-wide. Twenty companies and a limit of 50 does not give you 50 each.
  • **In a run covering several companies, a person who was already seen and skipped for one company

is not returned again for another**, even when they would have qualified there.

  • It reads what LinkedIn shows a signed-out visitor, so it can never see anything private.

🧭 Which LinkedIn scraper do you need?

If you wantUse
The people at a companyThis one
People found by keyword, title or location, with no company in mindLinkedIn Profile Search Scraper
Full profiles for URLs you already haveLinkedIn Profiles Scraper
The company page itself: size, industry, headquartersLinkedIn Companies Scraper
Public posts found by keywordLinkedIn Post Search Scraper

❓ Questions people ask

Do I need a LinkedIn account? No, and that is the point. Nothing here asks you to sign in or hand over cookies.

Why did I get 200 people from a company with 8,000 staff? Because only publicly visible profiles can be reached without signing in, and that is everyone's view, not ours in particular.

Can I get their e-mail addresses? No. Nothing on a public profile page carries one, and this does not guess or buy them.

What is the difference between employer and mention? employer means their public text names this company as where they work. mention means it just appears somewhere on the profile.

Is scraping LinkedIn legal? This reads public pages only, never anything behind a login. Results contain personal data, which GDPR, CCPA and similar laws cover, so you need a lawful reason to collect it and to contact anyone. Apify's write-up on the legality of web scraping is a reasonable starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Include the companies you used and the run id. The diagnostic rows in your dataset usually name the reason already.