LinkedIn Company Search Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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?
| Field | Meaning |
|---|---|
companyId | Public organization identifier when available, otherwise the company slug |
universalName | Stable slug from the LinkedIn company URL |
name | Public company name |
linkedinUrl | Canonical LinkedIn company profile URL |
industry | Industry shown on the public company page |
location | Public headquarters or primary location |
companySize | Public LinkedIn employee-size range |
followerCount | Public follower count when available |
summary | Public company description or discovery summary |
logo | Public company logo URL |
website | Public company website when available |
sourceQuery | Query that discovered the company |
sourceSearchUrl | Original LinkedIn search URL, or null for direct queries |
searchResultRank | Approximate rank in public discovery results |
searchPage | Public discovery page number |
scrapedAt | ISO 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
- Open the Actor input page.
- Add at least one search query, such as
software companies. - Optionally add readable industries, locations, or company-size bands.
- Set the maximum number of companies.
- Run the Actor.
- Open the Companies dataset view.
- 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 softwarerenewable energydeveloper toolscybersecurity 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 employee2-10 employees11-50 employees51-200 employees201-500 employees501-1,000 employees1,001-5,000 employees5,001-10,000 employees10,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
itemevent for each matching company saved. - No item charge for rejected, duplicate, blocked, or empty candidates.
The company event uses Apify subscription tiers:
| Tier | Price 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 companies | Approximate 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:
- Create a Task with two or more related queries.
- Add a verified industry filter.
- Set a useful item and page limit.
- Schedule the Task weekly or monthly.
- Export each dataset to your warehouse or spreadsheet.
- Compare canonical
linkedinUrlvalues 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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
keywordsparameter. - 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.
Responsible and legal use
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.
Related automation-lab Actors
- LinkedIn Company Scraper — extract richer public details from known company URLs.
- LinkedIn Company Employees Scraper — continue from company discovery into public employee research where supported.
- LinkedIn Public Profile Search Scraper — discover public person profile URLs by query.
Use LinkedIn Company Search Scraper first when you need to discover companies rather than process a known list of profile URLs.