LinkedIn Company Search Scraper avatar

LinkedIn Company Search Scraper

Pricing

Pay per event

Go to Apify Store
LinkedIn Company Search Scraper

LinkedIn Company Search Scraper

Find public LinkedIn company pages by keyword or search URL and export identity, industry, location, size, logo, follower count, and summary.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

Discover public LinkedIn company pages by keyword or a LinkedIn company search URL and export clean company records.

This LinkedIn company search Actor returns company identity, profile URL, industry, headquarters, employee-size text, follower count, logo, website, and public summary. It is designed for recurring market mapping, account research, CRM preparation, and company-list exports.

No LinkedIn account or cookie is required. The Actor uses public web discovery and public company profile data.

What can LinkedIn Company Search Scraper do?

  • Search for companies with one or more keyword queries.
  • Accept a public LinkedIn /search/results/companies/ URL containing keywords.
  • Verify readable industry, location, and company-size filters against public company pages.
  • Normalize every result to a canonical LinkedIn company URL.
  • Deduplicate companies found by multiple queries.
  • Export structured records to JSON, CSV, Excel, XML, or RSS through Apify datasets.
  • Run on a schedule for repeatable market snapshots.
  • Connect results to Make, Zapier, n8n, webhooks, or your own API client.

The Actor does not log in to LinkedIn and does not scrape private or member-only data.

Who is this Actor for?

Sales and account-based marketing teams can build company lists around a segment, market, or product category.

Market researchers can map companies across industries and compare scheduled dataset exports.

Recruiting teams can identify employers in a location or employee-size range before researching open roles.

Investors and analysts can collect public company identity and firmographic context for screening.

Data teams can feed canonical company URLs into enrichment, matching, or warehouse pipelines.

Why use this company search Actor?

LinkedIn's normal company search is designed for interactive browsing. This Actor turns public company discovery into repeatable dataset rows.

Important differences:

  • No user cookies or LinkedIn credentials.
  • Filters are applied to extracted public company fields, not merely added to a search phrase.
  • Every saved row includes provenance: source query, source search URL, result page, and rank.
  • Invalid opaque LinkedIn filter IDs fail with an actionable message instead of producing misleading matches.
  • Only verified company pages are charged and saved.

Coverage follows publicly indexed pages and can differ from LinkedIn's logged-in search results.

What data does it extract?

FieldMeaning
companyIdPublic organization identifier when available, otherwise the company slug
universalNameStable slug from the LinkedIn company URL
namePublic company name
linkedinUrlCanonical LinkedIn company profile URL
industryIndustry shown on the public company page
locationPublic headquarters or primary location
companySizePublic LinkedIn employee-size range
followerCountPublic follower count when available
summaryPublic company description or discovery summary
logoPublic company logo URL
websitePublic company website when available
sourceQueryQuery that discovered the company
sourceSearchUrlOriginal LinkedIn search URL, or null for direct queries
searchResultRankApproximate rank in public discovery results
searchPagePublic discovery page number
scrapedAtISO 8601 extraction timestamp

LinkedIn does not expose every field for every company. Nullable values are normal and remain null rather than being guessed.

How to get started

  1. Open the Actor input page.
  2. Add at least one search query, such as software companies.
  3. Optionally add readable industries, locations, or company-size bands.
  4. Set the maximum number of companies.
  5. Run the Actor.
  6. Open the Companies dataset view.
  7. Export the rows or connect the dataset to your workflow.

A useful first input is:

{
"searchQueries": ["software companies"],
"maxItems": 10,
"maxPagesPerQuery": 2
}

Input parameters

searchQueries

An array of plain-language company searches. Examples include:

  • workflow software
  • renewable energy
  • developer tools
  • cybersecurity companies london

Up to 20 queries can be supplied in one run.

searchUrls

An array of public LinkedIn company search URLs. Each URL must use the company-search path and contain a keywords parameter.

Supported example:

https://www.linkedin.com/search/results/companies/?keywords=renewable%20energy

LinkedIn URLs containing opaque location or industry IDs are rejected. Use the readable locations and industries fields so the Actor can verify each result.

industries

Optional readable industry values, such as Software Development. A row is saved only if its extracted public industry matches at least one supplied value.

