Skip to main content
This page collects recipes for Person Autocomplete. Each example is a full working request you can copy, paste, and adapt. For the core walkthrough (quick start, response shape), see Person Autocomplete. For operators, request parameters, autocomplete-enabled fields, and errors, see Autocomplete reference.
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.

Get the most common values for a field

Pass an empty query to retrieve the top values for the field by frequency. Useful for seeding filter dropdowns or showing popular options.
curl --request POST \
  --url https://api.crustdata.com/person/search/autocomplete \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "field": "experience.employment_details.current.title",
    "query": "",
    "limit": 5
  }'
Current platform behavior: empty-query autocomplete can return blank string values when a field has many empty indexed records. Filter those out in your UI if you do not want a blank option.

Narrow suggestions with filters

Scope the autocomplete to a subset of the dataset with the optional filters field. The suggestions are then computed against the filtered population. filters accepts either a single AutocompleteFilterCondition or a nested AutocompleteFilterConditionGroup combined with and/or logic.
Use a single AutocompleteFilterCondition to filter on one field — for example, top “VP” titles among current Google employees.
curl --request POST \
  --url https://api.crustdata.com/person/search/autocomplete \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "field": "experience.employment_details.current.title",
    "query": "VP",
    "limit": 5,
    "filters": {
      "field": "experience.employment_details.current.company_name",
      "type": "=",
      "value": "Google"
    }
  }'

Full workflow: Autocomplete → Search → Enrich

This is the canonical end-to-end Person API workflow. Autocomplete discovers the exact title value the Search API expects, Search finds matching people, and Enrich fills in the details.

Step 1: Discover valid title values

curl --request POST \
  --url https://api.crustdata.com/person/search/autocomplete \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{"field": "experience.employment_details.current.title", "query": "VP Sales", "limit": 3}'
Extract: Take suggestions[0].value"VP Sales". Use this exact string in your Search filter. If empty: Try a broader query (for example, "VP" instead of "VP Sales").

Step 2: Search for matching people

curl --request POST \
  --url https://api.crustdata.com/person/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "op": "and",
      "conditions": [
        {"field": "experience.employment_details.current.title", "type": "in", "value": ["VP Sales", "VP of Sales"]},
        {"field": "experience.employment_details.current.company_headcount_range", "type": "in", "value": ["51-200", "201-500"]}
      ]
    },
    "limit": 3,
    "fields": ["basic_profile.name", "experience.employment_details.current.title", "experience.employment_details.current.company_name", "social_handles.professional_network_identifier.profile_url"]
  }'
Extract: Take social_handles.professional_network_identifier.profile_url"https://www.linkedin.com/in/janesmith". Pass the profile URL to Enrich. If empty: Broaden filters or verify values with an earlier autocomplete call.

Step 3: Enrich the top match

curl --request POST \
  --url https://api.crustdata.com/person/enrich \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{"professional_network_profile_urls": ["https://www.linkedin.com/in/janesmith"]}'
Result: Full person profile with employment history, education, skills, contact info, and more. See Person Enrich for the full response shape. See Person Search for the full filter grammar.

Next steps