Title98/100
Enrich Person
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Enrich a person by email, phone, name, social URL, or other identifiers. Requires at least one primary identifier (email, phone, social_url, linkedin_id, legion_id, email_hash) OR name + context (location, company, school, job_title, birth_date). Returns detailed person profile including contact info, work experience, education, skills, and more. Each successful match consumes one credit. Field access is determined by the team's contract. Returns JSON `{"matches": [{"person": {...}, "match_metadata": {...}}], "total": n}`: the best match, its `match_metadata` (`matched_on`: the input fields that matched, `match_type`, `match_confidence`: high, moderate or low), and `total`, the number of matches found. No match is an error (HTTP 404) and costs nothing. Key person fields: `legion_id`, `full_name`, `job_title`, `seniority_level`, `job_function`, `company_name`, `company_domain`, `work_email`, `mobile_phone`, `emails`, `phones`, `linkedin_url`, `city`, `state`, `country`, `experience`, `education`, `skills`, `last_seen`. `emails` and `phones` are lists with `address`/`number` and `type`.
The description explains the capability, when to use it, and what to expect.
Inputs97/100
Input documentation gives an agent enough context to populate the arguments.
The person's email address, personal or work. Normalized before matching.
Clear enough to supply this argument.
phone
The person's phone number, in any common format. Normalized to E.164.
Clear enough to supply this argument.
linkedin_id
The person's LinkedIn numeric ID (the `linkedin_id` field of a person result). For a LinkedIn profile URL, use social_url.
Clear enough to supply this argument.
social_url
URL of the person's LinkedIn, X/Twitter, GitHub or Facebook profile; the network is detected from the URL.
Clear enough to supply this argument.
legion_id
Data Legion's ID for the person: the `legion_id` of an earlier person_enrich or person_search result. Matched exactly.
Clear enough to supply this argument.
email_hash
SHA-256 (64 hex characters), SHA-1 (40) or MD5 (32) hash of the normalized email address, for lookups without the plain email. utility_hash_email makes one.
Clear enough to supply this argument.
full_name
The person's full name, e.g. 'Jane Doe'. A name alone is not enough: pair it with location, company, school, job_title or birth_date.
Clear enough to supply this argument.
first_name
The person's first name, given with last_name instead of full_name.
Clear enough to supply this argument.
last_name
The person's last name, given with first_name instead of full_name.
Clear enough to supply this argument.
address
The person's full street address as one string; parsed into city, state, postal code and country.
Clear enough to supply this argument.
city
City of the person's location, as matching context.
Clear enough to supply this argument.
state
State of the person's location: a name ('texas') or code ('TX').
Clear enough to supply this argument.
country
Country of the person's location: a name or code.
Clear enough to supply this argument.
postal_code
Postal or ZIP code of the person's location.
Clear enough to supply this argument.
job_title
The person's job title, as matching context with a name.
Clear enough to supply this argument.
company
The person's employer, as matching context: a company name, website or social URL.
Clear enough to supply this argument.
school
A school the person attended, as matching context: a name, website or social URL.
Clear enough to supply this argument.
birth_date
The person's date of birth as YYYY-MM-DD, YYYY-MM or YYYY.
Clear enough to supply this argument.
min_confidence
Drop matches below this match confidence: 'high', 'moderate' or 'low' (any other value is rejected). Omit for no minimum.
Clear enough to supply this argument.
titlecase
If true, lowercase text fields (names, job titles, company names, industries, locations, skills, headlines) come back in title case. IDs, URLs, codes, raw fields and confidence fields are unchanged.
Clear enough to supply this argument.
required_fields
Comma-separated fields a match must have, or it is dropped: response field names ('work_email,phones'), a non-empty list subfield ('emails.type'), or a subfield equal to a value ('emails.type:personal', 'phones.type:mobile', 'socials.network:linkedin'). Unknown names or values return HTTP 400.
Clear enough to supply this argument.
include_fields
Comma-separated response fields to return; all other fields are dropped. Dot paths select a subfield (e.g. 'full_name,emails.address'). Omit to return every field. Unknown field names are rejected with the valid list.
Clear enough to supply this argument.
exclude_fields
Comma-separated response fields to drop, applied after include_fields (e.g. 'skills,education'). Unknown field names are rejected with the valid list.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Enrich Person",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Output schema2/100
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "person_enrichOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "string",
"title": "Result"
}
}
}