Changelog

This page tracks every shipping change to the JobTactics Public API. Entries are dated and grouped by category. Breaking changes are called out explicitly.

v1.1.0 — 2026-06-30

Removed — Profile, folder and document CRUD (breaking)

The Public API is now a workflow integration surface, not a remote substitute for the JobTactics dashboard. Resources whose creation/editing only makes sense inside the dashboard’s purpose-built UI have been removed from the public surface. They remain fully available inside app.jobtactics.io.

Profiles (write surface removed; two reads remain):

Folders (entire surface removed):

Documents (write surface removed; reads remain):

Removed — Application score (breaking)

Application scoring is split between an integration signal and two SaaS-internal features. Only the former stays public:

The use case left behind: an external provider can still score a single profile, but auditing a specific application or batch-rating a board are SaaS-internal features.

Changed — Document exports : locale query parameter removed (breaking)

The locale query parameter has been removed from every export endpoint:

Why. Exports must reflect the document as it was generated, not be re-translated at download time. The previous design let callers pass a locale that would override the section labels (e.g. “Experience” → “Expérience”), producing PDFs where the body content was in one language and the section labels in another. That was a footgun.

New behavior. The export endpoints now pick the language from the document itself, in this order:

  1. content.language if the document was generated with an explicit language.
  2. The user’s preferred language (users.language).
  3. English as the ultimate fallback.

If you want a CV in French, generate it in French (POST /public/cv/generate with language: "fr"). The export then matches.

Added — CV section labels follow the document language, for any locale

CV section labels (“Experience”, “Education”, “Skills”…) now follow the language the CV was generated in — including languages outside the six UI locales (fr, en, es, it, de, pt). Generate a CV in Japanese, Arabic or Chinese and the exported PDF’s section headers come out in that language instead of falling back to English.

How it works. When a CV is generated, the target language is stored on the document (content.language), and the AI produces the translated section labels alongside the content (content.sectionLabels). At export time, labels are resolved in this order, per label: the document’s own sectionLabels, then the built-in registry for one of the six UI locales, then English. Explicit per-document labels always win, so non-EU languages render correctly without any new endpoint or parameter.

Changed — every export follows the document’s own language, end to end

The “language is intrinsic to the document” principle now covers all generation paths and all exports:

Migration notes

If you previously created profiles, folders or documents via the API in scripts or integrations:

Total surface: 31 → 17 public endpoints. The Make and Zapier integrations have been updated in lockstep.

v1.0.1 — 2026-05-18

Removed — Matching (breaking)

Fixed

v1.0.0 — 2026-05-04

The first public release of the API expands the surface from four endpoints to a complete integration toolkit (31 endpoints), all gated by personal API keys generated in Settings → API keys.

Added — AI generation

Added — Application scoring

Added — Profile, document and folder CRUD

Added — Document exports

All export endpoints follow the same async pattern: the file is generated, uploaded to private storage and returned as a presigned URL valid for one hour, in this exact JSON shape:

{
  "downloadUrl": "https://...",
  "expiresAt": "2026-05-04T18:30:00.000Z",
  "filename": "cv-jane-doe-software-engineer-acme-04-05-2026.pdf",
  "contentType": "application/pdf",
  "sizeBytes": 245678
}

Added — Read-only resources

Added — Settings

Notes