Skip to Content
MCPToolsFind People

Find People

Describe the person you want, get back matching professional profiles.

Tool
find_people
Cost
0.5 credits per profile found
Category
Source Leads
Required input
None — pass at least one filter
Returns
Matching professional profiles

What it does

  • Finds professional profiles based on the filters you pass — role, seniority, headcount, location, tenure, education and more.
  • No single parameter is required, but a call with no filters has nothing to search on — pass at least one.
  • Filters stack. Combining role, headcount and location narrows a broad search into a usable list.
  • Cost scales with results — 0.5 credits per profile returned. A default page of 25 costs 12.5 credits; a full page of 100 costs 50.

It returns profiles. It does not return emails or phone numbers — chain find_work_email for those.


Use cases

  • Build a prospect list against an ICP. Role, seniority, company size and geography in one call produces the people layer of a target list, not just the accounts.
  • Work the job-change signal at scale. recently_changed_jobs plus a title filter returns buyers in their first months, when the stack is still up for grabs.
  • Find champions who already know you. Filter on past company to surface people who used your product at their last employer.
  • Map a buying committee across accounts. Pass several company domains with the titles that sign, and get every relevant stakeholder in one pass.
  • Source on skills and credentials. Skills, certifications and education filters find technical audiences that title filters alone miss.

How to use it

Connect the MCP server

Follow the setup guide for your client. Browser sign-in, no API key.

Find VP Sales and Head of Sales at Privately Held SaaS companies with 51-200 employees in the United States. Limit 25.

Tighten the filters

Same search, but only people who have been in the role at least 1 year and have a verified business email.

Page through the rest

Get the next page using the cursor from that result. Stop after 3 pages and tell me how many credits you used.

Enrich the ones you want

For the 10 best matches, find work emails and verify them.

Example prompts

Ask your clientWhat you get back
”Find c_suite people at fintech companies with 201-500 employees”Profiles matching seniority, industry and headcount
”Find RevOps directors in Germany who changed jobs recently”Role, country and recently_changed_jobs combined
”Find engineers with Kubernetes skills who studied at MIT”Skills plus education filters
”Find people at stripe.com and shopify.com with VP titles”Multi-company search by domain
”Find Sales Operations people in Berlin who started their current role after 2026-01-01”current_sub_departments, person_cities and current_role_started_after
”Find ex-HubSpot directors now in Marketing at 501-1000 employee companies”past_company_domains with past_seniority_levels and current-role filters
”Find people holding an AWS Certified Solutions Architect certification in the United States”certifications plus person_countries
”Find CTOs at stripe.com”current_company_domains plus current_titles — set limit low for a single account

Best prompting practices

  • Always pass a filter. A search with nothing to match on still bills 0.5 credits for every profile it returns, and returns noise.
  • Use domains, not company names. current_company_domains is exact. Names are easy to get wrong.
  • Use the exact enum strings. c_suite and vp are the accepted seniority values — “C-level” and “Vice President” are not.
  • Paste the docs URL into the prompt. “Parameter reference: https://docs.syncgtm.com/mcp_server/tools/find_people — read it first and use the exact parameter names and value formats.” This tool has more than sixty filters, and a client left to guess invents job_title and location.
  • Reach for the normalized fields when raw titles are messy. current_departments and current_sub_departments are cleaned taxonomies, so they hold where current_titles misses a variant. normalized_titles does the same job at title level.
  • State the exclusions. exclude_current_titles is free and applies before anything is billed — dropping the near-miss titles a broad list pulls in is cheaper than paying 0.5 credits each to read them.
  • Dates are YYYY-MM-DD. current_role_started_after, past_role_started_after and their _before pairs will not parse “since January”.
  • person_cities is exact, person_locations is fuzzy. Use the fuzzy one when you are unsure how a metro is spelled, the exact one when you are not.
  • Set limit deliberately. limit is the cost dial — every profile returned is 0.5 credits. Ask for the number you will actually work, not the maximum.
  • Cap the paging. “Stop after 3 pages” prevents a broad search from walking the whole result set. Three pages of 100 is 300 profiles and 150 credits.
  • Ask for the rows as a table. Name, title, company, domain, location, LinkedIn URL. Left to itself your client summarizes the list and you lose the columns you paid for.
  • Search first, enrich second. Filter down to the profiles you want before spending credits on emails or phones. “No enrichment yet” belongs in the same prompt.

Output

{ "profiles": [ { "name": "Jane Doe", "title": "VP Sales", "company": "Stripe", "location": "San Francisco, United States", "linkedin_url": "https://linkedin.com/in/janedoe" } ], "next_cursor": "eyJwYWdlIjoyfQ" }

Credits and limits

0.5 credits per profile returned. limit accepts 1–100 and defaults to 25, so a default call costs 12.5 credits and a full page costs 50. Each extra page fetched with cursor bills the same way.

Run check_credits (free) before a long paging run.

Broad filter sets return large, loose result sets — and you pay 0.5 credits for every loose match. Test a filter combination with limit: 25 before you page through it.


Parameters

Nothing is strictly required. Pass at least one filter from the families below — they are listed in the order the tool accepts them.

Filters combine as AND across families and any-of within a single array filter. current_titles: ["CTO", "VP Engineering"] matches a profile holding either title; adding person_countries narrows that set rather than widening it.

Person

