## 项目概述

career-ops（又称 careerops）是一个开源的人工智能求职系统，旨在将任何 AI 编码 CLI（如 Claude Code、Codex、OpenCode、Antigravity 等）转变为完整的求职指挥中心。它通过结构化的 A-F 评分标准（1.0-5.0 分）评估职位列表，定制简历，并跟踪申请流程，全部在本地运行。该项目由 Santiago Fernández de Valderrama Aparicio 创建，他使用该系统评估了 740+ 职位，生成了 100+ 定制简历，并成功获得了一份 Head of Applied AI 的职位。career-ops 是 CareerOps Manifesto 的第一个参考实现，强调本地优先、人类在环（human-in-the-loop）的设计理念，绝不自动提交申请。

## 核心功能

- **自动流水线**：粘贴职位 URL 或描述，即可获得完整评估、PDF 和跟踪器条目。
- **A-G 评估**：包括角色摘要、简历匹配、级别策略、薪酬研究、个性化、面试准备（STAR+R），以及独立的 G 块职位合法性检查（识别骗局和幽灵职位）。
- **面试故事库**：跨评估积累 STAR+反思故事，形成 5-10 个主故事，可回答任何行为面试问题。
- **谈判脚本**：提供薪资谈判框架、地域折扣反驳、竞争性报价杠杆等。
- **ATS PDF 生成**：生成关键词注入的简历，使用 Space Grotesk 和 DM Sans 字体设计。
- **求职信生成器**：基于研究生成求职信，支持关键词镜像、四个交互式角度提示、聊天内审批门，并通过 HTML + Playwright 生成 A4 PDF。
- **申请邮件草稿**：生成正式的招聘人员/推荐/冷申请邮件，包含主题行、附件清单、来源支持的匹配点，仅草稿，绝不发送。
- **门户扫描器**：预配置 100+ 家公司（Anthropic、OpenAI、ElevenLabs、Retool、n8n 等），并支持自定义查询，覆盖 Ashby、Greenhouse、Lever、Wellfound。
- **批量处理**：通过无头 CLI 工作进程并行评估多个职位。
- **仪表盘 TUI**：终端界面，可浏览、筛选和排序您的求职流水线。
- **人类在环**：AI 评估和建议，您决定和行动，系统绝不自动提交申请。
- **流水线完整性**：自动合并、去重、状态规范化、健康检查。
- **面试套件**：时间块准备计划、带反馈的练习会话、面试后汇报，以及公司红旗检测器。
- **Offer 阶段**：合同阅读伴侣、期望/广告/实际薪资差距分析器。
- **跟进与回复**：跟进节奏计算器、种子提醒、雇主回复分类。
- **模式分析**：拒绝模式、各 ATS 渠道的推进率、终身漏斗统计、重发/幽灵职位检测。
- **插件系统**：可选集成（Gmail、Notion、Apify 等），默认禁用。
- **超越简历**：公司研究、联系人发现（招聘经理/招聘人员/同行）、正式申请邮件草稿。

## 适用与不适用场景

**适用场景：**
- 求职者希望系统化地筛选大量职位，避免盲目投递。
- 需要根据职位描述定制简历和求职信，提高 ATS 通过率。
- 希望跟踪申请状态、面试准备和薪资谈判。
- 偏好本地运行、数据自主可控的用户。
- 使用 AI 编码 CLI（如 Claude Code、Codex、OpenCode 等）的开发者。

**不适用场景：**
- 希望自动提交申请、无需人工审核的用户（career-ops 明确不支持）。
- 需要云端同步或多设备协作的用户（career-ops 是本地文件系统，无云组件）。
- 希望使用图形界面而非终端/CLI 的用户（虽然有实验性 Web UI，但主要界面是 TUI）。
- 对 AI 模型成本敏感且没有预算的用户（虽然支持免费层，但完整功能可能需要付费模型）。
- 需要扫描 LinkedIn 等禁止自动访问的平台（career-ops 明确拒绝此类集成）。

## 技术架构与依赖

