Datasets API endpoint
Use Crawlora's Search the jobs dataset API to search or inspect stored structured datasets as JSON. This page includes request parameters, cURL examples, response schema, validation behavior, credit cost, and a Playground link for testing before integration. Dataset endpoints read indexed records and do not apply proxy routing.
/datasets/jobs/searchFull-text + faceted search over every job posting crawled from every discovered company ATS board (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Rippling, Personio, Teamtailor, Oracle, UKG, iCIMS, Eightfold, Gem, Pinpoint). Open roles only by default (set include_closed=true for historical/filled roles). Salary is parsed from a structured field when the provider has one, or from an explicit pay figure stated in the description otherwise, so coverage varies by posting rather than by provider; min_salary/max_salary filter on it and require salary_currency, since comparing raw compensation numbers across currencies is meaningless. provider enum: `greenhouse`, `lever`, `ashby`, `workday`, `smartrecruiters`, `workable`, `recruitee`, `rippling`, `personio`, `teamtailor`, `oracle`, `ukg`, `icims`, `eightfold`, `gem`, `pinpoint`. workplace_type enum: `onsite`, `hybrid`, `remote`. sort enum: `relevance`, `posted_desc`, `company_asc`. Developers commonly use this endpoint for repeatable dataset search, filtering, facets, local business enrichment, analytics, exports, and internal tools that need structured records beyond the limited manual refinement available in the Google Maps app. Authentication uses the x-api-key header, usage is metered with the credit cost shown on this page, and the request does not trigger live scraping or proxy routing.
Request parameters are generated from the active endpoint catalog. Dataset parameters filter, page, facet, or locate stored structured records; they do not configure a live scraper or proxy path.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Full-text over title, company, description | ||
| company | string | No | Company name match | ||
| provider | string | No | ATS provider filter Allowed values: greenhouse, lever, ashby, workday, smartrecruiters, workable, recruitee, rippling, personio, teamtailor, oracle, ukg, icims, eightfold, gem, pinpoint | ||
| department | string | No | Exact department filter | ||
| location | string | No | Location match | ||
| employment_type | string | No | Exact employment-type filter | ||
| remote | boolean | No | Filter by remote (true or false) | ||
| workplace_type | string | No | Workplace type filter Allowed values: onsite, hybrid, remote | ||
| include_closed | boolean | No | Include closed/filled roles (default false = open only) | ||
| min_salary | number | No | Minimum salary (matches postings whose range reaches at least this); requires salary_currency | ||
| max_salary | number | No | Maximum salary (matches postings whose range starts at or below this); requires salary_currency | ||
| salary_currency | string | No | 3-letter ISO currency code (e.g. USD) the min_salary/max_salary bounds are in; required when either bound is set | ||
| sort | string | No | Sort enum: relevance, posted_desc, company_asc Allowed values: relevance, posted_desc, company_asc | ||
| page | integer | No | Page number, default 1 | ||
| page_size | integer | No | Page size, default 20, max 100; page*page_size must be <= 10000 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/jobs/search?q=coffee&provider=greenhouse&remote=true&workplace_type=onsite&include_closed=true&sort=relevance&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint reads stored indexed dataset records. It does not execute a live upstream Google Maps request, browser session, or proxy-routed scraping job.
Crawlora does not silently return invalid dataset search results when filters, pagination, coordinates, or stored record lookups cannot be satisfied.
| Status | Common failure case |
|---|---|
| 400 | Invalid input, missing required parameter, invalid enum, bad coordinate pair, or result window beyond the dataset limit |
| 404 | Requested stored dataset item is not present |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal dataset query or storage error |
When possible, Crawlora returns structured error context so your integration can adjust filters, page size, location inputs, or lookup identifiers.
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
{
"code": 200,
"msg": "OK",
"data": {
"total": 1,
"page": 1,
"page_size": 20,
"jobs": [
{
"posting_id": "greenhouse:ab12cd:9f0e",
"provider": "greenhouse",
"company": "Stripe",
"title": "Staff Engineer",
"location": "US Remote",
"remote": true,
"employment_type": "Full-time",
"url": "https://stripe.com/jobs/listing/5501234",
"posted_at": "2026-07-01T00:00:00Z",
"is_open": true
}
]
}
}Request schema
No body schema
Response schema
#/definitions/datasets.jobsSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.JobsSearchResponse | No | ||||
| data.jobs | array | No | ||||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/jobs/search?q=coffee&provider=greenhouse&remote=true&workplace_type=onsite&include_closed=true&sort=relevance&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms