Give 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.
First release. Built for TQM's ENRICH-WF person stage after Apollo's free plan was measured
returning last_name_obfuscated ("Wa***r") on 50/50 people across 5 companies — a masked surname is
unusable input for any email-resolution provider, which all need first + last + domain.
Queries the search index via Apify's GOOGLE_SERP proxy rather than scraping LinkedIn. Direct
company-page scraping was measured first and yields ~1 person; /people/ is client-rendered and
yields 0; authenticated scraping risks the account.
Phrase query "{title} at {company}", not two loose quoted terms — measured 50–63% company-match
vs 10% for the loose form.
companyMatched is computed from the headline only. An earlier build matched 1,200 characters
of surrounding result HTML and scored 2/25, one of which was a person at a different company
with a similar name.
titleMatched reported separately, because Google honours the phrase loosely.
Dedupe on profile slug, not URL — LinkedIn serves one person from every country subdomain.
Rows without a surname are dropped.
2026-09-04 — the dataset schema documented nothing
Found by a pre-launch audit comparing every listing claim against the code across the portfolio.
.actor/dataset_schema.json was "fields": {} — zero documented output fields — while its one
views.overview referenced five fields (fullName, headline, matchedTitle, companyMatched,
profileUrl) that were never declared. Every sibling actor documents 18–25 fields; this one, the
highest-priced in the portfolio and the one with the largest niche, documented none.
All 12 fields are now titled, described and exampled, and three views are declared —
overview, outreach (mail-merge shape) and evidence (the four match flags side by side). Every
field referenced by a view is now declared; the schema build asserts it.
The descriptions carry the reasoning, not just the field name, because the four booleans are the
product:
companyMatched is judged on the headline only, and says so — an earlier version searched the
surrounding result HTML and matched the search engine's own page furniture.
titleMatched is reported separately from the query because the engine honours a phrase loosely.
seniorityMatched is deliberately broader than the title queries.
looksPastRole is the "right company, person has left" flag.
lastName notes that first-name-only rows are dropped rather than returned.
Also: titles had default: [] in the input schema while the real default is seven hard-coded
titles, so a buyer could not see what they were opting into. Added as a prefill.
No behaviour change; schema and listing metadata only.