AugmentClaude

Career Ops

Evaluate job offers, generate CVs, and track your applications in one place.

Installation

  1. Make sure Claude is on your device and in your terminal.

    Skills load from ~/.claude/skills/ when Claude Code starts up β€” so you need it on your machine first. If you don't have it yet, install it once with the command below, then run claude in any terminal to verify.

    One-time setup
    npm i -g @anthropic-ai/claude-code

    Already have it? Skip ahead.

  2. Paste into Claude Code or into your terminal.

    This copies the whole skill folder into ~/.claude/skills/career-ops-career-ops-hq/ β€” the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.

    Faster alternative (instruction-only skills)

    Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates β€” they won't be downloaded and the skill will fail when it tries to load them.

    Quick install (SKILL.md only)
    Sign up to copy
  3. Restart Claude Code.

    Quit and reopen Claude Code (or any other agent that loads from ~/.claude/skills/). New skills are picked up on startup.

  4. Just ask Claude.

    Skills auto-activate when your request matches the skill's description β€” no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the β€œWhat this skill does” section above.

Prefer to read the source first? Open on GitHub.

When Claude uses it

AI job search command center -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.

What this skill does

career-ops -- Router

career-ops is a multi-CLI job-search command center. The routing below is shared across supported agent CLIs even when the invocation surface differs.

Project Root Resolution

Before reading any repo-relative path, derive PROJECT_ROOT from this loaded SKILL.md: start at the skill file's directory and walk upward until the nearest directory containing both AGENTS.md and modes/. Resolve every path in this router (modes/, config/, data/, scripts, templates, and output paths) against PROJECT_ROOT, never against the process's current working directory. This is required even when the checkout itself is nested (for example Development\\career-ops) or the command starts from a subdirectory. If those two sentinels cannot be found, stop and locate the career-ops checkout before reading or writing files.

Invocation Notes

  • CLIs with slash-command registration can expose this router as /career-ops.
  • In Cursor, this skill lives at .cursor/skills/career-ops/ and is auto-discovered; ask for a mode by name, or paste a JD/URL to trigger auto-pipeline.
  • Interactive Codex sessions use codex in the repo root. Slash commands are not guaranteed in Codex, so ask Codex to run the same mode by name if /career-ops is unavailable.
  • Headless Codex workers use codex exec "prompt".
  • The routing semantics below stay the same regardless of whether the entrypoint is a slash command or a natural-language prompt.

Codex prompt examples that map to the same router semantics:

Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
Run the career-ops scan mode and summarize new matches.
Run the career-ops pipeline mode for data/pipeline.md.
Run the career-ops pdf mode for the latest evaluated role.
Run the career-ops tracker mode and summarize the current statuses.

Mode Routing

Determine the mode from $mode:

InputMode
(empty / no args)discovery -- Show command menu
JD text or URL (no sub-command)auto-pipeline
ofertaoferta
ofertasofertas
contactocontacto
deepdeep
interview-prepinterview-prep
interviewinterview
eu-sweregional/eu-swe
eu-fintechregional/eu-fintech
interview/planinterview/plan
interview/practiceinterview/practice
interview/debriefinterview/debrief
pdfpdf
texttext
latexlatex
latex-texlatex-tex
emailemail
addadd
expandexpand
trainingtraining
projectproject
trackertracker
agent-inboxagent-inbox
inboxagent-inbox
pipelinepipeline
applyapply
scanscan
discoverdiscover
batchbatch
patternspatterns
offer-prepoffer-prep
titlestitles
upskillupskill
followupfollowup
reply-watchreply-watch
outcomeoutcome
interview-redflaginterview-redflag
updateupdate
covercover

Auto-pipeline detection: If $mode is not a known sub-command AND contains JD text (keywords: "responsibilities", "requirements", "qualifications", "about the role", "we're looking for", company name + role) or a URL to a JD, execute auto-pipeline.

If $mode is not a sub-command AND doesn't look like a JD, show discovery.


Output Language Directive

Before executing any mode, read config/profile.yml if it exists and resolve:

  • language.output β†’ ISO language code for human-facing output. Default: en.
  • language.modes_dir β†’ optional market-mode directory. This controls market vocabulary and local evaluation rules only.

Inject this directive after loading the mode instructions and before producing any user-visible content:

Write all human-facing output in {language.output} regardless of the language of these instructions or of the job description. This includes reports, tracker notes, PDFs, cover letters, outreach, interview prep, form answers, and summaries. If language.modes_dir supplies market-specific vocabulary, keep the market logic but explain terms in {language.output} when needed.

language.output is authoritative for prose. modes_dir is market context; it must not force the prose language.


Discovery Mode (no arguments)

If your CLI supports /career-ops, show this menu. In Codex, surface the same options in plain text and map the requested mode the same way.

Concrete equivalents for Codex prompt-driven sessions:

/career-ops {JD}           ↔ "Evaluate this JD with career-ops auto-pipeline: {JD or URL}"
/career-ops scan           ↔ "Run the career-ops scan mode and summarize new matches."
/career-ops pipeline       ↔ "Run the career-ops pipeline mode for data/pipeline.md."
/career-ops pdf            ↔ "Run the career-ops pdf mode for the latest evaluated role."
/career-ops email          ↔ "Run the career-ops email mode for the latest evaluated role."
/career-ops tracker        ↔ "Run the career-ops tracker mode and summarize the current statuses."

