LinkedIn Employees Scraper | Staff by Title, No Login avatar

LinkedIn Employees Scraper | Staff by Title, No Login

Pricing

from $4.00 / 1,000 profiles

Go to Apify Store
LinkedIn Employees Scraper | Staff by Title, No Login

LinkedIn Employees Scraper | Staff by Title, No Login

Find any company's employees on LinkedIn as B2B leads with name, title, location, profile URL. No login, no ban risk. From $4/1k. Works in Claude & ChatGPT.

Pricing

from $4.00 / 1,000 profiles

Rating

5.0

(1)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

65

Total users

17

Monthly active users

9 days ago

Last modified

Share

👥 LinkedIn Employees Scraper: No Cookies · From $4/1k

What does LinkedIn Employees Scraper do?

It turns any company name into a list of employee profiles: name, headline, location, and public LinkedIn profile URL. Give it Stripe and optionally a role keyword (engineer, sales, recruiter), and you get clean JSON rows for every matching public LinkedIn profile that search engines have indexed. No login, no cookies, no account ban risk.

It is the fastest way to build a targeted B2B lead list of the people at a specific company. Use it to source candidates, prospect decision-makers, map an org, or feed AI agents that need people data.

✅ No login required | ✅ No cookies | ✅ Pay only for delivered profiles | ✅ MCP-ready for AI agents

Guide and FAQs: LinkedIn Employees Scraper on themineworks.com. Tutorial: Scrape LinkedIn Employees Without Sales Navigator.

Who is it for?

Sales teams turning an ICP account list into a contactable people list. Recruiters mapping who does what at a competitor. ABM marketers enriching named accounts with real titles. Anyone feeding an AI agent that needs people data and cannot use a seat-licensed sales tool.

How much does it cost to scrape LinkedIn employees?

You pay per profile actually delivered. Nothing else: no subscription, no seat licence, no monthly minimum, no per-run start fee.

Apify planPrice per 1,000 profiles
Free$7.50
Bronze$6.10
Silver$4.95
Gold and above$4.00

The Pricing tab on this page is the single source of truth and always shows the rate for your own plan. If this table and the Pricing tab ever disagree, the Pricing tab is right.

What a real job costs. Apify's Free plan includes $5 of usage credit every month. That is roughly 660 profiles a month at no cost to you. A 250 profile prospecting pull costs about $1.00 on Gold. A 5,000 profile market sweep costs about $20.00 on Gold.

What is never charged. Empty searches, blocked pages, and failed runs cost nothing. The charge event fires only after a profile record is in your dataset. A run that delivers nothing bills nothing.

How does it work without logging in to LinkedIn?

The actor searches for public LinkedIn profile pages using site-restricted search queries, reads the results, and extracts the person's name, headline, and location from the result snippet. It tries Brave first and falls back to Google, so a change at one search engine does not take the actor offline.

Because it never authenticates with LinkedIn, never touches LinkedIn's own servers, and never uses cookies, there is no ban risk on your side. The search index is the source of truth for what LinkedIn has chosen to expose publicly, and this actor reads that public surface at scale.

Every delivered row is checked against the company you asked for. A profile whose headline names a different employer is dropped rather than billed, so you are not charged for people who merely mention the company somewhere on their page.

🧾 What input does it take?

{
"companyName": "Stripe",
"jobTitle": "engineer",
"maxResults": 50
}
InputRequiredWhat it does
companyNameYesThe company whose employees you want, for example Stripe or Tata Consultancy Services
jobTitleNoRole keyword to narrow results, for example engineer, sales, recruiter
maxResultsNoCaps how many profiles are returned, which is how you cap cost

📤 What data do you get back?

Six real records from a single live run against companyName: "Stripe", jobTitle: "engineer", showing the range of headlines and locations a real batch returns:

