# LinkedIn Company Scraper 💰$1/1K – Bulk Profiles, No Cookies (`rt-solutions/linkedin-company-scraper`) Actor

LinkedIn company scraper and company enrichment: bulk company profile data with no login or cookies. Website, industry, size, employees, followers, HQ, founded, specialties, similar pages, recent posts. Find companies by URL, name or website domain. $1 per 1,000 companies.

- **URL**: https://apify.com/rt-solutions/linkedin-company-scraper.md
- **Developed by:** [RT SOLUTIONS](https://apify.com/rt-solutions) (community)
- **Categories:** Lead generation, Jobs, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 companies

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 Scraper – bulk company profiles by URL, name or domain, no cookies · $1 per 1,000 companies

A **LinkedIn company data scraper and company enrichment tool**: one clean row per company, in bulk, ready for your CRM or lead list.

Get **LinkedIn company data without login, cookies or account**: website, industry, company size, **employees on LinkedIn**, **followers**, headquarters with full address, company type, founded year, specialties, every office location, similar and affiliated pages, and the **latest posts shown on the public page (usually about 10), with author, exact date, likes, comments, repost and video flags**.

Paste **LinkedIn URLs, company names or website domains** — the actor finds the right LinkedIn page for you. Ideal for **lead enrichment**, CRM cleanup and market mapping.

**$1 per 1,000 companies** — about 4× cheaper than the most popular LinkedIn company scraper, with name and domain lookup included at the same price.

#### What you can put in

| Input | Example | How it is matched |
|---|---|---|
| LinkedIn company URL (any country subdomain) | `https://fr.linkedin.com/company/stripe/` | Direct |
| Showcase page | `https://www.linkedin.com/showcase/microsoft-azure/` | Direct |
| Page name | `notionhq` | Direct |
| Company ID | `2135371` | LinkedIn ID → page |
| Company name | `Société Générale`, `Ernst & Young` | LinkedIn's own company suggestions (exact name first) |
| Website domain | `stripe.com`, `bbc.co.uk`, `zalando.de` | Compares the website listed on each candidate LinkedIn page with your domain |

Mix them in one run. Duplicates (the same company entered twice) are returned once.

#### 🔭 Discovery mode — find more companies

Turn on **Discover similar companies** and the actor follows LinkedIn's *Similar pages* from your companies, then from the companies it finds, level by level:

- **1 company → 138 companies** in 3 levels (HubSpot → software, IT services, fintech…), in about 2 minutes.
- Filter on the fly with **Keep industries containing** (e.g. `Software`, `Banking`) and **Keep locations containing** (e.g. `Paris`, `Germany`) — filters are checked *before* a page is opened, so you only pay for companies you keep.
- Each discovered company has `discoveredFrom` and `discoveryDepth`.

Example: start from `doctolib`, `alan`, `qonto`, `back-market` with location `Paris, France` → Pennylane, Swile, Mistral, Payfit, Mirakl, Spendesk, Pigment, ManoMano, Lucca…

#### Output example

```json
{
  "type": "company",
  "name": "Stripe",
  "url": "https://www.linkedin.com/company/stripe/",
  "companyId": "2135371",
  "tagline": "Help increase the GDP of the internet.",
  "description": "Stripe builds programmable financial services…",
  "website": "https://stripe.com",
  "industry": "Technology, Information and Internet",
  "companySize": "5,001-10,000 employees",
  "employeesOnLinkedIn": 16694,
  "followers": 1799249,
  "headquarters": "South San Francisco, California",
  "address": { "street": "354 Oyster Point Blvd", "city": "South San Francisco", "region": "California", "postalCode": "94080", "country": "US" },
  "companyType": "Privately Held",
  "founded": 2010,
  "specialties": [],
  "jobsUrl": "https://www.linkedin.com/jobs/search?f_C=2135371",
  "logoUrl": "https://media.licdn.com/…",
  "locations": [{ "isPrimary": true, "address": "354 Oyster Point Blvd, South San Francisco, California 94080, US" }],
  "similarPages": [{ "name": "Atlassian", "industry": "Software Development", "location": "Sydney, NSW", "url": "https://www.linkedin.com/company/atlassian/" }],
  "affiliatedPages": [{ "name": "Stripe Partner Ecosystem", "industry": "Internet Publishing", "url": "https://www.linkedin.com/showcase/…" }],
  "recentPosts": [{ "url": "https://www.linkedin.com/posts/…", "date": "2026-10-30T16:02:11.000Z", "text": "…", "likes": 370, "comments": 25, "author": "Stripe", "authorUrl": "https://www.linkedin.com/company/stripe", "isRepost": false, "originalDate": null, "hasVideo": false }],
  "input": "stripe.com",
  "matchedBy": "domain",
  "matchConfidence": "exact"
}
```

`matchConfidence` (domain inputs only): `exact` = the LinkedIn page lists exactly your domain; `confirmed-by-website` = same brand on another site, and your domain's website links to this LinkedIn page; `brand-name-large-company` = a company of 1,000+ employees with the brand's exact name (e.g. `tesco.com` → Tesco, which lists tescoplc.com); `website-link` = found through the LinkedIn link on your domain's website. A smaller company that only shares the brand name is **not** returned (it is often a namesake in another country): the warning gives its address so you can check it. Export to JSON, CSV or Excel, or connect to Google Sheets, HubSpot, Make, n8n, Zapier and AI agents.

#### Pricing

**$1 per 1,000 companies** (pay per event, cheaper on higher Apify plans). Name, ID and domain lookups are included. Recent posts, locations and similar pages cost nothing extra. Companies that are not found are free.

#### Real runs — 1 November 2026

| Job | Result | Run time | Price at $1/1K |
|---|---|---|---|
| Volume: 561 real company pages | **548 companies saved + 13 duplicates detected = 100%**, 0 login walls | 8 min | $0.55 |
| Hard cases in one run: 20 website domains (`bbc.co.uk`, `zalando.de`, `notion.so`, `amazon.co.uk`, `carrefour.fr`…), 15 company names (Apple, Delta, Mercury, Société Générale, Nestlé, L'Oréal, Ernst & Young → EY…) and 9 URL variants | 36 companies; 6 free warnings, all justified (made-up name and domain, people/school URLs, a page that does not exist, `orangemaroc.ma`) | 2 min 17 s | $0.036 |
| Discovery from 1 company (HubSpot), 3 levels | **138 companies** (software, IT services, fintech…) | 2 min | $0.14 |

Field coverage on the first 176 companies of the volume test: followers 100%, industry 99%, company size 99%, employees on LinkedIn 98%, website 96%, description 98%, address 92%, headquarters 89%, founded year 47% (only when the company filled it).

#### Price compared with other LinkedIn company Actors — 31 October 2026

| Actor | Monthly users (31 Oct) | Listed price per 1,000 companies |
|---|---|---|
| harvestapi/linkedin-company | 7,791 | $4.00 |
| apimaestro/linkedin-company-detail | 524 | $5.00 |
| automation-lab/linkedin-company-scraper | 246 | $3.45 (+ start fee) |
| bestscrapers/linkedin-company-scraper | 116 | $8.00 per processing |
| datadoping/linkedin-company-scraper | 111 | $1.55 |
| pratikdani/linkedin-company-profile-scraper | 109 | $5.00 |
| **This Actor** | new | **$1.00**, name & domain lookup, posts, locations and similar pages included |

#### Who this is not for

- **You need the list of employees or people profiles.** They require a LinkedIn login; this Actor never logs in.
- **You need to search companies by criteria** (industry + city + size) the way LinkedIn search does. That needs a login; use **discovery mode** from a few seed companies instead.
- **You need school pages.** Company and showcase pages only.
- **You need funding data.** LinkedIn no longer shows it on public company pages.
- **You need the number of open jobs.** The public "open jobs" figure counts every job that *mentions* the company name (e.g. 700,000+ for Microsoft), so it is not returned; you get `jobsUrl` with the company's real job search instead.

#### What's new

- **8 November 2026** — Fewer wrong matches for website domains: a LinkedIn page that only shares the brand name is kept only if the domain's website links to it or the company has 1,000+ employees. On 200 test domains, 19 namesakes (e.g. `tabasco.com` → a Ukrainian company) are no longer returned.
- **1 November 2026** — Discovery mode (follow *similar pages* with industry and location filters checked before opening a page).
- **1 November 2026** — Domain matching by score: exact website, then brand name, then same brand on another extension, then subdomain — so `amazon.co.uk` finds Amazon (not AWS) and `carrefour.fr` finds Carrefour (not a country subsidiary). Company IDs and numeric company URLs resolved through LinkedIn's public job search (worldwide).
- **1 November 2026** — Bounded page cache (memory stays low on runs of hundreds of companies).
- **1 November 2026** — First release.

#### Use cases

- **Lead enrichment**: turn a list of domains or company names into industry, size, headcount, HQ and LinkedIn URL.
- **CRM cleanup**: fill missing firmographics and LinkedIn links for accounts.
- **Market mapping**: start from a few companies and let discovery mode follow their *similar pages* to map a whole sector or find competitors.
- **Account monitoring**: track followers, headcount on LinkedIn and recent posts of target accounts over time.
- **Recruiting and sales intelligence**: find the LinkedIn page and jobs link of every company on a list.

#### 🤖 For AI Agents & LLM Apps

- **What the tool does**: returns LinkedIn company page data for URLs, names, IDs or website domains; optional discovery of similar companies.
- **Minimal input**: `{"companies": ["stripe.com", "Notion", "https://www.linkedin.com/company/apify/"]}`.
- **Enrichment**: pass website domains and read `matchConfidence` (`exact` > `confirmed-by-website` > `brand-name-large-company` > `website-link`).
- **Discovery**: `discoverSimilar: true`, `maxDiscovered`, `discoveryDepth`, `industryFilter`, `locationFilter`.
- **Output contract**: one object per company with `type: "company"`; `warning` rows (not found, unsupported URL) are free.
- **Cost guard**: companies × $0.001 (free plan); `maxDiscovered` bounds discovery.

#### Use with AI agents (MCP)

Call this actor from Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server (https://mcp.apify.com) with the actor ID `rt-solutions/linkedin-company-scraper`. Example request: *"Enrich stripe.com, notion.so and figma.com with their LinkedIn industry, employee count and headquarters."* It also works through the Apify API, Make, n8n and Zapier.

#### FAQ

**How do I scrape LinkedIn company pages without logging in?** Paste URLs, names or domains and run. The actor reads the public company pages LinkedIn shows to anyone — no account, cookies or browser extension.

**How much does it cost to enrich 10,000 companies?** $10 at $1 per 1,000 companies, lookups included.

**Can I find a company's LinkedIn page from its website?** Yes — enter the domain (`stripe.com`). The actor checks the candidate pages and compares the website each one lists with your domain, and tells you how confident the match is.

**Why is `website`, `founded` or `specialties` empty?** The company did not fill that field on LinkedIn.

**Can it search companies by industry or location?** Not through LinkedIn search (that needs a login). Use discovery mode: start from a few companies of the sector and filter by industry and location.

**Can I get the list of employees?** No. Employee lists require a LinkedIn login, and this actor never logs in. You get the employee count on LinkedIn and the company size range.

**Does it work for schools or personal profiles?** No — company and showcase pages only.

**Is it legal to scrape LinkedIn company pages?** The actor only reads public company pages that anyone can open without an account and collects business information, not private data. Use the data responsibly and in line with the laws that apply to you (e.g. GDPR).

#### Limits

- A domain is matched through the website the company lists on LinkedIn; groups whose LinkedIn page lists another site are matched when your domain's website links to that page, or on the exact brand name for companies of 1,000+ employees (see `matchConfidence`).
- Website domains are matched through LinkedIn's suggestions, then an exact address check, then the LinkedIn link shown on the company's own website (`matchedBy: website-link`, kept only when that LinkedIn page lists the same website or the same brand name; links to unrelated pages such as the website builder's are ignored). On 200 random domains on 8 November 2026, 86 were matched, with namesakes excluded. Domains with no match are free.
- Recent posts are the ones LinkedIn shows on the public page: usually about 10, sometimes none (Deloitte and Buffer showed none on 7 November 2026). There is no full post history.

#### Run health

- 1 November 2026: volume run 561 inputs → 548 companies + 13 duplicates (100%), 0 failed runs; hard-case grid 36 OK / 6 free warnings, all justified.

#### Your feedback

Wrong match or missing field? Open an issue in the **Issues** tab — we answer fast and ship fixes (see "What's new"). If the Actor saved you time, a short review helps other sales and data teams find it.

#### Related scrapers

- [LinkedIn Jobs Scraper](https://apify.com/rt-solutions/linkedin-jobs-scraper)
- [Website Contact & Email Extractor](https://apify.com/rt-solutions/website-contact-email-extractor)
- [Google Maps Scraper – Business Leads](https://apify.com/rt-solutions/google-maps-scraper-leads)

#### Support

Missing a field or a wrong match? Open an issue on the actor page — we answer fast.

# Actor input Schema

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

One per line: a LinkedIn company URL (https://www.linkedin.com/company/stripe), a showcase URL, the page name (stripe), a company name (Stripe) or a website domain (stripe.com). Mix them freely.

## `discoverSimilar` (type: `boolean`):

Also follow the 'Similar pages' of each company (and of the companies found that way) to discover more companies — great for mapping a market or finding competitors.

## `maxDiscovered` (type: `integer`):

Upper limit of companies added by discovery (your own inputs are not counted).

## `discoveryDepth` (type: `integer`):

1 = similar pages of your companies only; 2 = also their similar pages; up to 5.

## `industryFilter` (type: `array`):

Discovery only: keep similar companies whose industry contains one of these words (e.g. Software, Banking). Empty = all.

## `locationFilter` (type: `array`):

Discovery only: keep similar companies whose location contains one of these words (e.g. Paris, Germany, CA). Empty = all.

## `includePosts` (type: `boolean`):

Add the recent posts LinkedIn shows on the page (text, date, likes, comments). No extra cost.

## `includeLocations` (type: `boolean`):

Add every office address listed on the page.

## `includeSimilarPages` (type: `boolean`):

Add the 'Similar pages' and 'Affiliated pages' LinkedIn shows (competitors, subsidiaries, showcase pages) — useful to discover more companies.

## `maxConcurrency` (type: `integer`):

How many companies are processed in parallel.

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

Apify Proxy (datacenter) works well.

## Actor input object example

```json
{
  "companies": [
    "https://www.linkedin.com/company/stripe",
    "Notion",
    "openai.com"
  ],
  "discoverSimilar": false,
  "maxDiscovered": 100,
  "discoveryDepth": 2,
  "includePosts": true,
  "includeLocations": true,
  "includeSimilarPages": true,
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All companies.

# 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": [
        "https://www.linkedin.com/company/stripe",
        "Notion",
        "openai.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("rt-solutions/linkedin-company-scraper").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": [
        "https://www.linkedin.com/company/stripe",
        "Notion",
        "openai.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("rt-solutions/linkedin-company-scraper").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": [
    "https://www.linkedin.com/company/stripe",
    "Notion",
    "openai.com"
  ]
}' |
apify call rt-solutions/linkedin-company-scraper --silent --output-dataset

```

## MCP server setup

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

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/5dGVWLcGeH2cd4OxC/builds/T7cBtdnUmRnlYQn31/openapi.json
