Agent skill

Career-Ops Job Search Center

by career-ops-hq in career-ops-hq/career-ops

Routes job-search requests to modes for evaluating offers, scanning portals, generating tailored CVs, tracking applications and drafting outreach, starting from a pasted job URL or description.

MITAuto-check passedBusiness, Finance & HR

Install Career-Ops Job Search Center

skills CLI
$ npx skills add career-ops-hq/career-ops --skill career-ops -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install career-ops-hq/career-ops career-ops --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/career-ops-hq/career-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/career-ops .claude/skills/career-ops && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
career-ops
GitHub stars
74k
Token cost
~3.6k tokens
SKILL.md length
1,097 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Routes job-search requests to modes for evaluating offers, scanning portals, generating tailored CVs, tracking applications and drafting outreach, starting from a pasted job URL or description.

  • Evaluating a job posting you have a link to against your CV
  • SKILL.md covers Project Root Resolution, Invocation Notes, Mode Routing and Output Language Directive, plus 2 more sections
  • Calls codex
  • Scanning job portals for new matches

What it does

career-ops is a job-search command center that runs inside several agent CLIs, and this skill is its router. It first finds the project root by walking up from the skill file until it reaches a folder holding both `AGENTS.md` and `modes/`, and it resolves every path against that root rather than the current directory. If neither marker is found, it stops and asks you to locate the checkout.

The router picks a mode from the input. An empty call shows a command menu, a pasted job description or URL starts the auto-pipeline, and named modes such as `oferta`, `ofertas`, `contacto` and `deep` go to their own flows. Invocation differs by tool: a slash command where the CLI registers one, auto-discovery in Cursor and Pi, and plain-language prompts in Codex, including headless runs with `codex exec`. The project description adds that it scores jobs against your CV, tailors resumes and cover letters, prepares interviews and leaves the final submit step to you.

When your agent uses it

  • Evaluating a job posting you have a link to against your CV
  • Scanning job portals for new matches
  • Generating a tailored CV or PDF for a specific role
  • Tracking applications and preparing for an interview

Example prompts

  • “Evaluate the job posting at https://jobs.example.com/backend-engineer against my CV.”
  • “Run the career-ops scan mode and summarize new matches.”
  • “Generate a CV PDF tailored to this role.”
  • “Draft a short outreach email to the hiring manager for this position.”

Requirements

  • A career-ops checkout containing `AGENTS.md` and a `modes/` folder
  • A supported agent CLI such as Claude Code, Codex, Cursor or Pi

What it can do on your machine

Read from SKILL.md and the folder at commit 9570926. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • codex

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Career-Ops Job Search Center loads about 3.6k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 1,097 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~71
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from career-ops-hq/career-ops at commit 9570926, republished under its MIT licence (© career-ops-hq). 1,097 words, ~3,587 tokens.

