# 🔎 LinkedIn Companies Suggestions Scraper (`scraply/linkedin-companies-suggestions`) Actor

- **URL**: https://apify.com/scraply/linkedin-companies-suggestions.md
- **Developed by:** [Scraply](https://apify.com/scraply) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Companies Suggestions Scraper

Find the **"Pages people also viewed"** lookalike companies for any LinkedIn company — instantly, in bulk, with follower counts and industry tags. Perfect for **competitor research**, **ICP / lookalike audience building**, **outbound prospecting**, and **market mapping**.

> Give it a LinkedIn company URL → get back a clean list of similar companies, each with title, industry, profile URL, and follower count.

***

### 🌟 Why Choose This Actor?

| ✅ Feature | What it means for you |
|-----------|------------------------|
| **🚀 Real LinkedIn data** | Pulled live from LinkedIn — not stale exports. |
| **📦 Bulk input** | Drop in 1 or 100 company URLs. The actor handles the rest. |
| **👥 Follower counts** | Every lookalike includes its current follower count. |
| **🛡️ Smart proxy handling** | Uses Apify Residential proxies (required for LinkedIn) and auto-rotates IPs on a block. |
| **💾 Live results** | Each lookalike is saved to the dataset the moment it is scraped. |
| **🧩 Clean output** | Table-friendly schema: `title`, `subtitle`, `url`, `followers`. |
| **🤖 API / MCP ready** | Call from your code, n8n, Make, Zapier, or your LLM via MCP. |

***

### ✨ Key Features

- 🔎 **Similar pages discovery** — the same "Pages people also viewed" list you see logged into LinkedIn
- 🏢 **Title + industry + profile URL** for every lookalike
- 👥 **Live follower counts** via LinkedIn's own Voyager API
- 📦 **Bulk-friendly** — one job, many input companies
- 🛡️ **Anti-block engine** — Chrome TLS fingerprint + smart proxy escalation
- 💾 **Crash-safe** — partial results are always saved
- ⚡ **Async + concurrent** — fast even on large input lists
- 💳 **Pay-per-result** pricing — you pay for lookalikes, not failed runs

***

### 📥 Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `urls` | `array` | ✅ | LinkedIn company URLs (or `/showcase/` URLs). Bulk supported. |
| `liAtCookie` | `string` | ❌ | *Optional.* Your LinkedIn `li_at` session cookie for follower counts. Leave blank to use the built-in session. **Secret** — never logged. |
| `maxConcurrentFollowerLookups` | `integer` | ❌ | Parallel follower lookups per company. Default `5`. |
| `delayBetweenCompanies` | `number` | ❌ | Seconds between input companies. Default `1.5`. |
| `maxRetries` | `integer` | ❌ | Retries per request. Default `3`. |
| `requestTimeout` | `integer` | ❌ | Request timeout in seconds. Default `30`. |
| `proxyConfiguration` | `object` | ❌ | Optional. Defaults to **no proxy**. Auto-escalates on block. |

#### 🍪 How to get your `li_at` cookie

1. Open [linkedin.com](https://www.linkedin.com) and sign in.
2. Open DevTools (`F12`) → **Application** → **Cookies** → `https://www.linkedin.com`.
3. Copy the **Value** of the cookie named `li_at`.
4. Paste it into the `liAtCookie` field.

#### 📋 Example input

```json
{
  "urls": [
    { "url": "https://www.linkedin.com/company/financial-times/" },
    { "url": "https://www.linkedin.com/company/the-economist/" }
  ],
  "liAtCookie": "AQEDAUjBCq4FO9swAAAB...",
  "maxConcurrentFollowerLookups": 5,
  "delayBetweenCompanies": 1.5,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

***

### 📤 Output

Each **row in the output dataset** is one lookalike company — easy to filter, sort, and export:

```json
{
  "input_url": "https://www.linkedin.com/company/financial-times",
  "title": "The Economist",
  "subtitle": "Newspaper Publishing",
  "url": "https://www.linkedin.com/company/the-economist/",
  "followers": "13,120,759"
}
```

A grouped snapshot (per input company → list of lookalikes) is also saved to the key-value store as `results.json`:

```json
[
  {
    "input_url": "https://www.linkedin.com/company/financial-times",
    "lookalikes": [
      {
        "url": "https://www.linkedin.com/company/the-economist/",
        "subtitle": "Newspaper Publishing",
        "title": "The Economist",
        "followers": "13,120,759"
      },
      {
        "url": "https://www.linkedin.com/company/bloomberg/",
        "subtitle": "Financial Services",
        "title": "Bloomberg",
        "followers": "2,207,096"
      }
    ]
  }
]
```

#### Field reference

| Field | Description |
|-------|-------------|
| `input_url` | The company you asked about. |
| `title` | Lookalike company name. |
| `subtitle` | Lookalike industry (LinkedIn's classification). |
| `url` | Lookalike company's LinkedIn URL. |
| `followers` | Current follower count, comma-formatted (e.g. `13,120,759`). Empty string if unavailable. |

***

### 🚀 How to Use (Apify Console)

1. Log in at [console.apify.com](https://console.apify.com) → **Actors**.
2. Open **LinkedIn Companies Suggestions Scraper**.
3. Paste your **LinkedIn company URLs** into `urls`.
4. Paste your `li_at` cookie into `liAtCookie`.
5. (Optional) Leave `proxyConfiguration` empty for a direct connection — the actor auto-escalates if LinkedIn blocks.
6. Click **Start** 🚀
7. Watch the live log — you'll see each lookalike streamed in real time.
8. When the run finishes, open the **Output** tab.
9. Export as **JSON / CSV / XLSX** or pipe to your downstream tools.

***

### 🤖 Use via API / MCP

#### REST API (cURL)

```bash
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "urls": [{"url": "https://www.linkedin.com/company/financial-times/"}],
       "liAtCookie": "AQEDAUjBCq4FO9sw..."
     }'
```

#### Python SDK

```python
from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("<ACTOR_ID>").call(run_input={
    "urls": [{"url": "https://www.linkedin.com/company/financial-times/"}],
    "liAtCookie": "AQEDAUjBCq4FO9sw...",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### MCP

This actor is callable from any MCP client (Claude, Cursor, etc.) via the Apify MCP gateway at `https://mcp.apify.com`. Each tool call is a chargeable PPE event — see Pricing below.

***

### 💼 Best Use Cases

- 🎯 **Competitor research** — discover companies your competitors are bucketed with.
- 🧲 **Lookalike audience building** — feed similar companies into your outbound list.
- 🗺️ **Market mapping** — chart adjacent industries and emerging players.
- 🎯 **ABM enrichment** — expand each target account into a cluster of similar accounts.
- 📈 **Investment scouting** — surface peers of a portfolio company in seconds.

***

### 💳 Pricing (Pay-Per-Event)

- **Per result item** — billed for each lookalike company returned (`result-item` event).
- ✅ You **only pay for successful results**. Failed runs and zero-result inputs are free.
- 🛑 Hard-cap your spend with **Max total charge** in the run config — the actor stops cleanly when reached.

***

### ❓ Frequently Asked Questions

**Q: Why do I need a `li_at` cookie?**
A: LinkedIn's follower counts are only available to logged-in users. The guest view exposes the lookalike list, but not the follower counts. We use your `li_at` only to call LinkedIn's own API for those counts.

**Q: Is my cookie safe?**
A: The cookie field is marked as a secret — Apify masks it in the run config UI and it is never written to logs.

**Q: What if LinkedIn blocks the request?**
A: The actor uses **Apify Residential** proxies by default (required to reach LinkedIn from Apify's network) and automatically rotates to a fresh residential IP if a block is detected.

**Q: How many lookalikes do I get per company?**
A: Whatever LinkedIn shows in its "Pages people also viewed" panel — typically 5–10 per company.

**Q: Can I use this without a cookie?**
A: The lookalike list itself works without auth, but follower counts will be empty. We strongly recommend providing the cookie.

**Q: Does it work for `/showcase/` URLs?**
A: Yes — showcase pages are supported alongside `/company/` URLs.

***

### ⚖️ Cautions & Legal

- Data is collected only from **publicly viewable** LinkedIn surfaces and your own authenticated session.
- Honor LinkedIn's **Terms of Service** and your local privacy laws (GDPR, CCPA, etc.).
- This actor is intended for **research, market intelligence, and B2B use cases** — not for spam or harassment.
- You are responsible for how you use the data.

***

### 🆘 Support & Feedback

Found a bug? Have a feature request? Open an issue in the Actor's **Issues** tab on Apify, or contact the publisher directly.

Happy scraping! 🚀

# Actor input Schema

## `urls` (type: `array`):

📋 Paste one or more **LinkedIn company URLs** you want to find lookalikes for. ✅ Bulk input supported. Accepts both `/company/` and `/showcase/` URLs.

💡 *Example:* `https://www.linkedin.com/company/financial-times/`

## `liAtCookie` (type: `string`):

🔐 *Optional.* Your LinkedIn **`li_at`** session cookie — used to fetch follower counts via the authenticated Voyager API. Leave it blank to use the actor's built-in session; paste your own for best reliability.

**🧭 How to get it:**

1. 🌐 Open [linkedin.com](https://www.linkedin.com) and sign in
2. 🛠️ Open DevTools (`F12`) → **Application** → **Cookies** → `https://www.linkedin.com`
3. 📋 Copy the **Value** of the cookie named `li_at`
4. 📌 Paste it here

🛡️ *The cookie is masked in the UI and never written to logs.*

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

🧩 *Optional.* Force a specific proxy for all requests. Leave empty for the default smart-fallback behavior described above.

## Actor input object example

```json
{
  "urls": [
    "https://www.linkedin.com/company/financial-times/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "urls": [
        "https://www.linkedin.com/company/financial-times/"
    ],
    "liAtCookie": "",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraply/linkedin-companies-suggestions").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 = {
    "urls": ["https://www.linkedin.com/company/financial-times/"],
    "liAtCookie": "",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraply/linkedin-companies-suggestions").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.linkedin.com/company/financial-times/"
  ],
  "liAtCookie": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraply/linkedin-companies-suggestions --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraply/linkedin-companies-suggestions",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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