career-ops:本地跑的开源 AI 求职筛选工具
career-ops 是在本地 AI 编码 CLI 里运行的开源求职工具,能扫描招聘门户、把职位评估成 A-H 报告并打 1-5 分,再起草简历与申请材料,数据不出本机。这篇文章拆解它的安装命令、功能分组、参数用法,以及 Issue 里暴露的真实限制,帮你判断它是否适合你当前的求职节奏。
招聘方用 AI 筛候选人已经很多年,求职者这边还在手工翻招聘网站。career-ops 的作者把自己那轮搜索的数字留在了 README 里:740 条职位、投出 68 份申请、12 次面试、拿到 1 个 offer。他先把这套筛选逻辑做成工具自用,拿到工作之后再开源。
career-ops 是本地运行的 AI 求职工具,在 Claude Code、Codex 这类编码 CLI 里扫描招聘信息,把职位评估成 A-H 报告并打 1-5 分,判断值不值得投。
输入是一条职位描述,或者一批招聘门户上的职位;输出是一份结构化报告。总分之外,它标出幽灵岗与骗局、按你的真实 CV 算匹配度,再起草简历、求职信和答题草稿。所有数据留在本机,仓库写明没有遥测、没有官方后端,申请提交和邮件发送都不由它完成。

基础用法
安装与依赖
最短的入口是一条 npx 命令:
npx @santifer/career-ops init
npm 包名是 @santifer/career-ops。首次启动会在对话里问你的 CV、你想找什么、你拒绝什么,README 说不需要手工配置。项目根目录里有 Dockerfile 和 DOCKER.md,也可以走容器方式部署。仓库地址是 career-ops,主要语言为 JavaScript(88.3%,另有 TypeScript 6.7% 与 Go 3.2%),采用 MIT 许可证。仓库节选里没有给出 Node 版本这类运行环境约束,这一步以仓库当前说明为准。
最短能跑通的示例
README 的 Your turn 一节给的场景很具体:把一份你今晚本来打算投的职位贴进去。初始化完成之后,你在已经装好的 AI 编码 CLI 里跟它对话,提交职位描述。
返回结果分两种。一种是 do not apply,意思是这条职位不值得投,你今晚的时间省下来了。另一种是一份行动计划,告诉你下一步做什么。两种都是终端里的对话输出。
确认它跑起来了
跑通后会拿到一份结构化评估,终端的输出不再只是职位原文的回显。career-ops 把职位评估成由 A 到 H 多个块组成的报告,再折算出一个全局 1-5 分。
申请材料草稿与申请记录都留在你本机。仓库节选没有说明报告具体落在哪个目录,要接后续流程的话,得自己到运行目录里确认。
主要功能
职位筛选与评估
- 幽灵岗与骗局识别。在写任何材料之前先标记过期、虚假的招聘信息和骗局,避免把时间花在已经不存在的岗位上。
- A-H 结构化报告与 1-5 分。每条职位被拆成 A 到 H 的多个评估块,再得到一个全局 1-5 分。评分是判断该不该投的第一道闸。
- 按真实 CV 算匹配度。用你的 CV 给职位打分,匹配度弱时会建议跳过这条。README 说这个判断你可以推翻。
材料生成与进度记录
- 简历、求职信与答题草稿。评估过关后起草 CV、cover letter 和表单问题的答案,你读一遍再发。脚本本身从不 POST,提交动作永远由你点。
- 联系人笔记草稿。找出该联系的人并起草一段话,发送仍然交给你。
- 本地申请记录。每次申请都留在你机器上,不上传到项目方。
- 缺口分析。一轮连续被拒之后,它会指出你缺的那块能力。
参数与配置
常用参数
--cli:batch 命令的开关,用于多 CLI 批量评估,发布说明里列的取值是 opencode、gemini、qwen。--min-threshold与--min-vendor-n:analyze-patterns.mjs的两个阈值参数。早期版本对它们完全不校验,传非法值也不报错,这条已经修好。prepare-application.mjs:准备申请材料的脚本。仓库明确说它不会代替你提交,脚本里没有任何 POST 动作。
配置文件
仓库根目录有 .env.example,大小 3.5 KB,作为环境变量的模板。节选里没有列出各字段的名称与含义,配置前需要打开这个文件或 docs/ 下的说明核对。除此之外,仓库里没有说明存在别的配置文件。
实际使用中的坑
Issue 列表里有几条是用户真的踩到的,按现象和当前状态列出来。
- 筛选关键词按长度锚定词边界。(待解决)
title_filter的匹配逻辑会让Rust Engineer命中Zero Trust Engineer,DeFi命中Software Defined。短词按词边界锚定,缩写长度不一样就会漏掉或误命中。 - Windows 上并发写入丢条目。(已解决)
agent-inbox.mjs在 Windows 上并发添加会丢掉一条,原因是appendFileSync在那里不是原子操作。这个问题一度让所有 PR 的 Windows CI 变红。 - Windows 上测试全红。(已解决)
test-all.mjs在默认 Windows 环境下失败,git 把 7 个 skill entrypoint 符号链接检出成了文本文件,而 CI runner 复现不了这个环境。 - 翻译文档滞后。(已解决)16 个翻译版 README 还在写报告是 A-F,英文版已经改成 A-H。中文版 README 虽然是 17 种语言之一,但这类细节更新会慢一拍。
同类项目对比
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| career-ops | 已经在用 Claude Code 或 Codex,想自己掌控筛选逻辑的求职者 | 一条 npx 命令完成初始化,仓库另提供 Dockerfile | 需要自己搭好本地 AI 编码 CLI;首次运行结果粗糙,要跟它聊几轮才准;当前有 491 个开放 Issue | 你想一次拿到从批量筛选到材料草稿的完整链路,并且不接受数据离开本机 | career-ops |
| addsumtech/job-hunt | 用 Claude Code 和 Codex、想要一套可直接读的 Skill 的求职者 | 作为 Skill 接入 Claude Code 与 Codex | 描述里提到的环节是查找岗位、判断是否值得投递、制作与检验申请材料、模拟面试,未提及招聘门户批量扫描与 1-5 分报告 | 你只需要在已有的编码 CLI 上加一层判断,不想引入完整的报告结构 | addsumtech/job-hunt |
| markmcgrath/Dossier | 已经在用 Claude Cowork 的人 | 构建在 Claude Cowork 之上 | 依赖 Claude Cowork 这个平台,和 career-ops 的编码 CLI 路线不同,未逐一核实其扫描能力 | 你的日常工作流本来就跑在 Claude Cowork 里,不想再装一套 CLI | markmcgrath/Dossier |
如果你只想给自己已经在用的编码 CLI 加一层轻量判断,job-hunt 这类 Skill 形态的接入成本更低,不用走完整的初始化和报告链路。career-ops 的门槛在第一轮:它不认识你,需要你先花几轮对话把 CV、偏好和底线讲清楚,之后结果才准。加上 491 个开放 Issue 和翻译文档滞后,中文用户遇到问题时要做好直接读英文 Issue 的准备。追求开箱即用的话,这几个同功能项目都值得先看一眼再决定。
合规边界
career-ops 会去扫描招聘门户并抓取职位信息,这一部分要对使用范围有意识。只应把它指向你自己有权限访问的目标,遵守目标站点的 robots.txt 与服务条款,并控制请求频率。仓库里有一条真实案例:providers/getro.mjs 曾因为不做节流地连续分页,触发 Datadog WAF 对 IP 的封禁,表现为整个 board 静默丢失。批量抓取非公开数据、绕过站点限制、拿别人的账号去刷岗位,都可能带来账号封禁与法律风险,这类用法不在项目设计意图之内。
适合谁
已经在用 Claude Code、Codex、OpenCode 或 Antigravity 这类编码 CLI,并且愿意把求职数据留在本机的人,适合用它。你手头有一批想投的职位,需要先做一轮粗筛,从「今晚该投哪一条」这类问题开始,它的 A-H 报告和 1-5 分会直接省掉时间。
还没装过任何 AI 编码 CLI 的人,以及希望简历一键群发、自动投递的人,不适合用它。前者要先解决运行环境,后者在仓库的能力清单上就写着不会代你提交、不会发邮件。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 10.0 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 10.0 / 10 |
| 社区响应(权重 15%) | 9.8 / 10 |
| 文档质量(权重 15%) | 10.0 / 10 |
| 发布节奏(权重 10%) | 9.9 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
这篇把 career-ops 的安装命令、A-H 报告与 1-5 分逻辑、参数用法和 Issue 里暴露的限制放在一起。适合已用 Claude Code、Codex 这类编码 CLI、不愿把求职数据外传的人。要留意:740 条职位、68 份申请、1 个 offer 来自作者 README 自述,诀.com 未独立验证;
文中的 740 条职位、68 份申请、12 次面试、1 个 offer 来自作者公开披露的 README,诀.com 未独立验证,结果不保证复现。Issue 现象、参数修正与合规案例均引自仓库 Issue 与文档,A-H 报告结构与评分口径以仓库当前说明为准。焚评评分由焚.com 授权引用,随 GitHub 指标刷新。本文未做实测。用户反馈摘要
根据仓库 Issue 来看,反馈多是维护者拆出的入门级小任务,状态以已解决为主。已解决的有:参数不校验、四个脚本缺 --help、Windows 并发写入丢条目、符号链接被检出成文本。待解决的有:title_filter 按关键词长度锚定词边界,导致 Rust Engineer 命中 Zero Trust Engineer;16 个翻译 README 仍写 A-F,英文已改 A-H;ATS 可解析性检查与共享行为信号层的 RFC。多条报告提到 Windows 默认环境 CI 无法复现,翻译文档更新滞后一拍。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:career-ops-hq(career-ops-hq)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库