Skip to main content
The API is unversioned and changes are additive by default — see Versioning for the compatibility contract. Anything that breaks an existing integration is announced here ahead of time.
Multi-term search pagination fixed
Fixed: between 2026-08-17 and 2026-09-02, POST /api/jobs/search and GET /api/jobs requests with two or more search terms ignored page and page_size. Every page returned the same first 10 results, while total, total_pages, X-Page and X-Page-Size still reflected the request — so a client walking total_pages re-fetched (and was billed for) the same 10 jobs on every page. Single-term searches and the feed were unaffected. The cause was an internal change that moved search parameters from the engine’s URL into its request body; the engine reads pagination for merged multi-term searches only from the URL. Delivered jobs on affected multi-page fetches in that window were billed as normal deliveries; contact support for an adjustment.
Auto Apply fields become structural
Breaking (beta surface): Auto Apply moves to api_version 2026-08-31 and @jobo-ai/autoapply 2.0. Field responses now always contain field_id, type, label, required, and requires_answer, with options, constraints, format, sensitivity, and repeating-group metadata included only when applicable. The unreliable semantic_key and category hints and the ATS current_value are removed from customer responses. Answer fields using their provider ID, visible label, type, advertised options, constraints, and group shape. Sensitive fields remain explicitly marked and should never be inferred.
Company name filters explain themselves
The companies include/exclude filter on POST /api/jobs/search now resolves names more forgivingly and, when it cannot, says so.Matching. Names are still matched on the whole name, but accents, punctuation and common trailing legal suffixes are normalized away first — so FedEx Corporation, fedex and FedEx, Inc. all resolve to the same companies, where previously only the exact stored spelling did. It remains deliberately not a partial match: Glenmark does not find Glenmark Pharmaceuticals, and Fidelity finds the company actually called Fidelity rather than every Fidelity* employer. Widening silently would bill you for companies you never asked for.New, additive response fields. A name that matches nothing is no longer a silent empty page. Responses may now carry warnings[] and filters.companies (matched / unmatched / exclude_unmatched), and the warning codes are repeated on the X-Jobo-Warnings header. Codes: companies_unmatched, companies_exclude_unmatched, companies_outside_sources (the companies resolved but none is on a requested source), and unknown_request_fields (the body carried keys the API does not recognise — most often flat companies_exclude instead of nested companies.exclude). Both fields are omitted entirely when there is nothing to report, so an ordinary successful search is byte-identical to before.An unmatched include name still returns 200 with zero jobs, not 400. Two fixes alongside: the zero-result short-circuit now sends the X-Total-* pagination headers it previously omitted, and the MCP search surface resolves company names at all — it was passing raw names into an id filter, so every name-based company query there returned nothing.
Auto Apply goes synchronous
Breaking (beta surface): the Auto Apply webhook mechanism is removed and the whole flow is now synchronous, at api_version 2026-08-12. POST /api/auto-apply/applications blocks until the first step’s fields are returned directly in current_step; the new POST /api/auto-apply/applications/{id}/answers validates answers synchronously (a bad value is a free 400 with per-field errors), fills the form, auto-continues or auto-submits, and blocks until the next step or the terminal result. GET /applications/{id} gains wait_seconds for long-poll re-attach.Removed: callback_url, webhook settings and secrets, application.fields_requested / terminal events, HMAC signing, the webhook activity log, and all callback_* error codes. New failure codes: answers_timeout, verification_timeout. Steps gained answers_expire_at; applications gained current_step. No tunnel is needed for local development any more. The @jobo-ai/autoapply SDK is rewritten as 1.0.0 around the new loop, including an applications.run() helper. See The application loop.
Auto Apply beta
Auto Apply is open as an invite-only beta at api_version 2026-07-21. POST /api/auto-apply/applications now returns 202 for granted accounts; accounts without access get 403 auto_apply_not_enabled in place of the previous 503 auto_apply_coming_soon. Webhook settings, secret rotation, verification and the sandbox are live in the portal.Callback docs corrected on two points that were previously unstated: application.fields_requested is a synchronous request whose response body carries the answers, and a non-2xx or non-JSON reply fails the application permanently rather than being retried. Added a local development guide — a callback must be a public HTTPS address, so localhost needs a tunnel.
Documentation
Documentation narrowed to cover the API only — the Data Platform section moved to jobo.world. Corrected filter enum values throughout: experience_level is intern | entry | mid | senior | lead | executive, and employment_type includes freelance. Added dedicated pages for idempotency, pagination, response headers, and the 7-day expiry lookback window. The source catalogue reference was updated to 106 providers.
Auto Apply preview
Published the profileless, callback-driven Auto Apply contract as a preview, at api_version 2026-07-21. Application creation is not yet enabled — POST /api/auto-apply/applications returns 503 auto_apply_coming_soon until launch.