metadata.date_added is the job-posted date: the date the listing was
added on the source portal. Every query in this page that filters on
metadata.date_added is asking about job-posted time, not Crustdata
indexing time. Treat this endpoint as a query interface over Crustdata’s
indexed dataset, not as a direct poll of an employer-managed listings feed.YOUR_API_KEY in each example with your actual API key. All
requests require the x-api-version: 2025-11-01 header.Job record mental model
Every job listing returned by Search Jobs is a singleJob object with five
top-level groups:
crustdata_job_idandjob_details— The stable job id plus the posting’s own metadata: title, category, URL, workplace type, source platform, employment type, and number of openings.company— The hiring company’s firmographics at index time: basic info, headcount, followers, revenue, funding, locations, and competitors. No extra/company/enrichcall required.location— The job’s advertised location (city, state, country, raw string), not the company HQ.content— Full job description text. Use[.]oncontent.descriptionto find an exact keyword or brand, and(.)for multi-word descriptive matching ((.)is typo-tolerant, so a single keyword can match lookalike words).metadata— Job timing metadata:date_addedfor the date the listing was posted (added on the source portal) anddate_updatedfor the most recent refresh. These are your primary sort and filter fields for recent windows.
crustdata_job_id— the Crustdata job identifier. Returned on everyJob. Use it as your dedupe key.company.basic_info.crustdata_company_id— the Crustdata company identifier returned on everyJob.company.basic_info.company_id(filter alias) — the dot-path used infiltersandaggregations.columnfor indexed Search Jobs. It points to the same integer ascompany.basic_info.crustdata_company_id. This alias is not sortable; for deterministic pagination, sort onmetadata.date_addedinstead.
group_by on company.basic_info.company_id, each bucket also returns metadata.company_name, metadata.company_website_domain, and metadata.linkedin_id for labeling.At a glance
Guaranteed contract vs current behavior
Examples
Pagination & sorting
count and group_by.Reference
Job example, full field catalog, id
map, bucket metadata, errors.Request body
Response body
Rate limits and credits
0.03 credits per result returned. A
request with no results does not consume credits.rate-limit is 30 requests per minute. Send an email to
gtm@crustdata.co to discuss higher limits if
needed for your use case.Your first search: filter by company and title
Find the most recent Software Engineer listings at Stripe (filtered via thecompany.basic_info.company_id alias, which maps to crustdata_company_id = 631394).
Which search pattern should I use?
- I want to explore the dataset
- I only have a company domain or name
- I don't know the exact value to filter on
- I want only counts, not job rows
- I want a repeatable account list
- I want fresh live listings for one company
count or group_by aggregations. Pair it with
cursor-based pagination to walk through large result sets.Examples
Worked recipes you can copy, paste, and adapt. Each example is a full working request. For the core walkthrough (job record mental model, your first search, choosing a search pattern), see the sections above. For filter grammar, operators, and the full field catalog, see Search reference. For sorting, pagination, field selection, and aggregations, see Pagination & sorting.SDR / BDR keyword search across multiple companies
SDR / BDR keyword search across multiple companies
Companies indexing both Software Engineers and Account Executives
Companies indexing both Software Engineers and Account Executives
Query 1 — companies with Software Engineer listings
Query 2 — companies with Account Executive listings
Intersect the company ids client-side
Mid-market companies indexing SDR listings
Mid-market companies indexing SDR listings
Companies that closed a Series B between two dates and are indexing new listings
Companies that closed a Series B between two dates and are indexing new listings
Hiring volume by workplace type in the United States
Hiring volume by workplace type in the United States
Filter listings by source platform and employment type
Filter listings by source platform and employment type
job_details.source identifies the platform each posting comes from —
professional_network, or the platform of the company job board that
published it (workday, smartrecruiters, greenhouse, workable,
lever, icims, ashby, rippling, yc). Use in to keep only postings
from specific job-board platforms, and pair it with
job_details.employment_type to keep only the
declared employment type.Hiring volume by source platform
Hiring volume by source platform
job_details.source to see how many matching listings each source
platform contributes. Each bucket key is one source value. Sent without
filters, it profiles the whole dataset; add filters to profile any slice.source values with at least one matching
listing, so a filtered query can return fewer than 10 buckets. Counts
drift as the dataset is refreshed.Full-text keyword hunt in job descriptions
Full-text keyword hunt in job descriptions
Count matching jobs without returning rows
Count matching jobs without returning rows
count
aggregation with limit: 0. No job rows are returned, so the call consumes
no per-result credits, and the total comes back in both total_count and the
aggregation value.Exact-title match across companies
Exact-title match across companies
in on job_details.title when you want listings whose title is exactly
one of a known set — for example a normalized list of sales titles across a
target account list. This is the precise alternative to fuzzy (.) all-words
matching.Rank keyword hits by relevance
Rank keyword hits by relevance
(.)), you can sort by relevance
to surface the strongest title matches first instead of the most recent.What to do next
- Discover filter values — use Autocomplete to find the exact title, category, or company-name values a filter accepts.
- Paginate and aggregate — see Pagination & sorting for cursor pagination, sorting, field selection, and aggregations.
- Look up fields — see Reference for the full
Jobcatalog, id map, bucket metadata, and errors. - Fetch fresh listings for one company — see Live Search.
- Inspect the full schema — read the OpenAPI reference.