locations

Optional readable headquarters values, such as London, New York, or California. A row is saved only if its extracted public location matches at least one supplied value.

companySizes

Optional LinkedIn employee-size text. Supported values are:

  • 1 employee
  • 2-10 employees
  • 11-50 employees
  • 51-200 employees
  • 201-500 employees
  • 501-1,000 employees
  • 1,001-5,000 employees
  • 5,001-10,000 employees
  • 10,001+ employees

maxItems

Maximum matching companies saved across all searches. The allowed range is 1 to 1,000.

maxPagesPerQuery

Maximum public discovery pages inspected for each query. The allowed range is 1 to 20. Raise it when strict filters reject many candidates.

Real output example

The following abridged record is based on a local run for a renewable energy LinkedIn search URL; the summary and expiring logo query string are shortened for readability:

{
"companyId": "atlasrenewableenergy",
"universalName": "atlasrenewableenergy",
"name": "Atlas Renewable Energy",
"linkedinUrl": "https://www.linkedin.com/company/atlasrenewableenergy/",
"industry": "Renewable Energy Power Generation",
"location": "Miami, FL",
"companySize": "201-500 employees",
"followerCount": 114665,
"summary": "Atlas Renewable Energy delivers clean energy at scale. We help our partners accelerate their energy transitions and accomplish their sustainability goals.",
"logo": "https://media.licdn.com/dms/image/v2/D4E0BAQEfmg6XLugh8A/company-logo_200_200/company-logo_200_200/0/1664470890340/atlasrenewableenergy_logo",
"website": "http://www.AtlasRenewableEnergy.com",
"sourceQuery": "renewable energy",
"sourceSearchUrl": "https://www.linkedin.com/search/results/companies/?keywords=renewable%20energy",
"searchResultRank": 1,
"searchPage": 1,
"scrapedAt": "2026-08-02T03:07:15.092Z"
}

Counts, descriptions, image URLs, and other public fields can change over time.

How much does it cost to find LinkedIn companies?

The Actor uses pay-per-event pricing:

  • $0.001 once when a run starts.
  • One item event for each matching company saved.
  • No item charge for rejected, duplicate, blocked, or empty candidates.

The company event uses Apify subscription tiers:

TierPrice per company
Free$0.001840
Bronze$0.001600
Silver$0.001248
Gold$0.000960
Platinum$0.000640
Diamond$0.000448

At the Free-tier item price, approximate totals are:

Matching companiesApproximate total
1$0.00284
10$0.01940
100$0.18500

These examples include the one-time start event. Actual infrastructure usage is billed separately by Apify according to the user's plan.

Search and filter behavior

Keyword discovery finds publicly indexed LinkedIn company pages. The Actor then opens each public company page and extracts current visible metadata.

Readable filters are verified after extraction:

  • Multiple values within one filter use OR logic.
  • Different filter groups use AND logic.
  • A company with a missing filtered field is not accepted.
  • Filters apply equally to direct queries and LinkedIn search URL inputs.

This avoids claiming that an unverified snippet is an exact filter match.

Pagination, limits, and deduplication

Discovery is paginated independently for each query. The Actor stops when it reaches maxItems, exhausts the configured pages, or reaches the user's spending limit.

Canonical LinkedIn company URLs are used as deduplication keys. A company found by multiple queries is saved once per run. The first successful discovery query is retained in the row's provenance fields.

Recurring market mapping workflow

A practical recurring workflow is:

  1. Create a Task with two or more related queries.
  2. Add a verified industry filter.
  3. Set a useful item and page limit.
  4. Schedule the Task weekly or monthly.
  5. Export each dataset to your warehouse or spreadsheet.
  6. Compare canonical linkedinUrl values between snapshots.

The Actor produces snapshots; it does not itself calculate historical changes or send alerts. Use schedules, webhooks, or your downstream system for comparisons.

Export and integration patterns

Spreadsheet research

Export the dataset as CSV or Excel and group companies by industry, location, or size.

CRM preparation

Use linkedinUrl as a stable matching key before adding records to an account list.

Enrichment pipeline

Send canonical URLs to another public company or employee enrichment workflow.

Scheduled monitoring

