# LinkedIn Company Profile Scraper (`coregent/linkedin-company-profile-scraper`) Actor

Scrape public LinkedIn company pages in bulk and return clean company intelligence (name, industry, website, size, HQ, founded year, specialties, follower/employee signals, locations, profile URLs). Flat CSV-ready output. No login or cookies.

- **URL**: https://apify.com/coregent/linkedin-company-profile-scraper.md
- **Developed by:** [Delowar Munna](https://apify.com/coregent) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 company-results

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/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 Company Profile Scraper

![LinkedIn Company Profile Scraper](https://raw.githubusercontent.com/coregentdevspace/linkedin-company-profile-scraper-assets/main/thumbnail-logo-linkedin-company-profile-scraper.jpg)

Scrape **public LinkedIn company pages** in bulk and turn them into clean, flat, CSV-ready rows — name, industry, website, company size, headquarters, founded year, specialties, follower / employee signals, locations, and profile URLs. Built for **B2B sales teams, lead generation, agencies, recruiters, market researchers, and enrichment workflows**.

**No LinkedIn login, no cookies, no session IDs, no people scraping.** The actor visits each public company profile page directly over HTTP and parses the SSR-ed HTML (JSON-LD `Organization` → og: tags → visible top-card markup). You pay one flat event per unique company row that passes your filters.

### ✨ Why this scraper

- **Company-first** — public company intelligence only. No people scraping, no posts, no email enrichment, no login.
- **Bulk input** — paste a list of LinkedIn company URLs and/or company slugs.
- **30 flat fields** — identity, profile, web, location, derived flags, completeness score. No nested objects, drops straight into Sheets / Excel / CRMs.
- **Pay-Per-Event** — one flat `company-result` event per saved unique company. Duplicates, filtered rows, and failed pages are never charged.
- **No login / cookies / sessions** — just URLs or slugs.
- **Transparent profile-completeness score** — rule-based (no AI), explained below.

---

### 🚀 Quick start — sample inputs

#### Example 1 — bulk URLs + slugs

```json
{
    "companyUrls": [
        "https://www.linkedin.com/company/apifytech/",
        "https://www.linkedin.com/company/microsoft/",
        "https://www.linkedin.com/company/atlassian/"
    ],
    "companySlugs": ["stripe", "shopify"],
    "maxResults": 100,
    "includeShowcasePages": true,
    "deduplicate": true,
    "proxyConfiguration": { "useApifyProxy": true }
}
````

#### Example 2 — filtered by industry + minimum followers, custom residential proxy

```json
{
    "companyUrls": [
        "https://www.linkedin.com/company/stripe/",
        "https://www.linkedin.com/company/snowflake-computing/",
        "https://www.linkedin.com/company/databricks/",
        "https://www.linkedin.com/company/airtable/",
        "https://www.linkedin.com/company/canva/"
    ],
    "maxResults": 200,
    "requiredWebsite": true,
    "industryKeywords": ["software", "data"],
    "minFollowers": 100000,
    "deduplicate": true,
    "proxyConfiguration": {
        "useApifyProxy": false,
        "proxyUrls": ["http://user:pass@proxy.iproyal.com:12321"]
    }
}
```

> Provide **at least one** of `companyUrls` or `companySlugs`. Slugs are converted to canonical `https://www.linkedin.com/company/<slug>` URLs and merged with the URL list (deduplicated by canonical URL).

> The actor blocks Apify Residential proxy; if you need residential routing, supply your own provider via `proxyConfiguration.proxyUrls`. See **🚦 Proxy policy** below.

***

### 📦 Output

The dataset has one view: **Company profiles** — a 30-column flat table.

![LinkedIn Company Profile Scraper — all-fields table view](https://raw.githubusercontent.com/coregentdevspace/linkedin-company-profile-scraper-assets/main/linkedin-company-profile-scraper-output-all-fields-table-view.png)

#### Output fields (30)

`input_url`, `input_slug`, `source_type`, `linkedin_company_url`, `linkedin_company_slug`, `linkedin_company_id`, `company_name`, `tagline`, `description`, `industry`, `company_size`, `employee_count_on_linkedin`, `follower_count`, `company_type`, `founded_year`, `specialties`, `website`, `website_domain`, `headquarters`, `locations_text`, `primary_location`, `country_hint`, `has_website`, `has_description`, `has_size_signal`, `profile_completeness_score`, `profile_completeness_label`, `reason_tags`, `scrape_status`, `scraped_at`.

#### Sample record — Company profiles

(Real run output.)

```json
{
    "input_url": "https://www.linkedin.com/company/atlassian/",
    "input_slug": "atlassian",
    "source_type": "company_url",
    "linkedin_company_url": "https://www.linkedin.com/company/atlassian",
    "linkedin_company_slug": "atlassian",
    "linkedin_company_id": "22688",
    "company_name": "Atlassian",
    "tagline": "Our mission is to help unleash the potential of every team.",
    "description": "Atlassian powers the collaboration that helps teams accomplish what would otherwise be impossible alone. From space missions and motor racing to bugs in code and IT requests, no task is too large or too small with the right team, the right tools, and the right practices. Over 300,000 global companies and 80% of the Fortune 500 rely on Atlassian's software, like Jira, Confluence, Loom, and Trello, to help their teams work better together and deliver quality results on time...",
    "industry": "Software Development",
    "company_size": "10,001+ employees",
    "employee_count_on_linkedin": 21146,
    "follower_count": 2481150,
    "company_type": "Public Company",
    "founded_year": 2002,
    "specialties": "b2b enterprise software; bug tracker; issue tracker; enterprise wiki; corporate wiki; business wiki; team collaboration; project management; downtime communication; work management; teamwork; and personal productivity",
    "website": "https://atlassian.com",
    "website_domain": "atlassian.com",
    "headquarters": "Sydney, NSW",
    "locations_text": "Level 6/341 George St Sydney, NSW 2000, AU; Singel 236 Amsterdam, Holland 1016 AB, NL; 465 Pine St Level 13 San Francisco, California 94104, US; 816 Congress Ave Suite 1800 Austin, TX 78701, US; 321 E Evelyn Ave Mountain View, California 94041, US; 55 Broadway New York, NY 10023, US; Embassy Golf Links Business Park, Domlur 3rd Floor, Sunriver, Wework Bengaluru, Karnataka 560071, IN; 55 Causeway St Boston, Massachusetts 02114, US; Odtu Teknokent, Gumus Blok 29/BK-2 Ankara, Cankaya 06800, TR",
    "primary_location": "Sydney, NSW",
    "country_hint": "NSW",
    "has_website": true,
    "has_description": true,
    "has_size_signal": true,
    "profile_completeness_score": 100,
    "profile_completeness_label": "Complete",
    "reason_tags": "has_website;has_industry;has_size_signal;has_headquarters;has_description;has_followers;has_specialties",
    "scrape_status": "success",
    "scraped_at": "2026-05-26T13:53:25.690Z"
}
```

***

### 🎯 Profile-completeness score

Transparent rule-based score (0–100) computed from extracted fields — no AI, no external enrichment.

| Signal                                 | Points |
| -------------------------------------- | -----: |
| Company name found                     |    +20 |
| Website found                          |    +15 |
| Industry found                         |    +15 |
| Company size or employee count found   |    +10 |
| Headquarters or primary location found |    +10 |
| Description found                      |    +10 |
| Follower count found                   |    +10 |
| Founded year found                     |     +5 |
| Specialties found                      |     +5 |

Score is capped at 100.

**Labels**: `Complete` (80–100) · `Good` (60–79) · `Partial` (40–59) · `Sparse` (0–39).

`reason_tags` is a `;`-separated list of which signals fired (e.g. `has_website;has_industry;has_size_signal;has_followers;has_specialties`, plus `missing_website` or `partial_profile` when applicable).

***

### 💰 Pricing

**Pay-Per-Event**. One flat event per saved row (final per-event price is configured on the Apify console):

| Event            | Charged when                                                                                     |
| ---------------- | ------------------------------------------------------------------------------------------------ |
| `company-result` | Once per unique company row that passed all filters and was successfully written to the dataset. |

So your bill is simply `results_saved × price_per_event`. The actor honors the user-configured per-run spending cap (Apify `eventChargeLimitReached`): it both caps how many results it collects up-front to what the limit can pay for, and stops cleanly the moment the cap is reached during charging.

Not charged:

- Duplicates (deduplicated by company ID, canonical URL, slug, or name + domain / location).
- Rows filtered out by website / industry / location / followers / employee-count filters.
- Rows missing both `company_name` and `linkedin_company_url`.
- Failed or blocked requests.

#### 🚦 Proxy policy

Use **Apify Datacenter** proxy or **no proxy** for normal runs — both work for LinkedIn's public company profile pages at this actor's conservative concurrency.

**Apify Residential proxy is not supported.** The actor will fail at startup if `proxyConfiguration.apifyProxyGroups` includes `RESIDENTIAL`. Reason: in pay-per-event actors, residential bandwidth (~/GB) is billed to the developer, not the run user, so a single bandwidth-heavy run could exceed the per-result event revenue.

If you genuinely need residential routing, supply your own residential provider via the proxy editor's **Custom proxy URLs** field — that traffic goes through your provider, not Apify, and is unaffected:

```
http://user:pass@proxy.iproyal.com:12321
http://user:pass@proxy.brightdata.com:22225
http://user:pass@proxy.oxylabs.io:7777
```

***

### 📊 Run summary

After each run, a `RUN_SUMMARY` entry is written to the key-value store:

```json
{
    "inputs_total": 24,
    "company_urls_total": 24,
    "company_slugs_total": 0,
    "valid_inputs": 24,
    "invalid_inputs": 0,
    "successful_inputs": 24,
    "failed_inputs": 0,
    "raw_results_found": 24,
    "results_saved": 24,
    "duplicates_removed": 0,
    "filtered_out": 0,
    "partial_success_rows": 0,
    "charged_events": 24,
    "blocked_requests": 0,
    "retry_count": 0,
    "max_results_reached": false,
    "runtime_seconds": 38,
    "scraped_at": "2026-05-26T13:25:04.061Z"
}
```

`charged_events` equals the number of successfully saved unique rows.

***

### ⚙️ Filters

| Filter                 | Effect                                                                                                      |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- |
| `requiredWebsite`      | Drop rows with no website value.                                                                            |
| `industryKeywords`     | Case-insensitive substring across `industry`, `specialties`, `description`. Missing fields fail the filter. |
| `locationKeywords`     | Case-insensitive substring across `headquarters`, `primary_location`, `locations_text`. Missing = fails.    |
| `minFollowers`         | Drop rows with `follower_count < minFollowers`. Missing follower count fails when `minFollowers > 0`.       |
| `minEmployeeCount`     | Drop rows with `employee_count_on_linkedin < minEmployeeCount`. Missing fails when `minEmployeeCount > 0`.  |
| `includeShowcasePages` | When `false`, `linkedin.com/showcase/*` URLs are skipped at input time as invalid.                          |
| `deduplicate`          | Remove duplicates by company ID → canonical URL → slug → name + domain → name + location. Richer kept.      |

Filters are applied **before** any dataset push or event charge.

***

### 🚧 Limitations (V1)

- **Public profile data only**: no login, cookies, or member-only content. Fields that LinkedIn does not expose publicly for a given company stay `null`.
- **No people, posts, jobs, emails, or website crawling.** Out of scope for V1.
- **No Sales Navigator / private / gated fields.**
- `maxResults` caps **saved unique** rows across the whole run (not per input).
- `partial_success` rows may have minimal fields when LinkedIn returns an auth-walled page that still exposes name / URL via meta tags.

***

### ❓ FAQ

**Do I need a LinkedIn account or cookies?**
No. The actor only visits public LinkedIn company pages.

**What if I only have company slugs, not full URLs?**
Use the `companySlugs` field. Slugs like `microsoft` or `apifytech` are converted to `https://www.linkedin.com/company/<slug>` automatically.

**Why are some rows marked `partial_success`?**
LinkedIn occasionally returns an auth-walled response with only meta-tag identity (name + URL) and not the full top-card / about-card. Those rows still push when they have enough identity — flagged so you can filter them out downstream.

**How is dedup done?**
Priority order: company ID → canonical URL → slug → normalized `company_name + website_domain` → normalized `company_name + primary_location`. The richer record (more non-empty fields, success over partial) is kept on collision.

**Can I export to CSV?**
Yes — every field is flat (no nested objects). Use Apify's CSV / Excel export, or call the dataset API with `format=csv`.

**Will I get blocked?**
The actor uses conservative concurrency, realistic headers, session rotation, and retry / backoff. Default Apify Proxy is sufficient for typical small / medium runs. For large runs, supply your own proxy provider via Custom proxy URLs.

***

### 🛠️ Technical notes

- **Stack**: Node.js 22 · Apify SDK 3 · Crawlee `CheerioCrawler` · Cheerio + native fetch. No browser.
- **Extraction priority**: JSON-LD `Organization` → `og:` / Twitter meta tags → visible top-card / about-card HTML.
- **Concurrency**: `min=1`, `max=5` (conservative; tune after real runs).
- **Memory**: 1 GB min · 2 GB default · 4 GB max.
- **Proxy**: Apify Proxy enabled by default; custom configs accepted; Apify Residential rejected at startup.

# Actor input Schema

## `companyUrls` (type: `array`):

Public LinkedIn company / school / showcase URLs to scrape, for example https://www.linkedin.com/company/apifytech/. Provide at least one of Company URLs or Company slugs.

## `companySlugs` (type: `array`):

LinkedIn company slugs (the part after /company/ in the URL), for example apifytech, microsoft, atlassian. Each slug is converted to its canonical company URL.

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

Maximum number of saved unique company rows across the whole run (not per input). Range 1-10000.

## `includeShowcasePages` (type: `boolean`):

Allow LinkedIn showcase / specialized company pages. If off, URLs detected as showcase pages are skipped.

## `requiredWebsite` (type: `boolean`):

Keep only companies that publicly expose a website on their LinkedIn profile.

## `industryKeywords` (type: `array`):

Case-insensitive substring filter on the company's industry, specialties, or description text. Empty = no filter.

## `locationKeywords` (type: `array`):

Case-insensitive substring filter on the company's headquarters, primary location, or locations text. Empty = no filter.

## `minFollowers` (type: `integer`):

Keep only companies with at least this many LinkedIn followers. 0 = no minimum. Companies with no visible follower count fail the filter when this is above 0.

## `minEmployeeCount` (type: `integer`):

Keep only companies with at least this many associated employees on LinkedIn. 0 = no minimum. Missing counts fail the filter when this is above 0.

## `deduplicate` (type: `boolean`):

Remove duplicate companies across inputs by LinkedIn company ID, canonical URL, slug, or name+domain/location. Keeps the richer record when duplicates merge.

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

Apify Proxy configuration. Defaults to Apify Proxy enabled. Apify Residential is NOT supported and will fail the run at startup; if you need residential routing, supply your own provider via Custom proxy URLs (proxyUrls).

## Actor input object example

```json
{
  "companyUrls": [
    "https://www.linkedin.com/company/apifytech/",
    "https://www.linkedin.com/company/microsoft/"
  ],
  "companySlugs": [
    "atlassian"
  ],
  "maxResults": 100,
  "includeShowcasePages": true,
  "requiredWebsite": false,
  "industryKeywords": [],
  "locationKeywords": [],
  "minFollowers": 0,
  "minEmployeeCount": 0,
  "deduplicate": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Flat 30-field table view of every company row pushed to the dataset, including identity, profile fields, web/location info, derived flags, and profile completeness signals.

# 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 = {
    "companyUrls": [
        "https://www.linkedin.com/company/apifytech/",
        "https://www.linkedin.com/company/microsoft/"
    ],
    "companySlugs": [
        "atlassian"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("coregent/linkedin-company-profile-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 = {
    "companyUrls": [
        "https://www.linkedin.com/company/apifytech/",
        "https://www.linkedin.com/company/microsoft/",
    ],
    "companySlugs": ["atlassian"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("coregent/linkedin-company-profile-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 '{
  "companyUrls": [
    "https://www.linkedin.com/company/apifytech/",
    "https://www.linkedin.com/company/microsoft/"
  ],
  "companySlugs": [
    "atlassian"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call coregent/linkedin-company-profile-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Company Profile Scraper",
        "description": "Scrape public LinkedIn company pages in bulk and return clean company intelligence (name, industry, website, size, HQ, founded year, specialties, follower/employee signals, locations, profile URLs). Flat CSV-ready output. No login or cookies.",
        "version": "1.0",
        "x-build-id": "N2GnmQja9aXKivCYW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/coregent~linkedin-company-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-coregent-linkedin-company-profile-scraper",
                "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/coregent~linkedin-company-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-coregent-linkedin-company-profile-scraper",
                "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/coregent~linkedin-company-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-coregent-linkedin-company-profile-scraper",
                "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",
                "properties": {
                    "companyUrls": {
                        "title": "Company URLs",
                        "type": "array",
                        "description": "Public LinkedIn company / school / showcase URLs to scrape, for example https://www.linkedin.com/company/apifytech/. Provide at least one of Company URLs or Company slugs.",
                        "default": [
                            "https://www.linkedin.com/company/apifytech/",
                            "https://www.linkedin.com/company/microsoft/"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "companySlugs": {
                        "title": "Company slugs",
                        "type": "array",
                        "description": "LinkedIn company slugs (the part after /company/ in the URL), for example apifytech, microsoft, atlassian. Each slug is converted to its canonical company URL.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of saved unique company rows across the whole run (not per input). Range 1-10000.",
                        "default": 100
                    },
                    "includeShowcasePages": {
                        "title": "Include showcase pages",
                        "type": "boolean",
                        "description": "Allow LinkedIn showcase / specialized company pages. If off, URLs detected as showcase pages are skipped.",
                        "default": true
                    },
                    "requiredWebsite": {
                        "title": "Require website",
                        "type": "boolean",
                        "description": "Keep only companies that publicly expose a website on their LinkedIn profile.",
                        "default": false
                    },
                    "industryKeywords": {
                        "title": "Industry keywords",
                        "type": "array",
                        "description": "Case-insensitive substring filter on the company's industry, specialties, or description text. Empty = no filter.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "locationKeywords": {
                        "title": "Location keywords",
                        "type": "array",
                        "description": "Case-insensitive substring filter on the company's headquarters, primary location, or locations text. Empty = no filter.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "minFollowers": {
                        "title": "Minimum followers",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only companies with at least this many LinkedIn followers. 0 = no minimum. Companies with no visible follower count fail the filter when this is above 0.",
                        "default": 0
                    },
                    "minEmployeeCount": {
                        "title": "Minimum employees on LinkedIn",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only companies with at least this many associated employees on LinkedIn. 0 = no minimum. Missing counts fail the filter when this is above 0.",
                        "default": 0
                    },
                    "deduplicate": {
                        "title": "Deduplicate companies",
                        "type": "boolean",
                        "description": "Remove duplicate companies across inputs by LinkedIn company ID, canonical URL, slug, or name+domain/location. Keeps the richer record when duplicates merge.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Defaults to Apify Proxy enabled. Apify Residential is NOT supported and will fail the run at startup; if you need residential routing, supply your own provider via Custom proxy URLs (proxyUrls).",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
