# LinkedIn Employees Finder (No Login) (`blueskyscraper/linkedin-employees-finder`) Actor

Find people who work at any company on LinkedIn without login or cookies: full name, headline, job title, location, profile URL and a current-employee flag, filtered by job title and location. Optional full profile with experience and education. Export to CSV/JSON, API or schedule.

- **URL**: https://apify.com/blueskyscraper/linkedin-employees-finder.md
- **Developed by:** [BlueskyScraper](https://apify.com/blueskyscraper) (community)
- **Categories:** Lead generation, Social media, Agents
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.68 / 1,000 employees

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Find the people who work at any company on LinkedIn — **without a LinkedIn account, cookies or login**. Type company names (or paste LinkedIn company URLs), optionally add job titles and locations, and get one row per employee: name, headline, job title, location, profile URL and a clear **current employee** flag. Turn on the add-on to get each person's full public profile with experience and education.

### Tested head-to-head — 18 Oct 2026

![LinkedIn Employees Finder tested head-to-head with the five most-used LinkedIn company-employee Actors](https://raw.githubusercontent.com/lergassy/apify-actor-assets/main/benchmarks/linkedinemployees-tested-2026-10-18.png)

Same request for every Actor: 20 software engineers at Stripe:

| | This Actor | Five most-used LinkedIn employee Actors |
|---|---|---|
| Employees returned (20 asked) | 20 | 0 (empty, "Succeeded") to 20 |
| Seconds | 39 | 7–92 |
| Start fee per run | None | None to $0.02 |
| Price per 1,000 employees (free plan, as charged) | $2.40 | $4.00–$7.25 |
| LinkedIn login or cookies | Not needed | Not needed (one takes cookies optionally) |

Slower than the fastest (people are found through Google's public index, searches queue for 10–40 s), cheapest per employee delivered, and the only one of the six with no start fee.

### What is LinkedIn Employees Finder?

A lead-list and recruiting tool that answers "who works at Stripe as a software engineer?" or "show me HubSpot's account executives in London". It searches **Google's public index of LinkedIn profiles** (the "X-ray search" recruiters do by hand with `site:linkedin.com/in "Stripe" "software engineer"`), runs dozens of query variants for you, keeps only real profile pages, removes duplicates, and decides from LinkedIn's own `Experience:` field and the headline whether the person still works there.

- **No login, no cookies, no account at risk** — the data comes from public search results.
- **Company names or LinkedIn company URLs** — `Stripe` or `https://www.linkedin.com/company/stripe`.
- **Filters**: job titles, locations, Google country edition.
- **Current vs former**: only current employees by default; former ones on request, marked `isCurrentEmployee: false`.
- **Optional full profile** (paid add-on): experience with dates, education, about, followers, city and country — and a live re-check of the current employer.

### What data can it extract?

| Field | Meaning |
|---|---|
| `fullName`, `firstName`, `lastName` | The person's name as shown on LinkedIn |
| `headline` | LinkedIn headline as Google indexed it ("Staff Software Engineer at Stripe") |
| `jobTitle` | Title at the company, taken from the headline or the snippet ("Staff Software Engineer") |
| `company`, `companyMatched` | The company you asked for, and how it is written on the profile |
| `isCurrentEmployee`, `matchedBy` | Works there now (true/false) and the evidence: `experience` (LinkedIn's "Experience:" field), `headline`, `experience-list`, `snippet`, `profile` (checked on the live profile), `past`, `other-current` |
| `currentCompanyOnLinkedin` | The company in LinkedIn's own "Experience:" field, when Google shows it |
| `location`, `school` | Location and school from the profile snippet, when shown |
| `linkedinUrl`, `publicIdentifier` | Profile URL and slug (`archanaasok`) |
| `snippet`, `searchQuery`, `googleRank` | The Google snippet, the query that found the person and the position |
| **Full-profile add-on** | `currentCompany`, `currentTitle`, `companyLinkedinUrl`, `about`, `followers`, `connections`, `city`, `region`, `countryCode`, `profileLocation`, `experience[]`, `education[]`, `languages`, `website`, `imageUrl` |

### How much does it cost?

Pay per result — nothing for the run itself.

| Event | Price (free plan) | |
|---|---|---|
| Employee found | **$0.0024** | one row = one person = one charge |
| Add-on: full profile | **$0.003** | only when the profile was actually read |

- That is **about 415 employees per $1**, or about 185 per $1 with the full profile. Apify's $5 monthly free credit covers ~2,000 employees.
- Bronze, Silver and Gold subscribers pay 10–30% less per event.
- **Free**: companies that return nobody (you get a notice row saying so), invalid input, former employees the run filters out, and full profiles that do not open.
- "Max cost per run" is respected: the run stops by itself, green, once the rows you allowed are delivered.

### How to find employees of a company on LinkedIn

1. Click **Try for free**.
2. Type one or more **companies** — names or LinkedIn company URLs.
3. Optionally add **job titles** (e.g. `software engineer`, `account executive`) and **locations** (e.g. `London`).
4. Set **Max people per company** and press **Start**.
5. Download the results as CSV, Excel or JSON, or read them through the API.

### ⬇️ Input

```json
{
  "companies": ["Stripe", "https://www.linkedin.com/company/hubspot"],
  "jobTitles": ["software engineer"],
  "locations": ["San Francisco"],
  "maxResultsPerCompany": 100,
  "includeFormerEmployees": false,
  "includeFullProfile": false,
  "searchCountry": "United States"
}
```

| Field | Required | Description |
|---|---|---|
| `companies` | yes | Company names or LinkedIn company URLs |
| `jobTitles` | no | Only people whose headline or snippet names one of these titles |
| `locations` | no | Cities, regions or countries; each is searched separately |
| `maxResultsPerCompany` | no | Default 100, up to 1,000 |
| `includeFormerEmployees` | no | Also return people who left (`isCurrentEmployee: false`) |
| `includeFullProfile` | no | Paid add-on: full public profile for every person |
| `searchCountry` | no | Google country edition (ranking only) |

### ⬆️ Output

```json
{
  "type": "employee",
  "fullName": "Archana Asokan",
  "firstName": "Archana",
  "lastName": "Asokan",
  "headline": "Staff Software Engineer at Stripe",
  "jobTitle": "Staff Software Engineer",
  "company": "Stripe",
  "companyMatched": "Stripe",
  "isCurrentEmployee": true,
  "matchedBy": "experience",
  "currentCompanyOnLinkedin": "Stripe",
  "location": "San Francisco",
  "school": "Coimbatore Institute of Technology",
  "linkedinUrl": "https://www.linkedin.com/in/archanaasok",
  "publicIdentifier": "archanaasok",
  "snippet": "Staff Software Engineer at Stripe · Experience: Stripe · Education: Coimbatore Institute of Technology · Location: San Francisco · 500+ connections on LinkedIn…",
  "searchQuery": "site:linkedin.com/in \"Stripe\" \"software engineer\"",
  "googleRank": 10,
  "scrapedAt": "2026-10-05T06:14:26.398Z"
}
```

A company that returns nobody gets one free row: `{"type": "notice", "kind": "no-results", "company": "…", "notice": "…"}`. The run's `SUMMARY` record shows, per company, how many searches ran, how many results were dropped (former employees, other titles) and why the search stopped.

### Use cases

#### Sales prospecting and ABM

Build a contact list for target accounts: the account executives, heads of marketing or engineering managers at each company on your list. Add **LinkedIn Email Finder** for work e-mails.

#### Recruiting and sourcing

Map a competitor's engineering team by title and city, or find everyone who left a company recently (`includeFormerEmployees`).

#### Market and competitor research

See how a company's team is spread across functions and locations, and track hiring over time with a scheduled run.

#### AI agents and data pipelines

One call, many companies: an agent can pass a list of companies and titles and get clean JSON back through the Apify API or the Apify MCP server.

### Integrations

Use the Apify API (REST, Python and JavaScript clients), schedule runs, and connect the results to Google Sheets, n8n, Make, Zapier, LangChain, webhooks or the Apify MCP server for AI agents.

### Troubleshooting

- **Fewer people than the limit?** Google's index holds a limited number of findable profiles per query. Add job titles or locations — each one opens a new set of searches — or check the `SUMMARY` record to see why the search stopped.
- **A company returns nobody?** Use the name people write in their headline ("Meta", not "Meta Platforms, Inc."). Very common words as company names ("Apple", "Target") work best together with job titles.
- **Someone shows up who has just left?** The search reflects Google's index, which can lag behind a job change by weeks. Turn on the full-profile add-on to re-check each person's current employer on the live profile.

### ❓ FAQ

#### Do I need a LinkedIn account or cookies?

No. No LinkedIn account is needed and nothing logs in to LinkedIn: the people come from public search results, and the optional full profile is the public page that logged-out visitors see.

#### Is it legal to scrape LinkedIn employees?

The Actor only collects data that people have made public and that search engines show to anyone. The rows are still personal data: under GDPR, CCPA and similar laws you need a lawful basis to process them, must respect opt-outs and should follow LinkedIn's terms. Use it for legitimate business purposes.

#### How fresh is the data?

As fresh as Google's index of LinkedIn — usually days to weeks. That is why every row says how the current employer was decided (`matchedBy`), and why the full-profile add-on re-checks it on the live profile.

#### How many employees can I get per company?

Each Google search returns up to 10 profiles, and the Actor runs many query variants (titles, seniority levels, functions, locations) until results dry up. For large companies use job titles and locations to go past a few hundred people.

#### Does it return e-mails or phone numbers?

No. Use **LinkedIn Email Finder** for work e-mails.

### Limitations

- Freshness follows Google's index; people who changed jobs very recently may still appear as current (use the full-profile add-on to re-check).
- Large companies need more queries: add job titles and locations to reach beyond the first few hundred people.
- Profiles hidden from search engines cannot be found.
- Snippets sometimes omit location or job title; those fields are then empty, never guessed.

### Your feedback

Found a bug or need a field? Open an issue on the Issues tab — we usually answer within a day. If the Actor saved you time, a short review helps other buyers find it.

### You might also like

| Actor | What it does |
|---|---|
| [LinkedIn Profile Scraper — No Cookies](https://apify.com/lergassy/linkedin-profile-scraper) | Full public profiles from profile URLs |
| [LinkedIn People Search by Name](https://apify.com/lergassy/linkedin-people-search-by-name) | Find people by first and last name |
| [LinkedIn Email Finder](https://apify.com/lergassy/linkedin-email-finder) | Work e-mails for LinkedIn profiles |
| [LinkedIn Company Scraper](https://apify.com/lergassy/linkedin-company-scraper) | Company pages: size, industry, locations, followers |
| [LinkedIn Jobs Scraper](https://apify.com/lergassy/linkedin-jobs-scraper) | Job postings with filters |
| [LinkedIn Posts Scraper](https://apify.com/lergassy/linkedin-posts-scraper) | Latest posts of people and companies |

# Actor input Schema

## `companies` (type: `array`):

Company names or LinkedIn company URLs, one per line — <b>Stripe</b> or <b>https://www.linkedin.com/company/hubspot</b>. Use the name people write in their headline ("Meta", not "Meta Platforms, Inc."). One row and one charge per person found; a company with no matches gets a free notice row.

## `jobTitles` (type: `array`):

Optional. Only people whose headline or profile snippet names one of these titles — e.g. <b>software engineer</b>, <b>account executive</b>, <b>recruiter</b>. Leave empty to find everyone at the company.

## `locations` (type: `array`):

Optional. Cities, regions or countries to add to the search — e.g. <b>London</b>, <b>San Francisco</b>, <b>Germany</b>. Each location is searched separately, so more locations also means more results.

## `maxResultsPerCompany` (type: `integer`):

Stop after this many people per company. Google's index usually holds a few hundred findable profiles per company and title; large companies need job titles or locations to go deeper.

## `includeFormerEmployees` (type: `boolean`):

Also return people who used to work at the company ("ex-Stripe", former, or whose current employer on LinkedIn is another company), marked isCurrentEmployee = false. Off: only current employees are returned and charged.

## `includeFullProfile` (type: `boolean`):

Paid add-on: opens each person's public LinkedIn profile and adds experience with dates, education, about, followers, connections, city and country, and re-checks the current employer. Charged per profile actually read; a profile that does not open is free.

## `searchCountry` (type: `string`):

Which Google to search (country edition). It changes the ranking, not the people you can find — pick the country where most of the people you want live.

## Actor input object example

```json
{
  "companies": [
    "Stripe"
  ],
  "jobTitles": [
    "software engineer"
  ],
  "maxResultsPerCompany": 10,
  "includeFormerEmployees": false,
  "includeFullProfile": false,
  "searchCountry": "United States"
}
```

# Actor output Schema

## `results` (type: `string`):

One row per person: name, headline, job title, company, current-employee flag, location, LinkedIn URL; full profile fields with the add-on.

## `runSummary` (type: `string`):

Per company: people delivered, searches made, rows filtered out (former employees, other titles) and why the search stopped.

## `notAttempted` (type: `string`):

Companies the run did not finish before its timeout. Present only when the run stopped early.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "Stripe"
    ],
    "jobTitles": [
        "software engineer"
    ],
    "maxResultsPerCompany": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("blueskyscraper/linkedin-employees-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "companies": ["Stripe"],
    "jobTitles": ["software engineer"],
    "maxResultsPerCompany": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("blueskyscraper/linkedin-employees-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "Stripe"
  ],
  "jobTitles": [
    "software engineer"
  ],
  "maxResultsPerCompany": 10
}' |
apify call blueskyscraper/linkedin-employees-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,blueskyscraper/linkedin-employees-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VoYspdfZ3Ug569OPy/builds/T35wbSL6heeZjsche/openapi.json
