Jobs
Search Jobs
Search the public job marketplace. No authentication required.
GET
Full-text search over the public OpenTrain job marketplace. This endpoint is tokenless — no
Authorization header needed — and CORS-enabled (Access-Control-Allow-Origin: *), so it works from browsers, scripts, and agents without any onboarding. Responses are cached at the edge (Cache-Control: public, s-maxage=300, stale-while-revalidate=3600).
For filter values to offer in a UI, fetch GET /jobs/facets first. To track marketplace changes incrementally, poll GET /jobs/changes.
Requirements: none — no token, no scope, no feature flag. Rate limited to 120 requests/minute per IP.
Request
Free-text search across job titles and descriptions.
Filter by required language.
Filter by allowed country.
PAY_PER_HOUR, FIXED_PRICE, or PAY_PER_LABEL. Any other value returns 400.Page size, max 100.
Opaque pagination cursor from a previous response’s
nextCursor.OPTIONS on this path returns 204 with the CORS headers (preflight support).
Response
Matching public jobs, each a full job object.
Pass back as
cursor for the next page; null when there are no more results.ISO timestamp when the response was generated (responses are edge-cached up to 5 minutes).
Errors
| Status | code | Meaning |
|---|---|---|
400 | BAD_REQUEST | Invalid payType or malformed parameters |
429 | RATE_LIMITED | Over 120 requests/minute from one IP |