Download SKILL.mdSave it as .claude/skills/career-ops/SKILL.md (or your agent's skills folder).
name
career-ops
description
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.
arguments
mode
user_invocable
true
user-invocable
true
argument-hint
[scan | discover | deep | pdf | ats | text | latex | latex-tex | cover | email | add | expand | eu-swe | oferta | ofertas | apply | triage | batch | tracker |…
license
MIT

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.
  • In Pi, this skill is auto-discovered from .agents/skills/career-ops/ and exposed as /skill:career-ops; AGENTS.md loads from the repo root as project context, so there is no wrapper file. Headless Pi workers use pi -p "prompt". Project skill discovery follows Pi's per-folder trust decision: /trust applies to future Pi processes, so restart pi before invoking /skill:career-ops (-a trusts a single run and needs no restart).
  • 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:

text
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
master-profilemaster-profile
intakeintake
eu-sweregional/eu-swe
interview/planinterview/plan
interview/practiceinterview/practice
interview/debriefinterview/debrief
pdfpdf
atsats
texttext
latexlatex
latex-texlatex-tex
emailemail
addadd
expandexpand
trainingtraining
projectproject
trackertracker
agent-inboxagent-inbox
inboxagent-inbox
pipelinepipeline
applyapply
scanscan
discoverdiscover
triagetriage
batchbatch
patternspatterns
calibratecalibrate
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. It may be a single string (one declared market, the historical default) or a list of declared candidate markets for a candidate genuinely running parallel campaigns in more than one market at once (#3793), e.g. modes_dir: [modes/de, modes/zh]. When a list is given, the FIRST entry is primary and supplies the evaluation-mode file (Block A-F rules can only run from one market's file at a time); EVERY declared market's _shared.md is loaded into context. modes itself is a valid declared candidate for markets without a localized directory; when first it supplies modes/oferta.md, and its baseline modes/_shared.md is loaded once. Per posting, judge which declared market actually applies from the JD's own MARKET signals (hiring-entity jurisdiction, currency, benefits/legal vocabulary) — never from the JD's language alone. If genuinely ambiguous, an interactive session asks and stops before persistence; an unattended worker uses the primary market and records that fallback in the report header or Block G.

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 (one market, or several declared at once), 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.


Show full SKILL.md (385 more words)Show less

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:

text
/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 master-profile → Import, review, and validate your Master Career Profile
  /career-ops intake    → Build or enrich your profile from documents/ (master CV, LinkedIn export; nothing written without confirm)
  /career-ops eu-swe    → Calibrate a European SWE application before CV/apply/interview
  /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 ats       → ATS-friendliness check of a generated CV (score + fixable issues)
  /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 triage    → Fast first-pass go/no-go score from modes/_brief.md (writes no files)
  /career-ops batch     → Batch processing with parallel workers
  /career-ops patterns  → Analyze rejection patterns and improve targeting
  /career-ops calibrate → Check whether evaluation scores predict your real outcomes (advisory only)
  /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.

Resolve language.modes_dir before applying the path shorthand below. With no setting, use modes. With a scalar directory, preserve the existing behavior: use that directory's _shared.md and localized mode file when it provides one. With a list, load every declared directory's _shared.md exactly once (including the baseline modes/_shared.md when modes appears), but use only the FIRST entry's evaluation-mode file for Blocks A-F; later entries contribute context, never a competing evaluation file. User-layer _profile.md and _custom.md remain under modes/.

Modes that require _shared.md + their mode file

Read the resolved shared context (default modes/_shared.md) + modes/_profile.md (if exists) + modes/_custom.md (if exists) + the resolved selected mode file (default modes/{mode}.md). For an A-F evaluation, that selected file is the primary directory's evaluation mode; do not also load an evaluation file from a secondary directory.

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, master-profile, 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, intake, ats, calibrate

Modes that load only their mode file

Read modes/{mode}.md only. Do not preload _shared.md, _profile.md or _custom.md: the mode file names the one context file it reads and the ones it must not. Values it takes from config/profile.yml (language.output, pipeline.triage_threshold) are resolved here and injected; the mode never reads that file itself.

Applies to: triage

Modes delegated to subagent

For scan, apply (with Playwright), and pipeline (3+ URLs): launch as a worker/subagent with the resolved shared context + _profile.md (if exists) + _custom.md (if exists) + the resolved selected mode file injected into the worker prompt. If your CLI exposes an Agent(...) primitive, the call looks like this:

python
Agent(
  subagent_type="general-purpose",
  prompt="[output language directive]\n\n[content of modes/_shared.md, or resolved shared context: every declared _shared.md once]\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, or resolved selected mode file; primary evaluation file for Blocks A-F]\n\n[invocation-specific data]",
  description="career-ops {mode}"
)

Execute the instructions from the loaded mode file.

© career-ops-hq, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/career-ops of career-ops-hq/career-ops.

Open the folder on GitHubat commit 9570926

Compare with similar skills

Career-Ops Job Search Center next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Career-Ops Job Search Center compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Career-Ops Job Search Center this skillcareer-ops-hq/career-ops74k—~3.6kAutomated safety check: PassMIT
Internship Project Preparation ToolLiuMengxuan04/shushu-internship-tool2.1k—~2.3kAutomated safety check: PassCustom licence
Offer Negotiationreactive-resume/reactive-resume44k—~10kAutomated safety check: PassMIT
Job Application AssistantMadsLorentzen/ai-job-search45k—~1.2kAutomated safety check: NotesMIT
Backend and Agent Project Selectorlishuangqiang/backend-agent-resume-scout350—~1.4kAutomated safety check: PassApache-2.0
LLM Intern Skillwanyichen06/LLMInternSkill326—~1.2kAutomated safety check: PassMIT

Similar skills

  • Internship Project Preparation Tool

    LiuMengxuan04/shushu-internship-tool

    Turns a target internship job description into a resume-ready, interview-ready project by finding and auditing GitHub projects and drafting resume bullets and interview Q&A.

    2.1k GitHub stars~2.3k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Offer Negotiation

    reactive-resume/reactive-resume

    Evaluates and negotiates job offers. An agent skill from reactive-resume/reactive-resume.

    44k GitHub stars~10k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Job Application Assistant

    MadsLorentzen/ai-job-search

    Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.

    45k GitHub stars~1.2k tokensUpdated 2 days ago
    Business, Finance & HRAuto-check: notes
  • Backend and Agent Project Selector

    lishuangqiang/backend-agent-resume-scout

    Finds backend or AI agent projects on GitHub that are worth putting on a resume, checks them against local source and writes a Markdown resume package.

    350 GitHub stars~1.4k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • LLM Intern Skill

    wanyichen06/LLMInternSkill

    A skill your agent uses when polishing, diagnosing, tailoring, or exporting resumes for LLM, RAG, Agent, Agentic RL, post-training, pretraining, AIGC, search/ranking, multimodal, AI backend, or LLM…

    326 GitHub stars~1.2k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Resume Tailor

    reactive-resume/reactive-resume

    Tailors one resume to one specific job posting. An agent skill from reactive-resume/reactive-resume.

    44k GitHub stars~8.3k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed

More from career-ops-hq/career-ops

  • Career-Ops Apify Job Source

    career-ops-hq/career-ops

    How to scan a job source through an Apify actor as a keyed provider.

    74k GitHub stars~246 tokensUpdated today
    Auto-check: notes
  • Career-Ops Gmail Lead Plugin

    career-ops-hq/career-ops

    Pulls job leads from a Gmail label into the career-ops pipeline, extracting job URLs from DMARC-passing emails and de-duplicating against existing leads.

    74k GitHub stars~233 tokensUpdated today
    Auto-check: notes
  • Career Ops Notion Plugin

    career-ops-hq/career-ops

    Copies a career-ops application tracker into a Notion database and reads saved Notion records back into the pipeline as job leads.

    74k GitHub stars~301 tokensUpdated today
    Auto-check: notes

Questions about Career-Ops Job Search Center

What does Career-Ops Job Search Center do?

Routes job-search requests to modes for evaluating offers, scanning portals, generating tailored CVs, tracking applications and drafting outreach, starting from a pasted job URL or description. career-ops is a job-search command center that runs inside several agent CLIs, and this skill is its router.md` and `modes/`, and it resolves every path against that root rather than the current directory.

When should I use Career-Ops Job Search Center?

Career-Ops Job Search Center fits situations like: evaluating a job posting you have a link to against your CV; scanning job portals for new matches; generating a tailored CV or PDF for a specific role; tracking applications and preparing for an interview.

How do I install Career-Ops Job Search Center in Claude Code?

Run `npx skills add career-ops-hq/career-ops --skill career-ops -a claude-code`. Or copy the skill folder (.agents/skills/career-ops in career-ops-hq/career-ops) into .claude/skills/career-ops in your project. Claude Code loads it when a task matches its description.

How do I install Career-Ops Job Search Center in Codex?

Run `npx skills add career-ops-hq/career-ops --skill career-ops -a codex`. Or copy the skill folder (.agents/skills/career-ops in career-ops-hq/career-ops) into .agents/skills/career-ops in your project. Codex loads it when a task matches its description.

Can I use Career-Ops Job Search Center in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add career-ops-hq/career-ops --skill career-ops -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/career-ops, .gemini/skills/career-ops, .github/skills/career-ops and .opencode/skills/career-ops in your project.

What does Career-Ops Job Search Center need to run?

Going by SKILL.md and its folder, Career-Ops Job Search Center needs the command-line tools its instructions call (codex). Our summary lists: A career-ops checkout containing `AGENTS.md` and a `modes/` folder; A supported agent CLI such as Claude Code, Codex, Cursor or Pi.

Does Career-Ops Job Search Center access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Career-Ops Job Search Center safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Career-Ops Job Search Center use?

Career-Ops Job Search Center is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Career-Ops Job Search Center use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Career-Ops Job Search Center?

Skills that share tags, products or a category with Career-Ops Job Search Center: Internship Project Preparation Tool (LiuMengxuan04/shushu-internship-tool, 2.1k stars), Offer Negotiation (reactive-resume/reactive-resume, 44k stars), Job Application Assistant (MadsLorentzen/ai-job-search, 45k stars) and Backend and Agent Project Selector (lishuangqiang/backend-agent-resume-scout, 350 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Career-Ops Job Search Center?

career-ops-hq (a GitHub organization) maintains it in career-ops-hq/career-ops, which has 74,002 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 11, 2026.

Source: career-ops-hq/career-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.