# 🔎 LinkedIn Mass Company Profile Finder (`scraperx/linkedin-mass-company-profile-finder`) Actor

- **URL**: https://apify.com/scraperx/linkedin-mass-company-profile-finder.md
- **Developed by:** [ScraperX](https://apify.com/scraperx) (community)
- **Categories:** Automation, Jobs, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Mass Company Profile Finder

Find LinkedIn company profile URLs **in bulk** from any list of keywords — domains, brand names, product names, or plain descriptions. Powered by multi-engine search with smart proxy fallback, designed for sales & marketing teams who need verified LinkedIn pages at scale.

---

### ✨ Why Choose Us?

- 🧠 **Multi-engine search** — DuckDuckGo + Bing combined for maximum coverage; results auto-merged and deduplicated.
- 🌍 **Country-subdomain aware** — Captures `linkedin.com/company/…`, `fr.linkedin.com/company/…`, `uk.linkedin.com/…`, etc., and normalizes to the canonical URL.
- 🛡️ **Smart proxy fallback** — Starts with **no proxy** (cost-saving), automatically escalates to **datacenter** then **residential** (3 retries) if blocked. Once a tier works, it sticks.
- ⚡ **Live results** — Every URL is pushed to the dataset **as it's found** so you can watch the run in real time.
- 🧰 **Robust** — Per-engine retries with exponential backoff, async concurrency, request jitter, and detailed logs.
- 💸 **Cost-efficient** — Default = no proxy = $0 traffic until needed.

---

### 🚀 Key Features

| Feature | What it gives you |
|---|---|
| 🔍 Bulk keyword input | One run, hundreds of companies |
| 🦆 + 🔷 Two engines | DuckDuckGo + Bing for wider coverage |
| 🛡️ 3-tier proxy ladder | no-proxy → datacenter → residential |
| 🔁 3 residential retries | Each retry rotates the IP |
| 🧵 Concurrent workers | Process many keywords in parallel |
| 📦 Live dataset push | Watch URLs roll in as they're found |
| 📊 Per-row attribution | See which engine returned each URL |

---

### 📝 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `urls` | array of strings | ✅ Yes | List of keywords to search for. Each line is searched independently. |
| `proxyConfiguration` | object | ❌ No | Apify proxy config. Default = **no proxy**. Auto-escalates on block. |

> ⚙️ **Internal defaults (not exposed in the UI):** engines = DuckDuckGo + Bing • max results per keyword = 30 • base delay = 0.5 s with jitter • per-engine retries = 2 • concurrent workers = 3.

#### 💡 Example input

```json
{
  "urls": [
    "alma.fr",
    "Stripe payments",
    "Anthropic AI",
    "\"OpenAI\""
  ],
  "proxyConfiguration": { "useApifyProxy": false }
}
````

***

### 📤 Output

Each pushed item represents **one (keyword → LinkedIn URL)** pair. Live in the dataset, exportable as JSON / CSV / XLSX.

```json
[
  {
    "linkedin": "https://www.linkedin.com/company/alma-studio-paris",
    "input": "alma.fr",
    "slug": "alma-studio-paris",
    "foundBy": "bing+ddgs",
    "proxyMode": "no-proxy"
  },
  {
    "linkedin": "https://www.linkedin.com/company/alma-france-communication",
    "input": "alma.fr",
    "slug": "alma-france-communication",
    "foundBy": "ddgs",
    "proxyMode": "no-proxy"
  },
  {
    "linkedin": null,
    "input": "very-rare-keyword-12345",
    "error": "ddgs: no results; bing: no results",
    "proxyMode": "residential"
  }
]
```

#### Field reference

| Field | Description |
|---|---|
| `linkedin` | Canonical LinkedIn company URL (`https://www.linkedin.com/company/<slug>`). `null` if no results. |
| `input` | The keyword exactly as you typed it. |
| `slug` | The LinkedIn slug (everything after `/company/`). |
| `foundBy` | Engines that returned this URL (`ddgs`, `bing`, or `bing+ddgs`). |
| `proxyMode` | Proxy tier in use when this result was fetched (`no-proxy`, `datacenter`, `residential`). |
| `error` | Present only if all engines failed for this keyword. |

***

### 🚀 How to Use (Apify Console)

1. Log in at <https://console.apify.com> → **Actors**.
2. Open **LinkedIn Mass Company Profile Finder**.
3. Paste your keywords (one per line) into the **Keywords** field.
4. (Optional) Adjust **Max Results / Keyword**, **Workers**, **Proxy**.
5. Click **▶ Start**.
6. Watch the logs — each LinkedIn URL is logged as it is found.
7. Open the **OUTPUT** tab when the run finishes (or while it's running).
8. Export to **JSON / CSV / XLSX**.

***

### 🤖 Use via API

Trigger a run via the Apify REST API:

```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": ["alma.fr", "Stripe payments"],
       "maxResultsPerKeyword": 30,
       "proxyConfiguration": { "useApifyProxy": false }
     }'
```

Or asynchronously (returns a run ID):

```bash
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{ "urls": ["alma.fr"] }'
```

***

### 💼 Best Use Cases

- 🎯 **B2B lead generation** — Convert a list of domains into LinkedIn company pages.
- 🔬 **Market research** — Map all companies matching a niche keyword.
- 📈 **Sales intelligence** — Enrich CRM records with verified LinkedIn URLs.
- 🏷️ **Brand tracking** — Find every public LinkedIn page mentioning a brand.
- 🌍 **Local market mapping** — Surface country-subdomain pages (`fr.`, `uk.`, `de.`, …).

***

### ❓ Frequently Asked Questions

**Q: Does it work without a proxy?**
A: Yes — by default it runs with **no proxy** to save cost. If a search engine blocks the request, it automatically escalates to datacenter → residential (3 retries).

**Q: What does "found by bing+ddgs" mean?**
A: Both DuckDuckGo and Bing returned the same LinkedIn URL — a strong signal that it is the correct match.

**Q: Can I use my own proxy?**
A: Yes. Configure Apify proxy in the input. The fallback ladder still applies if your chosen tier gets blocked.

**Q: Why some keywords return more URLs than others?**
A: Different brand names match different numbers of LinkedIn pages. Common words return more results; specific domains often return one or two.

**Q: Are results live?**
A: Yes — every LinkedIn URL is pushed to the dataset the moment it's found. You can monitor & export results while the run is still going.

**Q: Is this scraping LinkedIn directly?**
A: **No.** The actor only reads publicly indexed metadata from search engines. It never logs into LinkedIn, never scrapes LinkedIn HTML, and never touches authenticated content.

***

### 📜 Cautions & Legal

- ✅ Data is collected exclusively from **publicly indexed** search-engine results.
- ❌ No private accounts. No authenticated content. No LinkedIn ToS-violating scraping.
- ⚖️ End users are responsible for compliance (GDPR, CCPA, anti-spam, target ToS).

***

### 📬 Support & Feedback

- 🐞 Issues: open a ticket on the Apify Console under this actor.
- 📧 Custom builds: **dev.scraperengine@gmail.com**
- 🏬 More actors: [Apify Store](https://apify.com/store)

# Actor input Schema

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

📝 **What to enter:** Any list of search keywords — domains (`alma.fr`), exact company names (`"Acme Corp"`), brand + qualifier (`"Stripe" payments`), or plain text. Each line is searched independently.

💡 **Tips:**
• One keyword per line
• Use quotes for exact-match phrases (`"Stripe Inc"`)
• Bulk input fully supported — add 1, 10, or 1000+ keywords
• Works with non-English brands and international domains

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

🔒 **Default: no proxy** (saves cost). If search engines block the request, the actor **automatically** escalates: no-proxy → Datacenter → Residential (3 retries). After a successful fallback, the chosen proxy is reused for all remaining keywords. You can also pre-configure Apify proxy here if you want to start with one.

## Actor input object example

```json
{
  "urls": [
    "alma.fr",
    "Stripe payments",
    "Anthropic AI"
  ],
  "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": [
        "alma.fr",
        "Stripe payments",
        "Anthropic AI"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperx/linkedin-mass-company-profile-finder").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": [
        "alma.fr",
        "Stripe payments",
        "Anthropic AI",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraperx/linkedin-mass-company-profile-finder").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": [
    "alma.fr",
    "Stripe payments",
    "Anthropic AI"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraperx/linkedin-mass-company-profile-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraperx/linkedin-mass-company-profile-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🔎 LinkedIn Mass Company Profile Finder",
        "description": null,
        "version": "0.1",
        "x-build-id": "ebzgMRrDgIz5gLEOs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperx~linkedin-mass-company-profile-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperx-linkedin-mass-company-profile-finder",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scraperx~linkedin-mass-company-profile-finder/runs": {
            "post": {
                "operationId": "runs-sync-scraperx-linkedin-mass-company-profile-finder",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scraperx~linkedin-mass-company-profile-finder/run-sync": {
            "post": {
                "operationId": "run-sync-scraperx-linkedin-mass-company-profile-finder",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "🔍 Keywords / Company Names / Domains (required)",
                        "type": "array",
                        "description": "📝 **What to enter:** Any list of search keywords — domains (`alma.fr`), exact company names (`\"Acme Corp\"`), brand + qualifier (`\"Stripe\" payments`), or plain text. Each line is searched independently.\n\n💡 **Tips:**\n• One keyword per line\n• Use quotes for exact-match phrases (`\"Stripe Inc\"`)\n• Bulk input fully supported — add 1, 10, or 1000+ keywords\n• Works with non-English brands and international domains",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "🛡️ Proxy Configuration",
                        "type": "object",
                        "description": "🔒 **Default: no proxy** (saves cost). If search engines block the request, the actor **automatically** escalates: no-proxy → Datacenter → Residential (3 retries). After a successful fallback, the chosen proxy is reused for all remaining keywords. You can also pre-configure Apify proxy here if you want to start with one."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
