Skip to content

career-ops

vcareer-ops-v1.21.0 scope: career-ops Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai ai-agent anthropic ats automation beginner-friendly
+11 more
career careerops claude claude-code cli go interview-prep job-application job-hunting job-search resume

ReleasePort's take

Light signal
editorial:auto 9d

Career‑Ops v1.21.0 introduces several new features across apply, cover-letter, dashboard, email, interview tools, ledger, and liveness components.

Why it matters: These feature additions expand workflow capabilities for developers, SREs, and security engineers handling career‑operations tasks; version bound is 1.21.0 released 2026-07-17.

Summary

AI summary

Broad release touches 1.21.0, Bug Fixes, 2026-07-17, and https://github.com/santifer/career-ops/issues/1920.

Changes in this release

Feature Medium

Adds warning before reapplying to a repeat company in apply mode.

Adds warning before reapplying to a repeat company in apply mode.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Adds --format and --report CLI arguments to cover-letter command.

Adds --format and --report CLI arguments to cover-letter command.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Adds manifesto shortcut, help entry and footer link to dashboard.

Adds manifesto shortcut, help entry and footer link to dashboard.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Adds confirmed-time no-show follow‑up variant to email.

Adds confirmed-time no-show follow‑up variant to email.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Cross‑references coffee chat notes against interview intel in interview‑prep.

Cross‑references coffee chat notes against interview intel in interview‑prep.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Flags scope/compensation mismatch as a separate fifth dimension in interview‑redflag.

Flags scope/compensation mismatch as a separate fifth dimension in interview‑redflag.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Suggests a ready‑to‑copy blacklist row at Reconsider level in interview‑redflag.

Suggests a ready‑to‑copy blacklist row at Reconsider level in interview‑redflag.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Wires Panel Intel table into multi‑panelist rounds in interview/plan.

Wires Panel Intel table into multi‑panelist rounds in interview/plan.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Adds immutable ordinal per signature and first‑contribution question to ledger.

Adds immutable ordinal per signature and first‑contribution question to ledger.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Medium

Adds Workday to the zero‑token ATS liveness API rung in liveness.

Adds Workday to the zero‑token ATS liveness API rung in liveness.

Source: llm_adapter@2026-07-17

Confidence: high

Feature Low

Blocks G signal for benefits terminology country mismatch in oferta mode.

Blocks G signal for benefits terminology country mismatch in oferta mode.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Routes manifesto link from README and first successful scan during onboarding.

Routes manifesto link from README and first successful scan during onboarding.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Adds role name to tailored PDF filename for multi‑role tracking in pdf command.

Adds role name to tailored PDF filename for multi‑role tracking in pdf command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Adds Oracle Recruiting Cloud zero‑auth provider to providers list.

Adds Oracle Recruiting Cloud zero‑auth provider to providers list.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Introduces unified Risk Summary block joining five company‑risk signals in reports.

Introduces unified Risk Summary block joining five company‑risk signals in reports.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Tracks compensation figures stated per interview round in salary-gap module.

Tracks compensation figures stated per interview round in salary-gap module.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Persists and surfaces scanner trust signal to pipeline and history in scan command.

Persists and surfaces scanner trust signal to pipeline and history in scan command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Feature Low

Tracks portal health over time and surfaces coverage decay in scan command.

Tracks portal health over time and surfaces coverage decay in scan command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Medium

Unifies atomic report number allocation to prevent race conditions.

Unifies atomic report number allocation to prevent race conditions.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Keeps role header with bullets when a location line is present in cv-template.

Keeps role header with bullets when a location line is present in cv-template.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Warns when Node version is below 22.5 instead of passing silently in doctor command.

Warns when Node version is below 22.5 instead of passing silently in doctor command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Loads Nix flake only when Nix is installed in envrc file.

Loads Nix flake only when Nix is installed in envrc file.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Removes GitHub PR references from candidate‑facing output templates in interview-redflag.

Removes GitHub PR references from candidate‑facing output templates in interview-redflag.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Matches first‑contribution confirmation copy with shipped certificate in ledger-bot.

Matches first‑contribution confirmation copy with shipped certificate in ledger-bot.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Restores 'done' confirmation now that certificate render is live in ledger-bot.

Restores 'done' confirmation now that certificate render is live in ledger-bot.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Relays manifesto note in agent‑mediated updates during onboarding.

Relays manifesto note in agent‑mediated updates during onboarding.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Drops empty Projects section instead of rendering a bare header in pdf command.

Drops empty Projects section instead of rendering a bare header in pdf command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Keeps base titles distinct from specialized‑suffix siblings in role-matcher.

Keeps base titles distinct from specialized‑suffix siblings in role-matcher.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Respects data/blacklist.md in scan-ats-full command.

