docs: make Chinese README the default
CodeQL Analysis / Analyze (go) (push) Has been cancelled
CodeQL Analysis / Analyze (javascript-typescript) (push) Has been cancelled
Release Please / release-please (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 10:50:52 +00:00
parent 4da79cb3a7
commit 2c617632b1
+170 -279
View File
@@ -1,26 +1,30 @@
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/santifer/career-ops) · [上游 README](https://github.com/santifer/career-ops/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
# Career-Ops
[English](README.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko-KR.md) | [日本語](README.ja.md) | [简体中文](README.cn.md) | [繁體中文](README.zh-TW.md) | [Українська](README.ua.md) | [Русский](README.ru.md) | [Polski](README.pl.md) | [Dansk](README.da.md) | [العربية](README.ar.md) | [हिन्दी](README.hi.md)
<p align="center">
<a href="https://x.com/santifer"><img src="docs/hero-banner.jpg" alt="Career-Ops Multi-Agent Job Search System" width="800"></a>
<a href="https://x.com/santifer"><img src="docs/hero-banner.jpg" alt="Career-Ops 多代理求职系统" width="800"></a>
</p>
<p align="center">
<em>I spent months applying to jobs the hard way. So I engineered the system I wish I had.</em><br>
Companies use AI to filter candidates. <strong>I just gave candidates AI to <em>choose</em> companies.</strong><br>
<em>Now it's open source.</em>
<em>我花了好几个月用最费力的方式找工作。所以我打造了一个当初就希望拥有的系统。</em><br>
公司用 AI 筛选候选人。<strong>我把 AI 交给候选人,让他们来<em>挑选</em>公司。</strong><br>
<em>现在,它开源了。</em>
</p>
<p align="center">
<a href="https://trendshift.io/repositories/25195" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/25195" alt="santifer%2Fcareer-ops | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<a href="https://trendshift.io/repositories/25195" target="_blank"><img src="https://trendshift.io/api/badge/repositories/25195" alt="santifer%2Fcareer-ops | Trendshift" style="width: 245px; height: 54px; vertical-align: middle;" width="245" height="54"/></a>
&nbsp;&nbsp;
<a href="https://www.producthunt.com/products/santifer-io?utm_source=badge-featured&utm_medium=badge" target="_blank"><img src="docs/press/producthunt.svg" alt="Career-Ops on Claude | Product Hunt" style="width: 206px; height: 54px; vertical-align: middle;" width="206" height="54"/></a>
</p>
<p align="center">
<a href="https://www.producthunt.com/products/santifer-io?utm_source=badge-featured&utm_medium=badge" target="_blank" rel="noopener noreferrer"><img src="docs/press/producthunt.svg" alt="Career-Ops on Claude | Product Hunt" style="width: 206px; height: 54px; vertical-align: middle;" width="206" height="54"/></a>
</p>
<p align="center"><sub>FEATURED IN</sub></p>
<p align="center"><sub>媒体报道</sub></p>
<p align="center">
<a href="https://wired.com.gr/article/to-ai-ergaleio-pou-fernei-epanastasi-ston-tropo-pou-psachnoume-douleia/" rel="noopener noreferrer nofollow"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/press/wired-dark.svg"><img src="docs/press/wired.svg" alt="WIRED" height="32"></picture></a>
@@ -31,42 +35,27 @@
---
<p align="center">
<img src="docs/demo.gif" alt="Career-Ops Demo" width="800">
<img src="docs/demo.gif" alt="Career-Ops 演示" width="800">
</p>
<p align="center"><strong>740+ job listings evaluated · 100+ personalized CVs · 1 dream role landed</strong></p>
<p align="center"><strong>评估超过 740 个职位 · 生成超过 100 份个性化简历 · 成功拿下理想职位</strong></p>
<p align="center">
<a href="https://warpchart.dev/hq">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://warpchart.dev/api/chart?theme=dark&v=3">
<img alt="Live star telemetry of santifer/career-ops" src="https://warpchart.dev/api/chart?theme=light&v=3" loading="lazy">
</picture>
</a>
</p>
<p align="center">
<a href="https://discord.gg/8pRpHETxa4"><img src="https://img.shields.io/badge/Join_the_community-Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
</p>
<p align="center">
<a href="https://github.com/santifer/career-ops/releases/latest"><img src="https://img.shields.io/npm/v/%40santifer%2Fcareer-ops?style=for-the-badge&labelColor=2b3137&color=2ea44f&label=release" alt="Latest release"></a>
</p>
<p align="center"><a href="https://discord.gg/8pRpHETxa4"><img src="https://img.shields.io/badge/加入社区-Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
&nbsp;
<a href="https://www.npmjs.com/package/@santifer/career-ops"><img src="https://img.shields.io/npm/dt/@santifer/career-ops?style=for-the-badge&logo=npm&color=CB3837&label=npx%20installs" alt="npm installs"></a></p>
<p align="center">
<a href="https://claude.com/claude-code"><img src="https://img.shields.io/badge/Built_with-Claude_Code-000?style=for-the-badge&logo=anthropic&logoColor=white" alt="Built with Claude Code"></a>
</p>
<p align="center">
<sub>Also runs on any agent-skill-standard CLI. See <a href="docs/SUPPORTED_CLIS.md">Supported CLIs</a>.</sub><br>
<sub>同样支持任何符合 agent-skill 标准的 CLI</sub><br>
<img src="https://img.shields.io/badge/Claude_Code-000?style=flat&logo=anthropic&logoColor=white" alt="Claude Code">
<img src="https://img.shields.io/badge/OpenCode-111827?style=flat&logo=terminal&logoColor=white" alt="OpenCode">
<img src="https://img.shields.io/badge/Antigravity_CLI-4285F4?style=flat&logo=google&logoColor=white" alt="Antigravity CLI">
<img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=flat&logo=google&logoColor=white" alt="Gemini CLI">
<img src="https://img.shields.io/badge/Codex-412991?style=flat&logo=openai&logoColor=white" alt="Codex">
<img src="https://img.shields.io/badge/Qwen-615CED?style=flat" alt="Qwen">
<img src="https://img.shields.io/badge/Kimi-FF4B4B?style=flat" alt="Kimi">
<img src="https://img.shields.io/badge/GitHub_Copilot-000?style=flat&logo=githubcopilot&logoColor=white" alt="GitHub Copilot">
<img src="https://img.shields.io/badge/Grok_Build_CLI-000?style=flat&logo=x&logoColor=white" alt="Grok Build CLI">
<br>
<img src="https://img.shields.io/badge/Node.js-339933?style=flat&logo=node.js&logoColor=white" alt="Node.js">
<img src="https://img.shields.io/badge/Go-00ADD8?style=flat&logo=go&logoColor=white" alt="Go">
@@ -76,323 +65,221 @@
<a href="TRADEMARK.md"><img src="https://img.shields.io/badge/Trademark-Policy-blue.svg" alt="Trademark Policy"></a>
</p>
## What Is This
## 这是什么
Career-Ops ([career-ops.org](https://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:
Career-Ops 可以把任何 AI 编码 CLI 变成完整的求职指挥中心。你不需要再手动用电子表格追踪申请流程,而是获得一个 AI 驱动的管道,能够:
- **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
- **评估职位**,使用结构化的 A-F 评分系统(10 个加权维度)
- **生成定制 PDF**,针对每份职位描述输出 ATS 优化简历
- **自动扫描招聘平台**GreenhouseAshbyLever、公司招聘页)
- **批量处理**,通过子代理并行评估 10 份以上职位
- **集中管理一切**,用单一事实来源配合完整性检查
> **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 是一个过滤器,帮你从数百个职位里找出真正值得投入时间的少数机会。系统强烈建议不要申请评分低于 4.0/5 的职位。你的时间很宝贵,招聘方的时间也一样。提交前一定要自己复核。
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.
career-ops 具备代理式工作能力:Claude Code 会用 Playwright 浏览招聘页面,通过推理你的简历与职位描述是否匹配来评估契合度,而不是只做关键词匹配;同时它也会根据每个职位调整你的简历。
> **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](https://santifer.io/career-ops-system).
这个系统的作者曾用它评估 740 多个职位、生成 100 多份定制简历,并拿到一份 Head of Applied AI 的工作。[阅读完整案例研究](https://santifer.io/career-ops-system)
## Features
## 功能特性
| 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`](modes/deep.md)) surfaces AI strategy, recent moves, engineering culture, and the angle your profile should take. Contact discovery ([`contacto`](modes/contacto.md)) 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`](modes/email.md)) 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. |
| 功能 | 说明 |
|------|------|
| **自动管道** | 粘贴一个 URL,即可获得完整评估 + PDF + 追踪记录 |
| **6 个评估模块** | 职位总结、简历匹配、职级策略、薪酬调研、个性化建议、面试准备(STAR+R)—— 外加一个用于核查职位真实性的 Block G 模块,可标记诈骗职位和幽灵职位 |
| **面试故事库** | 跨多次评估积累 STAR+Reflection 故事,沉淀出 5-10 个可回答任意行为面试题的主线故事 |
| **谈薪脚本** | 薪资谈判框架、地域折扣反驳话术、竞品 offer 杠杆策略 |
| **ATS PDF 生成** | 注入关键词的简历,采用 Space Grotesk + DM Sans 设计 |
| **平台扫描器** | 预配置 45+ 家公司(Anthropic、OpenAI、ElevenLabs、Retool、n8n...),支持跨 Ashby、Greenhouse、Lever、Wellfound 的自定义查询 |
| **批量处理** | 使用 `claude -p` worker 并行评估 |
| **Dashboard TUI** | 在终端 UI 中浏览、筛选和排序你的求职管道 |
| **人类在环** | AI 负责评估和建议,你负责决定和行动。系统绝不会自动提交申请,最终决定始终在你手上 |
| **管道完整性** | 自动合并、去重、状态标准化和健康检查 |
## Quick Start
## 快速开始
**Fastest way — one command:**
**最快的方式 —— 一条命令:**
```bash
npx @santifer/career-ops init
```
> 💡 `npx` ships with [Node.js](https://nodejs.org) — 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.)
> 💡 `npx` [Node.js](https://nodejs.org) 一起提供 —— 它只运行一次安装程序,
> 不会全局安装任何东西。还没有 Node?请先安装它。
> (已经在用 Claude Code / Gemini / Codex CLI?那你已经有它了。)
This clones the latest release into `./career-ops` and installs dependencies. Then:
这会把最新版本克隆到 `./career-ops` 并安装依赖。然后:
```bash
cd career-ops
claude # or codex / qwen / opencode / agy / grok — open your AI CLI here
claude # 或 gemini / codex / qwen / opencode —— 在这里打开你的 AI CLI
```
**On first launch, career-ops walks you through setup — your CV, profile and target roles — just by chatting. Nothing to edit by hand.**
**首次启动时,career-ops 会通过对话带你完成设置 —— 你的简历、个人档案和目标职位 —— 完全无需手动编辑任何文件。**
<details>
<summary><b>Prefer to set it up manually? (git clone)</b></summary>
<summary><b>更喜欢手动设置?(git clone</b></summary>
```bash
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 / 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"
npx playwright install chromium # 仅生成 PDF 时需要
claude # 打开你的 AI CLI —— 它会在首次启动时引导你完成设置
```
</details>
> **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.
> **这个系统本来就是设计给 Claude 直接定制的。** modes、职业原型、评分权重、谈判脚本,直接告诉 Claude 要改什么就行。Claude 读取的正是它自己会使用的那些文件,所以它知道该改哪里。
See [docs/SETUP.md](docs/SETUP.md) for the full setup guide, [docs/RUNNING_ON_A_BUDGET.md](docs/RUNNING_ON_A_BUDGET.md) for instructions on running career-ops cheaply using custom or local models, [docs/APPLY_AUTOFILL.md](docs/APPLY_AUTOFILL.md) for details on the ATS auto-fill flow, and [docs/FAQ.md](docs/FAQ.md) for answers to common setup questions.
完整配置指南见 [docs/SETUP.md](docs/SETUP.md)
## Antigravity CLI Integration
## Gemini CLI 集成
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.
career-ops 原生支持 [Gemini CLI](https://github.com/google-gemini/gemini-cli) —— 与 Claude Code OpenCode 的支持方式相同。所有 15 个斜杠命令均可使用,并基于相同的 `modes/*.md` 评估逻辑。
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
### 选项 A —— 原生 Gemini CLI(推荐)
```bash
# 1. Run in the career-ops directory
cd career-ops
agy
# 1. 安装 Gemini CLI(需要 Node.js 20+
npm install -g @google/gemini-cli
# 或: npx @google/gemini-cli --version
# 2. Use the unified /career-ops command with subcommands:
/career-ops "Senior AI Engineer at Anthropic..."
# 2. 在 career-ops 目录中运行 —— 首次启动时使用你的 Google 账号登录(免费)完成认证
cd career-ops
gemini
# 3. 使用统一的 /career-ops 命令及其子命令:
/career-ops "Anthropic 的资深 AI 工程师..."
/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/`).
`GEMINI.md` 文件会自动作为上下文加载。所有子命令都通过统一的 `.agents/skills/career-ops/SKILL.md` 定义进行路由。
## 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](docs/CODEX.md).
### Interactive Codex
### 选项 B —— 独立 API 脚本(无需安装 CLI)
```bash
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:
```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.
```
### One-shot Codex (`codex exec`)
```bash
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
```bash
# 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)
```bash
# 1. Get a free API key at https://aistudio.google.com/apikey
# 1. 在 https://aistudio.google.com/apikey 获取免费 API 密钥
cp .env.example .env
# Edit .env, set GEMINI_API_KEY=your_key_here
# 编辑 .env → 设置 GEMINI_API_KEY=***
# 2. Install dependencies
# 2. 安装依赖
npm install
# 3. Evaluate a job description
node gemini-eval.mjs "We are looking for a Senior AI Engineer..."
# 3. 评估职位描述
node gemini-eval.mjs "我们在招聘资深 AI 工程师..."
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"
npm run gemini:eval -- "职位描述文本"
```
> **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).
> **免费层:** 两种选项都无需付费。原生 CLI 使用 Google OAuthAPI 脚本使用 `gemini-2.0-flash`15 RPM,每天 1M token 免费)。
## Usage
Career-ops uses a shared command router. In CLIs that register slash commands, it looks like this:
## 用法
career-ops 是一个单一斜杠命令,带有多种模式:
```
/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 coverCover 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 batchBatch 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
/career-ops → 显示所有可用命令
/career-ops {粘贴职位描述} → 完整自动管道(评估 + PDF + 追踪)
/career-ops scan → 扫描平台上的新职位
/career-ops pdf → 生成 ATS 优化简历
/career-ops batch批量评估多个职位
/career-ops tracker → 查看申请状态
/career-ops apply用 AI 协助填写申请表
/career-ops pipeline处理待办 URL
/career-ops contacto生成 LinkedIn 外联消息
/career-ops deep → 深度公司研究
/career-ops training → 评估课程/证书
/career-ops project → 评估作品集项目
```
Or just paste a job URL or description directly -- career-ops auto-detects it and runs the full pipeline.
或者直接粘贴职位 URL 或职位描述,career-ops 会自动识别并运行完整流程。
In Codex, slash commands are not guaranteed. Use the same mode names in a prompt instead, or call them from `codex exec`.
## How It Works
## 工作原理
```
You paste a job URL or description
粘贴职位 URL 或职位描述
┌──────────────────┐
Archetype Classifies: LLMOps / Agentic / PM / SA / FDE / Transformation
│ Detection │
职业原型检测分类:LLMOps / Agentic / PM / SA / FDE / Transformation
└────────┬─────────┘
┌────────▼─────────┐
│ A-F Evaluation Match, gaps, comp research, STAR stories
(reads cv.md)
│ A-F 评估 │ 匹配度、能力缺口、薪酬调研、STAR 故事
(读取 cv.md
└────────┬─────────┘
┌────┼────┐
▼ ▼ ▼
Report PDF Tracker
.md .pdf .tsv
报告 PDF 追踪
.md .pdf .tsv
```
## Pre-configured Portals
## 预配置平台
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:
扫描器默认内置 **45+ 家公司** 和跨主流招聘站点的 **19 个搜索查询**。把 `templates/portals.example.yml` 复制成 `portals.yml` 后,你可以继续添加自己的目标公司:
**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
**AI Labs** AnthropicOpenAIMistralCohereLangChainPinecone
**语音 AI** ElevenLabsPolyAIParloaHume AIDeepgramVapiBland AI
**AI 平台:** RetoolAirtableVercelTemporalGleanArize AI
**联络中心:** AdaLivePersonSierraDecagonTalkdeskGenesys
**企业软件:** SalesforceTwilioGongDialpad
**LLMOps** LangfuseWeights & BiasesLindyCognigySpeechmatics
**自动化:** n8nZapierMake.com
**欧洲公司:** FactorialAttioTinybirdClarity AITravelperk
**Job boards searched:** 21 provider modules cover ATS APIs, board-wide feeds, XML/RSS feeds, markdown feeds, and local parsers. See [Supported job boards](docs/SUPPORTED_JOB_BOARDS.md) 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:
```bash
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.
**覆盖的招聘平台:** Ashby、Greenhouse、Lever、Wellfound、Workable、RemoteFront
## Dashboard TUI
The built-in terminal dashboard lets you browse your pipeline visually:
内置终端仪表盘可以让你更直观地浏览整个求职管道:
```bash
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.
功能包括:6 个筛选标签、4 种排序模式、分组/平铺视图、懒加载预览、行内状态修改。
There is also an **experimental web UI** (alpha, opt-in — nothing runs unless you start it): see [`web/README.md`](web/README.md).
## Project Structure
## 项目结构
```
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)
├── CLAUDE.md # 代理说明
├── cv.md # 你的简历(需要自行创建)
├── article-digest.md # 你的成果证明(可选)
├── 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
│ └── profile.example.yml # 个人档案模板
├── modes/ # 14 个技能模式
│ ├── _shared.md # 共享上下文(在这里自定义)
│ ├── oferta.md # 单个职位评估
│ ├── pdf.md # PDF 生成
│ ├── scan.md # 平台扫描器
│ ├── batch.md # 批量处理
│ └── ...
├── templates/
│ ├── cv-template.html # ATS-optimized CV template
│ ├── portals.example.yml # Scanner config template
│ └── states.yml # Canonical statuses
│ ├── cv-template.html # ATS 优化简历模板
│ ├── portals.example.yml # 扫描器配置模板
│ └── states.yml # 规范状态列表
├── 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)
│ ├── batch-prompt.md # 自包含 worker 提示词
│ └── batch-runner.sh # 编排脚本
├── dashboard/ # Go TUI 管道查看器
├── data/ # 你的追踪数据(已 gitignore
├── reports/ # 评估报告(已 gitignore
├── output/ # 生成的 PDF(已 gitignore
├── fonts/ # Space Grotesk + DM Sans
├── docs/ # Setup, customization, budget guide, architecture
└── examples/ # Sample CV, report, proof points
├── docs/ # 配置、定制、架构说明
└── examples/ # 示例简历、报告、成果证明
```
## Tech Stack
## 技术栈
![Claude Code](https://img.shields.io/badge/Claude_Code-000?style=flat&logo=anthropic&logoColor=white)
![Node.js](https://img.shields.io/badge/Node.js-339933?style=flat&logo=node.js&logoColor=white)
@@ -400,55 +287,59 @@ career-ops/
![Go](https://img.shields.io/badge/Go-00ADD8?style=flat&logo=go&logoColor=white)
![Bubble Tea](https://img.shields.io/badge/Bubble_Tea-FF75B5?style=flat&logo=go&logoColor=white)
- **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
- **代理**Claude Code,配合自定义技能与 modes
- **PDF**Playwright/Puppeteer + HTML 模板
- **扫描器**Playwright + Greenhouse API + WebSearch
- **Dashboard**Go + Bubble Tea + LipglossCatppuccin Mocha 主题)
- **数据**Markdown 表格 + YAML 配置 + TSV 批处理文件
## Also Open Source
## 也已开源
- **[cv-santiago](https://github.com/santifer/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.
- **[cv-santiago](https://github.com/santifer/cv-santiago)**:作者的作品集网站(santifer.io),包含 AI 聊天机器人、LLMOps Dashboard 和案例研究。如果你也需要一个能在求职时展示的作品集,可以 fork 它然后改成自己的版本。
## About the Author
## 关于作者
I'm [Santiago Fernández de Valderrama Aparicio](https://santifer.io/about) (santifer) -- 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.
我是 Santiago,现任 Head of Applied AI,也曾是一名创业者(创建并出售过一家公司,那家公司至今仍以我的名字运营)。我构建 career-ops 是为了管理我自己的求职流程,而它确实奏效了:我用它拿到了现在这份工作。
Curious how this repo is maintained in ~4 hours a week? Read [Agentic maintenance: how career-ops is run by a fleet of AI agents](https://santifer.io/ai-agent-fleet).
我的作品集和其他开源项目 → [santifer.io](https://santifer.io)
My portfolio and other open source projects → [santifer.io](https://santifer.io)
## Star 历史
## Disclaimer
<a href="https://www.star-history.com/?repos=santifer%2Fcareer-ops&type=timeline&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=santifer/career-ops&type=timeline&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=santifer/career-ops&type=timeline&legend=top-left" />
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=santifer/career-ops&type=timeline&legend=top-left" />
</picture>
</a>
**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.
**career-ops 是一个本地开源工具,不是托管服务。** 使用本软件即表示你确认:
See [LEGAL_DISCLAIMER.md](LEGAL_DISCLAIMER.md) for full details. This software is provided under the [MIT License](LICENSE) "as is", without warranty of any kind.
1. **数据由你掌控。** 你的简历、联系方式和个人数据都保留在你的设备上,并直接发送给你选择的 AI 提供商(Anthropic、OpenAI 等)。我们不会收集、存储或访问你的任何数据。
2. **AI 由你掌控。** 默认提示词会明确要求 AI 不要自动提交申请,但 AI 模型的行为可能不可预测。如果你修改提示词或使用不同模型,风险由你自行承担。**提交前务必核查 AI 生成内容的准确性。**
3. **你需要遵守第三方服务条款。** 你必须按照所使用招聘平台(Greenhouse、Lever、Workday、LinkedIn 等)的服务条款来使用本工具。不要用它向雇主发送垃圾申请,也不要对 ATS 系统造成过载。
4. **不提供任何保证。** 评估结果只是建议,不是真相。AI 模型可能会幻觉出并不存在的技能或经历。作者不对任何求职结果、申请被拒、账号受限或其他后果承担责任。
## Contributors
完整内容见 [LEGAL_DISCLAIMER.md](LEGAL_DISCLAIMER.md)。本软件依据 [MIT License](LICENSE) 以“按现状”方式提供,不附带任何形式的担保。
## 贡献者
<a href="https://github.com/santifer/career-ops/graphs/contributors">
<img src="https://contrib.rocks/image?repo=santifer/career-ops" />
</a>
Got hired using career-ops? [Share your story!](https://github.com/santifer/career-ops/issues/new?template=i-got-hired.yml)
通过 career-ops 成功入职?[分享你的故事!](https://github.com/santifer/career-ops/issues/new?template=i-got-hired.yml)
## License & Trademark
## 许可证与商标
The code is licensed under [MIT](LICENSE). The "career-ops" name and
brand are governed by the [Trademark Policy](TRADEMARK.md), permissive
for community use, reserved for commercial product naming and
endorsement.
代码以 [MIT](LICENSE) 许可证授权。"career-ops" 名称及品牌受 [商标政策](TRADEMARK.md) 约束 —— 允许社区使用,商业产品命名和背书需保留权利。
## Let's Connect
## 联系我们
[![Website](https://img.shields.io/badge/santifer.io-000?style=for-the-badge&logo=safari&logoColor=white)](https://santifer.io)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://linkedin.com/in/santifer)
[![X](https://img.shields.io/badge/X-000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/santifer)
[![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/8pRpHETxa4)
[![Email](https://img.shields.io/badge/Email-EA4335?style=for-the-badge&logo=gmail&logoColor=white)](mailto:hi@santifer.io)
[![Email](https://img.shields.io/badge/Email-EA4335?style=for-the-badge&logo=gmail&logoColor=white)](mailto:hi@santifer.io)