Turn exact LinkedIn company URLs or slugs into structured, export-ready firmographic records. The actor requires no LinkedIn account or cookies, never guesses from a company name, and charges only for successful identity-checked company profiles.
Use it for CRM enrichment, account research, recruiting analysis, investment research, and recurring competitor monitoring. Every submitted input ends as either a company record or an explicit failed/skipped outcome, so duplicates and entries above the cap never disappear silently.
Who is it for?
- B2B sales and RevOps teams enriching account records from known LinkedIn company URLs.
- Recruiting and labor-market analysts comparing public company size, industry, location, and hiring signals.
- Investors and market researchers collecting consistent public firmographics for analysis.
- Competitive-intelligence teams monitoring the same verified companies on a schedule.
Example input
{
"companyUrls": [
"https://www.linkedin.com/company/apify/",
"openai"
],
"maxCompanies": 10,
"includeFieldProvenance": true,
"includeJobOpeningCount": false
}
Example output
{
"requestedUrl": "https://www.linkedin.com/company/apify/",
"requestedSlug": "apify",
"canonicalUrl": "https://www.linkedin.com/company/apify/",
"resolvedSlug": "apify",
"linkedinCompanyId": "10608457",
"identityMatch": "exact",
"name": "Apify",
"tagline": null,
"description": "Apify is the largest marketplace of tools for AI...",
"website": "https://apify.com/",
"websiteDomain": "apify.com",
"industryDisplayed": "Technology, Information and Internet",
"companyType": "Privately Held",
"foundedYear": 2016,
"employeeRange": "201-500 employees",
"associatedMemberCount": 244,
"followerCount": 27073,
"headquarters": "Prague",
"locations": [{ "address": "Prague", "isHeadquarters": true }],
"specialties": ["Web scraping", "Browser automation", "AI agents"],
"logoUrls": [],
"coverUrls": [],
"missingFields": ["tagline", "industryId", "industryUrn"],
"fetchedAt": "2026-07-10T12:55:25.574Z",
"schemaVersion": "1.0"
}
Optional public fields remain null or empty and are listed in missingFields; they are never guessed.
What data it exports
- Exact requested, canonical, and resolved LinkedIn company identity
- LinkedIn company ID when publicly exposed
- Company name, tagline, description, website, and website domain
- Displayed industry plus taxonomy ID/URN when available
- Company type and founded year
- Employee range, associated member count, and follower count as separate values
- Headquarters, public locations, and specialties
- Public logo and cover image URLs
- Optional aggregate job-opening count when publicly displayed
- Per-field provenance, missing fields, fetch timestamp, and schema version
This actor is company-metadata only. It does not collect employee identities, personal profiles, work histories, email addresses, phone numbers, Sales Navigator data, or inferred contacts.
Input settings
| Field | Type | Default | Description |
|---|---|---|---|
companyUrls |
string[] | required | Exact linkedin.com/company/{slug}/ URLs or unambiguous slugs. Names, searches, websites, and personal-profile URLs are rejected. |
maxCompanies |
integer | 100 |
Maximum unique inputs processed, from 1 to 1,000. |
includeFieldProvenance |
boolean | true |
Adds the source used for each available field. |
includeJobOpeningCount |
boolean | false |
Includes the aggregate count only when the public profile exposes it. |
Inputs are normalized while preserving original indexes and order. Duplicate entries and valid entries above maxCompanies receive explicit uncharged outcomes.
Results and errors
Successful profiles are written to the default Company profiles dataset. Failed and skipped terminal outcomes are written separately to the Input errors dataset with the zero-based input index, original input, status, outcome code, HTTP status, retry count, message, and timestamp. The OUTPUT record reports requested and terminal-outcome totals plus successful, failed, skipped-duplicate, and capped counts.
Error/skipped rows are never charged as company results. Common codes are INVALID_INPUT, DUPLICATE_INPUT, MAX_COMPANIES_EXCEEDED, NOT_FOUND, BLOCKED, IDENTITY_MISMATCH, HTTP_ERROR, and PARSE_ERROR.
Input recipes
Enrich a CRM account list
Submit canonical company URLs exported from your CRM and keep includeFieldProvenance enabled for auditable enrichment.
Monitor competitors
Schedule the same slug list daily or weekly, then compare follower count, employee range, description, and headquarters over time.
Validate a mixed list safely
Submit URL and slug entries together. Invalid websites, names, and personal profiles appear in the errors dataset instead of being silently treated as searches.
Tips and limits
- Prefer canonical LinkedIn company URLs when you have them.
- A renamed company may resolve to a new slug and return
identityMatch: "redirected". - Public LinkedIn profiles vary; unavailable fields remain null/empty with explicit missing reasons.
- The actor does not bypass authentication or access account-only data.
- Upstream rate limits or challenge pages may produce a bounded
BLOCKEDfailure rather than partial data. - A run processes up to 1,000 unique inputs and uses bounded concurrency to protect reliability.
API usage
JavaScript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/linkedin-company-profiles-scraper').call({
companyUrls: ['apify', 'https://www.linkedin.com/company/openai/'],
maxCompanies: 10,
includeFieldProvenance: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/linkedin-company-profiles-scraper').call(run_input={
'companyUrls': ['apify', 'openai'],
'maxCompanies': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
cURL
curl -X POST \
"https://api.apify.com/v2/acts/fetch_cat~linkedin-company-profiles-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companyUrls":["apify","https://www.linkedin.com/company/openai/"],"maxCompanies":10}'
The response contains the run ID and dataset ID. Poll the run until it finishes, then download the default dataset items.
MCP and AI agents
Connect through Apify MCP so an AI agent can retrieve verified public-company context without LinkedIn credentials. Keep the strict URL/slug input rule in agent prompts to avoid fuzzy identity mistakes.
Add the actor to Claude Code:
claude mcp add --transport http apify-linkedin-company-profiles \
"https://mcp.apify.com/?tools=fetch_cat/linkedin-company-profiles-scraper"
For Claude Desktop, Cursor, VS Code, or another MCP-compatible client, use this JSON configuration:
{
"mcpServers": {
"apify-linkedin-company-profiles": {
"url": "https://mcp.apify.com/?tools=fetch_cat/linkedin-company-profiles-scraper"
}
}
}
Example prompts:
- “Fetch the public company profiles for the exact LinkedIn slugs
apifyandopenai, and compare their displayed industries and employee ranges.” - “Retrieve this exact public LinkedIn company URL and report any missing fields without inferring values:
https://www.linkedin.com/company/apify/.”
Legality and responsible use
This actor collects company information visible on public LinkedIn company pages. Use the results only for lawful purposes and follow applicable privacy, database, copyright, employment, and marketing rules. Do not use the actor to identify employees, build personal profiles, evade access controls, or process personal data. You are responsible for your input list, retention policy, and downstream use of exported data.
Support
For questions or reproducible issues, use the Issues tab on the actor page. To help reproduce a problem, include:
- the Apify run ID or run URL;
- the sanitized exact input JSON, including relevant option values;
- the reproducible public LinkedIn company URL or slug;
- the expected output for that company;
- the actual output dataset row or observed error code;
- when the issue occurred and whether it happens consistently;
- the actor build number shown in the run details.
Remove unrelated company URLs if needed, but preserve the one public URL that demonstrates the issue. Do not share LinkedIn credentials, cookies, access tokens, or personal data.