# Linkedin Profiles Companies Scraper (`silentflow/linkedin-profiles-companies-scraper`) Actor

Bulk scrape LinkedIn profiles and companies. Search by keywords, names, or URLs. Get contact info, company details, industry, size, and more. No login required.

- **URL**: https://apify.com/silentflow/linkedin-profiles-companies-scraper.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 121 total users, 3 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$24.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## 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 & Profiles Bulk Scraper

Companies & Profiles LinkedIn data extraction tool. Get comprehensive profiles of individuals and companies based on your keywords and filters. Unleash the power of data! 🌐🔍

### 🌟 Features

- 🔍 **Multi Search Option**: Search by keywords, names, or direct URLs
- 📚 **Bulk Research**: Search from lists of names, company names, or keywords
- 🌍 **Global Reach**: Filter by any location worldwide
- 🏢 **Company Enrichment**: Get detailed company info (industry, size, specialties, etc.)
- 👤 **Profile Discovery**: Find professionals by role, company, or expertise
- ⚡ **Fast & Reliable**: Optimized for speed and accuracy

### 💡 Use Cases

- 📊 **Market Analysts**: Analyze industry trends, company landscapes, and role distribution
- 💼 **Business Strategists**: Monitor competitors and identify key industry players
- 🎯 **HR & Recruiters**: Scout talent and understand the competitive landscape
- 👥 **Sales Teams**: Build prospect lists and enrich lead data
- 🔬 **Researchers**: Gather professional network data for studies

### 🚀 How to Use

#### Quick Search Mode (Fast, Basic Data)

```json
{
  "action": "get-profiles",
  "keywords": ["CEO startup", "CTO fintech"],
  "location": ["France"],
  "limit": 10
}
```

#### Detailed Search Mode (Slower, More Data)

```json
{
  "action": "get-profiles",
  "keywords": ["CEO startup"],
  "location": ["France"],
  "limit": 10,
  "fetchDetails": true
}
```

#### URL Mode (Direct Data Extraction)

```json
{
  "action": "get-companies",
  "keywords": ["https://www.linkedin.com/company/google"],
  "isUrl": true,
  "limit": 1
}
```

### ⚙️ Input Parameters

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `action` | Enum | `get-profiles` or `get-companies` | `get-profiles` |
| `keywords` | Array | Keywords, names, or URLs to search | Required |
| `isUrl` | Boolean | Set `true` if keywords are LinkedIn URLs | `false` |
| `limit` | Integer | Max results per keyword (1-100) | `10` |
| `location` | Array | Location filters (e.g., `["France", "Paris"]`) | `[]` |
| `fetchDetails` | Boolean | Fetch full profile/company details (slower, more data) | `false` |
| `cookies` | Array | Optional LinkedIn cookies to unlock full profile details | `[]` |
| `includeSkills` | Boolean | Include profile skills. Turn off for faster, cheaper runs when you only need experience, education and contact fields | `true` |
| `proxy` | Object | Proxy configuration | Apify Residential |

### 📤 Output Format

#### Profile Output

```json
{
  "publicId": "john-doe-123456",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "headline": "Senior Software Engineer at Google",
  "profileUrl": "https://www.linkedin.com/in/john-doe-123456",
  "location": "San Francisco, CA",
  "city": "San Francisco",
  "state": "CA",
  "country": "United States",
  "currentCompany": "Google",
  "currentCompanyUrl": "https://linkedin.com/company/google",
  "email": "john@example.com",
  "isOpenToWork": false,
  "scrapedAt": "2025-11-28T10:30:00Z"
}
```

#### Company Output

```json
{
  "name": "Google",
  "universalName": "google",
  "companyUrl": "https://www.linkedin.com/company/google",
  "website": "https://about.google",
  "description": "A problem isn't truly solved until it's solved for all...",
  "industry": "Software Development",
  "companySize": "10,001+ employees",
  "companyType": "Public Company",
  "headquarters": "Mountain View, CA",
  "city": "Mountain View",
  "state": "CA",
  "country": "United States",
  "founded": "1998",
  "followers": 39755786,
  "specialties": ["search", "ads", "AI", "cloud", "hardware"],
  "scrapedAt": "2025-11-28T10:30:00Z"
}
```

### 📊 Data Availability by Mode

#### Profiles

| Data | Search Mode | Search + fetchDetails | URL Mode |
|------|-------------|----------------------|----------|
| Name | ✅ | ✅ | ✅ |
| Headline | ✅ | ✅ | ✅ |
| Profile URL | ✅ | ✅ | ✅ |
| Profile Picture | ❌ | ✅ | ✅ |
| Current Company | ❌ | ✅ | ✅ |
| Current Position | ❌ | ✅ | ✅ |
| Company URL | ❌ | ✅ | ✅ |
| Location | ❌ | ⚠️ If public | ⚠️ If public |
| Summary | ❌ | ⚠️ If public | ⚠️ If public |
| Email | ❌ | ⚠️ If public | ⚠️ If public |

#### Companies

