LinkedIn Employees Scraper avatar

LinkedIn Employees Scraper

Pricing

from $2.38 / 1,000 results

Go to Apify Store
LinkedIn Employees Scraper

LinkedIn Employees Scraper

Find public LinkedIn employee profiles for a company, given its LinkedIn URL or slug, via public Google search results. Returns name, profile URL, headline or job title as shown in search, location and followers, plus company industry, size and HQ. Coverage is partial. No login.

Pricing

from $2.38 / 1,000 results

Rating

0.0

(0)

Developer

Axiom Works

Axiom Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

What does LinkedIn Employees Scraper do?

This Actor finds people who work at a LinkedIn company and returns them as clean, structured records. You give it one or more LinkedIn company page URLs (or just the company slug, such as stripe) and it returns each employee's name, public profile URL, headline, job title, location, current company and follower count, together with basic facts about the company: industry, size, headquarters and follower count.

It needs no LinkedIn account, no cookies and no session token. LinkedIn does not show employee lists to logged-out visitors, so the Actor works in two steps. First it reads the public company page to get the exact company name and company details. Then it runs Google searches restricted to public LinkedIn profile pages that mention that company, reads each search result, and resolves the result to the real profile address.

Because discovery relies on what Google has indexed, the list is a partial view of the company, not a complete headcount. Typical yields are a few hundred people per search query. Some results are former employees whose profile still mentions the company. The strictCompanyMatch option keeps only results that mention the company name, which removes most off-topic hits. This is stated plainly so you can judge whether the data fits your use case.

This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by LinkedIn or Google.

What data can you get?

Each output record describes one person found for one company. Fields that a search result does not show are left empty rather than guessed.

FieldDescription
idStable identifier built from the company and the profile
sourceUrlThe Google search page the record came from
profileUrlPublic LinkedIn profile URL, normalised to www.linkedin.com
publicIdentifierThe profile handle at the end of the URL
fullNamePerson's name as shown in the search result
headlineProfile headline, may end with an ellipsis
jobTitleJob title from the result details or taken from the headline
locationLocation shown for the person
currentCompanyCurrent company shown in the result details
followersApproximate follower count, for example 1.6K becomes 1600
snippetText excerpt shown under the result
companyNameCompany name read from the company page
companyUrlLinkedIn company page URL
companyIndustryIndustry of the company
companySizeCompany size range
companyHeadquartersCompany headquarters
companyFollowersFollower count of the company page
searchQueryThe exact search query that found the person
searchPageResult page number within the query
positionPosition of the result on that page
scrapedAtISO timestamp of the extraction
about, experience, education, profileAccessOnly with includeProfileDetails: profile details when LinkedIn shows them, and whether access was full, limited or unavailable

Common uses include building a first list of people to research at a target company, mapping which job titles a company has, checking where a team is located, and preparing account research for sales or recruiting. Run the Actor with job title keywords to focus on a function such as engineering or sales.

How to use

You can run the Actor from the Apify Console without writing code.

  1. Open the Actor and go to the Input tab.
  2. Add one or more company URLs or slugs under Companies. Both https://www.linkedin.com/company/stripe/ and stripe work.
  3. Set Max items. The Actor returns exactly that many people in total when that many can be found, split evenly across your companies. If one company runs out of results, the others fill the remaining places.
  4. Optionally add job title keywords or locations. Each keyword or location runs as its own search, which also helps reach further into large companies because Google limits a single query to roughly 300 results.
  5. Click Start. When the run finishes, open the Output tab to view, filter and download the dataset as JSON, CSV, Excel or HTML.

Runs take time because the Google search step is slow: expect roughly 20 seconds per result page of 10 people. A run for 50 people therefore takes a few minutes. Several pages are fetched in parallel where possible, and requests are rate limited to be polite to the sites involved.

Proxies: linkedin.com blocks datacenter addresses, so company pages are fetched through Apify residential proxies. Google searches use the Apify Google SERP proxy group, and link resolution uses a datacenter proxy. Your Apify account must have access to these proxy groups.

Input

Only companies is required. A run with no valid companies fails immediately with a clear error message.

FieldTypeDescription
companiesarrayLinkedIn company URLs or slugs to search
maxItemsintegerMaximum employees returned in total, split evenly across companies (1 to 10000, default 50)
jobTitleKeywordsarrayOptional job title words, each run as its own search
locationsarrayOptional locations, each run as its own search
strictCompanyMatchbooleanDrop results that do not mention the company name (default true)
includeProfileDetailsbooleanFetch each profile page for about, experience and education (default false)
maxSearchPagesPerQueryintegerGoogle result pages read per query, 1 to 30 (default 10)
proxyConfigurationobjectApify proxy used for linkedin.com, residential recommended

Example input:

{
"companies": ["https://www.linkedin.com/company/stripe/", "openai"],
"maxItems": 20,
"jobTitleKeywords": ["engineer"],
"strictCompanyMatch": true
}

Output

Each dataset item looks like the following record, taken from a local test run for Stripe.

