career-ops-hq/career-ops

★ 72,222⑂ 13,605

Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV

About career-ops-hq/career-ops

career-ops-hq/career-ops is an open-source project on GitHub, mainly written in JavaScript. Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV It currently holds 72,222 stars and 13,605 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Coding Agents board.

GitHub Repository Details

Repository career-ops-hq/career-ops · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

https://github.com/career-ops-hq/career-ops/blob/HEAD/career-ops

English | Español | Deutsch | Français | Português (Brasil) | 한국어 | 日本語 | 简体中文 | 繁體中文 | Українська | Русский | Polski | Dansk | தமிழ் | العربية | हिन्दी | Türkçe

https://github.com/career-ops-hq/career-ops/blob/HEAD/career-ops Multi-Agent Job Search System

I spent months applying to jobs the hard way. So I engineered the system I wish I had.
Companies use AI to filter candidates. I just gave candidates AI to choose companies.
Now it's open source.


https://github.com/career-ops-hq/career-ops/blob/HEAD/Hired with career-ops: verified count

Landed yours? Share it → · your card shows someone mid-search that the way out exists.

https://github.com/career-ops-hq/career-ops/blob/HEAD/The three most recent hired stories

Every count is a public story you can audit → · every one of them started where you are now.

https://github.com/career-ops-hq/career-ops/blob/HEAD/santifer%2Fcareer-ops | Trendshift

https://github.com/career-ops-hq/career-ops/blob/HEAD/career-ops on Claude | Product Hunt

FEATURED IN

https://github.com/career-ops-hq/career-ops/blob/HEAD/WIRED       https://github.com/career-ops-hq/career-ops/blob/HEAD/Business Insider

---

https://github.com/career-ops-hq/career-ops/blob/HEAD/career-ops Demo

740+ job listings evaluated · 100+ personalized CVs · 1 dream role landed

Created and maintained by Santiago Fernández de Valderrama Aparicio (@santifer)

https://github.com/career-ops-hq/career-ops/blob/HEAD/Live star telemetry of career-ops-hq/career-ops

https://github.com/career-ops-hq/career-ops/blob/HEAD/Discord

https://github.com/career-ops-hq/career-ops/blob/HEAD/Latest release

https://github.com/career-ops-hq/career-ops/blob/HEAD/Built with Claude Code

Also runs on any agent-skill-standard CLI. See Supported CLIs.
https://github.com/career-ops-hq/career-ops/blob/HEAD/Claude Code https://github.com/career-ops-hq/career-ops/blob/HEAD/OpenCode https://github.com/career-ops-hq/career-ops/blob/HEAD/Antigravity CLI https://github.com/career-ops-hq/career-ops/blob/HEAD/Codex https://github.com/career-ops-hq/career-ops/blob/HEAD/Qwen https://github.com/career-ops-hq/career-ops/blob/HEAD/Kimi https://github.com/career-ops-hq/career-ops/blob/HEAD/GitHub Copilot https://github.com/career-ops-hq/career-ops/blob/HEAD/Grok Build CLI
https://github.com/career-ops-hq/career-ops/blob/HEAD/Node.js https://github.com/career-ops-hq/career-ops/blob/HEAD/Go https://github.com/career-ops-hq/career-ops/blob/HEAD/Playwright https://github.com/career-ops-hq/career-ops/blob/HEAD/Bubble Tea https://github.com/career-ops-hq/career-ops/blob/HEAD/MIT https://github.com/career-ops-hq/career-ops/blob/HEAD/Trademark Policy

What Is This

career-ops (career-ops.org, also known as careerops) is an open-source AI job search that runs locally inside any AI coding CLI: it evaluates offers, tailors your CV and tracks every application, and you always have the final call. Instead of manually tracking applications in a spreadsheet, you get an AI-powered pipeline that:

Important: This is NOT a spray-and-pray tool. career-ops is a filter -- it helps you find the few offers worth your time out of hundreds. The system strongly recommends against applying to anything scoring below 4.0/5. Your time is valuable, and so is the recruiter's. Always review before submitting.

career-ops is agentic: whichever AI coding CLI you choose navigates career pages with Playwright, evaluates fit by reasoning about your CV vs the job description (not keyword matching), and adapts your resume per listing.

Heads up: the first evaluations won't be great. The system doesn't know you yet. Feed it context -- your CV, your career story, your proof points, your preferences, what you're good at, what you want to avoid. The more you nurture it, the better it gets. Think of it as onboarding a new recruiter: the first week they need to learn about you, then they become invaluable.

Built by someone who used it to evaluate 740+ job offers, generate 100+ tailored CVs, and land a Head of Applied AI role. Read the full case study.

The CareerOps Manifesto

career-ops is the first reference implementation of the CareerOps Manifesto. read it. if it says what you believe, sign it. your signature becomes a commit.

Features