- **核心语言**：JavaScript（Node.js）、Go（用于仪表盘 TUI）。
- **AI 代理**：通过 AGENTS.md 和 modes/*.md 与 AI 编码 CLI 交互，支持 Claude Code、Codex、OpenCode、Antigravity、Grok、Qwen、Kimi、GitHub Copilot 等。
- **PDF 生成**：Playwright + HTML 模板。
- **求职信生成**：HTML 模板 + Playwright（与简历相同的流水线）。
- **扫描器**：Playwright + Greenhouse API + WebSearch。
- **仪表盘**：Go + Bubble Tea + Lipgloss（Catppuccin Mocha 主题）。
- **数据存储**：Markdown 表格 + YAML 配置 + TSV 批处理文件。
- **依赖**：Node.js 18+（部分功能需要 22.5+）、git、Playwright Chromium（用于 PDF 生成）、Go 1.21+（可选，用于仪表盘）。

## 安装与快速开始

**最快方式——一条命令：**

```bash
npx @santifer/career-ops init
```

这会克隆最新版本到 `./career-ops` 并安装依赖。然后：

```bash
cd career-ops
claude   # 或 codex / qwen / opencode / agy / grok
```

首次启动时，career-ops 会通过聊天引导您完成设置——您的简历、个人资料和目标角色。无需手动编辑任何内容。

**手动安装（git clone）：**

```bash
git clone https://github.com/santifer/career-ops.git
cd career-ops && npm install
npx playwright install chromium   # 仅 PDF 生成需要
npm run doctor                     # 验证所有先决条件
cp config/profile.example.yml config/profile.yml  # 编辑您的详细信息
cp templates/portals.example.yml portals.yml       # 自定义公司
# 在项目根目录创建 cv.md，包含您的 Markdown 简历
claude   # 或 codex / opencode / qwen / agy / grok
```

**全局安装：**

```bash
npm i -g @santifer/career-ops
```

## 典型使用方法

**评估职位：** 粘贴职位 URL 或描述，career-ops 自动检测并运行完整流水线（评估 + PDF + 跟踪器）。

**扫描门户：** 使用 `/career-ops scan` 或 `npm run scan` 扫描预配置的公司和职位板。

**生成简历 PDF：** 使用 `/career-ops pdf` 或 `npm run pdf` 生成 ATS 优化的简历。

**生成求职信：** 使用 `/career-ops cover` 或 `npm run cover-letter`。

**批量评估：** 使用 `/career-ops batch` 或 `./batch/batch-runner.sh --limit 5`。

**跟踪申请：** 使用 `/career-ops tracker` 或 `npm run tracker` 查看状态。

**填写申请表：** 使用 `/career-ops apply` 或 `npm run prepare:application`（仅准备，不提交）。

**分析模式：** 使用 `npm run patterns` 分析拒绝模式和推进率。

**使用独立评估器：** 对于无 CLI 环境，可使用 `node openai-eval.mjs`、`node gemini-eval.mjs` 或 `node ollama-eval.mjs`。

## 配置与部署要点

- **配置文件**：`config/profile.yml` 是身份信息的单一来源，包括候选人信息、目标角色、叙事、薪酬、位置、文化筛选等。
- **门户配置**：`portals.yml` 定义要扫描的公司和搜索查询，可从 `templates/portals.example.yml` 复制。
- **简历模板**：`templates/cv-template.html` 可自定义字体、颜色和布局，也可使用其他模板（如 LaTeX、中文极简）。
- **状态管理**：`templates/states.yml` 定义规范状态，`normalize-statuses.mjs` 处理别名映射。
- **环境变量**：支持通过环境变量覆盖扫描路径（如 `CAREER_OPS_PORTALS`），便于多轨道搜索。
- **部署**：支持 Docker（`Dockerfile` 和 `docker-compose.yml`），但注意 career-ops 是本地优先工具，Docker 仅打包环境，不提供云服务。
- **更新**：使用 `npm run update` 应用上游更新，`npm run rollback` 回滚。
- **插件**：通过 `node plugins.mjs` 管理插件，插件默认禁用，需显式启用并配置密钥。

## 限制、风险与许可证

**限制：**
- 不自动提交申请，需要人工审核。
- 无云同步，数据仅存储在本地。
- 扫描器可能受第三方网站条款限制，禁止自动访问的平台（如 LinkedIn）不支持。
- 评估结果基于 AI 模型，可能产生幻觉，需人工验证。
- 免费层有每日请求和令牌限制。

**风险：**
- 数据隐私：简历和个人数据发送到您选择的 AI 提供商（如 Anthropic、OpenAI），请确保信任该提供商。
- 第三方条款：使用工具时需遵守所交互的职业门户的条款，不得滥用。
- 模型行为：AI 模型可能不可预测，修改提示词或使用不同模型需自担风险。
- 无保证：评估是建议而非事实，作者不对就业结果负责。

**许可证：** MIT 许可证。"career-ops" 名称和品牌受商标政策约束，允许社区使用，商业产品命名和背书需保留。

## 官方链接

- GitHub 仓库：https://github.com/santifer/career-ops
- 官方网站：https://career-ops.org
- 作者网站：https://santifer.io
- Discord 社区：https://discord.gg/8pRpHETxa4
- 最新发布：https://github.com/santifer/career-ops/releases/latest

## 信息来源和分析时间

本指南基于以下公开资料分析生成：
- GitHub 仓库 README（https://github.com/santifer/career-ops）
- CHANGELOG.md（版本 1.26.0，2026-08-10）
- CONTRIBUTING.md
- docs/ 目录下的文档（ARCHITECTURE.md、SETUP.md、SCRIPTS.md、FAQ.md 等）
- 最新发布信息（career-ops-v1.26.0，2026-08-10）

分析时间：2026-08-10（基于最新发布版本）。