Trigger a webhook after each run and compare the new dataset with your previous snapshot.

AI analysis

Pass summaries and firmographic fields to an LLM for classification while retaining source URLs for verification.

Run with the Apify API using cURL

Replace YOUR_APIFY_TOKEN with your token:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~linkedin-company-search-scraper/runs?token=YOUR_APIFY_TOKEN&waitForFinish=120" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["workflow software"],
"industries": ["Software Development"],
"maxItems": 10,
"maxPagesPerQuery": 3
}'

Fetch dataset items from the returned run's defaultDatasetId.

Run with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/linkedin-company-search-scraper').call({
searchQueries: ['workflow software', 'developer tools'],
industries: ['Software Development'],
maxItems: 25,
maxPagesPerQuery: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/linkedin-company-search-scraper").call(run_input={
"searchUrls": [{
"url": "https://www.linkedin.com/search/results/companies/?keywords=renewable%20energy"
}],
"maxItems": 25,
"maxPagesPerQuery": 5,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with MCP and AI assistants

Add this Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/linkedin-company-search-scraper"

Claude Desktop, Cursor, and VS Code can use the equivalent remote MCP configuration below. Add it to the MCP settings for the client you use:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/linkedin-company-search-scraper"
}
}
}

Example prompts:

  • "Find 20 public LinkedIn company pages for workflow software companies."
  • "Run the renewable energy LinkedIn company search URL and return company sizes and headquarters."
  • "Build a Software Development company list from workflow software and developer tools queries."

Reliability and troubleshooting

The Actor classifies temporary LinkedIn blocks and retries with a fresh bounded proxy session. It does not silently treat login pages or anti-bot responses as valid empty company pages.

If a run returns fewer companies than requested:

  • Increase maxPagesPerQuery.
  • Broaden the query.
  • Remove one strict filter.
  • Check whether matching company pages are publicly indexed.
  • Remember that missing public filter fields cause a candidate to be rejected.

If a LinkedIn search URL is rejected:

  • Confirm the path is /search/results/companies/.
  • Confirm it includes a non-empty keywords parameter.
  • Move location and industry filters from opaque URL IDs into the readable input fields.

If all LinkedIn detail requests are blocked, retry later rather than repeatedly launching identical runs.

Limitations

  • Results are based on publicly indexed LinkedIn company pages, not a logged-in LinkedIn search session.
  • Result ordering and coverage can differ from LinkedIn's native search.
  • The Actor does not promise every company in a market.
  • Opaque LinkedIn industry and geography IDs are not resolved.
  • Public fields can be absent, stale, localized, or changed by the company.
  • Follower counts and media URLs can change after extraction.
  • The Actor does not scrape people, posts, jobs, private profiles, or member-only fields.
  • Strict filters can legitimately produce zero rows.

Use this Actor only for lawful purposes and public data you are permitted to process. Follow applicable privacy, database, intellectual-property, marketing, and platform rules.

Do not use the output for harassment, discrimination, spam, surveillance, or decisions that require protected or private information. Apply appropriate retention, security, and deletion policies to exported data.

This Actor is independent and is not affiliated with or endorsed by LinkedIn. LinkedIn is a trademark of its respective owner.

FAQ

Does it need LinkedIn cookies?

No. The Actor does not request a LinkedIn account, password, or session cookie.

Does it reproduce logged-in LinkedIn search exactly?

No. It discovers publicly indexed company pages and verifies their public details. Coverage and ranking can differ from logged-in LinkedIn search.

Can I search more than one market segment?

Yes. Add up to 20 queries and set one overall maxItems limit.

Are filters exact?

They are case-insensitive readable-text matches against extracted public company fields. Multiple values in a group use OR logic; industry, location, and size groups combine with AND logic.

Why is a field null?

LinkedIn does not publish every field for every company. The Actor leaves unavailable data null instead of inventing a value.

Do empty results cost per company?

No. Only matching company rows saved to the dataset produce an item event. The one-time start event still applies.

Can I schedule it?

Yes. Save the input as an Apify Task and attach a schedule. Use dataset exports or a downstream system to compare runs.

Use LinkedIn Company Search Scraper first when you need to discover companies rather than process a known list of profile URLs.