# LinkedIn Search Scraper (no cookies) (`mina_safwat/linkedin-search-scraper-no-cookies`) Actor

Finds LinkedIn profiles, posts, companies and jobs by keyword — without a session cookie.

- **URL**: https://apify.com/mina\_safwat/linkedin-search-scraper-no-cookies.md
- **Developed by:** [Mina](https://apify.com/mina_safwat) (community)
- **Categories:** Automation, News, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## LinkedIn Search Scraper

### What does LinkedIn Search Scraper do?

**Search LinkedIn by keyword and get back the matching profiles, posts, companies or jobs as structured data** — the link, the title and a short description of each one.

No LinkedIn account, login, or cookie is needed. Type what you are looking for, choose what kind of page you want, press Start, and download the results as JSON, CSV or Excel — or pull them straight from the Apify API.

### Why use LinkedIn Search Scraper?

- **Build a lead list** — find people by role, skill and city, and export them in one go.
- **Find companies** — pull every company page matching an industry or description.
- **Follow a topic** — collect posts about a subject and see who is talking about it.
- **Recruit** — search for candidates by title and location.
- **Feed other tools** — the links this Actor returns can be dropped straight into the LinkedIn Post Scraper or the LinkedIn Profile Scraper for the full details.

### How to use LinkedIn Search Scraper

1. Enter your **Search keywords**, for example `python developer London`.
2. Choose **What to search for** — people, posts, companies or jobs.
3. Set **Maximum results** to how many you want.
4. Optionally add **Extra search terms** to narrow it down.
5. Click **Start**, then open the **Output** tab when it finishes.

#### Getting better results

A few ways to sharpen a search:

- Put a phrase in quotes to require it exactly: `"head of growth"`
- Add a city or company name to narrow things down: `product manager Berlin Spotify`
- Put a minus in front of a word to exclude it: `developer -recruiter`

### Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Search keywords** (`keywords`) | string | Yes | What to look for. |
| **What to search for** (`search_type`) | select | No | People, posts, companies or jobs. Default people. |
| **Maximum results** (`limit`) | integer | No | How many results to return. Default 50. |
| **Extra search terms** (`extra_terms`) | string | No | Extra words to add to the search. |
| **Language** (`language`) | string | No | Two-letter language code. Default `en`. |

Example input:

```json
{
  "keywords": "python developer London",
  "search_type": "people",
  "limit": 30
}
```

### Output

One record per LinkedIn page found:

```json
{
  "url": "https://www.linkedin.com/in/gemmahentsch",
  "identifier": "gemmahentsch",
  "title": "Gemma Hentsch - Lead Python Developer",
  "snippet": "LinkedIn · Gemma Hentsch · 570+ followers",
  "search_type": "people",
  "search_keywords": "python developer London"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data fields

| Field | Description |
| --- | --- |
| `url` | Link to the LinkedIn page. |
| `identifier` | The short name at the end of the link — a profile name, company slug or post id. Handy as a unique key. |
| `title` | The page's title, usually the person's name and headline. |
| `snippet` | A short description of the page. |
| `search_type` | Which kind of page this is. |
| `search_keywords` | The search that produced this row, handy when you merge several runs. |

### What it returns

For every match you get the link, a title and a short description — enough to review a list of results, sort it, or hand it to something else.

Fuller detail such as follower counts, complete post text or a full work history is not part of a search result. To get those, run the links through:

- **LinkedIn Post Scraper** — for post links, to get the text, author, reactions and comments.
- **LinkedIn Profile Scraper** — for profile links, to get the full profile.
- **LinkedIn Jobs Scraper** — the better choice if you only want jobs, with salary, seniority and full descriptions.

Two other things worth knowing:

- **Results come back by relevance, not newest first.** Something posted in the last few hours may not appear straight away.
- **Very large result counts are not possible.** A search realistically returns up to a couple of hundred results; narrow the keywords instead of raising the limit.

### How much does it cost to search LinkedIn?

Very little. Thirty results took about thirty seconds and cost around a cent and a half. Cost scales with how many results you ask for.

### Tips

- **Be specific.** `product manager fintech Berlin` returns far more useful results than `manager`.
- **Run several narrow searches** rather than one broad one — you will get better coverage overall.
- **Use quotes for exact phrases** when a job title matters, like `"chief technology officer"`.
- **Chain it.** Search here, then feed the links into the Post or Profile Actor to enrich them.

### FAQ and support

**Do I need a LinkedIn account or cookie?** No. Nothing to log in with and nothing to keep alive.

**Why is there no follower count or full post text?** Those are not part of a search result. Use the Post or Profile Actor on the links to get them.

**Why do I get fewer results than the limit I set?** Because the search ran out of matches. Broaden the keywords or try a different phrasing.

**Is scraping LinkedIn legal?** This Actor collects only publicly available data. You are responsible for how you use it, and you should not collect personal data without a legal basis. If in doubt, take legal advice.

Found a bug, or need a field that is not here? Open an issue on the **Issues** tab.

# Actor input Schema

## `keywords` (type: `string`):

What to look for, e.g. "python developer London", "hiring designers" or a person's name.

## `search_type` (type: `string`):

Which kind of LinkedIn page to find.

## `limit` (type: `integer`):

How many results to return.

## `extra_terms` (type: `string`):

Optional words to add to the search, e.g. "CTO" or "fintech". Quote a phrase to require it exactly.

## `language` (type: `string`):

Two-letter language code for the search.

## Actor input object example

```json
{
  "keywords": "python developer London",
  "search_type": "people",
  "limit": 50,
  "language": "en"
}
```

# 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 = {
    "keywords": "python developer London"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mina_safwat/linkedin-search-scraper-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 = { "keywords": "python developer London" }

# Run the Actor and wait for it to finish
run = client.actor("mina_safwat/linkedin-search-scraper-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 '{
  "keywords": "python developer London"
}' |
apify call mina_safwat/linkedin-search-scraper-no-cookies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mina_safwat/linkedin-search-scraper-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/f2YhpgjMPjvDdehM3/builds/zPIEkxDzD2QwAOQ59/openapi.json