ParameterTypeNotes
first_namesarrayExact first name
last_namesarrayExact last name
full_namesarrayExact full name
headline_keywordsarraySubstring match on the profile headline
summary_keywordsarraySubstring match on the profile summary / about section
languagesarrayLanguages listed on the profile

Role

ParameterTypeNotes
current_titlesarrayFuzzy match, any-of
exclude_current_titlesarrayDrops profiles holding these titles
past_titlesarrayTitles held in a previous role
normalized_titlesarrayCleaned, standardised title, e.g. Chief Revenue Officer — use when raw titles are messy
seniority_levelsarrayc_suite, vp, director, senior
current_functionsarrayEngineering, Sales, Marketing
current_departmentsarrayNormalized department of the current role
current_sub_departmentsarrayNormalized sub-department, e.g. Sales Operations, Demand Generation
employment_typesarrayFull-time, Part-time, Contract, Internship
current_role_started_afterstringYYYY-MM-DD — started the current role on or after
current_role_started_beforestringYYYY-MM-DD — started the current role on or before

Company

ParameterTypeNotes
current_company_namesarrayExact match
current_company_domainsarrayMore reliable than names
current_company_typesarrayPublic Company, Privately Held
current_company_countriesarrayCompany country, not person country
current_company_locationsarrayFuzzy match on the company’s HQ location text
industriesarrayIndustry of the current company
linkedin_industriesarrayLinkedIn’s own industry taxonomy — a second, differently-worded cut of the same company

Company size

ParameterTypeNotes
current_company_headcount_rangesarray1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+
min_current_company_headcountnumberUse instead of ranges for a custom floor
max_current_company_headcountnumberUse instead of ranges for a custom ceiling

Past experience

ParameterTypeNotes
past_company_namesarrayWorked there previously
past_company_domainsarrayWorked there previously — the alumni and champion play
past_seniority_levelsarraySeniority held in the previous role
past_functionsarrayFunction of the previous role
past_industriesarrayIndustry of a previous employer
past_employment_typesarrayFull-time, Contract, Internship
past_role_started_afterstringYYYY-MM-DD
past_role_started_beforestringYYYY-MM-DD

Location

ParameterTypeNotes
person_countriesarrayExact match
person_locationsarrayFuzzy match — cities, regions
person_citiesarrayExact city
person_statesarrayExact state or region
person_continentsarrayEurope, North America, Asia, South America, Africa, Oceania

Tenure and experience

ParameterTypeNotes
min_years_at_current_companynumberTime in the current seat
max_years_at_current_companynumberTime in the current seat
min_years_experiencenumberTotal career experience
max_years_experiencenumberTotal career experience

Education

ParameterTypeNotes
schoolsarrayFuzzy match
degreesarrayFuzzy match
fields_of_studyarrayFuzzy match
school_countriesarrayCountry the school sits in

Skills and credentials

ParameterTypeNotes
skillsarrayAny-of — a profile matching one skill matches
certificationsarrayCertification names, e.g. AWS Certified Solutions Architect
certification_issuersarrayIssuing organization, e.g. Amazon Web Services, Salesforce

Network

ParameterTypeNotes
min_followersnumberLinkedIn follower count
max_followersnumberLinkedIn follower count
min_connectionsnumberLinkedIn connection count
max_connectionsnumberLinkedIn connection count

Signals

ParameterTypeNotes
recently_changed_jobsbooleanOnly people who moved recently
has_verified_business_emailbooleanOnly profiles with a verified business email
open_toarrayCAREER_INTEREST, HIRING_MANAGER, VOLUNTEERING

Paging

ParameterTypeNotes
limitnumber1–100, default 25
cursorstringPass the next_cursor from the previous call

Filter reference

Several filters only match values from a fixed list. A near-miss does not error — it silently matches nothing, which reads like “no profiles found”. These are the full accepted value lists, hosted as JSON.

FilterAccepted valuesShape
current_titles, past_titles, normalized_titleslinkedin_titles.json Object keyed by title → { id } (~2.1 MB)
skillsskills.json Array of strings (~840 KB)
person_locations, person_cities, person_states, person_countriesstatic-region-filter-values.json Object keyed by region → { id } (~4.3 MB)
linkedin_industriesstatic-linkedin-industries.json Array of strings (~15 KB)

The title and region files are keyed by name and carry LinkedIn’s internal id as the value. Pass the key, not the idperson_locations: ["Greater Boston"], not ["90000007"].

The title and region files are large — do not paste them into a prompt. Point your client at the URL and ask it to pull only what it needs: “fetch https://dyyboia6z5eq9.cloudfront.net/mcp/filters/find_people/linkedin_titles.json  and list every title containing ‘Revenue Operations’.” It resolves the exact strings once, then reuses them for every call.

To search one locally:

curl -s https://dyyboia6z5eq9.cloudfront.net/mcp/filters/find_people/linkedin_titles.json \ | jq -r 'keys[]' | grep -i "revenue operations"

current_titles and past_titles are fuzzy, so a close string still matches. normalized_titles, skills and the region filters are exact — use the lists above for those.


ToolUse it instead when
find_companiesYou want the accounts first, people second
newly_hired_executivesYou want recent hires at a company, with their previous role
enrich_personYou already have an identifier and want one contact record

Next steps


Keep learning

Two courses take these tools past the reference page — clustered by GTM job, then chained into workflows.