New to Claude Skills? Learn how to install them →

santifer on GitHub

Career Ops

Free

Your command center for job searching and application management.

by santifer63.4k stars on santifer/career-ops
1 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Career Ops does

Career Ops is a multi-CLI command center designed to streamline the job search process. It allows users to evaluate job offers, generate tailored CVs, scan job portals, and track applications efficiently. By simply pasting a job description (JD) URL or text, users can trigger an automatic pipeline that evaluates the job and generates relevant reports and documents. This skill is particularly useful for job seekers looking to manage their applications and prepare for interviews in a structured manner.

The skill is designed to work seamlessly across various AI coding agents, including Cursor and Codex, enabling users to access its features through natural language prompts or slash commands. Users can engage with the command center by requesting specific modes such as interview preparation, application tracking, and CV generation, making it a versatile tool for anyone navigating the job market. The routing system ensures that regardless of how the user interacts with the skill, the output remains consistent and relevant.

With modes dedicated to different aspects of the job search, Career Ops supports users in deep research about companies, drafting outreach emails, and preparing for interviews. It also offers functionalities like comparing multiple job offers and generating PDFs of CVs optimized for Applicant Tracking Systems (ATS). This comprehensive approach helps users stay organized and proactive in their job search efforts, making it an essential tool for both seasoned professionals and those entering the workforce.

Whether you're actively applying for jobs or just exploring opportunities, Career Ops provides a structured way to manage your career operations, ensuring you have all the necessary tools at your disposal to succeed in your job search.

When to use it

Use Career Ops when you need to evaluate job offers, generate CVs, or track applications efficiently, especially when handling multiple job opportunities.

When not to use it

This skill may not be suitable for users who prefer a more manual approach to job searching or those looking for in-depth career coaching beyond the provided functionalities.

What you can build with it

Evaluating a Job Offer

Paste a job description URL to automatically evaluate the offer and generate a report.

Preparing for an Interview

Use the interview prep mode to create a company-specific preparation document.

Tracking Job Applications

Run the tracker mode to summarize the current statuses of your job applications.

How to install Career Ops

View source

1. Install with the skills CLI

npx skills add santifer/career-ops/career-ops --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by santifer

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.

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
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 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, 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.

Frequently asked questions about Career Ops

Similar skills