{
"id": "d51b5b6e3c5bed4a0c851dac0ae69d761bff695f9fbc066c57ee713e2c8e7cf7",
"sourceUrl": "http://www.google.com/search?q=site%3Alinkedin.com%2Fin+%22Stripe%22&hl=en&gl=us&udm=14&start=0",
"profileUrl": "https://www.linkedin.com/in/william-gaybrick-5730347",
"publicIdentifier": "william-gaybrick-5730347",
"fullName": "William Gaybrick",
"headline": "President, Technology and Business at ...",
"jobTitle": "President, Technology and Business",
"location": "San Francisco, California, United States",
"currentCompany": "Stripe",
"followers": 10900,
"snippet": "President, Technology and Business at Stripe · Experience: Stripe · Education: Yale Law School · Location: San Francisco · 500+ connections on LinkedIn.",
"companyName": "Stripe",
"companyUrl": "https://www.linkedin.com/company/stripe/",
"companyIndustry": "Technology, Information and Internet",
"companySize": "5,001-10,000 employees",
"companyHeadquarters": "South San Francisco, California",
"companyFollowers": 1738678,
"searchQuery": "site:linkedin.com/in \"Stripe\"",
"searchPage": 1,
"position": 2,
"scrapedAt": "2026-09-29T19:33:15.721Z"
}

How much does it cost?

The Actor uses pay per event pricing. You are charged one result event for every employee record saved to the dataset, and an additional enriched result event only when includeProfileDetails is on and profile details were actually found for that person. Records dropped by the company match filter are not charged. See the Pricing tab of the Actor for the current price per result. Because you pay per record, setting maxItems gives you a hard cap on the cost of a run.

Apify's free plan includes monthly platform credits, so you can try the Actor on a small company before scaling up.

Use with the API

You can start the Actor from code with the Apify API and clients. Set your API token in the APIFY_TOKEN environment variable.

Python:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("axiomworks/linkedin-company-employees-scraper").call(
run_input={"companies": ["stripe"], "maxItems": 20}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["fullName"], item["profileUrl"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('axiomworks/linkedin-company-employees-scraper').call({
companies: ['stripe'],
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => process.stdout.write(`${item.fullName} ${item.profileUrl}\n`));

cURL:

curl -X POST "https://api.apify.com/v2/acts/axiomworks~linkedin-company-employees-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["stripe"], "maxItems": 20}'

You can also connect the Actor to schedules, webhooks and the standard Apify integrations to send results to spreadsheets, databases or automation tools after each run.

Use with AI agents (MCP)

You can call this Actor from any MCP compatible AI assistant through the Apify MCP server. Add the Actor to the server URL like this:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=axiomworks/linkedin-company-employees-scraper"
}
}
}

Example prompts:

  • "List 20 engineers at Stripe with their LinkedIn profile URLs and locations."
  • "Find sales people at Vercel and group them by location."
  • "Which job titles show up most often among people found for OpenAI?"

The input and dataset schemas describe every field, so an agent can choose the right arguments without extra guidance.

FAQ

Do I need a LinkedIn account or cookies? No. The Actor never logs in and never uses cookies.

Why do I get fewer people than the company's headcount? LinkedIn hides employee lists from logged-out visitors. The Actor finds people through publicly indexed profile pages, so coverage is partial. Use job title keywords and locations to widen coverage.

Why are some fields empty? Search results do not always show a location, job title or current company. Empty fields are left empty. Job title is only filled when the search result shows a pattern such as "Title at Company"; otherwise it is null. headline comes from the Google result title and can be cut off with "...", and it is null when the title only shows the company name. snippet is null when Google shows the company's own description instead of text about the person.

Can it return former employees? Some results are people whose public profile still mentions the company. Keeping strict company match on reduces this but cannot remove it fully.

What is deep mode? With includeProfileDetails the Actor opens each public profile and reads the structured data LinkedIn shows to logged-out visitors. Many members show only a limited profile, so about, experience and education are best effort. The profileAccess field tells you what was available.

A run failed. What now? The Actor fails with an explicit message when the input is invalid, none of the companies exists on LinkedIn, a proxy group is not available or no employees could be found. A company slug that LinkedIn does not know is reported within seconds, and the other companies in the same run are still scraped. Check the run log, then retry, since search result quality can vary between requests.

What happens if a run is about to time out? The Actor stops starting new searches about a minute before the run timeout, so the people found so far stay in the dataset and the run finishes normally.

Does it use AI? No third party AI processor is used.

The Actor only reads pages and search results that are visible to anyone without logging in, and it collects no private data, no email addresses and no phone numbers. Even so, the data describes real people, so you are responsible for using it lawfully. Consider data protection laws such as GDPR and CCPA, the terms of the sites involved, and the purpose you have for the data. Do not use it for spam or harassment, and honour deletion requests. This is general information and not legal advice; consult a lawyer for your situation.

Feedback

If a field is missing, results look off or you need another output field, open an issue from the Actor page on Apify. Reports that include the run ID and the input you used are the fastest to resolve.