and), see
Person Search. For the operator list,
field catalog, and validation rules, see
Search reference.
Replace
YOUR_API_KEY in each example with your actual API key. All
requests require the x-api-version: 2025-11-01 header.Search by employer and title
This is the most common pattern for sales and recruiting: find people with a specific title at a specific company. This search finds VPs, Directors, and Heads of department at Retool.Response trimmed for clarity.
How the operators work
There are two different operators at play here:inonexperience.employment_details.company_namechecks if the person has worked at any of the listed companies (current or past). Pass an array even for a single company. To search only current employers, useexperience.employment_details.current.company_nameinstead.(.)onexperience.employment_details.titledoes a regex match. The pipe|means “or”, soVP|Director|Head ofmatches any title containing “VP”, “Director”, or “Head of”. To search only current titles, useexperience.employment_details.current.titleinstead.
experience.employment_details.company_name field includes all employers (current and past). If you see someone whose current role is at a different company, it means they previously worked at your target company.
Find people at a company by its profile URL
When you know a company’s profile URL but not its exact name, filter on the employer’s profile URL. Names can be ambiguous; the profile URL is exact, so this is the most reliable way to target one specific company. Lead with the current-employer field to find people who currently work there:Response trimmed for clarity.
Current, former, or either
- Current employees —
experience.employment_details.current.company_professional_network_profile_url - Former employees —
experience.employment_details.past.company_professional_network_profile_url - Anyone who has ever worked there — combine both with an
orgroup:
in operator with an array of profile URLs.
The bare
experience.employment_details.company_professional_network_profile_url
path (all employers) is not filterable — use the current. or past.
variants above. The accepted alias ...company_linkedin_profile_url
resolves to the same data.Exclude specific titles
Sometimes you want everyone at a company except certain roles. Use thenot_in operator to exclude titles.
This search finds people at OpenAI or Retool but excludes interns and students.
not_in operator removes any profile where one of the listed values appears in their title history. This is useful for cleaning up results in recruiting or sales workflows.
Search within a geographic radius
Thegeo_distance filter finds people within a specific distance of a city. This is powerful for territory-based sales or local recruiting.
This search finds CTOs within 10 miles of San Francisco.
Response trimmed for clarity.
How geo_distance works
Thegeo_distance filter uses the professional_network.location.raw field.
The value is an object whose centre is given as either a location
string (geocoded server-side) or an explicit lat_lng pair (which skips
geocoding). If both are supplied, lat_lng wins.
| Field | Required | Description |
|---|---|---|
location | one of | City or region name geocoded server-side (e.g., "San Francisco", "London", "New York") |
lat_lng | one of | Explicit [lat, lng]. Lat in [-90, 90], lng in [-180, 180]. Bypasses geocoding. |
distance | Yes | Radius from the centre point. Must be positive. |
unit | No | One of km, mi, miles, m, meters, ft, feet. Defaults to km. |
Search by explicit coordinates
Uselat_lng when you already have coordinates (for example, from a map
picker) or you want to skip the geocoding step. The example below finds
people within 5 km of latitude 37.7749, longitude -122.4194 (downtown San
Francisco).
Exclude profiles matching a substring
Use(!) when you want to drop profiles whose value contains a particular
phrase — useful when not_in is too rigid (it requires exact values) and
you want a substring-style exclusion instead.
This search finds VP-level people at Retool, then drops anyone whose
headline mentions “Investor” or “Advisor”.
(!) matches a multi-word value as a literal phrase. (!) "New York"
excludes only profiles that literally contain "New York" — it does not
exclude "New Yorker". To exclude on each word independently, send a
separate (!) condition for each word inside an and group, as shown
above.Search by country
For broader geographic targeting, filter by country directly.basic_profile.location.country uses full country names, such as "United States" or "India".Search by employer headquarters country
Usecompany_headquarters_country when you want to filter by where a person’s
current or past employer is headquartered.
Note:
company_headquarters_country uses ISO-3 codes (USA, IND, GBR),
unlike basic_profile.location.country which uses full names. Use ISO
3166-1 alpha-3 codes for the current, past, and all-role headquarters
country fields. See the ISO 3166-1 alpha-3 country code
list for accepted codes.Exclude specific people from results
Usepost_processing to remove known profiles from results. This is useful when re-running searches and you want to skip people you have already contacted.
Build a profile card with company and school logos
Person Search returns stable Crustdata-hosted logo permalinks for employers (company_profile_picture_permalink) and schools (institute_logo_permalink), so you can render a profile card without resolving image URLs yourself. Request the experience and education sections for the person you want.
Next steps
- Pagination and sorting — walk through every matching profile in a stable order.
- Search reference — operators, searchable fields, response fields, request parameters, and errors.
- Person Autocomplete — discover valid indexed values before building a filter.