Respects data/blacklist.md in scan-ats-full command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Bugfix Low

Quiets dotenv to keep --json stdout parseable in scan command.

Quiets dotenv to keep --json stdout parseable in scan command.

Source: granite4.1:30b@2026-07-17-audit

Confidence: low

Full changelog

The signals release

Every evaluation now ends with a Risk Summary: one table joining the five company-risk signals (posting legitimacy, employment classification, culture screen, interview red flags, AI claims vs infrastructure) — aggregation only, and "not evaluated" is stated honestly instead of hidden. On top of it, eleven new behavioral signals and guards landed across oferta, interview and apply modes, the scanner now persists a per-posting trust score, and reserved report numbers can no longer race each other.

The CareerOps Manifesto keeps growing on its own — 30+ signatures, each one a commit. This release routes to it from every surface (README, first scan, dashboard m, post-update note), and if you signed with your first-ever public GitHub contribution, your certificate now says so.

New here? npm run manifesto · https://career-ops.org/manifesto


1.21.0 (2026-07-17)

Features

  • apply: warn before reapplying to a repeat company (#1921) (6cdca85), closes #1920
  • cover-letter: support --format and --report CLI arguments (#1830) (88c75cf), closes #1828
  • dashboard: manifesto shortcut, help entry and footer link (64e81de)
  • email: add confirmed-time no-show follow-up variant (#1860) (c77d138), closes #1859
  • interview-prep: cross-reference coffee chat notes against interview intel (#1941) (2692051), closes #1940
  • interview-redflag: flag scope/compensation mismatch as a separate fifth dimension (#1943) (ea57b82), closes #1942
  • interview-redflag: suggest a ready-to-copy blacklist row at Reconsider level (#1856) (b645e69), closes #1854
  • interview/plan: wire the existing Panel Intel table into multi-panelist rounds (#1858) (a8ceed2), closes #1857
  • ledger: immutable n: ordinal per signature + first-contribution question for new signers (8ec80b5)
  • liveness: add Workday to the zero-token ATS liveness API rung (#1928) (f6afdf9)
  • oferta: Block G signal for benefits terminology country mismatch (#1936) (3f0985d), closes #1935
  • onboarding: route to the manifesto from the README and the first successful scan (e3a82e0)
  • pdf: add role name to the tailored PDF filename for multi-role tracking (#1890) (e878096)
  • providers: add Oracle Recruiting Cloud zero-auth provider (#1929) (52db048)
  • reports: unified Risk Summary block joining the five company-risk signals (#1738) (f0c742a), closes #1737
  • salary-gap: track compensation figures stated per interview round (#1853) (8308cd1), closes #1852
  • scan: persist and surface the scanner trust signal to pipeline and history (#1765) (16c8497), closes #1743
  • scan: track portal health over time and surface coverage decay (#1768) (9bc82e2), closes #1744

Bug Fixes

  • cv-template: keep role header with its bullets when a location line is present (#1903) (66b1024)
  • doctor: warn when Node is below 22.5 instead of passing silently (#1831) (30e470d), closes #1829
  • envrc: only load the Nix flake when Nix is installed (#1863) (ca23af6)
  • interview-redflag: drop GitHub PR references from candidate-facing output templates (aa35162)
  • ledger-bot: make the first-contribution confirmation copy match what ships (89e1741)
  • ledger-bot: restore the 'done' confirmation now that the certificate render is live (9c033d2)
  • onboarding: relay the manifesto note in agent-mediated updates (0a3abed)
  • pdf: drop empty Projects section instead of rendering a bare header (#1879) (a64d590)
  • role-matcher: keep base titles distinct from specialized-suffix siblings (#1922) (723f727), closes #1881
  • scan-ats-full: respect data/blacklist.md (#1914) (6512870), closes #1911
  • scan: quiet dotenv so --json stdout stays parseable (#1907) (2e0b29e), closes #1906
  • unify atomic report number allocation (#1910) (3b265cb), closes #1733 #1801 #1835 #1895
  • update-system: attribute the post-update manifesto link (utm_source=updater) (a363ec4)
  • update-system: surface commit failures instead of silently swallowing them (#1855) (2ad3453), closes #1844
  • upskill: keep fetched JD text as a string in the targeted --url-text path (#1917) (c7e9ff5), closes #1894

Breaking Changes

  • Reserved report numbers can no longer race each other (unify atomic report number allocation).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track career-ops

Get notified when new releases ship.

Sign up free

About career-ops

AI-powered job search system built on Claude Code. 14 skill modes, Go dashboard, PDF generation, batch processing.

All releases →

Related context

Beta — feedback welcome: [email protected]