Career Ops
Evaluate job offers, generate CVs, and track your applications in one place.
Installation
- 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 runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- 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 - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - 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
codexin the repo root. Slash commands are not guaranteed in Codex, so ask Codex to run the same mode by name if/career-opsis 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:
| Input | Mode |
|---|---|
| (empty / no args) | discovery -- Show command menu |
| JD text or URL (no sub-command) | auto-pipeline |
oferta | oferta |
ofertas | ofertas |
contacto | contacto |
deep | deep |
interview-prep | interview-prep |
interview | interview |
eu-swe | regional/eu-swe |
eu-fintech | regional/eu-fintech |
interview/plan | interview/plan |
interview/practice | interview/practice |
interview/debrief | interview/debrief |
pdf | pdf |
text | text |
latex | latex |
latex-tex | latex-tex |
email | email |
add | add |
expand | expand |
training | training |
project | project |
tracker | tracker |
agent-inbox | agent-inbox |
inbox | agent-inbox |
pipeline | pipeline |
apply | apply |
scan | scan |
discover | discover |
batch | batch |
patterns | patterns |
offer-prep | offer-prep |
titles | titles |
upskill | upskill |
followup | followup |
reply-watch | reply-watch |
outcome | outcome |
interview-redflag | interview-redflag |
update | update |
cover | cover |
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. Iflanguage.modes_dirsupplies 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
Lead Research Assistant
Prat011
Find and qualify high-quality sales leads by analyzing your business and target market.
Contract Helper
aaron-he-zhu
Draft, review, and negotiate influencer partnership agreements with confidence.
LinkedIn Comment Drafter
sergebulaev
Draft engaging LinkedIn comments on posts from their URL with scheduling.
Outreach Manager
aaron-he-zhu
Write personalized influencer pitches, follow-up sequences, and negotiation scripts.