开源项目 GitHub Topic ai-agent 2026-07-06T12:02 正文 ok 2637 words

Career-Ops:基于 Claude Code 的 AI 求职操作系统

英文标题:📦 santifer/career-ops

Career-Ops 是将任意 AI 编码 CLI 转变为求职指挥中心的开源系统,基于 Claude Code 构建,提供 14 种技能模式、Go 仪表盘、PDF 生成与批量处理。作者用它评估了超过 740 个职位、生成 100 多份定制简历,最终获得应用 AI 负责人职位。系统通过多代理协同实现自动扫描、评分与个性化简历,为开发者展示了 AI Agent 在求职场景中的潜力。
打开原文相关 3.5 · 机会 5
media671.1 KB media5.1 KB media1.7 KB media1.3 KB media1.3 KB media3.2 KB media3.2 KB media8.3 MB media16.2 KB media16.2 KB media2.5 KB media610 B media1.1 KB media1.4 KB media998 B media1.7 KB media983 B media978 B media978 B media3.4 KB

中文

English | Deutsch | Español | Français | Português (Brasil) | 한국어 | 日本語 | 简体中文 | 繁體中文 | Українська | Русский | Polski | Dansk | العربية

Career-Ops 多智能体求职系统

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.

santifer/career-ops | Trendshift

Career-Ops 在 Product Hunt

媒体报道

WIRED Business Insider


Career-Ops 演示

评估 740+ 份职位列表 · 制作 100+ 份个性化简历 · 获得 1 个理想职位

santifer/career-ops 实时星标遥测

Discord

最新版本

使用 Claude Code 构建

同时支持任何符合 agent-skill 标准的 CLI。详见支持的 CLI。 Claude Code OpenCode Antigravity CLI Codex Qwen Kimi GitHub Copilot Grok Build CLI Node.js Go Playwright Bubble Tea MIT 商标政策

Career-Ops (career-ops.org,也称为 careerops) 可将任意 AI 编码 CLI 转变为完整的求职指挥中心。您无需再在电子表格中手动跟踪申请,就能获得一个 AI 驱动的流水线,它可以:

  • 评估录用机会,采用结构化的 A-F 评分系统(10 个加权维度)
  • 生成定制 PDF —— 针对每个职位描述生成经过 ATS 优化的简历
  • 自动扫描招聘门户(Greenhouse、Ashby、Lever、公司官网页面)
  • 批量处理 —— 并行评估 10+ 个录用机会的 sub-agent
  • 在统一数据源中跟踪所有内容,并附带完整性校验
  • 研究公司并找到合适的联系人 —— 投递申请将你排入队列;调研能帮你开启对话

重要提示:这不是一个“广撒网”工具。 Career-ops 是一个过滤器——它会帮您从数百个机会中找到少数值得投入的。系统强烈建议不要申请任何评分低于 4.0/5 的职位。您的时间宝贵,招聘人员的时间亦然。提交前请务必复核。

Career-ops 是智能体(agentic)式的:无论您选择哪种 AI 编码 CLI,它都会利用 Playwright 浏览招聘页面,通过对您的简历与职位描述进行推理(而非简单关键词匹配)来评估契合度,并针对每个职位定制您的简历。

请注意:最初的评估结果可能不够理想。 因为系统尚未充分了解您。请不断为它提供上下文——您的简历、职业故事、成就证明、偏好、长处,以及您希望避免的事项。您投喂得越多,它就越精准。您可以把它理解为在为新招聘人员办理入职:第一周他们需要了解您,之后就会变得不可或缺。

由这样一个人构建:他使用本系统评估了 740+ 份录用机会,生成 100+ 份定制简历,并成功获得应用 AI 负责人职位。阅读完整案例研究。

特性 描述
自动流水线 粘贴一个 URL,即可获得完整评估 + PDF + 跟踪条目
6 项评估模块 职位摘要、简历匹配、职级策略、薪酬研究、个性化建议、面试准备(STAR+反思)——外加一个用于标记虚假职位和幽灵职位的模块 G 可信度检查
面试故事库 将在历次评估中积累 STAR+反思故事——形成 5-10 个可以回答任何行为面试问题的主线故事
谈判脚本 薪资谈判框架、应对地域差价压价的策略、利用竞争录用通知增加筹码的方法
ATS PDF 生成 注入关键词的简历,采用 Space Grotesk + DM Sans 字体设计
求职信生成器 经调研支撑的求职信,包含关键词镜像、四个交互式切入角度提示(原因/问题/方法/语气)、在聊天中审核草稿的确认环节,并通过与简历相同的 HTML + Playwright 流水线生成 A4 PDF。每次评估都会自动生成草稿;随时可通过 /career-ops cover 完善并生成。
申请邮件草稿 根据报告或粘贴的职位描述生成正式的招聘专员/推荐人/冷投邮件,包含主题行、附件清单、经来源引用的匹配要点,以及基于个人资料的签名栏。仅输出草稿——career-ops 绝不会发送、提交或点击任何内容。
门户扫描器 已预配置 45+ 家公司

