career-ops: AI job search plugin for Claude Code
Makes Claude Code scan job boards, score each job against your CV, tailor a CV and cover letter, and track every application.
- Skills
- 1
- included
- Hooks
- 1
- included
- Stars
- 79.3K
- on GitHub
- Included
- 1
- listed
career-ops makes Claude Code work as a job-search assistant. Paste a job link and it checks the posting is still live, scores it from 1 to 5 against your CV in an A to H report, and drafts a tailored CV, cover letter and answers. It also scans job boards and tracks every application, but it never submits or sends anything, so you press Submit yourself. The repo moved from santifer/career-ops to career-ops-hq/career-ops, and the old address redirects.
Good for
- Job seekers who want a ranked shortlist instead of reading hundreds of listings
- Developers comfortable running a plugin in Claude Code or another AI coding CLI
- People applying to many roles who need a tracker and a tailored CV per job
- Anyone who wants to keep their CV and notes as plain files on their own machine
Install career-ops
Claude Code
- 1
Copy this prompt.
Install the career-ops plugin in Claude Code. Run this command: /plugin marketplace add career-ops-hq/career-ops /plugin install career-ops@career-ops Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js 22.13 or later.
The plugin keeps your CV, reports and tracker in ~/career-ops-data. The npx installer instead clones the whole project into ./career-ops and you run Claude Code inside that folder. For PDFs, Playwright needs Chromium: npx playwright install chromium.
From the project README. Source.
Key facts
- License
- MIT
- Version
- 1.38.0, released 2026-10-23
- Last commit
- 2026-11-01
- Created
- 2026-04-04
- What the plugin contains
- 1 router skill (about 40 modes), 1 SessionStart hook, 0 MCP servers, 0 agents, 0 commands
What it includes
Score a job, draft a CV and add it to your tracker
Paste a job link or text. It checks the posting is live, writes an A to H report with a 1 to 5 score, makes a tailored PDF CV and logs the job in your tracker.
Try: “/career-ops:career-ops https://company.com/jobs/123”
Write ·
/career-ops:career-ops <job link>Scan job boards for new openings
Checks the company career pages and boards you set in portals.yml and lists new matches. It ships with 100+ companies pre-set.
Try: “Run the career-ops scan mode and summarize new matches.”
Write ·
scanProcess the job links waiting in your inbox
Works through the job links you saved in data/pipeline.md and evaluates each one.
Try: “Run the career-ops pipeline mode for data/pipeline.md.”
Write ·
pipelineEvaluate one job without making a PDF
Gives the full A to H evaluation and score for one job and stops there.
Write ·
ofertaCompare and rank several offers
Puts several jobs side by side and ranks them against your goals.
Read ·
ofertasMake an ATS-friendly CV as a PDF
Builds a tailored CV PDF for a job. It shows a diff first so you can catch anything added that is not in your CV.
Write ·
pdfMake a tailored Markdown CV
Same tailoring as the PDF mode, as a Markdown file.
Write ·
textExport your CV as LaTeX
Exports the CV as a .tex file you can open in Overleaf.
Write ·
latexWrite a cover letter
Drafts a cover letter from a pasted job or an evaluated report.
Write ·
coverDraft an application email
Writes a formal application email. It never sends it.
Write ·
emailHelp fill in an application form
A live assistant that uses a browser to fill in the form and draft answers. It does not press Submit.
Write ·
applySee where every application stands
Summarizes the status of every application in your tracker.
Try: “Run the career-ops tracker mode and summarize the current statuses.”
Read ·
trackerEvaluate many jobs at once
Runs several headless Claude workers in parallel to evaluate a long list of jobs. Batch mode needs claude setup-token.
Runs code ·
batchPrepare for an interview at a company
Builds a company-specific prep document with likely questions and your STAR stories.
Write ·
interview-prepPractice an interview with feedback
Asks one question at a time and gives feedback on each answer.
Read ·
interview/practiceFind contacts and draft a LinkedIn message
Suggests who to contact at the company and drafts the message. You send it.
Write ·
contactoResearch a company in depth
Writes a deep research prompt about the company before you apply.
Read ·
deepFlag overdue follow-ups
Finds applications that need a nudge and drafts the follow-up.
Write ·
followupFind patterns in your rejections
Looks at rejected applications to show how to improve your targeting.
Read ·
patternsReview a job offer or contract
Walks through an offer and lists questions to ask a lawyer.
Read ·
offer-prepSet up your profile by chat
The onboarding interview that asks for your CV, profile and target roles. Nothing to edit by hand.
Write ·
interviewUpdate career-ops files
Updates the system files after showing you a diff, and asks first.
Write ·
updateUsed by the assistant behind the scenes
The one skill that routes every mode
Loads when you paste a job link or ask for a career-ops mode, then hands you to the right mode. All the modes above are arguments of this one skill, not separate commands.
career-ops (skill)Installs packages and creates your data folder
Runs node scripts/claude-plugin-session-start.mjs at the start of a session. If package.json changed it runs npm install with scripts turned off, links node_modules and creates ~/career-ops-data. Silent otherwise.
Runs code ·
SessionStart hook
From the official docs
Permissions
Medium risk
A session-start hook installs npm packages on your computer, and the tool sends your CV text to your AI provider. Check the hook in the repo before you install, and keep the optional web dashboard and add-ons off unless you need them.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
A SessionStart hook runs npm install
When the session starts, the hook runs node scripts/claude-plugin-session-start.mjs. If package.json changed, it runs npm install with scripts turned off into the plugin data folder (up to 5 minutes), then creates ~/career-ops-data. github.com
Optional scans can run every 15 minutes
If you install scheduled scans, a LaunchAgent, crontab line or Windows task runs a saved scan until you run the uninstall script. github.com
Gmail, Notion and Apify add-ons need keys
They are off by default. Turn one on only if you want it, and give it a key with the least access it needs. github.com
The CV check can miss invented claims
A fact check blocks PDFs with facts missing from your CV, but it can miss a made-up employer in some sentences. Read every CV before you send it. github.com
Your CV goes to your AI provider
Job text and the parts of your CV it evaluates go to the model you use. The author collects nothing. github.com
It opens job pages in a local browser
Playwright runs a headless Chromium on your machine for PDFs and live-posting checks. Board scans fetch public listings and do not send your CV. github.com
Security advisories
3 known advisories, all fixed in a newer version.
- A website or another machine could run commands through the local web dashboard without signing inhigh · Fixed in commit b3974e61 (2026-08-20) · GHSA-wpqw-whgf-gr4g / CVE-2026-88061
- In the web app's assisted apply, a typed Enter or Space could submit an application form without you pressing Submitmedium · Fixed in 1.38.0 · GHSA-rm8h-2825-ww26
- The opt-in Gmail plugin could accept a spoofed email as a genuine job alertmedium · Fixed in 1.37.0 · GHSA-x4g9-f33j-wx96
Technical details
| Turning on read-only | No read-only mode. The oferta mode evaluates a job without making a PDF, but every mode writes reports and tracker files locally. It never submits forms or sends email. |
|---|---|
| Talks to | npm registry (package install by the SessionStart hook). Public job board and company career pages you enable in portals.yml. GitHub API (release check on the first message of a session). Your AI provider (job text and parts of your CV). Gemini, OpenAI, OpenRouter or Ollama only if you add that key to optional scripts |
| Sign-in and keys | No account. Optional integration keys live in a local .env file. |
| Data retention | No telemetry and no backend run by the author. Files stay in your data folder; uninstalling the plugin does not delete it. |
| Scopes |
|
Works in
Tap an app to see how to set it up and any known problems.
Codex
SupportedRun codex inside a career-ops folder. Slash commands are not guaranteed, so ask for a mode in words. GitHub
Cursor
SupportedOpen the career-ops folder in Cursor and ask for career-ops. GitHub
OpenCode
SupportedRun opencode inside the career-ops folder, then /career-ops. GitHub
Copilot CLI
SupportedHeadless runs only: copilot -p with a prompt, inside the career-ops folder. GitHub
Claude Code
Has issuesInstall from the author's marketplace, then start a new session.
Known problems
- Open
Adding the repo as a claude.ai personal marketplace skips the plugin, so it does not sync to the CLI
Workaround: Run /plugin marketplace add in each Claude Code install.
Since Nov 2026 · GitHub
- Open
Older installs kept your CV and tracker in the plugin cache, so an update could strand them
Workaround: Set CAREER_OPS_ROOT to a folder outside ~/.claude/plugins.
Since Oct 2026 · GitHub
Claude Desktop
Has issuesRuns in the Code tab only, not in Chat or Cowork.
Known problems
- Open
Syncing the marketplace from claude.ai skips the plugin because of a nested plugin.json
Since Nov 2026 · GitHub
What people say
People who got hired credit the scoring and interview prep, and warn that early results are weak until you give it your CV and context.
What people like
- Hired users credit the interview prep and STAR stories as the most useful part
- The scan and auto-evaluation made reviewing many listings manageable
- Easy to extend with new job sites and scans by asking Claude
Common complaints
- Less experienced users may need a paid Claude or ChatGPT plan for good results
- The first few evaluations are weak until you give it your context
- The CV fact check can miss a made-up employer or reused metric (open bug)
In their words
“Targeted evaluation scoring and real STAR stories (a zero-downtime migration story resonated especially well) made the difference over a long, broader search.”gpirujoGitHub issueOct 2026
“The portal scan/auto-evaluation pipeline made combing through jobs a breeze even when I was drained or discouraged”bravelyGitHub issueOct 2026
“Using paid accounts with Claude or ChatGPT feels almost essential if you have less experience working with LLMs or code.”pelarson28BlogMay 2026
“The first three evaluations are mediocre. The system has no idea who you are until you feed it context.”Bhanu Teja
Included in this plugin
1
- career-ops
Open-source AI job search agent -- 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.
79K GitHub stars
Questions
How do I install career-ops in Claude Code?
Use the commands in the install box above, then start a new session. The first start takes a few seconds longer while it installs its Node packages. You then run /career-ops:career-ops or paste a job link.
Is career-ops safe?
Mostly, with one thing to check. The plugin runs one SessionStart hook that installs npm packages and creates a data folder, and your CV text goes to your AI provider. It has no telemetry. Three security advisories were published in 2026 and all are fixed, so use version 1.38.0 or later.
Does career-ops apply to jobs automatically?
No. It scores jobs, drafts a CV, cover letter and answers, and can fill a form, but it never submits and never sends email. You press Submit.
Did career-ops move from santifer/career-ops?
Yes. The repo now lives at career-ops-hq/career-ops, and the old santifer/career-ops address redirects there. The marketplace name to use in Claude Code is career-ops-hq/career-ops.
Does career-ops work in Claude.ai chat, Cowork, Codex or Cursor?
Not in Claude.ai Chat or Cowork. It runs in Claude Code and the Code tab of the Claude desktop app. The repo also documents Codex, Cursor, OpenCode and other AI CLIs, where you open the career-ops folder and ask for a mode.
Is career-ops free?
Yes. It is MIT licensed. You pay only for the AI model you use, and it can also run on free or local models through OpenRouter or Ollama.
Why is it using my API credits instead of my Claude subscription?
An ANTHROPIC_API_KEY set in your environment takes precedence over your Claude login. Remove it from your shell profile, restart the terminal and run /login.
Where does career-ops keep my CV and data?
In ~/career-ops-data as plain files. Set CAREER_OPS_ROOT in ~/.claude/settings.json to use another absolute folder outside ~/.claude/plugins. Uninstalling the plugin does not delete that folder.
What does career-ops need on my computer?
Node.js 22.13 or newer, and Playwright's Chromium for PDFs and checking that a posting is live. Go is only needed to build the optional terminal dashboard.
Is career-ops in Anthropic's official plugin marketplace?
No, as of November 2, 2026. You install it from the author's own marketplace, career-ops-hq/career-ops. For a wider view of job tools, see job search with AI.
Information
updated Nov 2, 2026
- Runs in
- Claude Code
- Repository
- career-ops-hq/career-ops
Sources
Docs, issue trackers and discussions this page is built from.
Show all 20Hide
- career-ops Claude plugin guide · github.com
- career-ops README · github.com
- career-ops Codex guide · github.com
- career-ops supported CLIs · github.com
- career-ops plugin directory README · github.com
- plugin.json · github.com
- career-ops releases · github.com
- package.json · github.com
- career-ops opt-in plugins · github.com
- career-ops usage · github.com
- career-ops SKILL.md · github.com
- career-ops hooks.json · github.com
- career-ops security advisories · github.com
- claude-plugins-official marketplace.json · github.com
- Hired: Staff Software Engineer · github.com
- Hired: Technical Lead Software Engineer · github.com
- Hired: Customer Success Associate · github.com
- Career-Ops: The Terminal That Replaced His Job Hunt · decodeops.substack.com
- Support syncing the marketplace into claude.ai so it reaches Claude Code CLI and Desktop · github.com
- Plugin-marketplace install keeps the CV, profile and tracker inside the version-scoped plugin cache · github.com