How to find a company's LinkedIn page from its website or name, in bulk
Short answer
Don't search LinkedIn by name: similarly named companies are the usual result. Read the company's own website instead, since most link their LinkedIn page in the footer or on the about and careers pages, and cross-check Wikidata's LinkedIn company ID. Linkwhere on Apify does both for a list of names, domains or work emails and returns the page with a confidence score, at $0.003 per page found; misses are free.
- Put one company per row: a domain (hubspot.com), a work email (jane@linear.app) or a name. Add a country to common names ("Monzo Bank | gb").
- Run the list. Domains and emails skip the website lookup; names are first matched to their official website.
- Keep rows with status found (confidence 0.7 or more). Website and Wikidata agreeing gives 0.99.
- Check otherLinkedInPages where a footer also links a parent group or investor.
- Write linkedinUrl back to your CRM or sheet; re-run monthly to catch rebrands.
Copy-paste code
Python (pip install apify-client): domains in, LinkedIn pages out
import csv, os
from apify_client import ApifyClient
rows = [r[0] for r in csv.reader(open("accounts.csv")) if r] # names, domains or work emails
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("cybermax/linkedin-company-finder").call(run_input={
"companies": rows,
"minConfidence": 0.7,
})
with open("linkedin.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["input", "linkedin", "confidence", "domain", "status"])
for r in client.dataset(run["defaultDatasetId"]).iterate_items():
w.writerow([r["input"], r.get("linkedinUrl"), r.get("confidence"), r.get("domain"), r["status"]])JavaScript / Node (npm i apify-client)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cybermax/linkedin-company-finder').call({
companies: ['Stripe', 'hubspot.com', 'jane@linear.app', 'Monzo Bank | gb'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const r of items) console.log(r.input, '->', r.linkedinUrl ?? r.status, r.confidence);No code: n8n, Make or Zapier
n8n: HTTP Request node (or the Apify node, action "Run an Actor and get dataset")
Method: POST
URL: https://api.apify.com/v2/acts/cybermax~linkedin-company-finder/run-sync-get-dataset-items
Auth: Header Auth -> Authorization: Bearer <your Apify token>
Body: JSON {"companies": {{ $json.domains }}, "minConfidence": 0.7}
Output: one n8n item per result row
Make: Apify app -> "Run an Actor" (Actor: cybermax/linkedin-company-finder, wait for finish = yes)
-> Apify "Get Dataset Items" (dataset = the run's defaultDatasetId) -> your next module
Zapier: Apify app -> action "Run Actor" (cybermax/linkedin-company-finder, input JSON as above)
-> trigger "Finished Actor Run" -> "Fetch Dataset Items" -> your app
Runs longer than 5 minutes: start with POST /v2/acts/cybermax~linkedin-company-finder/runs and read the dataset when the run finishes.
CRM flow: Google Sheets / HubSpot "Get rows" where LinkedIn is empty -> Aggregate the domain column -> the request above -> "Update row" with linkedinUrl and confidence. Clay: an HTTP API column with the same request.From an AI agent (MCP)
# Any MCP client (Claude Desktop, Claude Code, Cursor, VS Code): Apify's hosted MCP server
{
"mcpServers": {
"linkedin-company-finder": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=cybermax/linkedin-company-finder",
"--header", "Authorization: Bearer ${APIFY_TOKEN}"],
"env": { "APIFY_TOKEN": "<your Apify token>" }
}
}
}
# The agent sees one tool, cybermax--linkedin-company-finder, with the Actor's input schema.
# Ask: "find the LinkedIn company pages for these 30 domains".| Input | LinkedIn page | Confidence | Verified by | Domain |
|---|---|---|---|---|
| Stripe | linkedin.com/company/stripe | 0.99 | website + Wikidata | stripe.com |
| Siemens AG | linkedin.com/company/siemens | 0.99 | website + Wikidata | siemens.com |
| hubspot.com | linkedin.com/company/hubspot | 0.95 | website | hubspot.com |
| Acme Brick Company | linkedin.com/company/acme-brick | 0.95 | website | brick.com |
| Zalando | linkedin.com/company/zalando | 0.95 | website (corporate site) | zalando.com |
| Gusto | linkedin.com/company/gustohq | 0.90 | Wikidata | gusto.com |
| Octopus Energy | linkedin.com/company/octopusenergy | 0.90 | Wikidata | octopusenergy.group |
| Canva | not found (free) | canva.com |
Source: Linkwhere (Apify Actor cybermax/linkedin-company-finder) README, real Apify run on 10 Nov 2026: 9 of 12 found; the 3 misses cost nothing
Why not search "site:linkedin.com/company"?
Search results often return a similarly named company, a regional subsidiary or an old page. A page the company links from its own website (or that Wikidata records for it) is the one it actually uses, and the evidence column says which source agreed.
No LinkedIn scraping, company pages only
Linkwhere never requests linkedin.com, never logs in and never touches personal profiles. It reads public company websites (homepage first, then about, careers and corporate pages) and Wikidata (CC0), and reports the company page the company itself publishes.
Start from names: website first, then LinkedIn
For a list of company names, the first step is the official website. Linkwhere uses the same engine as Namewhere (Wikidata plus verified domain checks), so one run returns the domain, its confidence and the LinkedIn page. If you only need domains, Namewhere alone is cheaper.
Good to know
Price on Apify: $0.003 per LinkedIn page found ($3 per 1,000), no start fee. Not found, low confidence, invalid input and errors are free. Apify's free plan includes $5 of usage each month (about 1,600 pages found).
Some sites render their footer only with JavaScript or link only Instagram and TikTok; those rows come back not found and cost nothing.
Linkwhere: Find any company's LinkedIn page
$0.003 per LinkedIn page found, no start feeOnly need the website? Namewhere turns company names into official domains with a confidence score at $0.0008 per match, the same engine Linkwhere uses before it finds the LinkedIn page.
Runs on your own Apify account, pay per result; failed results are not charged.Questions
Can it find people's LinkedIn profiles?
No. Linkwhere finds company pages only and never opens LinkedIn.
Does it return follower counts or employee numbers?
No, those live on LinkedIn itself. You get the page URL, its slug, the official domain, a confidence score and the company's other social profiles.
What inputs work?
Company names (with an optional country), domains, website URLs and work email addresses, mixed in one list.
Can an AI agent use it?
Yes. Apify's MCP server exposes it as cybermax--linkedin-company-finder for Claude, Cursor and other MCP clients.
Free: the Free API Starter Kit
Copy-paste calls for 4 APIs with free daily tiers (CVE priority, VIN recalls, US duty rates, email checks), then 5 short emails on KEV/EPSS, MCP and free data.