LinkedIn Company About Scraper With Lead & Contact Enrichment avatar

LinkedIn Company About Scraper With Lead & Contact Enrichment

Pricing

Pay per usage

Go to Apify Store
LinkedIn Company About Scraper With Lead & Contact Enrichment

LinkedIn Company About Scraper With Lead & Contact Enrichment

Scrape detailed company info from LinkedIn with the LinkedIn Company About Scraper. Extract descriptions, industry, size, headquarters, specialties, and founding details. Ideal for market research, competitor analysis, and business insights. Fast, accurate, and scalable for any company.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Scrapier

Scrapier

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

5 days ago

Last modified

Share

LinkedIn Company Scraper — Firmographics and Decision-Maker Leads

LinkedIn Company About Scraper With Lead & Contact Enrichment reads any list of LinkedIn company URLs or usernames and returns structured firmographics — industry, headcount, founded year, headquarters, follower count — plus the company's own public decision-maker leads preview: real names and profile links, never guessed placeholders. An optional AI layer scores each company against your ICP. Every response is structured JSON, ready to pass directly to an LLM, load into a CRM, or feed a monitoring pipeline. No LinkedIn login is required to run it.

What is LinkedIn Company About Scraper With Lead & Contact Enrichment?

It's a batch scraper for LinkedIn's guest /company/<name>/about page: give it a list of company URLs or bare usernames and it returns one structured row per company. Its differentiator is the decision-maker leads preview — the real, unblurred names and LinkedIn profile links that a company's own About page displays to visitors, filtered so that LinkedIn's login-gated "LinkedIn Member" placeholder cards are never shipped as fake leads. No LinkedIn account, login, or cookies are required — it reads the public guest page with a real headless Chromium browser.

  • Full firmographics: industry, organization type, specialties, founded year, employee range, follower count
  • Structured headquarters (city, state, country, postal code) instead of a single text blob
  • Decision-maker leads preview with name and LinkedIn profile link per person, capped per company
  • Optional, opt-in AI ICP-fit and lead-quality scoring across 7 AI providers (bring your own API key)
  • Accepts LinkedIn company URLs or bare usernames, batched in a single run
  • Residential-proxy auto-fallback when LinkedIn blocks the guest request

What data can you get with LinkedIn Company About Scraper With Lead & Contact Enrichment?

Each run returns one JSON row per company covering firmographics, location, media links, decision-maker leads, and (optionally) AI lead scoring.

Result TypeExtracted FieldsPrimary Use Case
Firmographicscompany_name, category, organizationType, specialties, foundedYear, number_employees, employeeCountMin, employeeCountMax, followerCount, associated_members, tagline, descriptionIndustry research, TAM sizing
Identity & locationlinkedin_url, companyUrn, domain, hasPubliclyListedWebsite, location, hqCity, hqState, hqCountry, hqPostalCodeTerritory mapping, CRM record matching
Media & outreach linkslogoUrl, coverImageUrl, jobsSearchUrlSales collateral, hiring-signal research
Decision-maker leadsdecisionMakerLeadsCount, decisionMakerLeads (name, profileUrl, imageUrl)Sales prospecting, outreach targeting
AI ICP & lead scoring (opt-in)icpFitScore, leadQualityTier, aiIndustryClassification, aiKeyTopics, aiSentiment, aiReasoning, aiModelUsed, aiErrorLead prioritization
Run metadatasuccess, scraped_atPipeline QA, change-monitoring

Decision-maker leads

decisionMakerLeads mirrors the company's own "People to explore" preview block on its About page — the same block any visitor sees. LinkedIn renders most of those cards blurred and login-gated behind a generic "LinkedIn Member" placeholder for guests; this scraper strips that block out entirely and only ever emits the handful of cards LinkedIn itself leaves unblurred. There is no name-guessing, no domain-plus-name email pattern generation, and no job title (LinkedIn's guest markup does not render one for these cards, so the field is omitted rather than shipped as a permanently-empty column). Each entry looks like:

{
"decisionMakerLeadsCount": 1,
"decisionMakerLeads": [
{ "name": "Satya Nadella", "profileUrl": "https://www.linkedin.com/in/satyanadella", "imageUrl": "https://media.licdn.com/dms/image/..." }
]
}

Real coverage varies per company and per fetch — some companies show zero unblurred cards, others show a handful — because the underlying page itself varies, not because of a scraper limitation.