English / 原文

English | Deutsch | Español | Français | Português (Brasil) | 한국어 | 日本語 | 简体中文 | 繁體中文 | Українська | Русский | Polski | Dansk | العربية

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.

santifer%2Fcareer-ops | Trendshift

Career-Ops on Claude | Product Hunt

FEATURED IN

WIRED Business Insider


Career-Ops Demo

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

Live star telemetry of santifer/career-ops

Discord

Latest release

Built with Claude Code

Also runs on any agent-skill-standard CLI. See Supported CLIs.
Claude Code OpenCode Antigravity CLI Codex Qwen Kimi GitHub Copilot Grok Build CLI
Node.js Go Playwright Bubble Tea MIT Trademark Policy

Career-Ops (career-ops.org, also known as careerops) turns any AI coding CLI into a full job search command center. Instead of manually tracking applications in a spreadsheet, you get an AI-powered pipeline that:

  • Evaluates offers with a structured A-F scoring system (10 weighted dimensions)
  • Generates tailored PDFs -- ATS-optimized CVs customized per job description
  • Scans portals automatically (Greenhouse, Ashby, Lever, company pages)
  • Processes in batch -- evaluate 10+ offers in parallel with sub-agents
  • Tracks everything in a single source of truth with integrity checks
  • Researches companies and finds the right person to contact -- applications get you in the queue; research gets you a conversation

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.

Feature Description
Auto-Pipeline Paste a URL, get a full evaluation + PDF + tracker entry
6-Block Evaluation Role summary, CV match, level strategy, comp research, personalization, interview prep (STAR+R) -- plus a Block G posting-legitimacy check that flags scams and ghost jobs
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 45+ companies pre-configured (Anthropic, OpenAI, ElevenLabs, Retool, n8n...) + custom queries across Ashby, Greenhouse, Lever, Wellfound
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
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.

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 gemini / 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/santifer/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 / gemini / 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"

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, docs/APPLY_AUTOFILL.md for details on the ATS auto-fill flow, and docs/FAQ.md for answers to common setup questions.

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.

# 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/, .qwen/, .antigravitycli/, .grok/).

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.

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.

# 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-2.5-flash (15 RPM, 1M tokens/day free).

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 {paste a JD}   → Full auto-pipeline (evaluate + PDF + tracker)
/career-ops scan           → Scan portals for new offers
/career-ops pdf            → Generate ATS-optimized CV
/career-ops cover          → Cover letter generator (paste JD or /career-ops cover {slug})
/career-ops email          → Formal application email draft (draft-only; never sends, submits, or clicks)
/career-ops batch          → Batch evaluate multiple offers
/career-ops tracker        → View application status
/career-ops apply          → Fill application forms with AI
/career-ops pipeline       → Process pending URLs
/career-ops contacto       → Find hiring manager / recruiter / peer + draft a ≤300-char LinkedIn message per contact type
/career-ops deep           → Generate a structured 6-axis research prompt (AI strategy, recent moves, culture, challenges, competitors, candidate angle)
/career-ops training       → Evaluate a course/cert
/career-ops project        → Evaluate a portfolio project

Or just paste a job URL or description directly -- career-ops auto-detects it and runs the full pipeline.

In Codex, slash commands are not guaranteed. Use the same mode names in a prompt instead, or call them from codex exec.

You paste a job URL or description
        │
        ▼
┌──────────────────┐
│  Archetype       │  Classifies: LLMOps / Agentic / PM / SA / FDE / Transformation
│  Detection       │
└────────┬─────────┘
         │
┌────────▼─────────┐
│  A-F Evaluation  │  Match, gaps, comp research, STAR stories
│  (reads cv.md)   │
└────────┬─────────┘
         │
    ┌────┼────┐
    ▼    ▼    ▼
 Report  PDF  Tracker
  .md   .pdf   .tsv

The scanner comes with 45+ companies ready to scan and 19 search queries across major job boards. Copy templates/portals.example.yml to portals.yml and add your own:

AI Labs: Anthropic, OpenAI, Mistral, Cohere, LangChain, Pinecone Voice AI: ElevenLabs, PolyAI, Parloa, Hume AI, Deepgram, Vapi, Bland AI AI Platforms: Retool, Airtable, Vercel, Temporal, Glean, Arize AI Contact Center: Ada, LivePerson, Sierra, Decagon, Talkdesk, Genesys Enterprise: Salesforce, Twilio, Gong, Dialpad LLMOps: Langfuse, Weights & Biases, Lindy, Cognigy, Speechmatics Automation: n8n, Zapier, Make.com European: Factorial, Attio, Tinybird, Clarity AI, Travelperk