Show this menu:

career-ops -- Command Center

Available commands:
  /career-ops {JD}      β†’ AUTO-PIPELINE: evaluate + report + PDF + tracker (paste text or URL)
  /career-ops pipeline  β†’ Process pending URLs from inbox (data/pipeline.md)
  /career-ops oferta    β†’ Evaluation only A-F (no auto PDF)
  /career-ops ofertas   β†’ Compare and rank multiple offers
  /career-ops contacto  β†’ LinkedIn power move: find contacts + draft message
  /career-ops deep      β†’ Deep research prompt about company
  /career-ops interview-prep β†’ Generate company-specific interview prep doc
  /career-ops interview    β†’ Interactive profile/CV onboarding interview
  /career-ops eu-swe    β†’ Calibrate a European SWE application before CV/apply/interview
  /career-ops eu-fintech β†’ Scan 21 EU fintech portals for Product Manager roles (zero-token)
  /career-ops interview/plan β†’ Time-blocked prep plan for an upcoming interview
  /career-ops interview/practice β†’ Practice interview, one question at a time with feedback
  /career-ops interview/debrief β†’ Post-interview debrief: close gaps, predict next round
  /career-ops pdf       β†’ PDF only, ATS-optimized CV
  /career-ops text      β†’ Tailored markdown CV (mirrors cv.md, no PDF)
  /career-ops latex     β†’ Export CV as LaTeX/Overleaf .tex
  /career-ops latex-tex β†’ Tailor your own resume.tex in place (opt-in; cv.md stays default)
  /career-ops cover     β†’ Cover letter: standalone JD paste or /career-ops cover {slug}
  /career-ops email     β†’ Formal application email draft (draft-only; never sends, submits, or clicks)
  /career-ops add       β†’ Add a project/paper/role to your CV (fetch + preview + confirm)
  /career-ops expand    β†’ Auto-discover and add missing competencies from profile links
  /career-ops training  β†’ Evaluate course/cert against North Star
  /career-ops project   β†’ Evaluate portfolio project idea
  /career-ops tracker   β†’ Application status overview
  /career-ops agent-inbox β†’ Queue/drain requests for the next session (data/agent-inbox.md)
  /career-ops apply     β†’ Live application assistant (reads form + generates answers)
  /career-ops scan      β†’ Scan portals and discover new offers
  /career-ops discover  β†’ Resolve a company list to scannable ATS boards + append to portals.yml (zero-token)
  /career-ops batch     β†’ Batch processing with parallel workers
  /career-ops patterns  β†’ Analyze rejection patterns and improve targeting
  /career-ops offer-prep β†’ Read a received offer/contract with the candidate: clause walk + lawyer questions (not legal advice)
  /career-ops titles    β†’ Suggest adjacent job titles from your CV to broaden the search
  /career-ops upskill   β†’ Aggregate skill-gap analysis from your evaluated reports
  /career-ops followup  β†’ Follow-up cadence tracker: flag overdue, generate drafts
  /career-ops outcome   β†’ Record application outcome & archive artifacts
  /career-ops update    β†’ Update career-ops system files with diff preview + compat check

Inbox: add URLs to data/pipeline.md β†’ /career-ops pipeline
Or paste a JD directly to run the full pipeline.

Context Loading by Mode

After determining the mode, load the necessary files before executing:

If modes/_custom.md exists, read it after modes/_profile.md and before the selected mode file. It contains user house rules and procedural preferences. It may override workflow/style defaults, but it never adds factual claims about the candidate.

Modes that require _shared.md + their mode file

Read modes/_shared.md + modes/_profile.md (if exists) + modes/_custom.md (if exists) + modes/{mode}.md

Applies to: auto-pipeline, oferta, ofertas, pdf, text, contacto, apply, pipeline, scan, batch

Standalone modes with profile and custom context

Read modes/_profile.md (if exists) + modes/_custom.md (if exists) + modes/{mode}.md

Applies to: tracker, agent-inbox, deep, interview-prep, interview, regional/eu-swe, interview/plan, interview/practice, interview/debrief, latex, latex-tex, training, project, patterns, titles, upskill, followup, reply-watch, outcome, cover, email, add, offer-prep, discover

Modes delegated to subagent

For scan, apply (with Playwright), and pipeline (3+ URLs): launch as a worker/subagent with the content of _shared.md + _profile.md (if exists) + _custom.md (if exists) + modes/{mode}.md injected into the worker prompt. If your CLI exposes an Agent(...) primitive, the call looks like this:

Agent(
  subagent_type="general-purpose",
  prompt="[output language directive]\n\n[content of modes/_shared.md]\n\n[content of modes/_profile.md if exists]\n\n[content of modes/_custom.md if exists]\n\n[content of modes/{mode}.md]\n\n[invocation-specific data]",
  description="career-ops {mode}"
)

Execute the instructions from the loaded mode file.

Related skills