AI ICP and lead-quality scoring

When enableAiLeadScoring is turned on, the company's own description, specialties, and firmographics are sent to your chosen AI provider (Anthropic, OpenAI, Google, xAI, DeepSeek, Perplexity, or Mistral) alongside your free-text ICP criteria. The model returns an icpFitScore (0-100), a leadQualityTier (Hot/Warm/Cold), an industry classification, key topics, sentiment, and a short reasoning string. It is off by default, requires your own API key, and on any failure (missing key, network error, bad model output) the AI fields are left null with aiError populated rather than a fabricated score.

How does LinkedIn Company About Scraper With Lead & Contact Enrichment differ from the official LinkedIn API?

LinkedIn's own Marketing API only exposes Company Page data to a developer app that has been reviewed and approved into the LinkedIn Marketing API Program, and even then, organization-level read access (r_organization_admin/rw_organization_admin) is restricted to Company Pages the authenticated member already administers — not arbitrary third-party companies (LinkedIn Marketing API documentation, Microsoft Learn, accessed 2026-07).

FeatureLinkedIn Marketing APILinkedIn Company About Scraper With Lead & Contact Enrichment
Which companies you can queryOnly Company Pages the authenticated member administersAny public LinkedIn company page you supply a URL or username for
Access requirementDeveloper app reviewed into the Marketing API Program, plus 3-legged OAuth consent from a page adminNo app review, no OAuth, no LinkedIn login
Decision-maker/people dataNot exposed by the APIParsed from the page's own public "People to explore" preview
Setup timeApp registration, review, OAuth flow, role assignmentAdd company URLs and start the run

The official API is the right tool when you already manage the Company Page in question and need first-party analytics or posting rights. This scraper is the right tool when you need public data about other companies — prospects, competitors, or acquisition targets — that you don't administer.

