# LinkedIn Company Scraper · No Login · $1/1k (`alfalfa/linkedin-company-scraper`) Actor

LinkedIn company scraper and API without a login: company details from page URLs, names, websites or keyword search with location, industry and size filters. Employee and follower counts, open jobs count, headquarters and all offices, specialties, logo, recent posts. From $1 per 1,000 companies.

- **URL**: https://apify.com/alfalfa/linkedin-company-scraper.md
- **Developed by:** [Alfalfa](https://apify.com/alfalfa) (community)
- **Categories:** Lead generation, Business, Social media
- **Stats:** 2 total users, 1 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?

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 Company Scraper: company details, search, offices and recent posts, no login

Turn LinkedIn company pages, company names, websites or a keyword search into a clean table: name, website, industry, company size, exact employee count on LinkedIn, followers, founded year, specialties, headquarters and **every office address**, logo and cover image, plus the **most recent posts** with dates, reactions and comments, the **number of open jobs**, and the similar and affiliated pages LinkedIn shows. No LinkedIn account, login or cookies needed. Export to Excel, CSV or JSON, or read it through the API.

**$1 per 1,000 companies** from page URLs, names, websites and keyword searches; companies from searches narrowed by location, industry or size $2 per 1,000. Recent posts included, no start fee, platform usage and proxies included.

### Four ways to pick companies

| Input | Example | What you get |
|---|---|---|
| **LinkedIn company pages** | `https://www.linkedin.com/company/stripe`, `stripe`, `2135371` | that company |
| **Company names or websites** | `Revolut`, `Česká spořitelna`, `stripe.com` | the best-matching company page for each line |
| **Search companies by keywords** | `fintech`, `digital marketing agency` | companies whose name, tagline, description, specialties, industry or address contain the words |
| **Filters** for searches | Locations `Germany`, Industries `Software Development` or LinkedIn industry IDs, Company size `11-50` | only companies that pass every filter are saved and charged |

All four can be combined in one run. The same company reached twice is saved and charged once.

### What you get

| Field | Example |
|---|---|
| `id`, `universalName`, `linkedinUrl`, `pageType` | `2135371`, `stripe`, `https://www.linkedin.com/company/stripe`, `COMPANY` or `SHOWCASE` |
| `name`, `tagline`, `description` | `Stripe`, `Help increase the GDP of the internet.`, the full About text |
| `website`, `industries`, `companyType` | `https://stripe.com`, `["Technology, Information and Internet"]`, `Privately Held` |
| `companySize`, `employeeCountRange`, `employeeCount` | `5,001-10,000 employees`, `{"start": 5001, "end": 10000}`, `16722` members on LinkedIn |
| `followerCount`, `foundedOn`, `specialities` | `1703831`, `{"year": 2010}`, `["Payments", ...]` |
| `headquarter` | `{"line1": "354 Oyster Point Blvd", "city": "South San Francisco", "geographicArea": "California", "postalCode": "94080", "country": "US", "parsed": {"text": "South San Francisco, California, United States", "countryCode": "US", "country": "United States", "state": "California", ...}}` |
| `locations` | every office listed on the page, same shape, `headquarter: true` on the main one (Siemens: 100 offices) |
| `logo`, `logos`, `backgroundCover`, `backgroundCovers` | image URLs with width, height and expiry |
| `jobSearchUrl` | the company's jobs on LinkedIn |
| `openJobCount`, `openJobCountText` | jobs the company lists on LinkedIn worldwide at the time of the run: `983` / `"983"`; above 1,000 LinkedIn rounds down and adds a plus, `2000` / `"2,000+"` |
| `posts` | recent posts the company published: `url`, exact `postedAt`, `postedAgo`, `text`, `reactionCount`, `commentCount`, `images`, `hasVideo`, link preview `article`, shared post `repost` |
| `similarOrganizations`, `affiliatedOrganizations` | related pages with name, URL, industry and location |
| `input`, `scrapedAt` | the page, name, website or search the record came from, time of scraping |

Field names follow the most used LinkedIn company Actors (`universalName`, `tagline`, `employeeCountRange`, `foundedOn`, `specialities`, `headquarter`, `locations` with `parsed`, `logos`), so an existing integration keeps working.

### How to use it

1. Fill one or more of **LinkedIn company pages**, **Company names or websites** and **Search companies by keywords**, one entry per line. Company pages accept `https://www.linkedin.com/company/stripe`, showcase pages, subpages such as `/about` or `/posts`, country addresses like `de.linkedin.com/company/...`, Sales Navigator company links, the page name alone (`stripe`) and numeric company IDs (`2135371`).
2. For searches, add **Locations**, **Industries** and **Company size** if you want, and set **Max companies per search**.
3. Keep **Include recent posts** and **Include open jobs count** on (both free) or switch them off for a smaller, faster dataset.
4. Click **Start**. Companies arrive in the dataset as they are scraped.

Example input:

```json
{
  "companies": ["https://www.linkedin.com/company/stripe", "netflix", "2135371"],
  "searches": ["Revolut", "shopify.com"],
  "searchQueries": ["fintech"],
  "locations": ["Germany"],
  "companySize": ["11-50", "51-200"],
  "maxResults": 50,
  "includePosts": true
}
```

Output (shortened):

```json
{
  "id": "2135371",
  "universalName": "stripe",
  "linkedinUrl": "https://www.linkedin.com/company/stripe",
  "pageType": "COMPANY",
  "name": "Stripe",
  "tagline": "Help increase the GDP of the internet.",
  "website": "https://stripe.com",
  "industries": ["Technology, Information and Internet"],
  "companyType": "Privately Held",
  "companySize": "5,001-10,000 employees",
  "employeeCount": 16722,
  "employeeCountRange": { "start": 5001, "end": 10000 },
  "followerCount": 1703831,
  "openJobCount": 983,
  "foundedOn": { "year": 2010 },
  "headquarter": { "line1": "354 Oyster Point Blvd", "city": "South San Francisco", "geographicArea": "California", "postalCode": "94080", "country": "US", "headquarter": true },
  "locations": [{ "line1": "1 Wilton Park, Wilton Terrace", "city": "Dublin", "geographicArea": "County Dublin", "postalCode": "D02 FX04", "country": "IE", "headquarter": false }],
  "posts": [{
    "url": "https://www.linkedin.com/feed/update/urn:li:activity:7504308642557345792/",
    "postedAt": "2026-09-11T22:43:23Z",
    "postedAgo": "3d",
    "text": "Latest from Stripe Economics: ...",
    "reactionCount": 158,
    "commentCount": 34,
    "images": ["https://media.licdn.com/dms/image/..."],
    "hasVideo": false
  }],
  "similarOrganizations": [{ "name": "Atlassian", "linkedinUrl": "https://www.linkedin.com/company/atlassian", "industry": "Software Development", "location": "Sydney, NSW" }],
  "input": "https://www.linkedin.com/company/stripe"
}
```

### Use cases

- **Lead lists**: search `marketing agency` in `London` with 11-50 employees and get a table of company pages with websites, sizes and addresses.
- **CRM enrichment**: paste company names or websites from a CRM and add LinkedIn size, industry, headquarters and employee count.
- **Account research and sales**: see what a company posted this week before the call, and which pages LinkedIn considers similar.
- **Market maps**: size bands, founding years and office countries for a set of competitors in one table.
- **Data teams and AI agents**: a structured company profile from a single URL, name or website.

### Use it from code, n8n, Make, Zapier or an AI agent

- **API**: `POST https://api.apify.com/v2/acts/alfalfa~linkedin-company-scraper/run-sync-get-dataset-items?token=…` with the JSON input above returns the companies directly (runs up to 5 minutes). Longer jobs: start the run, poll, read the dataset. Any Apify client library works.
- **n8n, Make, Zapier**: add the Apify node, pick `alfalfa/linkedin-company-scraper`, paste the same JSON input and read the run's dataset in the next step. See the [Apify integrations docs](https://docs.apify.com/platform/integrations).
- **AI agents and MCP (Claude, Cursor, VS Code, ChatGPT)**: connect the Apify MCP server with this Actor as a tool, `https://mcp.apify.com/?tools=alfalfa/linkedin-company-scraper`, and the agent can look up any company. See [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp).

### Pricing

| Event | Free plan | Starter | Scale | Business and higher |
|---|---|---|---|---|
| Company | $1.00 / 1,000 | $0.90 | $0.80 | $0.70 |
| Filtered search result: extra for a company found by a search with a location, industry or size filter | +$1.00 / 1,000 | +$0.90 | +$0.80 | +$0.70 |
| Searches without filters, name and website lookup, recent posts, open jobs count, locations, similar pages, start fee, platform usage, proxies | included | | | |

A filtered search checks many company pages to find the few that pass every filter; only the companies that pass are charged, so a company from a filtered search costs $2.00 per 1,000 on the Free plan and $1.40 on Business.

A run's **Maximum total charge** is honoured: the Actor stops before the budget is used up, so the bill never exceeds it. Companies that cannot be found, that do not pass the search filters, or that were already saved in the run are not charged.

### Limits and honesty

- The data is what LinkedIn shows on the public company page to a visitor who is not logged in. Employee lists, funding data, phone numbers and the full post history are shown only to logged-in members and are not included. The Actor does not collect data about individual people: posts shared from personal profiles keep their text but not the person's name or profile link.
- A keyword search returns up to several hundred companies per search line. For a larger list, split the search by location, industry or wording.
- A search whose filters are very narrow (a niche keyword in one small city, say) stops early when hardly any of the companies it checks pass them, so it can save fewer companies than **Max companies per search**. Broader filters or other words find more.
- `employeeCount` is the number of LinkedIn members who list the company as their employer; `companySize` is the band the company chose. They often differ.
- LinkedIn shows the most recent posts on the public page, usually up to 10. For more posts, run the Actor on a schedule and keep the new ones.
- Numeric company IDs are not shown publicly on LinkedIn, so some cannot be matched to a page; use the page URL or the company name then. School pages need a login and are skipped.
- A company name returns the best match: the company with exactly that name (the most followed one when several share it), otherwise the first company LinkedIn suggests for the name. Check `name` and `linkedinUrl` when the name is common. A page name that LinkedIn has reassigned leads to the company that holds it now.
- Locations match the headquarters or any office. Two-letter codes are countries (`CA` is Canada, type `California` for the state); a country name such as `Georgia` also matches a state of that name. A city name alone matches that city in any country (London in the UK and in Canada); add the country or state to narrow it: `London, UK`, `Austin, TX`.
- A website returns the company's own LinkedIn page: the page the company points to from its website, or the page that lists the website on LinkedIn. Renamed brands (an old domain that now redirects to the new one) are followed to the new page. Well-known brands that list a campaign, careers or short link instead are matched by their brand name when their main page is clearly the best known one with that name; otherwise the website is reported as not found rather than guessed.
- `openJobCount` is LinkedIn's worldwide count of the company's open jobs at the time of the run. Above 1,000 LinkedIn rounds down and adds a plus (`2,000+`): `openJobCount` then holds the lower bound and `openJobCountText` the figure as shown. Switch **Include open jobs count** off to skip it.
- Links to profiles on other sites (Instagram, Facebook, Linktree ...) and placeholder addresses such as `example.com` are not company websites and are skipped.

### FAQ

**Do I need a LinkedIn account or cookies?** No. Nothing is logged in and your own account is never at risk.

**Can I search companies by keyword, location, industry and size?** Yes. Put the keywords in **Search companies by keywords** and choose the filters; every saved company passes all of them. Industries can be names or LinkedIn industry IDs (the numbers other LinkedIn tools use).

**Can I find a company from its website or name?** Yes, one per line in **Company names or websites**. A website leads to the company's own LinkedIn page, also when the brand has been renamed; a brand's regional or careers page gives way to its main page.

**Does it include open jobs?** Yes. `openJobCount` is the number of jobs the company lists on LinkedIn worldwide at the time of the run, at no extra charge. For the jobs themselves use the [LinkedIn Jobs Scraper](https://apify.com/alfalfa/linkedin-jobs-scraper).

**Can I scrape company employees?** No. LinkedIn shows employee lists only after a login, and this Actor does not collect data about people. `employeeCount` gives the headcount on LinkedIn.

**How fast is it?** About 20 companies in 10 to 50 seconds with the default concurrency; a search with 50 results takes one to two minutes.

**Is it legal?** The Actor reads public company pages without an account and stores only what those pages show. Check your local rules for how you use business data.

### Related Actors by the same author

| Actor | What it does | Price |
|---|---|---|
| [LinkedIn Jobs Scraper](https://apify.com/alfalfa/linkedin-jobs-scraper) | public LinkedIn job postings by keyword, location, date, company or URL | $0.50 per 1,000 jobs |
| [Google Maps Scraper](https://apify.com/alfalfa/google-maps-scraper) | places from any search and location with address, phone, website, rating and hours, plus reviews and website emails | $0.07 per 1,000 places |
| [Amazon Product Scraper](https://apify.com/alfalfa/amazon-product-scraper) | products from searches, Best Sellers lists and ASINs in 22 Amazon stores with price, rating, BSR and details | $0.28 per 1,000 products |
| [Google Ads Transparency Scraper](https://apify.com/alfalfa/google-ads-transparency-scraper) | every ad of an advertiser or website domain with format, dates, regions, previews, YouTube ids | $0.50 per 1,000 ads |
| [YouTube Scraper](https://apify.com/alfalfa/youtube-scraper) | videos of a search, channel, playlist or URL list with views, likes, date, tags, plus transcripts and comments | $0.50 per 1,000 rows |
| [Facebook Ads Library Scraper](https://apify.com/alfalfa/facebook-ads-library-scraper) | ads from the Meta Ad Library by keyword, advertiser page or URL | $0.50 per 1,000 ads |
| [Facebook Pages Scraper](https://apify.com/alfalfa/facebook-pages-scraper) | page details with email, phone, address, followers, rating, About text | from $3.50 per 1,000 pages |
| [Facebook Posts Scraper](https://apify.com/alfalfa/facebook-posts-scraper) | posts of any public page or profile with reactions, comment counts, media | $2 per 1,000 posts |
| [Facebook Comments Scraper](https://apify.com/alfalfa/facebook-comments-scraper) | comments and replies of any public post | $0.50 per 1,000 comments |
| [Facebook Events Scraper](https://apify.com/alfalfa/facebook-events-scraper) | events by search, page or URL with dates, venue, tickets and organizer email | $5 per 1,000 events |

Not affiliated with, endorsed by or connected to LinkedIn Corporation, Microsoft or Apify.

# Actor input Schema

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

One company per line: a LinkedIn company page URL (<code>https://www.linkedin.com/company/stripe</code>), a showcase page URL, the page name from the URL (<code>stripe</code>) or the numeric company ID (<code>2135371</code>). Subpages such as <code>/about</code>, country addresses like <code>de.linkedin.com</code> and Sales Navigator company links are accepted. A company name or website typed here is looked up like in <b>Company names or websites</b>.

## `searches` (type: `array`):

One per line: a company name (<code>Revolut</code>, <code>Česká spořitelna</code>) or a website (<code>stripe.com</code>). Each line returns the best-matching LinkedIn company page. A website is matched with the website the company lists on LinkedIn.

## `searchQueries` (type: `array`):

One search per line, for example <code>fintech</code>, <code>digital marketing agency</code> or <code>"machine learning" -consulting</code>. Results are LinkedIn company pages whose name, tagline, description, specialties, industry or address contain the words. Use quotes for an exact phrase and a minus sign to exclude a word. Combine with the filters below.

## `locations` (type: `array`):

Keep companies with headquarters or an office in any of these places: a country (<code>Germany</code>, <code>DE</code>), a region (<code>California</code>) or a city (<code>London</code>). Two-letter codes are countries (<code>CA</code> is Canada). For a city name that exists in several countries, add the country or state: <code>London, UK</code>, <code>Austin, TX</code>. Leave empty for anywhere.

## `industries` (type: `array`):

Keep companies whose LinkedIn industry is or belongs to any of these, for example <code>Software Development</code>, <code>Financial Services</code> (also keeps Investment Banking and other sub-industries), <code>Marketing</code>. Leave empty for any industry.

## `industryIds` (type: `array`):

LinkedIn industry codes, for example <code>4</code> for Software Development or <code>43</code> for Financial Services, as used by LinkedIn and other LinkedIn tools. A parent industry also keeps its sub-industries (43 keeps Investment Banking). Can be combined with <b>Industries</b>.

## `companySize` (type: `array`):

Keep companies in these size bands (employees, as set on the company page). Leave empty for any size.

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

Stop each search after this many matching companies.

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

Add the most recent posts the company published, as shown on its public page (up to 10): text, exact date, reactions, comments, images, video flag, link preview and shared posts. No extra charge.

## `includeJobCount` (type: `boolean`):

Add <code>openJobCount</code>, the number of jobs the company currently lists on LinkedIn worldwide. No extra charge; switch off for a faster run.

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

Company pages loaded in parallel.

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

Residential proxies are included in the price. Leave the default unless you want to use your own proxy servers.

## Actor input object example

```json
{
  "companies": [
    "https://www.linkedin.com/company/stripe",
    "https://www.linkedin.com/company/netflix",
    "https://www.linkedin.com/company/nvidia"
  ],
  "maxResults": 100,
  "includePosts": true,
  "includeJobCount": true,
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `companies` (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 = {
    "companies": [
        "https://www.linkedin.com/company/stripe",
        "https://www.linkedin.com/company/netflix",
        "https://www.linkedin.com/company/nvidia"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("alfalfa/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",
        "https://www.linkedin.com/company/netflix",
        "https://www.linkedin.com/company/nvidia",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("alfalfa/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",
    "https://www.linkedin.com/company/netflix",
    "https://www.linkedin.com/company/nvidia"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call alfalfa/linkedin-company-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alfalfa/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/9UE2okZema9hA8DzT/builds/0QcS9fcawFjQSp9dz/openapi.json