[
{
"name": "Kara M. Saaty",
"headline": "Software Engineer, Stripe",
"company": "Stripe",
"location": "San Francisco Bay Area",
"linkedin_url": "https://www.linkedin.com/in/karasaaty",
"source_query": "site:linkedin.com/in \"Stripe\" engineer",
"scraped_at": "2026-09-09T01:11:02.390Z"
},
{
"name": "Daniel Okoye",
"headline": "Senior Software Engineer at Stripe",
"company": "Stripe",
"location": "Dublin, County Dublin, Ireland",
"linkedin_url": "https://www.linkedin.com/in/daniel-okoye-stripe",
"source_query": "site:linkedin.com/in \"Stripe\" engineer",
"scraped_at": "2026-09-09T01:11:04.775Z"
},
{
"name": "Meera Iyer",
"headline": "Backend Engineer, Payments Infrastructure, Stripe",
"company": "Stripe",
"linkedin_url": "https://www.linkedin.com/in/meera-iyer-eng",
"source_query": "site:linkedin.com/in \"Stripe\" engineer",
"scraped_at": "2026-09-09T01:11:07.118Z"
},
{
"name": "James Chen",
"headline": "Engineering Manager, Core Payments at Stripe",
"company": "Stripe",
"location": "Seattle, Washington, United States",
"linkedin_url": "https://www.linkedin.com/in/james-chen-eng-mgr",
"source_query": "site:linkedin.com/in \"Stripe\" engineer",
"scraped_at": "2026-09-09T01:11:09.442Z"
},
{
"name": "Aisha Bello",
"headline": "Site Reliability Engineer, Stripe",
"company": "Stripe",
"location": "London, England, United Kingdom",
"linkedin_url": "https://www.linkedin.com/in/aisha-bello-sre",
"source_query": "site:linkedin.com/in \"Stripe\" engineer",
"scraped_at": "2026-09-09T01:11:12.007Z"
},
{
"name": "Priya Nair",
"headline": "Staff Software Engineer at Stripe",
"company": "Stripe",
"location": "Bengaluru, Karnataka, India",
"linkedin_url": "https://www.linkedin.com/in/priya-nair-stripe",
"source_query": "site:linkedin.com/in \"Stripe\" engineer",
"scraped_at": "2026-09-09T01:11:14.559Z"
}
]

Every employee record contains these fields:

FieldDescription
🙋 nameFull name of the employee
💼 headlineLinkedIn headline, title and company, as shown in the search result
📍 locationLocation parsed from the result snippet
🏢 companyCompany name used to search for this employee
🔗 linkedin_urlCanonical LinkedIn profile URL (https://www.linkedin.com/in/<slug>)
🔎 source_querySearch query that returned this result
🕒 scraped_atISO timestamp when the record was captured

location is included only when it is present in the result snippet. When it is not, the field is dropped rather than sent as null.

Every run also ends with a final _type: "info" record. It is informational only and never billed.

What are the limitations?

Worth knowing before you buy, so there are no surprises:

  • Coverage is public search visibility, not an org chart. You get the employees whose public profiles are indexed for that company. Treat the result as a strong sample, not an exhaustive staff list.
  • Fields come from the search snippet, not the full profile. You get name, headline, location and URL. For experience, education and skills, chain the LinkedIn Profile Scraper onto these URLs.
  • Common company names need a narrower query. A short or generic company name matches more unrelated people, and the company check drops them, so delivered volume can be lower than maxResults. Adding a jobTitle helps.
  • No emails or phone numbers. This actor returns profile data. For contact details use B2B Leads Finder.

💼 What can you use it for?

Sales prospecting. Build a list of engineers, sales reps, or ops leaders at any target account in minutes. Turn an ICP account list into a contactable people list without a data subscription.

Recruiting and sourcing. Find every engineer at a competitor and open a direct outreach thread. Map senior IC and manager roles in a specific team across a market.

Account-based marketing. Enrich named accounts with the people and titles behind each company. Discover champions and decision-makers at accounts you already own.

Competitive and talent intelligence. Track who joined a competitor recently, in which function, at which seniority. Build an org chart proxy from public LinkedIn headlines.

🚀 How do I get started?

  1. Open the actor and enter a companyName, for example Stripe.
  2. Optionally add a jobTitle keyword to narrow results.
  3. Set maxResults to control cost.
  4. Click Start.
  5. Download as JSON, CSV, or Excel, or pull the dataset via API or MCP.

🔁 Can I run it on a schedule?

Yes, with Apify's built-in Schedules. No code and no cron server of your own.

  1. Run the actor once with the input you want repeated, then click Save as a task at the top of the run form. This keeps your exact input attached for every future run.
  2. In the Apify Console, go to Schedules in the left sidebar, then Create new.
  3. Name it, set your timezone, and pick a frequency: a preset (hourly, daily, weekly) or a cron expression such as 0 6 * * * for daily at 6am.
  4. Under Actors or tasks to run, add the task you saved in step 1.
  5. Save. It then runs unattended, billed the same pay-per-profile way as a manual run. Nothing is charged just for the schedule existing.

Prefer to automate the setup itself? Same thing via the API:

curl -X POST "https://api.apify.com/v2/schedules?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "linkedin-employees-daily",
"cronExpression": "0 6 * * *",
"isEnabled": true,
"actions": [{ "type": "RUN_ACTOR", "actorId": "themineworks/linkedin-employees" }]
}'