How to scrape LinkedIn with LinkedIn Company About Scraper With Lead & Contact Enrichment?

  1. Open the Actor's page in Apify Console and click Try for free (or Start, if already added to your account).
  2. Add one or more entries to leadTargets — a full LinkedIn company URL (https://www.linkedin.com/company/microsoft) or a bare username (google). No field is technically required by the input schema, but the run does nothing without at least one target.
  3. Adjust the real query controls: includeDecisionMakerPreview / maxDecisionMakerLeads for the leads preview, enableAiLeadScoring / icpCriteria / aiModel / aiApiKey for AI scoring, and leadProxySettings for proxy behavior.
  4. Click Start and let the run process each company in turn.
  5. Download results as JSON, CSV, Excel, or any format Apify's dataset export supports, or read them back over the API.

Example run input:

{
"leadTargets": ["https://www.linkedin.com/company/microsoft", "google", "apple"],
"includeDecisionMakerPreview": true,
"maxDecisionMakerLeads": 5
}

How to run multiple companies in one job

leadTargets accepts an array, so a single run processes every company in the list sequentially — mix full URLs and bare usernames freely. There is no separate batch-upload step or fixed array-size cap in the input schema; the practical ceiling is your own Apify run time and memory, not a hardcoded limit in the Actor.

⬇️ Input

All 10 input parameters are optional — the schema declares zero required fields.

ParameterRequiredTypeDescriptionExample Value
leadTargetsNoarrayLinkedIn company URLs or bare usernames to qualify as leads. Also accepts the base actor's original startUrls key.["https://www.linkedin.com/company/microsoft", "google"]
includeDecisionMakerPreviewNobooleanParse the About page's own public decision-maker preview into leads. Default true.true
maxDecisionMakerLeadsNointegerCap on decision-maker leads emitted per company (0-10). Default 10.10
enableAiLeadScoringNobooleanTurn on AI ICP & lead-quality scoring. Default false.false
icpCriteriaNostringFree text describing your target buyer. Used only when AI scoring is enabled."B2B SaaS, 50-500 employees, US-based"
aiModelNostring (enum)AI model to use for scoring; provider is auto-detected from the name prefix. Default claude-haiku-4-5."claude-haiku-4-5"
aiApiKeyNostring (secret)Your own API key for the selected AI provider. Falls back to a matching environment variable if left blank.""
fetchRetriesNointegerRetry attempts per company page before giving up. Default 3.3
fetchDelaySecondsNointegerBase delay before each company fetch. Default 2.2
leadProxySettingsNoobject (proxy)Proxy configuration. Also accepts the base actor's original proxyConfiguration key.{ "useApifyProxy": false }

Example JSON input:

{
"leadTargets": ["https://www.linkedin.com/company/microsoft", "google", "apple"],
"includeDecisionMakerPreview": true,
"maxDecisionMakerLeads": 10,
"enableAiLeadScoring": true,
"icpCriteria": "B2B SaaS companies, 50-500 employees, US-based, Series A-C",
"aiModel": "claude-haiku-4-5",
"aiApiKey": "",
"fetchRetries": 3,
"fetchDelaySeconds": 2,
"leadProxySettings": { "useApifyProxy": false }
}

Common pitfall: maxDecisionMakerLeads only caps how many unblurred leads are emitted — it does not force more leads to appear. If a company's About page only shows one unblurred card, you'll get one lead regardless of the cap. Similarly, filling in icpCriteria or aiModel has no effect unless enableAiLeadScoring is also set to true.

⬆️ Output

Output is one typed, normalized JSON object per company, pushed to the Actor's dataset (36 fields per row, listed above). Export it as JSON, CSV, Excel, or via the Apify API in any format the platform supports.

Scraped results

[
{
"company_name": "Microsoft",
"linkedin_url": "https://www.linkedin.com/company/microsoft",
"companyUrn": "1035",
"domain": "https://news.microsoft.com",
"hasPubliclyListedWebsite": true,
"category": "Software Development",
"organizationType": "Public Company",
"specialties": ["Business Software", "Developer Tools", "Cloud Computing"],
"foundedYear": 1975,
"number_employees": "10,001+ employees",
"employeeCountMin": 10001,
"employeeCountMax": null,
"followerCount": 24800000,
"associated_members": "1,234,567",
"location": "Redmond, Washington",
"hqCity": "Redmond",
"hqState": "Washington",
"hqCountry": "US",
"hqPostalCode": "98052",
"tagline": "Empowering every person and organization on the planet to achieve more.",
"logoUrl": "https://media.licdn.com/dms/image/.../company-logo_400_400/...",
"coverImageUrl": "https://media.licdn.com/dms/image/.../image-scale_191_1128/...",
"jobsSearchUrl": "https://www.linkedin.com/jobs/search?f_C=1035",
"decisionMakerLeadsCount": 1,
"decisionMakerLeads": [
{ "name": "Satya Nadella", "profileUrl": "https://www.linkedin.com/in/satyanadella", "imageUrl": "https://media.licdn.com/dms/image/..." }
],
"description": "Every company has a mission. What's ours? To empower every person...",
"icpFitScore": null,
"leadQualityTier": null,
"aiIndustryClassification": null,
"aiKeyTopics": [],
"aiSentiment": null,
"aiReasoning": null,
"aiModelUsed": null,
"aiError": null,
"success": true,
"scraped_at": "2026-07-25T10:00:00.000000"
},
{
"company_name": "Google",
"linkedin_url": "https://www.linkedin.com/company/google",
"companyUrn": "1441",
"domain": "https://www.google.com",
"hasPubliclyListedWebsite": true,
"category": "Software Development",
"organizationType": "Public Company",
"specialties": ["search", "ads", "mobile", "android", "online video", "machine learning"],
"foundedYear": 1998,
"number_employees": "10,001+ employees",
"employeeCountMin": 10001,
"employeeCountMax": null,
"followerCount": 33900000,
"associated_members": "950,000",
"location": "Mountain View, California",
"hqCity": "Mountain View",
"hqState": "California",
"hqCountry": "US",
"hqPostalCode": "94043",
"tagline": "Organizing the world's information.",
"logoUrl": "https://media.licdn.com/dms/image/.../company-logo_400_400/...",
"coverImageUrl": "https://media.licdn.com/dms/image/.../image-scale_191_1128/...",
"jobsSearchUrl": "https://www.linkedin.com/jobs/search?f_C=1441",
"decisionMakerLeadsCount": 0,
"decisionMakerLeads": [],
"description": "A problem isn't truly solved until it's solved for all...",
"icpFitScore": null,
"leadQualityTier": null,
"aiIndustryClassification": null,
"aiKeyTopics": [],
"aiSentiment": null,
"aiReasoning": null,
"aiModelUsed": null,
"aiError": null,
"success": true,
"scraped_at": "2026-07-25T10:00:01.000000"
},
{
"company_name": "Apple",
"linkedin_url": "https://www.linkedin.com/company/apple",
"companyUrn": "162479",
"domain": "https://www.apple.com/careers",
"hasPubliclyListedWebsite": true,
"category": "Computers and Electronics Manufacturing",
"organizationType": "Public Company",
"specialties": [],
"foundedYear": 1976,
"number_employees": "10,001+ employees",
"employeeCountMin": 10001,
"employeeCountMax": null,
"followerCount": 18700000,
"associated_members": "700,000",
"location": "Cupertino, California",
"hqCity": "Cupertino",
"hqState": "California",
"hqCountry": "US",
"hqPostalCode": "95014",
"tagline": null,
"logoUrl": "https://media.licdn.com/dms/image/.../company-logo_400_400/...",
"coverImageUrl": "https://media.licdn.com/dms/image/.../image-scale_191_1128/...",
"jobsSearchUrl": "https://www.linkedin.com/jobs/search?f_C=162479",
"decisionMakerLeadsCount": 1,
"decisionMakerLeads": [
{ "name": "Tim Cook", "profileUrl": "https://www.linkedin.com/in/tim-cook-8b3a4a12", "imageUrl": "https://media.licdn.com/dms/image/..." }
],
"description": "We believe that we're on the face of the earth to make great products...",
"icpFitScore": null,
"leadQualityTier": null,
"aiIndustryClassification": null,
"aiKeyTopics": [],
"aiSentiment": null,
"aiReasoning": null,
"aiModelUsed": null,
"aiError": null,
"success": true,
"scraped_at": "2026-07-25T10:00:02.000000"
}
]

How can I use the data extracted with LinkedIn Company About Scraper With Lead & Contact Enrichment?

  • B2B sales and SDR teams: turn a target-account list into a working lead list — pull decisionMakerLeads for warm outreach targets and jobsSearchUrl to spot hiring signals worth mentioning in a first message.
  • AI engineers and LLM developers: an agent takes a company name, calls this Actor, and grounds its answer in the real description, specialties, and firmographic fields instead of an outdated training-data snapshot.
  • Market and competitive researchers: batch a set of competitor leadTargets and compare followerCount, number_employees, and specialties across runs to track relative growth and positioning.
  • RevOps and lead-scoring teams: enable enableAiLeadScoring with your own icpCriteria to get an icpFitScore and leadQualityTier per company before handing the list to sales.

How do you monitor a company's LinkedIn presence over time?

Monitoring means running the same leadTargets list on a schedule and diffing the response against the previous run to catch what actually changed, instead of re-reading every company's About page by hand. Because every row carries scraped_at, you can timestamp each snapshot and compare specific fields between runs rather than the whole object.

The fields worth diffing depend on what you're tracking. For account growth, watch followerCount and employeeCountMin/employeeCountMax — a jump in either is a real signal a company is scaling. For outreach timing, watch decisionMakerLeadsCount and decisionMakerLeads — a newly unblurred name is a fresh, named contact that wasn't reachable last run. For positioning shifts, watch specialties, tagline, and description — companies update these when they pivot or launch something new. If AI scoring is enabled, icpFitScore and leadQualityTier are worth re-checking too, since a company's own description can change enough between runs to move its tier.

A typical workflow: schedule a run across your target-account list, store each run's dataset (dated by scraped_at), diff the new run against the last stored one on the fields above, and alert only on the deltas that matter rather than the entire row. Apify's built-in Scheduler can trigger this Actor on a recurring interval and deliver each run's dataset to your storage or webhook of choice, so the polling loop itself doesn't need to live in your own infrastructure.

Integrate LinkedIn Company About Scraper With Lead & Contact Enrichment and automate your workflow

LinkedIn Company About Scraper With Lead & Contact Enrichment works with any language or tool that can send an HTTP request.

REST API with Python

import requests
TOKEN = "YOUR_APIFY_TOKEN"
ACTOR = "Scrapier~linkedin-company-about-scraper-with-lead-contact-enrichment"
resp = requests.post(
f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
params={"token": TOKEN},
json={"leadTargets": ["https://www.linkedin.com/company/microsoft", "google"]},
)
resp.raise_for_status()
companies = resp.json()
for row in companies:
print(row["company_name"], row["decisionMakerLeadsCount"])

MCP for query-grounded AI agents

This Actor is reachable through Apify's MCP server, which exposes any Apify Actor as a callable tool to an MCP-compatible client. Register it with:

$npx @apify/actors-mcp-server --tools actors,docs,Scrapier/linkedin-company-about-scraper-with-lead-contact-enrichment

An agent (Claude, or any MCP client) then calls the tool with a company list, receives the structured JSON rows back, and grounds its answer in the real firmographic and lead data instead of guessing.

Scheduled monitoring and delivery

Use Apify's Scheduler to run this Actor on a recurring interval against a saved leadTargets list, and configure a webhook on run completion to push each new dataset to your own endpoint or storage — no polling loop required on your side.

Scraping publicly visible LinkedIn company pages is generally lawful in most jurisdictions, and this Actor only returns what any signed-out visitor to a company's About page can already see — no login, no cookies, no authenticated access. Because decisionMakerLeads contains real individuals' names and public profile links, that portion of the output is personal data under GDPR and similar regimes, so if you store or process it for EU/UK-connected individuals you should have a lawful basis and honor deletion requests. Firmographic fields (industry, headcount, headquarters) are business data governed more by LinkedIn's own Terms of Service than by data-protection law. Scraping for one-off research carries a different risk profile than storing bulk personal data for outreach at scale. Consult your legal team for commercial use cases involving bulk data storage or automated outreach.

Frequently asked questions

Do I need a LinkedIn account or cookies to use this scraper?

No. It reads LinkedIn's public guest company page with a real headless browser — no login, no cookies, no authenticated session.

How does the lead & contact enrichment actually work?

It parses the same guest HTML the base scraper already fetches (no extra request) for the About page's own "People to explore" preview, strips out LinkedIn's login-gated blurred-content placeholder cards, and keeps only the names and profile links LinkedIn itself leaves visible to guests. Nothing is guessed or pattern-generated — there is no email address in the output.

Does this scraper guess or generate email addresses?

No. There is no name-plus-domain email-pattern guessing anywhere in the code — only genuinely displayed contact signals (domain, decisionMakerLeads) are returned, and unavailable fields come back null rather than a fabricated guess.

Is AI ICP and lead-quality scoring on by default?

No. enableAiLeadScoring defaults to false. Turn it on and supply aiApiKey (or set a matching provider environment variable) to get icpFitScore, leadQualityTier, and the other AI fields populated.

How many companies can I process in one run?

The input schema places no fixed cap on the leadTargets array — every company you list is processed in the same run, one after another. The practical ceiling is your own Apify run time and memory, not a hardcoded limit in the Actor.

How does this scraper handle LinkedIn's anti-bot measures?

It fetches pages with a real headless Chromium browser via Playwright to reduce LinkedIn's HTTP 999 anti-bot response, retries failed fetches (fetchRetries, default 3) with a randomized backoff delay, and automatically falls back to a residential proxy if a request is blocked with a 403, 429, or 999 status.

Will my existing input JSON with startUrls or proxyConfiguration still work?

Yes. This variant reads its own leadTargets/leadProxySettings/fetchRetries/fetchDelaySeconds keys but falls back to the original startUrls, proxyConfiguration, maxRetries, and requestDelay keys if the new ones aren't present.

Does this scraper work with Claude, ChatGPT, and AI agent frameworks?

Yes. It's reachable through Apify's MCP server (npx @apify/actors-mcp-server --tools actors,docs,Scrapier/linkedin-company-about-scraper-with-lead-contact-enrichment) for MCP-compatible clients, and callable as a plain HTTP endpoint from any agent framework that can make a REST call.

How do I monitor a company's LinkedIn presence over time?

Schedule the same leadTargets list to run on a recurring interval with Apify's Scheduler, store each run's dataset, and diff fields like followerCount, employeeCountMin/employeeCountMax, and decisionMakerLeadsCount against the previous run to catch growth or new contacts.

Can I use this without managing proxies or LinkedIn credentials?

Yes. No LinkedIn login or cookies are needed at all, and by default the Actor runs without any proxy; if LinkedIn blocks the guest request, it automatically escalates to a residential proxy on your Apify account without any extra configuration from you.

Your feedback

Found a bug or a field that doesn't match what's on the actual LinkedIn About page? Let us know through the Actor's Issues tab on Apify Console, or leave a review on the Store listing. Reports like these are what keep the parsing logic in sync with LinkedIn's markup.