LinkedIn Decision Maker Email Finder avatar

LinkedIn Decision Maker Email Finder

Pricing

from $5.00 / 1,000 decision makers

Go to Apify Store
LinkedIn Decision Maker Email Finder

LinkedIn Decision Maker Email Finder

Find a company's C-level, VP, Head, and Director staff and a work email for each. Everyone is bound to a current role there — ex-employees and name-drops are dropped, not shipped. Email formats are derived from addresses the company itself publishes, and that evidence ships with every row.

Pricing

from $5.00 / 1,000 decision makers

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

7 days ago

Last modified

Share

The Actor finds a company's C-level, VP, Head, and Director staff and proposes a work email address for each. A person is included only when their headline binds them to a current role at the target company; ex-employees, unrelated name-drops, and similarly named companies are excluded rather than returned and left for the buyer to filter. No LinkedIn account or session cookie is required.

Email addresses are not looked up from a directory. The Actor learns the company's address format from addresses the company has already published — commit metadata on its public GitHub repositories, or its own site — and proposes each person's address by applying that format to their name. The real addresses the format was learned from ship with the result, so the format can be checked rather than trusted.

Accepted input

FieldTypeDefaultDescription
target_companyarray of strings["Stripe"]Required. One line per company. A name, a LinkedIn company URL, or a website — all work.
verify_emailsbooleanfalseConfirm each address against the company's mail server.
search_depthinteger3How many batches of seniority titles to sweep, 15. Each batch adds meaningful run time per company, so a higher value trades speed for a fuller roster.
max_candidatesinteger3How many ranked candidate addresses to return per person, 15.
maxItemsinteger100Maximum decision-makers saved across all companies. 0 removes the limit.
email_domainarray of strings[]Override. Leave empty unless the company mails from a domain other than its website.
github_orgarray of strings[]Override. Leave empty unless the company publishes code under an unrelated name.
{
"target_company": ["Northwind Robotics"],
"search_depth": 3,
"verify_emails": true
}

That is the whole input. The company's email domain and its GitHub organisation are worked out from the line you typed, and every row reports the domain that was used, so a wrong one is visible rather than silent. The two override fields exist for the rare company those lookups get wrong; supply one against several companies and it applies to all of them, or match them by position.

Response fields

One record per decision-maker.

FieldContents
target_companyCompany this person was found at
company_domainEmail domain used to resolve addresses for this company
nameName shown on the related LinkedIn profile
headlineCurrent headline or organization text on the profile
seniorityc_suite, vp, head, or director, read from the headline
departmentFunction read from the headline, e.g. sales, engineering, finance
profile_urlPublic LinkedIn profile URL
matched_titleThe seniority title whose search matched this person
emailBest-match work email, or null when no address could be proposed
email_confidence01, how much to trust this specific address
email_statusbest_match, guess, or not_found
email_candidatesRanked alternate addresses, each with its own format rule and confidence
email_patternThe company's email format, e.g. first.last
email_pattern_ruleThe full rule, including how surnames, hyphens, and accented characters are handled
email_pattern_evidenceReal addresses at this company the format was derived from
discovery_sourceWhich search index surfaced this profile
{
"target_company": "Northwind Robotics",
"company_domain": "northwindrobotics.com",
"name": "Priya Shah",
"headline": "VP of Engineering at Northwind Robotics",
"seniority": "vp",
"department": "engineering",
"profile_url": "https://www.linkedin.com/in/priyashah",
"matched_title": "VP",
"email": "priya.shah@northwindrobotics.com",
"email_confidence": 0.94,
"email_status": "best_match",
"email_pattern": "first.last",
"email_pattern_rule": "first.last (surnames=all, given_hyphen=collapse, family_hyphen=collapse, diacritics=ascii)",
"email_pattern_evidence": ["alex.chen@northwindrobotics.com", "morgan.lee@northwindrobotics.com"],
"discovery_source": "brave"
}

Confirming a current role