Full options, including time zones, run notifications and pausing, are in Apify's Schedules documentation.

This actor reads only pages that LinkedIn has made publicly visible and that search engines have already indexed. It does not log in, does not use cookies, and does not access anything behind an authentication wall.

Courts in the United States have addressed public profile scraping directly. In hiQ Labs v. LinkedIn, the Ninth Circuit held that scraping publicly accessible data does not violate the Computer Fraud and Abuse Act. That said, this is general information and not legal advice. You remain responsible for how you use the data, including your obligations under GDPR, CCPA and similar laws when processing personal data.

FAQ

Does it log in to LinkedIn? No. It reads only public LinkedIn profiles that search engines have already indexed. It never authenticates, never uses cookies, and never touches LinkedIn's own servers.

Am I charged for a run that finds nothing? No. Empty searches, blocked pages, and failed runs are never charged. The charge event fires only once a profile record is actually in your dataset.

Why is my result count lower than maxResults? Because every row is checked against the company you asked for, and profiles belonging to a different employer are dropped instead of billed. maxResults is a ceiling, not a promise.

Can I use it in an AI agent? Yes. It is exposed as an MCP tool. See the section below.

Can I use LinkedIn Employees Scraper through an MCP server? Yes. It is exposed as an MCP tool, so any MCP-compatible AI assistant, Claude, ChatGPT, or your own agent, can call it directly. See "Use in Claude, ChatGPT and any MCP agent" below for the paste-ready prompt and setup.

🤖 Use in Claude, ChatGPT and any MCP agent

Add it to Claude Code in one line:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=themineworks/linkedin-employees"

Or point any MCP client at:

https://mcp.apify.com/?tools=themineworks/linkedin-employees

Things an agent can ask for once connected:

  • "Find 50 engineers at Stripe and return their LinkedIn URLs."
  • "List the recruiters at Notion."
  • "Get sales leaders at these five companies and put them in a table."

Copy this into your AI assistant

Paste the line below into ChatGPT, Claude, or any assistant connected to Apify's MCP, and it will run the job for you:

Use the Apify actor themineworks/linkedin-employees to find 50 engineers at Stripe and return their name, headline, location, and LinkedIn URL. Return the results as a table.

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/linkedin-employees').call({
companyName: 'Stripe',
jobTitle: 'engineer',
maxResults: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Found the people. Now enrich and reach them:

Typical flow: this actor finds the people, LinkedIn Profile Scraper enriches each one, B2B Leads Finder adds emails and titles.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page.