Linkedin Company Profile Scraper avatar

Linkedin Company Profile Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Linkedin Company Profile Scraper

Linkedin Company Profile Scraper

LinkedIn Company Profile Scraper extracts company details including name, industry, size, description, specialties, posts, and engagement stats. Perfect for market research, lead generation, or competitor analysis. Export structured data in JSON, CSV, or Excel for easy insights.

Pricing

$19.99/month + usage

Rating

5.0

(6)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

4

Bookmarked

281

Total users

1

Monthly active users

7 days ago

Last modified

Share

LinkedIn Company Profile Scraper — Industry, Size, HQ and Followers

LinkedIn Company Profile Scraper extracts structured data from any public LinkedIn company page — name, industry, size, headquarters, follower count, specialties, and a sample of recent posts and employees — returned as clean, typed JSON with no parsing required. It fetches each company URL directly, with no LinkedIn login, and pushes every result to the dataset the moment it finishes so you can watch a large URL list complete in real time. Add your company URLs below and start a run.

🏢 What is LinkedIn Company Profile Scraper?

LinkedIn Company Profile Scraper is an Apify Actor that turns a list of public LinkedIn company page URLs into structured company records — firmographics, follower and employee counts, specialties, and a sample of recent posts and employees — in a single run. It works entirely logged out: the source code makes a plain HTTP request to each URL with browser-style headers, so no LinkedIn account, cookie, or session is required. It's built for sales and growth teams enriching account lists, market researchers tracking companies at scale, and developers or AI engineers who need LinkedIn firmographic data as clean JSON rather than scraped HTML.

🔓 What LinkedIn company data is publicly available to scrape?

LinkedIn renders a company page's core "About" details, follower count, and a preview of employees and posts to any visitor without requiring a login — that is exactly what this Actor reads.

Data categoryPublicly available (no login)Restricted (requires LinkedIn login)
Company identity (name, description, logo, slogan)
Industry, size band, founding year, organization type
Headquarters / address
Follower count
Specialties
Employee sample (up to 10 shown on the page)Full employee directory
Recent posts (up to 10 shown on the page)Full post history and comments
Similar/related company pages
Page analytics, admin tools, contact/inquiry details✅ (Page Admin login)

LinkedIn Company Profile Scraper only returns publicly visible data — what any visitor sees. Nothing behind a login wall.

📦 What data can I extract with LinkedIn Company Profile Scraper?

Every run returns one JSON row per input URL, built from the page's JSON-LD Organization block plus its visible "About", "Employees at" and "Similar pages" HTML sections. The table below lists every key the Actor writes to the dataset — not just the columns shown in the default dataset view.

Field nameDescription
inputUrlThe LinkedIn company URL you submitted
nameCompany name
descriptionFull "About" description text
websiteCompany's external website URL, or null if not published
logoCompany logo image URL
sloganCompany tagline, or null if none is set
industryIndustry as shown in the About section
sizeLinkedIn's employee-count band (e.g. "10,001+ employees")
foundedFounding year, or empty if not published
headquartersFlat headquarters string as shown in the About section
typeOrganization type (e.g. "Public Company", "Privately Held")
universalNameThe company's URL slug, e.g. netflix
companyUrnLinkedIn's internal numeric organization ID, from urn:li:organization:<id>
location{ city, state, country } parsed from the page's structured address data
successtrue once the page was fetched and parsed, false if every retry failed
employeeCountNumeric headcount from LinkedIn's structured data, or null when LinkedIn doesn't publish one
followerCountLinkedIn follower count, parsed from the page
errorError message when success is false, empty string otherwise
scrapedAtISO 8601 timestamp of when the row was scraped
specialtiesArray of specialty tags the company lists
similarPagesArray of related companies: { link, name, image }
employeesPublic sample of employees shown on the page, capped at 10: { link, name, title, image }
postsSample of recent company posts, capped at 10: { url, datePublished, text }

🏢 Identity & descriptive fields

inputUrl, name, description, website, logo, slogan, industry, size, founded, headquarters, type, universalName, companyUrn, location — what the company is, what it's called, and where it's registered.

📊 Quantitative & status fields

success, employeeCount, followerCount, error, scrapedAt — counts, run status, and timing.