| Data | Search Mode | Search + fetchDetails | URL Mode |
|------|-------------|----------------------|----------|
| Company Name | ✅ | ✅ | ✅ |
| Company URL | ✅ | ✅ | ✅ |
| Industry | ⚠️ Partial | ✅ | ✅ |
| Description | ⚠️ Partial | ✅ | ✅ |
| Website | ❌ | ✅ | ✅ |
| Company Size | ❌ | ✅ | ✅ |
| Company Type | ❌ | ✅ | ✅ |
| Headquarters | ❌ | ✅ | ✅ |
| Founded | ❌ | ⚠️ Rarely available | ⚠️ Rarely available |
| Specialties | ❌ | ✅ | ✅ |
| Followers | ❌ | ✅ | ✅ |

> ⚠️ **Note**: Data availability depends on profile/company privacy settings and LinkedIn page structure.

### 💡 Tips for Best Results

1. **Use Residential Proxies**: Essential for best results
2. **Start Small**: Test with `limit: 5` before scaling up
3. **Be Specific**: More precise keywords = better results
4. **Use fetchDetails for Rich Data**: Enable `fetchDetails: true` to get profile pictures, company info, and more
5. **URL Mode for Maximum Details**: Use URL mode when you need the most complete data
6. **Balance Speed vs Data**: Quick mode is ~5x faster but returns less data
7. **Memory**: 256 MB is the recommended setting. More memory does not make runs faster and only increases usage cost.
8. **Cookies and Volume**: When you provide cookies, keep batches moderate. The scraper paces authenticated requests to protect your LinkedIn session; very large one-shot runs from a single account may still be rate limited.
9. **Skip Skills to Save**: Turn off `includeSkills` when you only need experience, education and contact fields, for faster and cheaper authenticated runs.

### 📞 Support

Having issues? Check the Issues tab or contact support.

***

Made by **SilentFlow**

# Actor input Schema

## `action` (type: `string`):

Select an action to perform

## `keywords` (type: `array`):

It can be a single query or a list of names, companies or URLS... ⚠️ For performance reason we limit to 500 keywords, over will be ignored

## `isUrl` (type: `boolean`):

Must be set to true if querying per URL (https://linkedin.com/in/john-doe/) or false if querying per keyword or name (web developer)

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

Max rows to return per query item. (If limit is 5 and keywords contains 2 items, will return 10 rows)

## `fetchDetails` (type: `boolean`):

When enabled, visits each LinkedIn profile page to get full details (headline, summary, company, etc.). Slower but more data. When disabled, only returns basic info from search results (faster).

## `cookies` (type: `array`):

Optional. Paste your LinkedIn browser cookies as a JSON array to unlock complete, reliable personal-profile details (headline, current role, company, location, experience, education, skills). Without cookies the scraper still works using public data. Install Cookie-Editor, log into LinkedIn, Export as JSON, and paste here. Required cookies: li\_at and JSESSIONID.

## `userAgent` (type: `string`):

Optional. The User-Agent of the browser you used to export the cookies. Leave empty for automatic rotation.

## `includeSkills` (type: `boolean`):

On by default. Turn off to skip fetching profile skills, which makes authenticated runs faster and cheaper when you only need experience, education and contact fields.

## `location` (type: `array`):

Filter by location

## `proxy` (type: `object`):

Select proxies to be used.

## Actor input object example

```json
{
  "action": "get-profiles",
  "keywords": [
    "web dev"
  ],
  "isUrl": false,
  "limit": 10,
  "fetchDetails": false,
  "cookies": [
    {
      "name": "li_at",
      "value": "YOUR_LI_AT_COOKIE_HERE"
    },
    {
      "name": "JSESSIONID",
      "value": "YOUR_JSESSIONID_HERE"
    }
  ],
  "userAgent": "",
  "includeSkills": true,
  "location": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `profiles` (type: `string`):

Complete data including: For profiles - publicId, firstName, lastName, fullName, headline, profileUrl, profilePicture, location, city, state, country, currentCompany, currentCompanyUrl, currentPosition, connections, email, isOpenToWork, summary. For companies - name, universalName, companyUrl, website, description, industry, companySize, companyType, headquarters, specialties, followers, scrapedAt (founded is rarely available on public pages).

## `profilesCSV` (type: `string`):

CSV format export of all profiles and companies for spreadsheet analysis

## `profilesExcel` (type: `string`):

Excel format export of all profiles and 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 = {
    "cookies": [
        {
            "name": "li_at",
            "value": "YOUR_LI_AT_COOKIE_HERE"
        },
        {
            "name": "JSESSIONID",
            "value": "YOUR_JSESSIONID_HERE"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/linkedin-profiles-companies-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 = { "cookies": [
        {
            "name": "li_at",
            "value": "YOUR_LI_AT_COOKIE_HERE",
        },
        {
            "name": "JSESSIONID",
            "value": "YOUR_JSESSIONID_HERE",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("silentflow/linkedin-profiles-companies-scraper").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 '{
  "cookies": [
    {
      "name": "li_at",
      "value": "YOUR_LI_AT_COOKIE_HERE"
    },
    {
      "name": "JSESSIONID",
      "value": "YOUR_JSESSIONID_HERE"
    }
  ]
}' |
apify call silentflow/linkedin-profiles-companies-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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