Career-Ops
santifer/career-ops (career-ops.org) β turns any AI coding CLI (Claude Code, Codex, Gemini/Antigravity, opencode, Grok, Qwen) into a job-search command center. Instead of tracking applications in a spreadsheet, you get an agentic pipeline that evaluates offers, tailors CVs, scans portals, and keeps one source of truth. Built by someone who used it to evaluate 740+ offers, generate 100+ tailored CVs, and land a Head of Applied AI role.
Framing worth stealing: companies use AI to filter candidates; this gives the candidate AI to filter companies. Explicitly not spray-and-pray β itβs a filter that recommends against applying to anything scoring below 4.0/5.
π Links
Description
- Repo: https://github.com/santifer/career-ops
- Site: https://career-ops.org/
- Case study: https://santifer.io/career-ops-system
- Companion: cv-santiago β the portfolio site (santifer.io) with AI chatbot + LLMOps dashboard
Download or use
# Fastest β one command (clones latest release into ./career-ops + installs)
npx @santifer/career-ops init
cd career-ops
claude # or codex / gemini / agy / grok / qwen / opencode
# First launch walks you through setup (CV, profile, target roles) by chatting.Usage is a shared command router β /career-ops in CLIs that register slash commands, or plain-language mode names in Codex:
/career-ops {paste a JD} β full auto-pipeline (evaluate + PDF + tracker)
/career-ops scan β scan portals for new offers
/career-ops pdf β generate ATS-optimized CV
/career-ops cover β cover-letter generator
/career-ops batch β batch evaluate multiple offers
/career-ops tracker β view application status
ποΈ Description
π§© What it does
| Capability | Detail |
|---|---|
| AβF evaluation | 6-block report: role summary, CV match, level strategy, comp research, personalization, interview prep (STAR+R), plus Block G posting-legitimacy check (flags scams / ghost jobs) |
| ATS PDF generation | Keyword-injected CVs, Space Grotesk + DM Sans design, HTML template β Playwright A4 |
| Cover letters | Same HTML+Playwright pipeline; interactive angle prompts, draft-in-chat approval gate |
| Portal scanner | 45+ companies pre-configured (Anthropic, OpenAI, ElevenLabs, Retool, n8nβ¦) across Ashby, Greenhouse, Lever, Wellfound; --verify runs Playwright to drop expired postings |
| Batch processing | Parallel evaluation via headless CLI workers (claude -p / opencode run) |
| Interview story bank | Accumulates 5β10 master STAR+Reflection stories across evaluations |
| Dashboard TUI | Go + Bubble Tea + Lipgloss (Catppuccin Mocha) β browse/filter/sort the pipeline |
| Human-in-the-loop | AI evaluates and recommends; it never submits β you always decide |
Flow: paste a URL/JD β archetype detection (LLMOps / Agentic / PM / SA / FDE / Transformation) β AβF evaluation reading cv.md β Report .md + .pdf + Tracker .tsv.
π§© Architecture worth noting
The interesting part for me isnβt the job search β itβs the agent-skill design. One canonical AGENTS.md + per-CLI wrapper files (CLAUDE.md, CODEX.md, OPENCODE.md) that just import it; the skill defined once in .agents/skills/career-ops/SKILL.md (open agent-skill standard) and symlinked per CLI. Tech stack: markdown tables + YAML config + TSV as the data layer, Playwright for PDFs and portal liveness, Go for the TUI. This is a clean multi-CLI, single-source-of-instructions pattern β the same self-documenting-AGENTS.md idea as DOX β Self-Documenting AGENTS.md.
βThe first evaluations wonβt be great β the system doesnβt know you yet.β Feed it your CV, career story, proof points, preferences; it improves like onboarding a new recruiter.
βοΈ Reasoning for
Two angles for me. First, directly useful as a job/opportunity filter β the AβF scoring + Block G legitimacy check is a reusable pattern even outside job hunting (evaluate any inbound offer against a rubric before spending time). Second, and more relevant to my work: itβs a reference implementation of a multi-CLI agent skill β single AGENTS.md, batch sub-agent workers via claude -p, markdown/YAML/TSV as durable state, Playwright for deterministic output. That maps straight onto how Iβd structure agentic products like Qamera AI and the Agentic Systems work.
The human-in-the-loop line β the system never submits an application β is the right default and matches the checkpoint discipline in Loop Engineering and Archon.
Alternatives considered
- Spreadsheet + manual tailoring β the status quo it replaces; no scoring, no ATS optimization, no scam detection.
- LinkedIn Easy Apply / spray-and-pray tools β opposite philosophy; career-ops deliberately filters down.
- Generic Claude Code session β you could ad-hoc prompt CV tailoring, but you lose the tracker, scoring rubric, portal scanner, and batch workers.
π Resources
- Setup guide:
docs/SETUP.mdΒ· running cheaply on local/custom models:docs/RUNNING_ON_A_BUDGET.md - Supported CLIs / job boards:
docs/SUPPORTED_CLIS.md,docs/SUPPORTED_JOB_BOARDS.md - Author: santifer Β· featured in Business Insider, Product Hunt, Trendshift
π Further reading
- DOX β Self-Documenting AGENTS.md β the single-AGENTS.md, per-CLI-wrapper pattern career-ops uses
- AI Job Search β sibling job-application framework on Claude Code; leads with drafter-reviewer + PDF/ATS verification where career-ops leads with offer scoring
- Claude Code β the primary host CLI
- Agentic Systems β my notes on building this class of system
- Loop Engineering Β· Archon β human-in-the-loop and batch-worker patterns
Template: tool