Job boards searched: 21 provider modules cover ATS APIs, board-wide feeds, XML/RSS feeds, markdown feeds, and local parsers. See Supported job boards for the full table.

By default node scan.mjs (a.k.a. npm run scan) trusts what each ATS feed returns. Some companies leave stale postings in their public API even after the role is closed, so those expired entries can leak into pipeline.md. Pass --verify to launch Playwright after the API pass and drop expired postings before they hit the pipeline:

node scan.mjs --verify          # zero-token discovery + Playwright liveness check

The verification is sequential and only runs against new offers (after dedup), so the cost stays bounded.

The built-in terminal dashboard lets you browse your pipeline visually:

npm run serve:dashboard   # launch the TUI
npm run build:dashboard   # optional: build the standalone binary

Features: 6 filter tabs, 4 sort modes, grouped/flat view, lazy-loaded previews, inline status changes.

There is also an experimental web UI (alpha, opt-in — nothing runs unless you start it): see web/README.md.

career-ops/
├── AGENTS.md                    # Canonical agent instructions (all CLIs)
├── CLAUDE.md                    # Claude Code wrapper (imports AGENTS.md)
├── CODEX.md                     # Codex wrapper (imports AGENTS.md)
├── OPENCODE.md                  # OpenCode wrapper (imports AGENTS.md)
├── GEMINI.md                    # Legacy no-op guard to avoid Antigravity duplicate context
├── cv.md                        # Your CV (create this)
├── article-digest.md            # Your proof points (optional)
├── config/
│   └── profile.example.yml      # Template for your profile
├── modes/                       # Skill modes
│   ├── _shared.md               # Shared context (customize this)
│   ├── oferta.md                # Single evaluation
│   ├── pdf.md                   # PDF generation
│   ├── cover.md                 # Cover letter generation
│   ├── email.md                 # Formal application email drafts
│   ├── scan.md                  # Portal scanner
│   ├── batch.md                 # Batch processing
│   └── ...
├── templates/
│   ├── cv-template.html         # ATS-optimized CV template
│   ├── portals.example.yml      # Scanner config template
│   └── states.yml               # Canonical statuses
├── batch/
│   ├── batch-prompt.md          # Self-contained worker prompt
│   └── batch-runner.sh          # Orchestrator script
├── dashboard/                   # Go TUI pipeline viewer
├── data/                        # Your tracking data (gitignored)
├── reports/                     # Evaluation reports (gitignored)
├── output/                      # Generated PDFs (gitignored)
├── fonts/                       # Space Grotesk + DM Sans
├── docs/                        # Setup, customization, budget guide, architecture
└── examples/                    # Sample CV, report, proof points

Claude Code Node.js Playwright Go Bubble Tea

  • Agent : AI coding CLI with shared skills and modes (AGENTS.md + CLI wrapper)

  • PDF : Playwright/Puppeteer + HTML template

  • Cover letters : HTML template + Playwright (A4 PDF, same pipeline as CVs)

  • Scanner : Playwright + Greenhouse API + WebSearch

  • Dashboard : Go + Bubble Tea + Lipgloss (Catppuccin Mocha theme)

  • Data : Markdown tables + YAML config + TSV batch files

  • cv-santiago -- The portfolio website (santifer.io) with AI chatbot, LLMOps dashboard, and case studies. If you need a portfolio to showcase alongside your job search, fork it and make it yours.

I'm Santiago -- Head of Applied AI, former founder (built and sold a business that still runs with my name on it). I built career-ops to manage my own job search. It worked: I used it to land my current role.

My portfolio and other open source projects → santifer.io

career-ops is a local, open-source tool, NOT a hosted service. By using this software, you acknowledge:

  1. You control your data. Your CV, contact info, and personal data stay on your machine and are sent directly to the AI provider you choose (Anthropic, OpenAI, etc.). We do not collect, store, or have access to any of your data.
  2. You control the AI. The default prompts instruct the AI not to auto-submit applications, but AI models can behave unpredictably. If you modify the prompts or use different models, you do so at your own risk. Always review AI-generated content for accuracy before submitting.
  3. You comply with third-party ToS. You must use this tool in accordance with the Terms of Service of the career portals you interact with (Greenhouse, Lever, Workday, LinkedIn, etc.). Do not use this tool to spam employers or overwhelm ATS systems.
  4. No guarantees. Evaluations are recommendations, not truth. AI models may hallucinate skills or experience. The authors are not liable for employment outcomes, rejected applications, account restrictions, or any other consequences.

See LEGAL_DISCLAIMER.md for full details. This software is provided under the MIT License "as is", without warranty of any kind.

Got hired using career-ops? Share your story!

The code is licensed under MIT. The "career-ops" name and brand are governed by the Trademark Policy, permissive for community use, reserved for commercial product naming and endorsement.

Website LinkedIn X Discord Email