Skip to content

Get started

API reference

Read the current edition, filter its jobs, and connect your own application.

Use https://api.jobchop.co for these API, feed, export, and MCP endpoints. The OpenAPI specification describes the JSON schemas.

EndpointUse it for
GET/api/v1/editionThe current edition and its jobs.
GET/api/v1/jobs/{id}One job from the current edition.
GET/openapi.jsonThe OpenAPI 3.1 specification.
MCP/mcpThe remote MCP server. Connect with an MCP client.
GET/rss.xml · /atom.xml · /feed.jsonFeeds with one item per daily edition.
GET/jobs.csv · /edition.mdCSV and Markdown exports.
GET/embed · /embed.jsInteractive website embeds.
GET/healthzService health.

Filter the current selection

Pass q for a text search, work_mode for the work arrangement, or tag for an exact tag. Filters can be combined.

Remote jobs
curl "https://api.jobchop.co/api/v1/edition?work_mode=remote"

Work modes: remote, hybrid, onsite, and unspecified. A matching edition can have an empty jobs array.

A role summary and original source URL may be absent. apply_url is the supplied application URL or null when none was supplied. source_url is the original hiring announcement. The two fields stay separate.

Email signup

Sign up on the website to receive up to three jobs from each fresh daily edition. Email requires explicit confirmation; public reads still need no account or API key.

For a custom form, read GET /api/subscriptions/config for enabled and the public Turnstile sitekey. When enabled, render the widget with action email_signup.

Send JSON to POST /api/subscriptions with email, a fresh turnstile_token, and an optional empty website honeypot. The body limit is 4 KiB. Email addresses are trimmed and normalized to lowercase. Reset the widget after every submission attempt.

A generic 202 response does not activate a subscription. The reader must confirm using the emailed link within 48 hours. Handle 400 for invalid fields, 403 for rejected verification, 413 for oversized bodies, 429 for limits, and 503 for unavailable signup or delivery services. Exact field bounds are in OpenAPI.

Handle freshness and errors

StatusExpected handling
200Read the edition or requested resource.
400Correct invalid parameters, such as an unsupported work_mode.
404 · job_not_foundThe job ID does not belong to the current edition.
410 · edition_expiredThe edition expired. Clear the current selection and fetch a new edition later.
503 · no_editionNo edition has been published yet. Show an empty state and try again later.

Errors return an error code and message. The /api/v1/* JSON endpoints allow cross-origin reads. Responses use Cache-Control: no-store. Public reads do not require authentication. Keep expiry information when redisplaying the data.

Open the interactive website embed. See the embedding guides to add jobs to your site.

Connect an assistant with the MCP setup guide →