# LinkedIn Company Employees Scraper: Staff by Title, No Login (`themineworks/linkedin-employees`) Actor

LinkedIn employees scraper: type a company and an optional job title and get the public LinkedIn profiles of people who work there, with name, headline, location and profile URL. Every profile is checked against the company. No LinkedIn account, cookies or Sales Navigator.

- **URL**: https://apify.com/themineworks/linkedin-employees.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Lead generation, Social media, MCP servers
- **Features:** Limited permissions
- **Stats:** 94 total users, 14 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $4.00 / 1,000 profiles

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 Employees Scraper | Staff by Title, No Login

[![10 Notion recruiters, all at Notion](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/linkedin-employees-hero.png)](https://console.apify.com/actors/w9KGjGr8uJ9yd3EFs/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 290,000 runs across our actors.

Type a company name, optionally a role such as `engineer` or `sales`, and get the public LinkedIn profiles of people who work there: name, headline, location when shown, and profile URL. The actor finds them through web search at run time and checks each one against the company you named, so there is no LinkedIn login, no cookie and no account at risk.

### Why choose this actor?

- **A company's people in about two minutes.** A test run on 30 September returned 10 Notion recruiters in 108 seconds, every one at Notion, each with a name, headline and public profile URL. Up to 1,000 profiles per run.
- **No LinkedIn account, cookies or Sales Navigator seat.** The actor never logs in and never opens linkedin.com; it reads public profiles that search engines have indexed. The proxies it uses are included.
- **Wrong company matches are dropped before you pay.** A profile whose headline names a different employer, or only mentions the company as a former job, is filtered out and never charged. Monitor mode never bills the same person twice.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/w9KGjGr8uJ9yd3EFs/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works LinkedIn family:** [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Email Finder](https://apify.com/themineworks/linkedin-email-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Newsletter Scraper](https://apify.com/themineworks/linkedin-newsletter-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Candidate Finder](https://apify.com/themineworks/linkedin-candidate-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the JSON tab of the input form and press Start:

```json
{
  "companyName": "Stripe",
  "jobTitle": "engineer",
  "maxResults": 10
}
```

Give the company as a plain name (`Stripe`, `Tata Consultancy Services`), a name with a legal suffix (`Stripe, Inc.` or `Freshworks Technologies Pvt Ltd`, the suffix is stripped for you), a domain (`stripe.com`, read as `stripe`), or a LinkedIn company URL (`https://www.linkedin.com/company/stripe`, the slug is used as the name). Generic endings such as `Technologies` or `India` are also matched without them, so `Freshworks Technologies` finds people whose headline says `Freshworks`. `jobTitle` is a single role keyword. One company per run.

Apify's free plan includes $5 of credit every month, which covers about 650 profiles at this actor's Free plan price ($0.0075 a profile plus $0.005 a run, in runs of 50 profiles).

#### Copy to your AI assistant

Paste this block into ChatGPT, Claude, Cursor or any assistant that can write code, and it can run the actor for you.

```
themineworks/linkedin-employees on Apify. Finds public LinkedIn profiles of people at one company through web search, with no login or cookies, and returns name, headline, location when shown, and profile URL. Call ApifyClient("TOKEN").actor("themineworks/linkedin-employees").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: companyName (string: a company name, domain or LinkedIn company URL). Optional: jobTitle (string, one role keyword such as "engineer"; it steers the first search, and later searches broaden to other roles if more are needed, so filter on headline), maxResults (integer 1 to 1000, default 50), monitorMode (boolean, default false), proxyConfiguration (used only for the Brave backup search; default GOOGLE_SERP, which the actor replaces with Apify RESIDENTIAL; Google searches always run on the actor's own GOOGLE_SERP access). Rows with _type "summary" or "info" are run reports. Full spec: GET https://api.apify.com/v2/acts/themineworks~linkedin-employees/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **7 fields per profile.** `name`, `headline`, `company`, `location` (when the search result shows it), `linkedin_url`, `source_query` and `scraped_at`.
- **Up to 1,000 profiles per run.** Set `maxResults` from 1 to 1,000; the default is 50. Large companies fill it more easily than small ones.
- **13 searches planned per company.** The first uses your `jobTitle`, the second the company alone, then 11 or 12 common roles (engineer, manager, director, sales, marketing, product, recruiter, designer, analyst, operations, finance, lead) until `maxResults` is reached. Each search stops at the first page that brings nobody new, or after two pages in a row with fewer than 2 new people, and the plan stops once two broadening searches in a row bring fewer than 2 new people each. `source_query` tells you which search found each person.
- **A company check on every profile.** A profile is kept only if its headline or snippet names the company as the current employer, or Google's summary line under the result names it as the current employer. Former employees ("ex Stripe", "x-Stripe"), people whose summary line shows another current employer, people who list the company as a tool they use ("Canva Designer" with no sign they work there), other firms with a similar name and company pages are dropped and not charged; the summary counts them in `filtered_wrong_company`.
- **Monitor mode for schedules.** With `monitorMode` on, the actor remembers up to 50,000 people it has delivered to your account and returns only new ones on later runs. A search stops at the first result page where everyone at the company was already delivered, and the run stops once two searches in a row bring nobody new, so a repeat run that finds nobody new costs very little. On a large company later runs still work deeper through the roster.
- **Google first, Brave as backup.** Each search goes to Google through Apify's GOOGLE_SERP proxy, and a result is opened only after it passes the company check. If Google fails on a search's first page, Brave answers that search. Once Brave has also refused 12 requests in a row, the actor buys up to 6 Google searches on our own account, so none of it appears on your bill.

### How to use it

#### Basic: everyone the search can find at one company

```json
{
  "companyName": "Datadog",
  "maxResults": 100
}
```

With no `jobTitle`, the actor searches the company on its own first, then role by role, until it holds `maxResults` people or runs out of searches. `maxResults` is a ceiling: a small company may have only a handful of indexed profiles.

#### One role at one company

```json
{
  "companyName": "Datadog",
  "jobTitle": "sales",
  "maxResults": 25
}
```

The first search is `site:linkedin.com/in "Datadog" sales` on Google (`"Datadog" sales linkedin.com/in` if it goes to Brave). If it yields fewer than `maxResults` people, or if the search engine refuses it, the actor broadens to the company alone and to other roles to fill the count. So `jobTitle` puts the role first; it does not guarantee every row has that role. In one of our runs, `jobTitle: "marketing"` at Notion was refused twice and the 10 people delivered came from the engineer search. Keep `maxResults` close to what you expect, check `source_query`, and filter `headline` on your side when the role matters.

#### Several companies

The actor takes one company per run. For a list, start one run per company from the API, Make or n8n, or save one task per company and run them together. Each run costs its own $0.005 start fee, so keep each run's `maxResults` meaningful.

#### Weekly new-joiner watch on a competitor

```json
{
  "companyName": "Ramp",
  "jobTitle": "sales",
  "maxResults": 200,
  "monitorMode": true
}
```

Save it as a task and schedule it weekly (Apify Console, Schedules, cron `0 7 * * 1` for Mondays at 7:00). The first runs work through the company's indexed profiles; after that you receive only people you have not been sent before. A run with nothing new charges no profiles, only the $0.005 run fee. Keep `companyName` and `jobTitle` the same between runs.

#### Build an outreach list with emails

Run this actor for the people, then give the company's domain to our [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), which adds a business email built from the company's own format. For full work history on a shortlist, pass the `linkedin_url` values to our [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Input parameters

| Parameter | Type | Default | What it does |
| --- | --- | --- | --- |
| `companyName` | string | none (prefill `Stripe`) | The company whose employees you want: a name, a domain or a LinkedIn company URL. Legal suffixes are stripped. |
| `jobTitle` | string | none (prefill `engineer`) | One role keyword to search first, such as `engineer`, `sales`, `recruiter` or `product manager`. Empty searches all roles. |
| `maxResults` | integer | 50 | Most profiles to return, 1 to 1,000. |
| `monitorMode` | boolean | false | Return only people not delivered to your account by an earlier monitor mode run. |
| `proxyConfiguration` | object | `GOOGLE_SERP` group | Proxy for the Brave backup search. Google searches always use the actor's own GOOGLE_SERP access and are not affected. A `GOOGLE_SERP` setting (the default) is replaced with Apify's RESIDENTIAL pool, which is included in the price. Another Apify group you name is used as given; with no group, or with Apify proxy switched off, the actor still uses RESIDENTIAL. |
| `debugSnippets` | boolean | false | Internal: logs raw search snippets to help diagnose location parsing. Leave it off. |

### What data do you get?

**Person rows** (one per profile, charged):

- `name`: the name on the public profile, as the search engine shows it (some people show only a first name and initial)
- `headline`: the LinkedIn headline, often "Title at Company", sometimes just the company name
- `company`: the company as the actor searched it, after cleaning your input
- `location`: the location, only when the search result shows one
- `linkedin_url`: the public profile URL, `https://www.linkedin.com/in/<slug>`
- `source_query`: the search that found this person, which tells you whether it came from your `jobTitle` search or a broader one
- `scraped_at`: ISO 8601 timestamp

**Report rows** (never charged): every run ends with a `_type: "summary"` row (`profiles`, `charged_for`, `company`, `job_title`, `search_requests`, `search_refused`, `google_search`, `brave_search`, `engine_pages`, `serp_fallback`, `engine_refused`, `filtered_wrong_company`, `already_delivered_in_earlier_run`, `monitor`, `ended_on_deadline`) and, when profiles were delivered, a `_type: "info"` row. Filter on `_type` to drop both.

What to expect, from our recent runs:

- `location` came back on 5 of 10 profiles in one run, 3 of 10 in another and 0 of 10 in a third. It depends on what the search result snippet shows, and it is sometimes rough (one row read `San Mateo 500+ connections on LinkedIn`).
- `headline` is often just the company name, so it does not always say the person's role.
- No emails, phone numbers, work history or skills: this actor returns what a search result shows. See the recipes above for adding emails or full profiles.
- Fields with no value are left out of the row rather than sent as `null`.

#### Stable fields for automations

These fields were present in every person row we sampled (33 rows across four runs of builds 0.1.56 and 0.1.57), and their names will not change.

| Field | What it holds |
| --- | --- |
| `name` | Full name as shown in the search result |
| `headline` | LinkedIn headline, or the company name when that is all the result shows |
| `company` | The cleaned company name you searched |
| `linkedin_url` | `https://www.linkedin.com/in/<slug>`, a unique key per person |
| `source_query` | The exact search text that returned this person |
| `scraped_at` | ISO 8601 timestamp |

`location` appears when the search result shows one. We may add fields, but we will not rename these.

#### Output examples

Real rows from our own Apify runs. Rows about people who are not public figures are masked here the same way for privacy: initials only, and the profile slug cut short.

Two public figures, from run QNduXzHUtYOug004N (`companyName: "Stripe"`, `jobTitle: "engineer"`). Both came from the broader company search, not the engineer search, which `source_query` shows:

```json
[
  {
    "name": "Patrick Collison",
    "headline": "Stripe CEO",
    "company": "Stripe",
    "linkedin_url": "https://www.linkedin.com/in/patrickcollison",
    "source_query": "\"Stripe\" linkedin.com/in",
    "scraped_at": "2026-09-19T20:25:33.130Z"
  },
  {
    "name": "John Collison",
    "headline": "Stripe",
    "company": "Stripe",
    "linkedin_url": "https://www.linkedin.com/in/johnbcollison",
    "source_query": "\"Stripe\" linkedin.com/in",
    "scraped_at": "2026-09-19T20:25:33.841Z"
  }
]
```

A row with a location, from run GAeNl1atCu3SW0d4y (`companyName: "Datadog"`, `jobTitle: "sales"`), masked:

```json
{
  "name": "K. S.",
  "headline": "Vice President of Sales @ Datadog",
  "company": "Datadog",
  "location": "Boston",
  "linkedin_url": "https://www.linkedin.com/in/k...",
  "source_query": "\"Datadog\" sales linkedin.com/in",
  "scraped_at": "2026-09-19T20:25:20.032Z"
}
```

A row from the proof run 78QX8kzBZ3rWT1P4f (`companyName: "Notion"`, `jobTitle: "marketing"`), masked. The marketing search was refused, so this person came from the engineer search:

```json
{
  "name": "S. K.",
  "headline": "Software Engineer at Notion",
  "company": "Notion",
  "location": "Sunnyvale",
  "linkedin_url": "https://www.linkedin.com/in/s...",
  "source_query": "\"Notion\" engineer linkedin.com/in",
  "scraped_at": "2026-09-19T20:34:34.483Z"
}
```

The summary row from the same run, trimmed: 11 search requests, 10 refused, 10 profiles delivered and charged:

```json
{
  "_type": "summary",
  "profiles": 10,
  "charged_for": 10,
  "company": "Notion",
  "job_title": "marketing",
  "queries_planned": 13,
  "search_requests": 11,
  "search_refused": 10,
  "engine_refused": false,
  "filtered_wrong_company": 0,
  "monitor": false,
  "ended_on_deadline": false
}
```

That run is from 19 September, when Brave led the search. Since the switch to Google, `source_query` shows the Google form (`site:linkedin.com/in "Notion" engineer`) for profiles Google found, and the summary also has `google_search` (pages, links opened, refusals), `brave_search` and `engine_pages`.

### Pricing

Pay per event. You pay for each profile written to your dataset, at the rate for your Apify plan, plus a small fee per run. Proxy, compute and the fallback searches are included.

| Event | Free | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
| --- | --- | --- | --- | --- |
| `profile-scraped`, per profile | $0.0075 | $0.0061 | $0.00495 | $0.004 |
| per 1,000 profiles | $7.50 | $6.10 | $4.95 | $4.00 |
| `apify-actor-start`, per run | $0.005 | $0.005 | $0.005 | $0.005 |

These prices have applied since 14 September 2026, when the run fee was added; the per profile price has been the same since 9 August 2026. No price change is scheduled as of 30 September 2026. The Pricing tab always shows the rate for your own plan.

The run fee is Apify's standard start event: one event per GB of run memory, with a minimum of one. At the default 256 MB, and at anything up to 1 GB, that is one event, $0.005 a run. At 2 GB it would be $0.01. The actor does not need more than the default.

**What a real job costs.** 50 profiles (the default) cost $0.38 on the Free plan ($0.375 plus the $0.005 run fee) and $0.205 on Gold. 250 profiles in one run cost $1.88 on Free and $1.005 on Gold.

**Never charged:**

- profiles dropped by the company check (other employers, former employees, company pages)
- profiles already delivered by an earlier monitor mode run, and repeats within a run
- searches an engine refused, and the Google searches we buy when both engines do
- a row that fails to save; the charge is made only after the row is in your dataset
- the `_type: "summary"` and `_type: "info"` report rows

A run that finds nobody charges no profile events, only the $0.005 run fee. Each run also has a spending guard on our side: if a company yields too few profiles per search to cover the cost, the run stops early, keeps what it found, and says so in the log.

### FAQ

**Where do the profiles come from?**
From search engine results for public LinkedIn profile pages: Google first, through Apify's GOOGLE_SERP proxy; Brave when Google fails on a search; and a Google search we pay for when Brave keeps refusing too. The actor reads the name, headline and location from the search result. It never logs in and never loads linkedin.com itself.

**How many profiles can I get?**
Up to 1,000 per run. In practice the limit is how many profiles the search engines have indexed for that company: large companies fill hundreds, a small firm may return a few. Up to 13 searches are tried per run, each read for up to 10 pages until it stops returning new people.

**Does `jobTitle` filter the results?**
It ranks them, it does not filter. The role search runs first; if it is thin or refused, broader searches fill `maxResults` with other roles at the same company. Check `source_query` and `headline`, and set `maxResults` close to the number you expect for that role.

**How fresh is the data?**
The search runs live, but a headline or location is only as current as the search engine's copy of the profile. A job change can take a few weeks to show up.

**Do I need a LinkedIn account, cookies or a proxy?**
No account and no cookies. The proxies for the searches are set up for you and included in the price.

**Why did a run return fewer profiles than `maxResults`, or none?**
Three usual reasons: the company has few indexed profiles, the company name is too generic and most matches belonged to other employers (see `filtered_wrong_company`; Google also fills a search for a company it cannot match with people from elsewhere, and those are dropped the same way), or the search engine refused the requests at that moment (see `search_refused` and `engine_refused`). Nothing is charged for profiles not delivered. Try a more specific company name, drop the `jobTitle`, or run again a little later.

**Will I be charged twice for the same person?**
Not within a run, and not across runs when `monitorMode` is on. Monitor mode remembers up to 50,000 delivered people in a key value store named `monitor-linkedin-employees` in your Apify account, shared by every monitor mode run of this actor in that account. If the store cannot be opened, the run delivers everything and says so in the log.

**What formats can I export?**
JSON, CSV, Excel, XML, RSS or an HTML table from the dataset tab, or through the Apify API.

**Can I run it on a schedule?**
Yes. Save your input as a task and add a schedule in Apify Console, with `monitorMode` on so each run returns only new people.

**Can I use it from Claude, ChatGPT or another AI agent?**

- Connector URL: `https://mcp.apify.com/?tools=themineworks/linkedin-employees`.
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http linkedin-employees "https://mcp.apify.com/?tools=themineworks/linkedin-employees"`.

**Is it legal?**
The actor reads only public profile information that search engines have indexed, without logging in or passing any access control. Names, headlines and locations are still personal data, so you are responsible for how you use them, including LinkedIn's terms, data protection law such as GDPR and CCPA, and the rules that apply to recruiting or sales outreach where you work. This is general information, not legal advice.

### Integrations

- **Google Sheets**: send each run's profiles to a sheet with Apify's Google Sheets integration.
- **Make, Zapier and n8n**: start one run per target company and collect the profiles in your CRM or ATS.
- **Webhooks**: have Apify call your URL when a run finishes.
- **API**: start runs and read datasets from any language with the Apify API or the Python and JavaScript clients.
- **MCP clients**: Claude, ChatGPT, Cursor and other MCP clients can call the actor as a tool through `https://mcp.apify.com`.

### More from The Mine Works

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Email Finder](https://apify.com/themineworks/linkedin-email-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Newsletter Scraper](https://apify.com/themineworks/linkedin-newsletter-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Candidate Finder](https://apify.com/themineworks/linkedin-candidate-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LandWatch Scraper](https://apify.com/themineworks/landwatch-land-for-sale-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a bug or a company that returns nobody when it should? Open an issue in the Issues tab on this page. To ask for a new data source, email dmineworks@gmail.com.

*LinkedIn Employees Scraper finds the public LinkedIn profiles of people at a company through live search, drops the ones who work somewhere else, and charges only for the profiles it delivers.*

# Actor input Schema

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

The company whose employees you want to find on LinkedIn (e.g. "Stripe", "Shopify", "Tata Consultancy Services"). Used to match public LinkedIn profiles via Google.

## `jobTitle` (type: `string`):

Optional role or keyword to narrow results (e.g. "engineer", "sales", "recruiter", "product manager"). Leave blank to return employees across all roles.

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

Maximum number of employee profiles to return.

## `monitorMode` (type: `boolean`):

Run this on a schedule and get ONLY profiles not delivered in a previous run. You are never charged twice for the same person. On a large company the early runs work deeper through the roster; once you have everyone it can find, a run stops after two searches in a row bring nobody new, so a repeat run that finds nobody costs very little. Keep the company and job title the same across runs.

## `proxyConfiguration` (type: `object`):

Results are fetched from Google search. The GOOGLE_SERP proxy group returns raw Google SERP HTML and is strongly recommended. RESIDENTIAL also works as a fallback.

## `debugSnippets` (type: `boolean`):

Internal: log raw result snippets to diagnose location parsing.

## Actor input object example

```json
{
  "companyName": "Stripe",
  "jobTitle": "engineer",
  "maxResults": 35,
  "monitorMode": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  },
  "debugSnippets": false
}
```

# Actor output Schema

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

No description

# 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 = {
    "companyName": "Stripe",
    "jobTitle": "engineer",
    "maxResults": 35,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "GOOGLE_SERP"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/linkedin-employees").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 = {
    "companyName": "Stripe",
    "jobTitle": "engineer",
    "maxResults": 35,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["GOOGLE_SERP"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/linkedin-employees").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 '{
  "companyName": "Stripe",
  "jobTitle": "engineer",
  "maxResults": 35,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}' |
apify call themineworks/linkedin-employees --silent --output-dataset

```

## MCP server setup

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

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/w9KGjGr8uJ9yd3EFs/builds/QelDd9WPdLJ7HdU5J/openapi.json
