Show HN: A local-first job-search command center (no cloud, no telemetry) Fighter90 released career-ops-ui v1.69.2, a local-first web dashboard for the open-source AI job-search pipeline career-ops. The tool runs entirely on the user's machine with no cloud accounts or telemetry, providing a CRM-style interface to search, evaluate, and track job applications using a six-dimension scoring rubric against the user's CV. A clean, docs-style web interface for the career-ops AI job-search pipeline. Search, evaluate, deep-dive, apply, and track every offer from a single browser tab — instead of bouncing between Claude Code, terminals, and markdown files. English | Español /Fighter90/career-ops-ui/blob/main/README.es.md | Português Brasil /Fighter90/career-ops-ui/blob/main/README.pt-BR.md | 한국어 /Fighter90/career-ops-ui/blob/main/README.ko-KR.md | 日本語 /Fighter90/career-ops-ui/blob/main/README.ja.md | Русский /Fighter90/career-ops-ui/blob/main/README.ru.md | 简体中文 /Fighter90/career-ops-ui/blob/main/README.zh-CN.md | 繁體中文 /Fighter90/career-ops-ui/blob/main/README.zh-TW.md | Français /Fighter90/career-ops-ui/blob/main/README.fr.md 🆕 Latest release — v1.69.2 fix test :A test npm test no longer overwrites your real config/profile.yml / data/scan-history.tsv . critical-fixes.test.mjs imported prompts.mjs → paths.mjs at the top of the file, so PROJECT ROOT resolved to therealparent before the test set CAREER OPS ROOT to a temp dir — and PUT /api/profile leaked an "Acceptance Test" fixture into your profile on every run. Now the carrier is loaded via dynamic import after the env is set, and tests/test-root-isolation.test.mjs guards the whole suite against the pattern. No production-code change. Full suite1086/1086green · i18n + docs synced across all 9 locales. career-ops https://career-ops.org is an open-source job-search system that runs as slash commands inside any AI coding CLI Claude Code, Codex, OpenCode, Qwen CLI — other Claude-compatible CLIs work too via the same slash-command surface . Model-agnostic. It evaluates each posting against your CV with a six-dimension 0.0–5.0 rubric, generates tailored PDF résumés, and tracks every application locally — no cloud accounts, no telemetry, no auto-submit. This repository career-ops-ui is a polished web interface on top. The CLI keeps owning form-fill via Playwright MCP and slash-command modes; the SPA gives you a CRM-style browser surface over the same cv.md / data/applications.md / reports/ files. Both share the same data. Action thresholds by score from career-ops.org/docs https://career-ops.org/docs : | Score | Next step | |---|---| ≥ 4.5 | /career-ops apply — high fit, push immediately | 4.0 – 4.4 | apply, or /career-ops contacto for warm intro | 3.5 – 3.9 | /career-ops deep — research first | < 3.5 | skip unless you have a specific reason | Canonical guides at career-ops.org/docs https://career-ops.org/docs : Important — career-ops-ui is a dashboardIt runson top of . santifer/career-ops insidea career-ops project as career-ops/web-ui/ and reads your cv.md , config/ , data/ from the parent folder via ../ . It doesnotwork standalone — you need the parent career-ops repo too. Don't clone it on its own and run init ; use one of the two options below. curl -fsSL https://raw.githubusercontent.com/Fighter90/career-ops-ui/main/bin/setup.sh | bash Clones both repos, arranges the career-ops/web-ui/ layout, installs deps, runs the doctor, and starts the server at http://127.0.0.1:4317 http://127.0.0.1:4317 — then opens the dashboard. If you already have career-ops configured and just want the dashboard, clone the UI inside it as web-ui : cd career-ops ← your existing career-ops project git clone https://github.com/Fighter90/career-ops-ui.git web-ui cd web-ui npm install npx career-ops-ui init interactive: pick LLM provider + paste its key → parent career-ops/.env The nested web-ui/ layout is exactly what lets the UI resolve your ../cv.md , ../config/ , ../data/ . Run npm link once if you'd rather type the bare career-ops-ui