Person to Business Enrichment - Find Someone's Company avatar

Person to Business Enrichment - Find Someone's Company

Pricing

$30.00 / 1,000 person matcheds

Go to Apify Store
Person to Business Enrichment - Find Someone's Company

Person to Business Enrichment - Find Someone's Company

Private preview of PR #63, built from branch claude/person-business-enrichment-uedcyd. Not listed, not priced, not for customers.

Pricing

$30.00 / 1,000 person matcheds

Rating

0.0

(0)

Developer

Lead Proof

Lead Proof

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Person to Business Enrichment

Start from a person's name and whatever context you have. Get back the business or businesses they are professionally associated with, with the evidence that links them: the page that states it, the quote, and when it was read.

Why it exists

You have a list of people and no companies: a conference attendee list, a registration export, a membership roll. Finding each person's practice or employer by hand means searching, opening pages and deciding whether the "Jane Smith" on a clinic's team page is your Jane Smith. This Actor does the searching and reading, and it is strict about the deciding: it reports a business only when a source states the link and the person is identified on that source. Everything else comes back as a candidate, with the reason it was not promoted.

It is not limited to one profession. For US healthcare providers it also consults the free national provider registry, and skips it for everybody else.

How to use it

  1. Add people: a full name each, plus whatever you know - city, region, country, profession, credentials, or the business website if you have it.
  2. Leave the defaults on for a first run: web search plus reading the pages it finds.
  3. Set the run's maximum charge in the run options. The Actor stops starting people once another match could not be paid for.
  4. Run, then read outcome first: matched rows carry businesses, candidate rows carry what was found and why it was not enough.

Input

Only fullName is required.

{
"people": [
{
"inputId": "row-001",
"fullName": "Tim Cook",
"profession": "Executive Chair",
"city": "Cupertino",
"region": "CA",
"country": "US",
"website": "https://www.apple.com/leadership/tim-cook/"
}
]
}
  • inputId is returned unchanged and keeps two people with the same name apart. Rows are numbered by position if you leave it out.
  • An address you supply is kept as given and never treated as a workplace: a badge address is often a home, an old office or shared.
  • Any field the schema does not know is preserved and returned with the row.
  • Optional sources, both off by default: useGoogleMaps (Maps listings as candidates) and verifyEmails (deliverability of the emails found).

Output

One row per input person, in input order.

FieldWhat it holds
inputId, personYour input as sent, and how the name was parsed
outcomematched, candidate, not_found or error (see below)
identityWhether the person was identified, and on what: a profession or credential stated on the page, a registry number, a website you supplied
businesses[].businessName, website, phones, emails, addresses, category, and what the business does in its own published words
businesses[].relationshiprawTitle: the role exactly as the source wrote it, or empty when the source states the relationship without one. type (employment, ownership, partnership, other) and normalizedTitle are our classification, kept apart from it. Current, former or unknown, with the reason; dates only when a source printed them
businesses[].linkEvidenceThe URL, the supporting quote or structured-data path, when it was read, and the source's own date if it has one
candidates[]Businesses that did not meet the bar, each with notPromotedBecause
sourceAttempts[]Every source tried: ok, empty, blocked, timeout, parse_failed, undetermined, error or skipped
warnings, completenessWhat could not be established, and which fields are missing
costsWhat this person reserved for other Actors, what those Actors are expected to charge, and whether the figures were complete when read

Every contact carries a scope: business_general, branch, person_professional or unknown. A practice's main line and a named practitioner's direct line are different things and are returned as such.

A run summary is written to the key-value store as SUMMARY, and a flat CSV view is available from the dataset.

Outcomes

OutcomeMeaningWhat it is not
matchedA source states the link and the person was identified on that source.Not a guarantee: read identity and the evidence.
candidatePlausible businesses were found and none met the bar.Not a weak match. A candidate's contacts belong to the candidate business.
not_foundThe sources answered and had nothing.
errorThe Actor could not look properly: sources failed, or the run stopped first.Never a statement that the person has no business.

How a business gets promoted

  1. The person is identified on that source. An exact name plus a city is not enough. Something independent has to agree, and a value that came from the search query itself corroborates nothing.
  2. A source states the relationship with that business. Structured data linking the two; a sentence connecting them ("Jane Smith, DDS is an associate dentist at Riverside Dental Group", "Riverside Dental Group welcomes Dr. Jane Smith", "Dr. Smith and our team at Riverside Dental Group"); or the business's own roster listing the person under a team heading. A page that only mentions the person does not count, nor does being on the business's domain, a search snippet, a Maps listing, a shared address or a business named after the person's surname.
  3. No rival. If several distinct people fit the same evidence, nothing is promoted. Two people can share a name exactly; the row says so instead of choosing one.

Pricing

Pay per event:

EventPriceWhen
person-matched$0.03Once for each input person with at least one matched business. Several businesses on one person's row are one event.

Candidate, not-found and error rows are free.

This Actor also runs other LeadProof Actors on your account, and they bill you separately at their own published prices:

ActorWhenIts price
Web SearchAlways, unless you turn web search off$0.005 per results page, usually one per person
Google Maps ScraperOnly with useGoogleMapsPer place delivered, up to three per person
Bulk Email VerifierOnly with verifyEmailsPer address checked

Two limits keep a run inside what you intended:

  • The run's maximum charge (a run option) bounds this Actor's own events. A person is started only while their match could still be charged, so the limit stops work before it is done rather than after.
  • maxTotalCostUsd bounds what the run may commit the other Actors to. Each one's allowance is reserved before it starts and passed to the platform as that Actor's own spending limit, and it is not freed during the run.

Reliability

  • Resume is safe. Rows already delivered are not recomputed or charged again, and another Actor started for a person is re-attached rather than started twice. If a start was interrupted before its run ID was recorded, it is not started again: the row says so.
  • Shared businesses are read once. Several people at one practice share its page reads; each keeps their own relationship to it.
  • One bad row does not end the batch. It becomes an error row and the rest continue.
  • Every URL is checked before it is fetched, and again at every redirect.

Limits

  • People with common names and no profession or credential usually come back as candidates. That is the honest answer, not a failure.
  • Well-known people are written about everywhere. A page that writes about someone without stating their relationship with its own publisher - an encyclopedia entry, a news article, a social post, an honours page - is a candidate, never a match, so a famous name with no company page usually comes back as a candidate. Supply the company page to confirm it.
  • A company page on a separate newsroom site names itself after the newsroom, and says nothing about the person's relationship with the newsroom, so it stays a candidate.
  • A blocked or unreadable page is recorded as such, never as "nothing there".
  • A public source can be stale. Retrieval time is always recorded; a source's own date only when it publishes one, and its absence means unknown recency.
  • Emails are the ones a business published. None are guessed, and a general mailbox is never presented as a person's own.
  • LinkedIn profiles are not read. When web search surfaces a profile address, it is listed as an address and never used as evidence of a job.

Fair use

This Actor reads public, professional information: business websites, public search results and, for US healthcare providers, the public provider registry. It logs into nothing, solves no challenges and bypasses no access controls. You are responsible for having a lawful basis to process the people you enter and for how you contact them.