LinkedIn Decision-Maker Finder | No Cookies, No Account
Under maintenancePricing
from $2.80 / 1,000 results
LinkedIn Decision-Maker Finder | No Cookies, No Account
Under maintenanceGive it a company name, get the decision-makers: full name, headline and public LinkedIn profile URL. It never touches LinkedIn - no cookie, no session, no account of yours at risk. Every row shows its own match evidence, so you set your own precision bar instead of trusting ours.
Pricing
from $2.80 / 1,000 results
Rating
0.0
(0)
Developer
TQM
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Give it a company name. Get back the people at that company who hold a decision-making title — full name, headline and public LinkedIn profile URL.
It never touches LinkedIn. No cookie, no li_at session, no login, no account to be banned. It queries the public search index for indexed LinkedIn profiles, which is why it cannot get your LinkedIn account restricted — you never give it one.
Why "no LinkedIn account" matters
Most LinkedIn people-search tools ask you for a session cookie. That works, and it puts your account at risk: an account ban is not a retryable error, and it takes your network with it.
This actor was built the other way round after measuring the alternatives against live pages:
| Approach | Result |
|---|---|
linkedin.com/company/<slug> | HTTP 200, but the employees block yields ~1 person; other profile links on the page are incidental mentions, not employees |
linkedin.com/company/<slug>/people/ | HTTP 200 and zero profile links — the list is client-rendered |
| Authenticated with a session cookie | Works, and risks the account |
| Public search index for indexed profiles | 12 to 16 unique profiles per company, each with a full name and headline |
The last one wins on yield and on risk, so that is what this actor does.
What data do I get?
| Field | Description |
|---|---|
fullName | The person's full name |
firstName / lastName | Name split into parts, ready for mail-merge |
headline | Their public headline — usually role and company |
profileUrl | Public LinkedIn profile URL |
companyName | The company you searched for |
matchedTitle | Which of your titles queries produced this person |
titleMatched | Whether their headline matches that one query's title |
anyTitleMatched | Whether their headline matches any title you asked for. This is the field to filter on — see below |
seniorityMatched | Whether the headline carries a decision-making seniority signal |
companyMatched | Whether their current employer could be confirmed as your target company |
looksPastRole | Flag for headlines that read like a former role at the company |
scrapedAt | When this run collected the row |
The five boolean flags are the product. People-search tools normally hand you a list and leave you to work out which rows are real. This one shows its work per row, so you can set your own precision bar — filter to companyMatched && !looksPastRole for outreach, or set includeUnmatched: true to keep everything for research.
titleMatched vs anyTitleMatched — filter on the second one
The Actor runs one search per title, and matchedTitle records which of those searches produced a given person. titleMatched then asks a narrow question: does the headline carry that title?
That is useful for judging a single query, and misleading as a quality filter. Someone surfaced by your VP Engineering search whose headline reads "Engineering Manager at Acme" is titleMatched: false — even when Engineering Manager was also on your list.
anyTitleMatched asks the question you actually care about: does this headline carry any of the titles you asked for?
Measured on a live 25-row run (Stripe; CTO, VP Engineering, Head of Engineering, Engineering Manager):
| field | rows |
|---|---|
titleMatched | 2 of 25 |
anyTitleMatched | 7 of 25 |
titleMatched is unchanged and keeps its old meaning, so anything you already filter on still behaves the same way.
How do I use it?
- Click Try for free.
- Set
companyName— this is the only required input. - Optionally set
companyDomainto sharpen the match, andtitlesto the roles you care about. - Click Save & Start.
- Export as JSON, CSV, Excel or XML from the Storage tab.
Input sample
{"companyName": "Northwind Labs","companyDomain": "northwindlabs.com","titles": ["CTO", "VP Engineering", "Head of Infrastructure", "Head of Platform"],"maxResults": 25,"includeUnmatched": false}
Input reference
| Option | Type | Default | What it does |
|---|---|---|---|
companyName | string | required | The company to find decision-makers at. Used both as the search term and as the match key. |
companyDomain | string | (none) | Strengthens the company match only — it is never used as a search term. |
titles | array | engineering and infrastructure leadership | One search per title. More titles means more searches and more coverage. |
maxResults | integer | 25 | Hard cap on people returned across all title queries, up to 200. |
includeUnmatched | boolean | false | Also return people whose current employer could not be confirmed, flagged companyMatched: false. Off by default, so every row you are charged for is one whose employer was confirmed. Turn it on for research — to measure precision yourself, or when a company's people write headlines that never name their employer. |
Output sample
{"fullName": "Dana Whitfield","firstName": "Dana","lastName": "Whitfield","headline": "VP of Engineering at Northwind Labs","profileUrl": "https://www.linkedin.com/in/dana-whitfield","companyName": "Northwind Labs","matchedTitle": "VP Engineering","titleMatched": true,"anyTitleMatched": true,"seniorityMatched": true,"companyMatched": true,"looksPastRole": false,"scrapedAt": "2026-09-04T09:22:07.443Z"}
How many people will it find?
It depends on the company, and the honest answer is a range.
Across a 156-company batch, this actor resolved decision-makers at 119 of them, 76%. Large and mid-size companies with a public engineering presence resolve well. Very small companies, stealth startups and companies whose staff keep low-visibility profiles resolve poorly, and no tool can fix that: if the profiles are not publicly indexed, they cannot be found without an account.
When a company does resolve, expect roughly 12 to 16 rows and 8 to 10 high-confidence people at the default title list (measured 2026-09-26: Trainline 16 rows / 10 high confidence, Stripe 12 / 8). High confidence means companyMatched && seniorityMatched && !looksPastRole, which you can reproduce yourself from the flags on every row.
maxResults caps the total across all title queries. Each title in titles is one search, so more titles means broader coverage.
Who is this for?
- B2B sales and lead generation — turn a list of target companies into named decision-makers with profile URLs to reference.
- Recruiters mapping the leadership of companies they are sourcing from.
- Founders doing outbound, who need the right person rather than a generic
info@inbox. - Market and competitive research — who runs engineering at the companies in your category.
Pair it with any company-list source: feed company names in, get decision-makers out.
FAQ
Will my LinkedIn account get banned?
You never give it one. There is no cookie, no session and no login anywhere in this actor. That is the entire design.
Do I need a LinkedIn account at all?
No.
How accurate is the company match?
Every row tells you. companyMatched is true only when the person's current employer could be confirmed as your target; looksPastRole flags headlines that read like a former role.
By default you only get confirmed rows, so you are never charged for a person the actor already knows it could not place at your company. Set includeUnmatched: true to get the unconfirmed ones too, clearly flagged, and decide your own bar rather than inheriting ours.
For outreach, filter to companyMatched === true && looksPastRole === false.
Does it return email addresses?
No. It returns names, headlines and public profile URLs. It does not guess, generate or enrich email addresses.
Is this legal? What about GDPR?
This actor returns personal data — named individuals and their public profile URLs. That is what it is for, and it means you carry real obligations.
It collects only what is already publicly indexed and accessible without an account, and it bypasses no login or access control. But publicly available does not mean unregulated: if you are in the EU or processing EU residents' data, GDPR applies, and you need a lawful basis (legitimate interest, for most B2B outreach), you must be able to honour access and erasure requests, and you should not retain data longer than you need it.
We are not able to give you legal advice, and this README is not it. If you are unsure whether your use qualifies, consult your lawyers before you run this at scale. Apify has useful background on the legality of web scraping and on ethical scraping.
Can I export to Excel or Google Sheets?
Yes — JSON, CSV, XML and Excel from the Storage tab, plus a direct Google Sheets integration.
Integrations and API
Trigger runs and collect results via the Apify API, the JavaScript or Python client, or Apify's integrations — Zapier, Make, Slack, Google Drive, GitHub and webhooks. The common pattern is to drive it from a list of target companies and push confirmed decision-makers straight into your CRM.
Support
Missing a title pattern, or seeing a match you disagree with? Open an issue on this actor's Issues tab — the match flags are tunable and real examples help.