Skip to main content
Use this when you need to discover exact indexed values before building a Search Jobs query — for filter dropdowns, input validation, dataset exploration, or guided query builders. The Job Autocomplete API returns ranked field-value suggestions so you can feed the result straight into a Search Jobs filter without guessing at valid values.
This endpoint returns field values, not job listings. It also has no pagination or cursor — the limit parameter (max 100) is the only way to control result size. To fetch job records, use Search Jobs instead.
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.

At a glance

Default rate-limit is 30 requests per minute. Send an email to gtm@crustdata.co to discuss higher limits if needed for your use case.


Quick start: discover job title values

Type-ahead lookup on a single field. Pass the user’s partial input as query and cap the dropdown size with limit.
Each suggestion includes:
  • value — the exact indexed value stored against field. Use it verbatim as a Search Jobs filter value.
When no values match the query, the response returns an empty array — not a 404:
No results

Examples

Worked recipes you can copy, paste, and adapt. Each example is a full working request you can adapt to your own fields and filters. For the core walkthrough (quick start, response shape), see the Quick start above. For request parameters, autocomplete-enabled fields, and errors, see the reference sections below.
Pass an empty query to retrieve the top values for a field, ranked. This is ideal for a controlled vocabulary like category — it returns the full set of categories without an extra round-trip, perfect for seeding a filter dropdown.
Free-text fields like title have a large value space. Pass a partial query to power a type-ahead input.
The same endpoint works for company names and locations. Use company.name to suggest hiring companies, or location.country to suggest countries.
Autocomplete discovers the exact value Search Jobs expects, then Search finds matching listings.

Step 1: Discover a valid category value

Extract: Take suggestions[0].value"Engineering". Use this exact string in your Search filter.

Step 2: Search for matching jobs

See Search Jobs for the full filter grammar, and Examples for more end-to-end recipes.

Guaranteed contract vs current behavior

Use this table to separate the parts you can build against with confidence from the observed behavior that may evolve.

Request parameters

Unlike Person Autocomplete, Job Autocomplete does not accept a filters scope. The request body is just field, query, and limit.

Autocomplete-enabled fields

The field in a Job Autocomplete request must come from a fixed allowlist. Many entries are aliases of one another — for example title, job_title, and job_details.title all autocomplete job titles, so you can use whichever spelling matches the filter path you use on Search Jobs.

Verify the live list

Call the endpoint with a deliberately invalid field. The 400 response lists every currently accepted field in its error message:

Implementation tips for UI builders

  • Debounce autocomplete calls to avoid one request per keystroke — 150–300 ms on input idle works well for typeahead UIs. - Seed dropdowns with an empty query. For controlled vocabularies like category, an empty query returns the full set in one call. - De-duplicate free-text fields. High-cardinality fields like title can return repeated values — collapse duplicates before rendering. - Expand location variants. A country may have several indexed spellings (for example United States and United States of America); pass all the variants you need to a Search Jobs filter with the in operator. - Cap limit. Most dropdowns need 5–15 options. A lower limit reduces payload size and speeds up responses.

Errors

Every error uses the nested envelope { "error": { "type", "message", "metadata" } }. A query that matches nothing is not an error — the endpoint returns {"suggestions": []} with a 200 status.

API reference summary

See the full API reference for the complete OpenAPI schema.

What to do next