🗂️ Media, posts and nested fields

specialties, similarPages, employees, posts — arrays of tags and nested objects sampled from the page.

🤖 Add-on: Need additional LinkedIn data?

If you only have keywords, brand names, or a business category and location rather than company URLs, LinkedIn Mass Company Profile Finder By Category Directory discovers matching LinkedIn company URLs first — feed its output straight into this Actor. If you need contact-level leads rather than company firmographics, Linkedin Lead Scraper & Company Website Enrichment finds public LinkedIn profiles and posts containing lead emails and enriches each company's website with tech-stack data.

🆚 How does LinkedIn Company Profile Scraper differ from the official LinkedIn API?

LinkedIn's Organization Lookup API requires an OAuth-authenticated, LinkedIn-approved developer app, and returns full company fields only for pages you administer — for a company you don't administer, the documented response is limited to id, name, vanityName, logoV2, locations, and primaryOrganizationType (per LinkedIn's Organization Lookup API documentation, checked 2026-07-30).

FeatureLinkedIn Organization Lookup APILinkedIn Company Profile Scraper
Access model3-legged OAuth app, reviewed and approved by LinkedInApify account only, no LinkedIn app review
Data on a company you don't administerLimited to id, name, vanityName, logoV2, locations, primaryOrganizationTypeFull public page: description, industry, size, headquarters, specialties, posts, employee sample
Data on a company you administerFull schema, including admin-only fieldsSame public-page fields, regardless of admin status
Follower countSeparate Organization Network Size endpoint, requires OAuth + the org's URNRead from the same page fetch, no separate call
Setup timeOAuth app registration and partner reviewAdd URLs and start a run

Use LinkedIn's own API if you administer the company page and need authenticated write access. Use LinkedIn Company Profile Scraper when you need public firmographic data on companies you don't administer — competitors, prospects, or a market list — without an approval process.

🚀 How to use LinkedIn Company Profile Scraper

LinkedIn Company Profile Scraper runs on the Apify platform — no separate signup or API key is required beyond an Apify account.

  1. Open the Actor on its Apify Store listing (or find it in your Apify Console).
  2. Provide urls — the required input — a list of one or more public LinkedIn company page URLs.
  3. Optionally set maxRetries, requestTimeoutSec, concurrency, or a starting proxy configuration.
  4. Start the run.
  5. Download or stream results from the dataset as JSON, CSV, or any other Apify-supported export format.

How to scale to bulk company extraction

urls accepts an array, so a single run can process one company or thousands. Every URL is added to an Apify Request Queue, which deduplicates automatically — submitting the same URL twice, or restarting a failed run, doesn't produce duplicate rows. The concurrency input (1–20) controls how many company URLs are fetched in parallel within that one run.

💡 What can you do with LinkedIn company data?

  • 🏢 A sales development rep prospecting target accounts uses industry, size, and headquarters to shortlist companies before outreach.
  • 📊 A market researcher tracking a competitor set uses followerCount and employeeCount across repeated runs to watch growth trends over time.
  • 🧑‍💼 A recruiter sourcing candidates uses specialties and the employees sample to understand a company's focus areas and team composition.
  • 🤖 An AI engineer building a lead-enrichment agent feeds description, industry, and specialties into a RAG pipeline or agent tool to auto-qualify inbound leads.
  • 🔍 An analyst building a due-diligence dataset uses founded, type, and size to profile a list of companies consistently.

🛡️ How does LinkedIn Company Profile Scraper handle rate limits and blocking?

Each request goes out as a plain HTTP fetch with desktop-Chrome-style headers — there is no headless browser and no CAPTCHA-solving. If LinkedIn returns a block signal (HTTP 403, 407, 429, 999, or an authwall redirect), the Actor retries with exponential backoff (doubling up to a 10-second cap) and, on the first block, permanently switches that worker from its starting proxy — direct, or whatever you configured in proxy — to Apify Residential proxy for the rest of the run. Retries continue up to maxRetries attempts (default 3, configurable 1–10).

⚠️ If a URL still fails after all retries, the Actor still pushes a row for it, with success: false and an error message — and that row is billed the same as a successful one, since both are charged under the row_result event. Filter on success == true if you only want to count successfully scraped companies.

⬇️ Input

ParameterRequiredTypeDescriptionExample value
urlsYesarray of stringsList of public LinkedIn company page URLs to process. Duplicates are skipped automatically; each URL is scraped and saved independently. Minimum 1 item.["https://www.linkedin.com/company/netflix"]
maxRetriesNointegerMaximum fetch attempts per URL before giving up and recording an error row. Default 3, minimum 1, maximum 10.3
requestTimeoutSecNointegerSeconds to wait for a single page fetch before treating it as a timeout and retrying. Default 30, minimum 5, maximum 120.30
concurrencyNointegerHow many company URLs are processed in parallel. Default 3, minimum 1, maximum 20.5
proxyNoobject (proxy configuration)Starting proxy for requests. Leave empty to start direct; the Actor switches to Apify Residential automatically on a block.{ "useApifyProxy": true }

Example input

{
"urls": [
"https://www.linkedin.com/company/netflix",
"https://www.linkedin.com/company/microsoft"
],
"maxRetries": 3,
"requestTimeoutSec": 30,
"concurrency": 5,
"proxy": {
"useApifyProxy": true
}
}

⬆️ Output

Every run writes typed, normalized JSON to the Apify dataset — one row per input URL, with the same fixed set of keys whether or not LinkedIn published a given field. Results can be exported in any of Apify's supported dataset formats, including JSON, CSV, and Excel.

Example output

{
"inputUrl": "https://www.linkedin.com/company/netflix",
"success": true,
"name": "Netflix",
"description": "Netflix is one of the world's leading entertainment services, with over 300 million paid memberships in more than 190 countries.",
"location": { "city": "Los Gatos", "state": "California", "country": "US" },
"employeeCount": 14000,
"website": "https://about.netflix.com",
"logo": "https://media.licdn.com/dms/image/netflix-logo.png",
"slogan": "See what's next.",
"industry": "Entertainment Providers",
"size": "10,001+ employees",
"founded": 1997,
"headquarters": "Los Gatos, California",
"type": "Public Company",
"specialties": ["Internet television network", "Original programming", "Streaming"],
"similarPages": [
{ "link": "https://www.linkedin.com/company/disney", "name": "Disney", "image": "https://media.licdn.com/dms/image/disney-logo.png" }
],
"employees": [
{ "link": "https://www.linkedin.com/in/jane-doe", "name": "Jane Doe", "title": "Senior Software Engineer", "image": "https://media.licdn.com/dms/image/jane-doe.png" }
],
"posts": [
{ "url": "https://www.linkedin.com/posts/netflix_activity-7123456789", "datePublished": "2026-07-15T09:00:00.000Z", "text": "We're hiring across engineering and content teams." }
],
"followerCount": 14500000,
"universalName": "netflix",
"companyUrn": "165158",
"scrapedAt": "2026-07-30T10:15:00+00:00",
"error": ""
}

⚙️ How does it work?

LinkedIn Company Profile Scraper reaches each company page with a plain HTTP request carrying desktop-browser headers — direct by default, or through a proxy you configure — and treats an authwall redirect or a 403/407/429/999 response as a block signal. Blocked or failed requests are retried with exponential backoff, and once a worker hits a block it switches permanently to Apify Residential proxy for the rest of the run. The page's response is parsed for its JSON-LD Organization data plus the visible "About", "Employees at", and "Similar pages" HTML sections — never a login-only view. Every row is passed through the same normalization step before being saved, so the output always has the same set of keys: a field LinkedIn doesn't publish for a given company comes back empty or null instead of being omitted.

🔌 Integrations

LinkedIn Company Profile Scraper works with whatever you already use to call Apify Actors — the Apify API, its official client libraries, and any workflow tool that can make an HTTP request.

Calling LinkedIn Company Profile Scraper programmatically

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("linkedin-company-profile-scraper").call(run_input={
"urls": ["https://www.linkedin.com/company/netflix"],
"concurrency": 5,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["industry"], item["followerCount"])

Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.

No-code tools (n8n, Make)

In n8n, use the HTTP Request node pointed at the Actor's run endpoint (https://api.apify.com/v2/acts/linkedin-company-profile-scraper/runs) with your API token, then fetch results from the resulting dataset ID. In Make, the Apify app's "Run Actor" module takes the same urls and optional-parameter input and can feed the dataset output directly into downstream scenario steps like CRM upserts or spreadsheet rows.

Scraping publicly accessible data — pages that don't require a login to view — is generally permitted; this is a data-collection question governed primarily by LinkedIn's Terms of Service and database-rights considerations, not by a personal-data regime. LinkedIn Company Profile Scraper returns only what a logged-out visitor can already see on a company's page. One caveat: the employees sample includes named individuals' profile links, titles, and photos, which are personal data — if you store or process that field in bulk, GDPR/CCPA obligations can attach to it specifically, even though the rest of the record is company data. Consult legal counsel if your use case involves bulk storage of personal data.

❓ Frequently asked questions

What LinkedIn company fields does LinkedIn Company Profile Scraper return?

The Actor returns name, industry, size, headquarters, and followerCount among 23 total fields per company, covering identity, quantitative, and nested/sample data — see the full field table above.

Does LinkedIn Company Profile Scraper require a LinkedIn account or login?

No. The Actor's source code makes a plain HTTP request with browser-style headers and no cookies or session — there is no credential input of any kind in the input schema.

How many company profiles can I extract in one run?

There's no fixed cap coded into the Actor — urls accepts an array of any length, and each URL is queued through an Apify Request Queue that deduplicates automatically. Throughput within a run is governed by concurrency (1–20 parallel URLs) and requestTimeoutSec.

What happens if a company page is private, deleted, or blocked?

If the page can't be fetched (blocked, timed out, or an HTTP error), the Actor retries with backoff and a proxy escalation to Apify Residential, up to maxRetries attempts. If every attempt fails, it still pushes one row for that URL with success: false and an error field describing the failure, so every input URL always produces exactly one output row.

Can I scrape multiple LinkedIn company profiles at once?

Yes. urls is an array — submit one URL or several thousand in a single run, and set concurrency to control how many are fetched in parallel.

Does LinkedIn Company Profile Scraper work with Claude, ChatGPT, and other AI agent tools?

It's callable as an HTTP endpoint through the Apify API by any agent framework that can make a request — pass urls as the run input and read the resulting dataset.

How is LinkedIn Company Profile Scraper different from scraping LinkedIn manually or writing your own script?

It handles proxy rotation, block detection, and retry logic for you — including the automatic Residential-proxy fallback implemented in the Actor's proxy-handling code — and writes each result to the dataset live as a normalized JSON row instead of raw HTML you'd have to parse yourself.

Does LinkedIn Company Profile Scraper return data in a format LLMs can use directly?

Yes. Output is typed, normalized JSON with consistent field names across runs — no HTML parsing or selectors needed. Pass it directly to an LLM, index it into a vector store, or feed it to an agent tool.

What happens when LinkedIn changes its layout or anti-bot system?

The Actor is maintained, and every row is normalized to the same fixed set of output keys regardless of what the underlying page parsing finds, so downstream integrations built against this schema keep working.

Can I use LinkedIn Company Profile Scraper without managing proxies or browser infrastructure?

Yes. You can leave proxy empty to start direct, or select an Apify proxy configuration; either way, the Actor automatically escalates to Apify Residential proxy if LinkedIn blocks a request, with no separate proxy setup on your end.

Which LinkedIn company fields work best for AI training data and RAG indexing?

For RAG, index the high-information text fields: description, industry, and specialties. For structured training data, name, industry, size, and founded return as consistently typed primitives across every company record.

ScraperWhat it extracts
LinkedIn Mass Company Profile Finder By Category DirectoryDiscovers LinkedIn company profile URLs from keywords or a business category + location — feed the URLs it finds into this Actor
Linkedin Lead Scraper & Company Website EnrichmentPublic LinkedIn profiles and posts containing lead emails, plus per-company website tech-stack enrichment
Instagram Profile Post ScraperPublic Instagram profile posts, pinned posts, and comments
TikTok User Profile Scraper With Engagement AnalyticsPublic TikTok creator profile and engagement data

💬 Your feedback

Found a bug or missing a field? Let us know through the Actor's Issues tab on the Apify Console, or message the developer directly from the Actor's Apify Store listing — reports help keep the schema stable as LinkedIn's pages change.