| Feature | Description | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | | Auto-Pipeline | Paste a URL, get a full evaluation + PDF + tracker entry | | A-H Evaluation | Role summary, CV match (with how much each requirement matters for this posting, and whether that weight came from the JD's own wording, its structure, or an estimate — labelled per requirement, and an estimate can never be top-band), level strategy, comp research, personalization, interview prep (STAR+R) -- plus a Block G posting-legitimacy check that flags scams and ghost jobs, and a Work-Auth signal that flags an explicit no-sponsorship JD as a hard blocker | | Interview Story Bank | Accumulates STAR+Reflection stories across evaluations -- 5-10 master stories that answer any behavioral question | | Negotiation Scripts | Salary negotiation frameworks, geographic discount pushback, competing offer leverage | | ATS PDF Generation | Keyword-injected CVs with Space Grotesk + DM Sans design | | Cover Letter Generator | Research-backed cover letters with keyword mirroring, four interactive angle prompts (why/problems/approach/tone), draft-in-chat approval gate, and A4 PDF via the same HTML + Playwright pipeline as CVs. Auto-drafts on every evaluation; complete and generate on demand via /career-ops cover | | Application Email Drafts | Formal recruiter/referral/cold application emails from a report or pasted JD, with subject line, attachment checklist, source-backed fit points, and a profile-driven contact block. Draft-only -- career-ops never sends, submits, or clicks anything. | | Portal Scanner | 100+ companies pre-configured (Anthropic, OpenAI, ElevenLabs, Retool, n8n...) + custom queries across Ashby, Greenhouse, Lever, Wellfound | | Funded Company Discovery | Review-first company:funded command surfaces recently funded companies and source diagnostics from structured public feeds without editing your data | | Batch Processing | Parallel evaluation with headless CLI workers (claude -p / opencode run) | | Dashboard TUI | Terminal UI to browse, filter, and sort your pipeline | | Human-in-the-Loop | AI evaluates and recommends, you decide and act. The system never submits an application -- you always have the final call | | Pipeline Integrity | Automated merge, dedup, status normalization, health checks | | Interview Suite | Time-blocked prep plans, practice sessions with feedback, post-interview debriefs (interview/), and a company red-flag detector (interview-redflag) | | Offer Stage | Contract reading companion -- clause walk plus a lawyer question list (offer-prep) -- and a desired/advertised/actual salary-gap analyzer (salary-gap.mjs) | | Follow-ups & Replies | Follow-up cadence calculator and seeded reminders (followup-cadence.mjs, followup-seed.mjs); employer reply classification into tracker updates (reply-watch) | | Pattern Analysis | Rejection patterns and per-ATS-channel advance rates (analyze-patterns.mjs), lifetime funnel stats (stats.mjs), repost/ghost-job detection (detect-reposts.mjs) | | Plugin System | Opt-in integrations (Gmail, Notion, Apify + a community registry), disabled by default -- see docs/PLUGINS.md | | Beyond the CV | Company research (deep) surfaces AI strategy, recent moves, engineering culture, and the angle your profile should take. Contact discovery (contacto) identifies the hiring manager, recruiter, or team peer worth reaching out to and drafts a ≤300-character LinkedIn message tuned to each contact type. Formal application email drafts (email) turn an evaluated report or pasted JD into a subject line, body, and attachment checklist without sending, submitting, or clicking anything. Applications get you in the queue; research gets you a conversation. |

Quick Start

Fastest way — one command:

npx @santifer/career-ops init
💡 npx ships with Node.js — it runs the installer once,
without installing anything globally. No Node yet? Install it first.
(Already using a Claude Code / Gemini / Codex CLI? Then you already have it.)

This clones the latest release into ./career-ops and installs dependencies. Then:

cd career-ops
claude   # or codex / qwen / opencode / agy / grok — open your AI CLI here

On first launch, career-ops walks you through setup — your CV, profile and target roles — just by chatting. Nothing to edit by hand.

Prefer to set it up manually? (git clone)
git clone https://github.com/career-ops-hq/career-ops.git
cd career-ops && npm install
npx playwright install chromium   # only needed for PDF generation

2. Check setup

npm run doctor # Validates all prerequisites

3. Configure

cp config/profile.example.yml config/profile.yml # Edit with your details cp templates/portals.example.yml portals.yml # Customize companies

4. Add your CV

Create cv.md in the project root with your CV in markdown

5. Open your AI CLI in this directory

claude # or codex / opencode / qwen / agy / grok

Then ask your CLI to adapt the system to you:

"Change the archetypes to backend engineering roles"

"Translate the modes to English"

"Add these 5 companies to portals.yml"

"Update my profile with this CV I'm pasting"

6. Start using

Paste a job URL or JD text to trigger auto-pipeline

If your CLI supports slash commands, use /career-ops (or its CLI-specific alias)

In Codex, ask for the same mode in plain language, e.g.:

"Run the career-ops scan mode"

"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"

Global install

npm i -g @santifer/career-ops

This installs the career-ops binary globally so you can run it directly instead of via npx. Unlike npx @santifer/career-ops init (which bootstraps a project directory), the global install gives you a persistent career-ops command available anywhere in your terminal.

Which one should you use?

The system is designed to be customized by your AI coding CLI itself. Modes, archetypes, scoring weights, negotiation scripts -- just ask it to change them. It reads the same files it uses, so it knows exactly what to edit.

See docs/SETUP.md for the full setup guide, docs/RUNNING_ON_A_BUDGET.md for instructions on running career-ops cheaply using custom or local models (and docs/FREE_TIER.md for running it at zero cost on Antigravity CLI's free tier), docs/AUTOMATION.md for scheduling recurring scans and a zero-token triage-to-shortlist recipe, docs/APPLY_AUTOFILL.md for details on the ATS auto-fill flow, docs/LINKEDIN_JOIN.md for cross-referencing a LinkedIn connections export against the companies in your funnel, and docs/FAQ.md for answers to common setup questions, including how story provenance prevents invented numbers. Design principles live in ARCHITECTURE.md; runtime flows in docs/ARCHITECTURE.md.

Antigravity CLI Integration

career-ops supports Antigravity CLI natively, the same way it supports Claude Code and OpenCode. All slash commands are available through the shared skill entrypoint, using the same modes/*.md evaluation logic.

Google has transitioned consumer Gemini CLI access to Antigravity CLI. GEMINI.md is now a no-op compatibility guard so Antigravity does not duplicate the full project instructions when it reads both AGENTS.md and GEMINI.md.

Native Antigravity CLI

# 1. Run in the career-ops directory
cd career-ops
agy

2. Use the unified /career-ops command with subcommands:

/career-ops "Senior AI Engineer at Anthropic..." /career-ops pipeline /career-ops scan /career-ops pdf /career-ops tracker

The skill is defined using the open standard in .agents/skills/career-ops/SKILL.md and symlinked/referenced for each supported CLI (e.g. .claude/, .cursor/, .qwen/, .antigravitycli/, .grok/).

Codex Integration

career-ops supports Codex through the same shared router, but the invocation model is different from CLIs that auto-register slash commands. For the full guide, see docs/CODEX.md.

Interactive Codex

cd career-ops
codex

Slash commands are not guaranteed in Codex. If /career-ops is unavailable, ask Codex to run the mode directly in plain language:

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.

One-shot Codex (codex exec)

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

Grok Build CLI Integration

career-ops supports Grok Build CLI natively, the same way it supports Claude Code and OpenCode. AGENTS.md is auto-loaded as project rules, and all slash commands are available through the shared skill entrypoint.

Native Grok Build CLI

# 1. Run in the career-ops directory
cd career-ops
grok

2. Use the unified /career-ops command with subcommands:

/career-ops "Senior AI Engineer at Anthropic..." /career-ops pipeline /career-ops scan /career-ops pdf /career-ops tracker

For headless batch workers, use grok -p "prompt" (add --yolo to auto-approve tool executions).

Standalone Gemini API Script (No CLI install needed)

# 1. Get a free API key at https://aistudio.google.com/apikey
cp .env.example .env

Edit .env, set GEMINI_API_KEY=your_key_here

2. Install dependencies

npm install

3. Evaluate a job description

node gemini-eval.mjs "We are looking for a Senior AI Engineer..." node gemini-eval.mjs --file ./jds/my-job.txt node agent-inbox.mjs add "..." # queue a request for the next session npm run gemini:eval -- "JD text here"
Free tier: Both options work without billing. Native CLI uses Google OAuth; the API script uses gemini-3.6-flash (rate limits are model- and tier-dependent; see Google AI docs for current quotas).

Usage

career-ops uses a shared command router. In CLIs that register slash commands, it looks like this:

``` /career-ops → Show all 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 interview-redflag → Analyze employer warning signs before joining a company /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 re

GitHub Stars & Activity

72,222Stars
13,605Forks
0Open issues
JavaScriptLanguage

GitHub Popularity

GitHub stars72,222
Forks13,605
Open issues0
Primary languageJavaScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

affaan-m / ECC

JavaScript★ 263,266⑂ 39,395
2

DietrichGebert / ponytail

JavaScript★ 142,817⑂ 7,659
3

addyosmani / agent-skills

JavaScript★ 97,395⑂ 10,274
4

Leonxlnx / taste-skill

JavaScript★ 88,665⑂ 6,033
5

asgeirtj / system_prompts_leaks

JavaScript★ 67,787⑂ 11,015
6

gsd-build / get-shit-done

JavaScript★ 64,496⑂ 5,449
7

zarazhangrui / frontend-slides

JavaScript★ 29,591⑂ 2,322
8

decolua / 9router

JavaScript★ 29,418⑂ 5,479

More AI Rankings