A search snippet naming the target company is not proof of employment there. Checked against a naive version of that same check on a live run, 255 rows carried the company's name, and 230 of them were not that company's staff: 213 were unrelated mentions with no employment relationship, 11 named a former employer, and 6 belonged to a different company that happened to share the same leading word. All 230 are excluded here rather than shipped and left for the buyer to sort out; only headlines that bind the person to a current role at the named company are kept.

search_depth widens the search by seniority band rather than by page depth. At the default of 3, the Actor sweeps chief-officer titles, then revenue-adjacent leadership, then VP-level titles. 4 adds Head and Director titles; 5 adds Founder, President, and General Manager. A run returning strong C-level and VP coverage but no Head or Director rows has not exhausted the company — it has not yet swept the batch those titles are in.

How the email address is proposed

The Actor never assumes a format such as first.last. It first collects confirmed (name, email) pairs the company has already published — public commit authorship on its GitHub org, and addresses listed on its own site — then learns which format explains the largest share of that confirmed set. Coverage of that free ground truth is uneven and sector-dependent: it is common for software companies and for firms that publish staff directories, and it can be entirely absent for others. Where it is absent, the Actor still ranks candidate formats by how companies in general tend to render names and returns those, at lower confidence and email_status: "guess".

Confidence is computed per person, not per company. A domain-wide "this company uses first.last" says nothing about how that company renders a compound surname, a hyphenated given name, or an accented character — those are learned separately, so two people at the same company with the same format can carry different confidence. Where the confirmed sample is small or splits across more than one format, the Actor reports that as low confidence and a guess status rather than defaulting to a single assumed pattern; the alternative — reporting one address with unearned certainty — is the failure mode this field exists to avoid.

Verified addresses

With verify_emails enabled, an address is returned as email_status: "verified" only when the mailbox is confirmed to exist.

Some company domains accept mail addressed to anything, so no service can confirm a mailbox there. The Actor detects this before spending anything, reports it on each row as domain_verifiable, and does not charge the verified add-on for those companies. About four domains in ten behave this way.

Without verify_emails, addresses are best matches derived from the company's format and are not checked against the mail server.

The pattern add-on that resolves a company's format is charged once per company, and only when a format is actually derived. A company where no confirmed address could be found, or where GitHub and site harvesting turn up nothing, is not charged for pattern derivation — the decision-maker rows it does yield are billed on their own.

Frequently asked questions

Are the returned email addresses verified? No. Each is the best-match address for a format learned from the company's own published addresses, applied to the person's name. email_pattern_evidence carries the real addresses that format was derived from, so the rule behind a proposal can be checked directly instead of taken on trust.

Why does email_confidence differ between two people at the same company? The company-level format is one thing; rendering a specific name into that format is another. Compound surnames, particles (van, de, von), hyphenated names, and accented characters are each handled by a rule learned separately, so a straightforward name can score higher than an unusual one even though both use the same base pattern.

What does email_status: "guess" mean? The proposed address came from ranking candidate formats generally, not from a format confirmed against this company's own published addresses. This happens when the company has too little free ground truth — no useful GitHub history and nothing published on its own site — to learn a company-specific rule from.

What happens when a company yields no decision-makers? The run completes, logs the outcome for that company, and moves to the next one. Nothing is charged for a company that returns no rows.

Do I need to supply email_domain and github_org for every company? Only target_company is required. A single email_domain or github_org is applied to every company in the run; supply one per company to pair them positionally instead. Leaving email_domain empty for a company returns its people without attempting to resolve email addresses at all.

Is a LinkedIn account or session cookie required? No. Only public profile headlines and search results are read.

ActorPurpose
LinkedIn Company ScraperCompany page details — industry, size, headquarters — by handle or URL
LinkedIn Profile ScraperFull profile details for a known username or URL
LinkedIn Related User ScraperProfiles LinkedIn shows alongside a seed profile
LinkedIn Jobs ScraperJob search by keyword and location