Skip to content

chore(main): release career-ops 1.12.0#1

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--career-ops
Open

chore(main): release career-ops 1.12.0#1
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--career-ops

Conversation

@github-actions

@github-actions github-actions Bot commented May 17, 2026

Copy link
Copy Markdown

🤖 I have created a release beep boop

1.12.0 (2026-06-18)

Features

  • adapt contacto mode by contact type (recruiter/HM/peer/interviewer) (9fd5a90)
  • add --min-score flag to batch runner (#249) (cb0c7f7)
  • add {{PHONE}} placeholder to CV template (#287) (e71595f)
  • add Block G — posting legitimacy assessment (3a636ac)
  • add Claude Code plugin manifests (path-stable) (62b767d)
  • add first-class OpenCode support alongside Claude Code (#707) (2710fbe)
  • add follow-up cadence tracker mode (4308c37)
  • add Gemini CLI native integration and evaluator script (#349) (0853486)
  • add Gemini CLI native integration and evaluator script (closes #344) (0853486)
  • add GitHub Actions CI + auto-labeler + welcome bot + /run skill (2ddf22a)
  • add LaTeX/Overleaf CV export mode with pdflatex compilation (#362) (b824953)
  • add LaTeX/Overleaf CV export mode with pdflatex compilation (closes #47) (b824953)
  • add Nix flake devshell with Playwright support (c579fcd)
  • add npx career-ops scaffolder for one-command install (#856) (ce4fa58), closes #855
  • add OpenCode slash commands for career-ops (#67) (93caaed)
  • add scan.mjs — zero-token portal scanner (8c19b2b)
  • add structured machine summaries to evaluations (#444) (19a1820)
  • add Ukrainian language and market support (#323) (06d70d3)
  • add writing-samples folder for AI-detection-evading voice calibration (9ae201d)
  • apply: add preflight liveness and role-match gate (#887) (42bb9ab)
  • batch: add --model flag to batch-runner.sh (#504) (44def35)
  • batch: pause batch runner on Claude session limits (#874) (ae6beec)
  • cover: add cover letter generation mode (#807) (493f822)
  • cover: add optional salutation/greeting to cover letters (#1010) (99346c1)
  • cover: load _profile.md so personalization governs the letter (#1012) (dff56d3)
  • cv: add build-cv-latex.mjs structured JSON to LaTeX renderer (#905) (b4af01f)
  • cv: add cv.output_format to route between html and latex generation (b82bb5f)
  • dashboard: /-key live search across pipeline rows (#526) (433f34f)
  • dashboard: add Catppuccin Latte light theme with auto-detection (ff686c8)
  • dashboard: add manual refresh shortcut (#246) (4b5093a)
  • dashboard: add progress analytics screen (623c837)
  • dashboard: add rejected and discarded pipeline tabs (7d05967)
  • dashboard: add vim motions to pipeline screen (#262) (d149e54)
  • dashboard: aligned tables and markdown syntax rendering in viewer (dbd1d3f)
  • dashboard: keep discard reason visible in pipeline preview (#914) (3200dfe)
  • dashboard: show tracker IDs in pipeline list (8d289c6)
  • dashboard: sortable Location, Pay, and Last-contact columns in pipeline view (#798) (265a95b)
  • dockerize project for hosts blocked from native Playwright install (#625) (66404a8)
  • doctor: adopt doctor --json as the single onboarding state source (#888) (35e2124)
  • doctor: warn when Playwright MCP tools are not configured (#938) (0222224)
  • expand portals.example.yml with 8 dev-tools companies + 23 search queries (#140) (b7f555d)
  • followup: read cadence settings from profile.yml (#889) (8050c37)
  • i18n: add full Arabic language support and modes (#764) (333bb81)
  • i18n: add Japanese README + language modes for Japan market (20a2c81)
  • i18n: add Turkish (TR) language modes (#341) (e87eb57)
  • interview-prep: split prep by interviewer audience (#489) (d86b86c)
  • latex: add tectonic engine auto-detect with pdflatex fallback (4b71b2c)
  • make PDF auto-generation configurable via auto_pdf_score_threshold (#715) (fdbf4e1)
  • modes: add interactive interview onboarding subcommand (#909) (46a5c59)
  • multi-CLI support via open agent skill standard (#572) (7605a5e)
  • pdf: render Japanese CVs with a lang="ja" CJK font fallback (#1053) (d0d57d1)
  • portals: add Canada/Vancouver and automation companies to example template (590ba6e)
  • providers: add RemoteOK, Remotive, Working Nomads, IBM board providers (349bacc), closes #1075
  • scan: add --rediscover-404 fallback for moved tracked postings (#808) (7096dbc)
  • scan: add --verify flag to drop expired postings before pipeline append (#487) (82f0c2e)
  • scan: add configurable salary filtering to the zero-token scanner (#677) (a6ea02e)
  • scan: add local-parser provider and agent skip rules (#595) (b3ef0ae)
  • scan: add optional always_allow tier to location_filter (#652) (d152da3), closes #650
  • scan: add portals.yml schema validator (#886) (3340695)
  • scan: add scan-ats-full.mjs — reverse-discover jobs from public ATS APIs (#746) (7801dc7)
  • scan: add scan-history TTL and recheck policy (#895) (1db4cf2)
  • scan: add SolidJobs provider and job_boards support (#853) (79862a9)
  • scan: add Workable, SmartRecruiters, Recruitee ATS parsers (#653) (ea7b2a6), closes #651
  • scan: optional location_filter in portals.yml + persist location to scan-history (#570) (d692647)
  • tracker: map tracker columns by header name (#954) (57b34c0)
  • tracker: SQLite derived index over applications.md — phase 1 (#919) (5465f16)

Bug Fixes

  • 10 bug fixes — resource leaks, command injection, Unicode, navigation (cb01a2c)
  • add data/ fallback to UpdateApplicationStatus (#55) (3512b8e)
  • add stopword filtering and overlap ratio to roleMatch (#248) (4da772d)
  • align portals.example.yml indentation for new companies (26a6751)
  • apply: preserve form field contracts (#821) (2b38fd0)
  • ashby: include secondaryLocations so EU-eligible roles surface (a84d3f5), closes #1073
  • batch: append profile context to worker prompts (#815) (4989afc)
  • batch: isolate workers from inherited MCP to prevent parallel deadlock (#809) (c8c0dbd)
  • batch: stop after min-score skip instead of falling through to completed (#873) (888ca31)
  • batch: wait and retry batch workers on rate limits (#816) (f498ccf), closes #505
  • batch: workers read modes/_profile.md and config/profile.yml (#537) (150e223), closes #534
  • ci: correct first-interaction@v3 input names (c5196a8)
  • ci: gracefully handle missing dependency graph in dependency-review (#343) (7c5fecb)
  • ci: gracefully handle missing dependency graph in dependency-review workflow (#352) (7c5fecb)
  • ci: use pull_request_target for labeler on fork PRs (#260) (2ecf572)
  • correct _shared.md → _profile.md reference in CUSTOMIZATION.md (closes #137) (a91e264)
  • correct dashboard launch path in docs (#80) (2b969ee)
  • cv: align certification org column width across rows (#931) (e27b051)
  • dashboard: report last-contact in calendar days, not hours-since-midnight (#1057) (4e05cfd)
  • dashboard: resolve tracker-relative report links against the tracker directory (#780) (858fc93), closes #779
  • dashboard: show dates in pipeline list (#298) (e5e2a6c)
  • dashboard: width-aware Markdown rendering with table wrapping in viewer (#513) (dc3a247)
  • deps: update dotenv to v17 (#499) (ce1330e)
  • deps: update npm dependencies to v1.61.0 (#1023) (5407247)
  • doctor: single source of truth for onboarding state via doctor --json (#765) (eb536c4)
  • ensure data/ and output/ dirs exist before writing in scripts (#261) (4b834f6)
  • eval: gate dead links before evaluation in oferta and auto-pipeline (#937) (ebf9a13)
  • filter expired WebSearch links before they reach the pipeline (#57) (ce1c5a3)
  • flake: declare systems so the devShell resolves on macOS (#848) (e5f0903), closes #334
  • followup: resolve report path relative to tracker directory (752f3b9), closes #1070
  • gemini-eval: include profile.yml and _profile.md in evaluation (#618) (73dc603), closes #617
  • gemini-eval: redact API key from error logs, harden summary parsing (#582) (fdca4de)
  • gemini-eval: switch default model to non-deprecated endpoint, surface 429 guidance (#615) (dd3e036), closes #614
  • gemini: auto-merge Gemini evals into the tracker instead of a manual-edit reminder (#820) (6efac1a)
  • generate-pdf: inline local fonts as data: URLs so they actually embed (#952) (08d1e9a)
  • improve default PDF readability (#85) (10034ec)
  • latex: language-agnostic section validation + CJK guard (#1054) (b147504)
  • liveness checks ignore nav/footer Apply text, expired signals win (3a3cb95)
  • liveness: detect closed postings with applications-closed banner variants (7f8217e)
  • liveness: stop false-expiring postings behind anti-bot walls (#783) (a667c33)
  • make tracker report links relative to the tracker file (#760) (#761) (c0d42cd)
  • manifest: align plugin.json skills field with Claude Code plugin schema (#612) (a77d3f6)
  • merge-tracker: filter seniority and location stopwords + require overlap ratio in roleFuzzyMatch (7821113)
  • merge-tracker: preserve short specialty acronyms, require non-baseline overlap (#634) (5ed3b3d), closes #633
  • merge-tracker: require company match for number-based dedup (2bb514f), closes #912
  • merge-tracker: require company match on exact entry-number dedup (#867) (10ad2de)
  • merge-tracker: serialize concurrent tracker merges with a filesystem lock (#941) (0d57994)
  • merge-tracker: use token-union ratio in roleFuzzyMatch to stop cross-role dedup (#793) (cfa7505), closes #751
  • modes: make /career-ops deep respect user language, not JD language (#568) (e5f0508)
  • patterns: parse header-style and Detected-archetype formats in analyze-patterns (#723) (abf603c)
  • pdf: don't spell out ambiguous ¥ currency symbol (4c415a9)
  • pdf: normalize arrows, middots, and currency symbols for ATS extraction (#731) (f164eba), closes #730
  • pdf: reject CV section ordering that diverges from cv.md source (#817) (9f6acc2)
  • pdf: use ATS-safe system fonts for clean CV text extraction (17033e8), closes #1074
  • pdf: wait for load instead of networkidle during render (#929) (fd2ce04)
  • pipeline: atomic report-number reservation for parallel workers (#803) (c42368c)
  • portals: update Weights & Biases entry to CoreWeave acquisition (#493) (1411cdc)
  • pt: restore diacritical marks in PT-BR modes (#358) (3a4c596)
  • pt: restore diacritical marks in PT-BR modes (#359) (3a4c596)
  • register the career-ops skill in Claude Code via user_invocable key (#801) (3ddb00c), closes #763
  • release: auto-sync VERSION via release-please generic extra-file (214f5f8)
  • release: sync VERSION and package.json via release-please-config (6a3dc22)
  • release: sync VERSION file to 1.7.0 (8e554cc)
  • release: sync VERSION file to 1.7.1 (2ebfcab)
  • release: sync VERSION file to 1.8.0 (541917f)
  • release: sync VERSION file to 1.9.0 (461e3d9)
  • remove story-bank.md from git tracking (#944) (67662b9)
  • remove wellfound, lever and remotefront from portals.example.yml (#286) (ecd013c)
  • replace grep -P with POSIX-compatible grep in batch-runner.sh (637b39e)
  • scaffolder: don't pre-create user config so agent onboarding triggers (#858) (cd827be), closes #855
  • scan: bootstrap providers/ on update + harden greenhouse detect() (#696) (4b12081)
  • scan: raise Ashby provider timeout + add backoff retry (#755) (1aa6c63)
  • scan: surface websearch-handoff companies in the run summary (#814) (137c7b3), closes #747
  • scan: validate Greenhouse URL hostname against allowlist to prevent SSRF (#602) (988f7bb)
  • scope npm package as @santifer/career-ops (#857) (87ef561)
  • security: close SSRF guard bypasses in liveness-browser (#917) (1f525c4)
  • skill: surface latex mode in command menus (#928) (2803348)
  • templates: align CV certification rows on a 3-column grid (#638) (082cd11)
  • test-all.mjs scans only git-tracked files, avoids false positives (47c9f98)
  • tests: run tracker-mutating scripts with --dry-run in script checks (#925) (1acf27d)
  • tracker: prevent dedup from deleting distinct same-company roles (#950) (98b32a4)
  • update-system: add tracker-links.mjs to SYSTEM_PATHS (8287cf4)
  • update-system: allow writing-samples/README.md as system-owned file (#562) (207fd07)
  • update-system: apply() safety violation reverts cleanly and releases lock (#484) (980153c)
  • update-system: bootstrap .agents/ for v1.6→v1.7 migration (#654) (4714504)
  • update-system: bootstrap liveness-browser.mjs for v1.7→v1.8 upgrades (#725) (1ea95f2), closes #704
  • update-system: cross-check GitHub Releases API when VERSION file is stale (b0ee6eb)
  • update-system: defensive VERSION parsing for release-please marker (#547) (bf84886)
  • update-system: expand SYSTEM_PATHS to cover all language modes and current scripts (34fe3fb)
  • update-system: include .agents/ in SYSTEM_PATHS (#600) (3a71469)
  • update-system: rollback() removes paths absent from backup branch (#483) (f94a3be)
  • update: bootstrap tracker-links.mjs and scaffolder/ for v1.8.x to v1.9.0 upgrades (#921) (1d3a18b)
  • update: distribute missing modes, locales and CLI configs via update-system (#868) (03b2c94)
  • update: distribute missing runtime paths (#991) (85ae717)
  • update: match Release Please component-prefixed tags in version check (#926) (6f0e289)
  • update: rebuild dashboard binary after Go source changes (#953) (5382d37)
  • update: run curl version checks concurrently in check() (#896) (8f0ed38)
  • update: timestamp backup branches and roll back to the newest (#813) (1717f9c), closes #733
  • update: use curl in check() so updates work inside the Claude Code sandbox (#802) (8cac7f3), closes #754
  • update: use target updater manifest during apply (#983) (539e47b)
  • use candidate name from profile.yml in PDF filename (7bcbc08)
  • use execFileSync to prevent shell injection in test-all.mjs (c99d5a6)
  • use fileURLToPath for cross platform compatible paths in tracker scripts (#32) (#58) (ab77510)
  • use hi@santifer.io in English README (5518d3d)

Performance Improvements

  • compress hero banner from 5.7MB to 671KB (dac4259)

This PR was generated with Release Please. See documentation.

@github-actions github-actions Bot changed the title chore(main): release career-ops 1.9.0 chore(main): release career-ops 1.12.0 Jun 18, 2026
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--career-ops branch from 301dcbf to 71fe2a3 Compare June 18, 2026 10:38
@github-actions

Copy link
Copy Markdown
Author

This PR has been automatically marked as stale because it has not had activity in 30 days. It will be closed in 14 days if no further activity occurs. If you're still working on this, please rebase and comment to keep it open.

@github-actions github-actions Bot added the stale label Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants