Search Jobs
Search the Crustdata job dataset using filter conditions. Each result includes the job’s details (title, category, URL, openings), the hiring company’s core firmographics (basic info, headcount, followers, revenue, funding, competitors), the job location, full job description text, and metadata timestamps.
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.
Supports complex AND/OR filter logic, cursor-based pagination, sorting, field
selection, and aggregations (count and group_by). Only indexed fields are
filterable and sortable — see the field description on SearchCondition for
the full list.
Authorizations
API key passed as a Bearer token in the Authorization header.
Headers
API version to use. This endpoint currently requires 2025-11-01.
2025-11-01 "2025-11-01"
Body
Search filters, pagination, sorting, field selection, and aggregations
Request body for searching the indexed job dataset with filters, pagination, sorting, field selection, and aggregations.
Search filter conditions. Can be a single condition or a nested group
combined with AND/OR logic. Only indexed fields are filterable — see
SearchCondition.field for the full list.
- Option 1
- Option 2
{
"field": "company.basic_info.company_id",
"type": "=",
"value": 631394
}
Opaque pagination cursor returned in a prior response's next_cursor field. Pass this to fetch the next page of results with the same filter, sort, and field selection.
"H4sIAJJG1mkC_xXMPQ7CMAwG0KtEmTvYiR0nXAWhyvlBHRARbTogxN0J01s-vY99nW1_r5sem70YSzEJErG_VwdSnfeMiVpSjhmbUmkanXqXa5rlqsUlTJApUPO1NrsYe_R9zNcVRZgDRhIAWAwhsA_Ct0lGH_pYSz-ffykR8PsDw2G2zooAAAA="
Maximum number of job listings to return per page. Set to 0 when you only want aggregations.
0 <= x <= 100020
Sort specifications for ordering results. Sorts are applied in order.
[
{
"field": "metadata.date_added",
"order": "desc"
}
]
Fields to return in each job listing. Use dot-notation for nested fields (e.g., "job_details.title", "company.basic_info.name"). If omitted, all available fields are returned.
Valid top-level groups: crustdata_job_id, job_details, company,
location, content, metadata. Nested fields are supported
(e.g., company.basic_info, company.headcount, company.funding).
[
"job_details.title",
"job_details.url",
"company.basic_info.name",
"location.raw",
"metadata.date_added"
]
Aggregation queries to run alongside the search. Set limit: 0 if you want only aggregation results and no job rows.
[
{
"type": "group_by",
"field": "company.basic_info.company_id",
"agg": "count",
"size": 5
}
]
Response
Jobs matching the search criteria with pagination cursor and total count
Paginated response from the indexed job search endpoint.
Job listings matching the search criteria for the current page. Empty when limit is 0 or when an aggregation-only query is made.
[]
Opaque cursor for fetching the next page of results. Pass this value as cursor in the next request. null when there are no more pages.
"H4sIAJJG1mkC_xXMPQ7CMAwG0KtEmTvYiR0nXAWhyvlBHRARbTogxN0J01s-vY99nW1_r5sem70YSzEJErG_VwdSnfeMiVpSjhmbUmkanXqXa5rlqsUlTJApUPO1NrsYe_R9zNcVRZgDRhIAWAwhsA_Ct0lGH_pYSz-ffykR8PsDw2G2zooAAAA="
Total number of job listings matching the query across all pages.
1676
Aggregation results, present only when the request included an aggregations array.
[
{
"type": "count",
"field": null,
"value": 4448237
}
]

