# LinkedIn Company Employees Scraper - Cheap & No Cookies (`codetr/linkedin-company-employees-scraper-cheap-no-cookies`) Actor

Find public LinkedIn employee candidates for a company using company name, aliases, country, and target result count. The Actor returns clean, deduplicated profile leads with name, title, matched company, LinkedIn URL, confidence score, and run status.

- **URL**: https://apify.com/codetr/linkedin-company-employees-scraper-cheap-no-cookies.md
- **Developed by:** [Yusuf Barış](https://apify.com/codetr) (community)
- **Categories:** Jobs, Automation, Lead generation
- **Stats:** 44 total users, 8 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 4.50 out of 5 stars

## Pricing

from $1.00 / 1,000 results

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

## LinkedIn Company Employees Scraper – Cheap & No Cookies

Get a list of employees of any company from LinkedIn: **name, job title, LinkedIn profile URL and location**. No LinkedIn account, no cookies, no login. **$2 per 1,000 employees found.**

Paste company names or LinkedIn company URLs, optionally filter by job title, press **Start**, download the list as Excel, CSV or JSON.

### What you can use it for

- **Sales prospecting** – find the decision makers (CEO, Head of Sales, Purchasing Manager…) at your target accounts.
- **Recruiting** – map a competitor's team and find candidates by job title.
- **Account-based marketing** – build a contact list for every company in your ABM list in one run.
- **Market research** – see which roles and teams a company has.

### Features

- ✅ **Company name or LinkedIn company URL** – `Stripe` or `https://www.linkedin.com/company/stripe/`
- ✅ **Many companies in one run** – one per line
- ✅ **Job title filter** – e.g. `CEO`, `Sales`, `Marketing Manager`
- ✅ **Country focus** – keep results in one country when the company name is common
- ✅ **No cookies, no LinkedIn account** – nothing to set up, nothing to get banned
- ✅ **Clean data** – duplicates removed, company pages filtered out, confidence score on every row
- ✅ **Results saved as they are found** – nothing is lost if you stop the run early

### What you get

| Field | Example |
|---|---|
| `company` | Stripe |
| `name` | Jane Doe |
| `title` | Head of Sales |
| `companyMatched` | Stripe |
| `linkedinUrl` | https://www.linkedin.com/in/janedoe/ |
| `location` | Dublin, Ireland |
| `confidence` | 0.92 |

`confidence` (0–0.99) shows how sure the Actor is that the person works at the company. Sort by it and keep 0.7+ for the cleanest list.

### How to use

1. **Companies** – one per line. Use the full name as it appears on LinkedIn (`Marti Technologies`, not `Marti`) or paste the LinkedIn company URL. To add other names of the same company, separate them with `|`: `Stripe | Stripe Inc`.
2. **Job titles** (optional) – only people whose title contains one of these words are returned.
3. **Employees per company** – how many people you want for each company.
4. **Country** (optional) – use it when the company name is common.
5. Press **Start**.

#### Input example

```json
{
  "companies": [
    "Stripe",
    "https://www.linkedin.com/company/hubspot/",
    "Marti Technologies | Marti Teknoloji"
  ],
  "jobTitles": ["Sales", "Marketing"],
  "maxResults": 100
}
```

#### Output example

```json
{
  "company": "Stripe",
  "name": "Jane Doe",
  "title": "Head of Sales",
  "companyMatched": "Stripe",
  "linkedinUrl": "https://www.linkedin.com/in/janedoe/",
  "location": "Dublin, Ireland",
  "confidence": 0.92
}
```

### How much does it cost?

You pay per employee found: **$2 per 1,000 employees**, plus a small fee per run.

The Actor finds people with Google searches. These searches run on your Apify account and cost about **$0.0005 per search page** (roughly $0.10 per 1,000 employees), billed by Apify on top of the price above.

| Employees | Approx. cost |
|---|---|
| 100 | $0.20 |
| 1,000 | $2 |
| 10,000 | $20 |

Set **Maximum cost per run** in the run options and the Actor stops by itself when it is reached – you never pay more than you set.

**Free Apify plan:** you can try the Actor with **5 employees per day** (a limit set by the Actor developer, not Apify). Upgrade to any paid Apify plan for unlimited results. Free plans also have a daily/monthly limit on Google searches – when it is used up, the Actor stops, keeps everything found so far and tells you in the run status.

### Why this Actor?

- **Cheap** – a fraction of the price of full-profile LinkedIn scrapers.
- **Simple** – one company name is enough to start.
- **Safe** – no cookies, no LinkedIn account.

Need full profiles (experience, education, skills)? Use this Actor to find the right people first, then enrich only the profiles you need – much cheaper than scraping full profiles for a whole company.

### FAQ

**Do I need a LinkedIn account or cookies?**
No. The Actor only uses public information.

**Will I get every employee?**
No tool gets 100%. You get the employees whose public profiles can be found. Big companies usually return hundreds to thousands of profiles; very small companies may return only a few. Adding aliases (legal name, local name) finds more.

**Does it return emails or phone numbers?**
No. It returns public profile data only.

**Why is someone in the list not a current employee?**
Public profiles are sometimes outdated. Use the `confidence` field and check the `title` to filter.

**Why did I get only 5 employees?**
You are on Apify's free plan. Free plan users get 5 results per day from this Actor. The limit resets every day at 00:00 UTC. Upgrade to a paid Apify plan to remove it.

**The run stopped with "search quota used up". What does it mean?**
You are on Apify's free plan and its free Google searches for the day/month are used up. Everything found before that is saved in the dataset. Upgrade to a paid Apify plan or run again when your quota resets.

**Can a run fail?**
The Actor is built to always finish successfully. If a search cannot complete, it stops, saves what it found and explains why in the run summary.

**Can I run it from my code or from Make / Zapier / n8n?**
Yes. Use the Apify API, the Apify client for JavaScript/Python, or the Apify integrations for Make, Zapier and n8n.

**Is scraping LinkedIn legal?**
The Actor collects only publicly available data. You are responsible for using it in line with GDPR and other laws that apply to you. If unsure, ask a lawyer.

### Run summary

The run summary (`RUN_SUMMARY` in the key-value store, also in the **Output** tab) shows the result for every company:

- `target_reached` – the requested number of employees was found.
- `partial_results` – fewer employees were found than requested; no more public profiles were available.
- `run_limit_reached` – the search limit was reached. Add aliases or a country to find more.
- `charge_limit_reached` – your maximum cost per run was reached.
- `free_plan_daily_limit` – free Apify plan users get 5 results per day. Upgrade to remove the limit.
- `search_limit_reached` – the free Google search quota on your Apify account is used up (free plans only).
- `time_limit_reached` – the run was close to its timeout and stopped early. Increase the timeout in Run options.
- `no_results` – no matching employees were found. Check the company name.
- `search_error` – the search could not finish. Run it again.

### Support

Found a bug or need a feature? Open an issue on the **Issues** tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/codetr/linkedin-company-employees-scraper-cheap-no-cookies/changelog.md

# Actor input Schema

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

One company per line: a company name (e.g. "Stripe") or a LinkedIn company URL (e.g. https://www.linkedin.com/company/stripe/). Use the full name as it appears on LinkedIn. To add other names for the same company, separate them with | e.g. "Stripe | Stripe Inc".

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

Only return people whose job title contains one of these words, e.g. CEO, Sales, Marketing Manager, Engineer. Leave empty to get everyone.

## `maxResults` (type: `integer`):

Maximum number of employees to return for each company.

## `country` (type: `string`):

Use it when the company name is common, to keep results in the right country, e.g. "Germany".

## `countryCode` (type: `string`):

Two-letter country code, e.g. US, GB, DE, TR. Focuses the search on that country's LinkedIn profiles.

## `languageCode` (type: `string`):

Two-letter language code for the search, e.g. en, de, tr.

## `companyAliases` (type: `array`):

Other names of the company: legal name, local-language name, old brand name. Used only when you search one company. For several companies use the | separator in the Companies field.

## `findAllEmployees` (type: `boolean`):

Keep searching until no more public profiles are found, up to "Employees per company".

## `searchDepth` (type: `integer`):

Upper limit on search queries per company. Higher can find more employees but takes longer.

## `companyName` (type: `string`):

Kept for older API integrations. Use the Companies field instead.

## Actor input object example

```json
{
  "companies": [
    "Stripe"
  ],
  "maxResults": 50,
  "findAllEmployees": false,
  "searchDepth": 50
}
```

# Actor output Schema

## `employeeCandidates` (type: `string`):

Dataset with the employees found.

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

Run-level status and result summary.

# 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"
    ],
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("codetr/linkedin-company-employees-scraper-cheap-no-cookies").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"],
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("codetr/linkedin-company-employees-scraper-cheap-no-cookies").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"
  ],
  "maxResults": 50
}' |
apify call codetr/linkedin-company-employees-scraper-cheap-no-cookies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codetr/linkedin-company-employees-scraper-cheap-no-cookies"
        }
    }
}
```

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/8hQkRJNbCHMnRhnyM/builds/FtuKb5fybm6LNhvlj/openapi.json
