写在前面
这两年大家讨论 AI 求职,最常见的场景是“让 AI 帮我改简历”“让 AI 帮我写 cover letter”。这当然有用,但只解决了一个很小的问题。
真正麻烦的是整个求职过程:每天刷岗位、判断岗位值不值得投、针对不同 JD 改简历、记录投递状态、准备面试故事、复盘哪些公司有反馈、哪些岗位浪费时间。岗位一多,Excel 很快就乱了,浏览器收藏夹也很快就变成一堆打不开的链接。
Career-Ops 这个项目吸引我的地方就在这里。它不是一个单点工具,而是想把求职做成一套本地运行的“运营系统”:岗位发现、岗位评估、简历定制、申请材料生成、进度追踪、面试准备都放进同一条流水线里,再交给 Claude Code、Codex、Gemini CLI 这类 AI 工具去执行。
换句话说,公司现在会用 AI 筛候选人,候选人也可以反过来用 AI 筛公司。

一、Career-Ops 解决的不是“写简历”,而是“管理求职过程”
我一开始看到 Career-Ops,也以为它只是另一个 AI 简历生成器。看完 README 和官方文档后,感觉它的定位更接近“Job Search Command Center”。
普通简历工具的流程通常是这样的:你贴一段 JD,AI 帮你润色简历,然后就结束了。至于这个岗位到底值不值得投、投完之后怎么追踪、同一家公司后续有没有新岗位、面试时该讲哪个项目故事,这些事情还是得靠人手动维护。
Career-Ops 的思路不太一样。它默认你会长期求职,会同时看很多岗位,也会不断调整自己的材料。它把你的 cv.md、求职偏好、公司门户、岗位评估报告、PDF 简历、tracker 数据都放在本地目录中,让每一次投递都留下记录。
这种设计对开发者很友好,因为它把求职变成了一个可观察、可调试、可复盘的工程流程。

二、核心流程:从一个岗位链接到一套求职材料
Career-Ops 的实际使用流程可以理解成一条 pipeline。
首先,你准备一份结构化的 cv.md。这不是传统 Word 简历,而更像一个个人资料库,里面包含教育经历、工作经历、项目经历、技能栈、偏好方向、可讲的案例等内容。
然后,你把岗位链接或 JD 文本交给 Career-Ops。AI 会读取你的资料,分析岗位要求,再输出一份结构化评估报告。报告里通常会包含匹配度、优势、短板、风险点、建议动作等内容。
如果这个岗位值得投,它还可以继续生成针对该岗位的 ATS 友好 PDF 简历,并把岗位状态写入 tracker。后面你可以在 dashboard 里统一查看这些岗位的状态,而不是在聊天记录、浏览器标签页和 Excel 表格之间来回切。
大致可以概括成:
这套流程的重点不是“自动点提交按钮”,而是把求职里的重复判断和重复写作降下来。

三、为什么要强调 Claude Code、Codex 和 Gemini CLI?
Career-Ops 很适合拿来展示 AI 编程助手的另一种用法。
很多人对 Claude Code 或 Codex 的理解还停留在“帮我写代码”。但在 Career-Ops 这里,AI 编程助手更像是一个能操作本地项目结构的执行器。它不只是生成一段文本,而是会围绕本地文件、配置、报告、输出目录完成一串任务。
Claude Code 的优势在于 agent 工作流比较自然,适合把“分析岗位、生成报告、更新记录”这种多步骤任务串起来。Codex 对开发者来说也很顺手,尤其适合改配置、看目录结构、排查命令失败。Gemini CLI、OpenCode、Qwen、GitHub Copilot 等工具则提供了更多选择。
我觉得这里最值得关注的不是“哪个模型最强”,而是 Career-Ops 没有把自己锁死在单一 AI 产品上。AI 负责推理和生成,Career-Ops 负责流程、规范和数据落盘。这样即使以后模型变了,求职工作流本身仍然可以保留下来。

四、人岗匹配:比关键词匹配更有参考价值
很多所谓简历优化工具,本质还是关键词匹配。JD 里有 Python、React、LLM,它就判断你的简历有没有这些词。这个方法简单,但很容易误判。
真实求职时,岗位是否值得投,往往不是一个关键词能决定的。比如两个岗位都写 “LLM”,一个可能是做 RAG 工程落地,一个可能是做模型训练平台,一个可能只是业务系统里接了一个聊天机器人。它们对经验的要求完全不同。
Career-Ops 更有意思的地方,是它会尝试从多个维度判断岗位:
- 你的经历和岗位职责是否对得上。
- 技能覆盖是核心匹配,还是只命中了外围词。
- 这个岗位有没有明显能力缺口。
- 简历里有没有足够的项目故事支撑面试。
- 这个岗位是否值得投入时间定制材料。
- 如果要投,应该突出哪几段经历。
这类评估不一定百分百准确,但它能逼着你把“我感觉还行”变成更具体的判断。尤其在岗位很多的时候,结构化评分可以帮你过滤掉一批不值得花时间的机会。
五、简历生成:不是“润色”,而是按岗位重组信息
Career-Ops 的简历生成逻辑,不应该理解成简单润色。
比较合理的用法是:你先维护一份尽量完整的 cv.md,把自己的经历写全。不同岗位需要不同重点,AI 再根据 JD 从资料库里挑选更相关的部分,调整表达顺序,补充关键词,最后生成 ATS 友好的 PDF。
比如同样一段项目经历,投 AI infra 岗位时,可以突出模型服务、延迟优化、监控和部署;投产品工程岗位时,可以突出用户场景、业务指标、交付周期和跨团队协作。经历没变,但表达重点变了。
这一点比“把简历写得更漂亮”更重要。因为招聘系统和面试官真正关心的是:你的经历能不能解释这个岗位的问题。
当然,这里必须提醒一句:AI 生成的简历不能直接投。尤其是时间线、数字、职责边界、项目成果,必须人工检查。AI 很擅长把话写顺,但也可能把不该夸大的地方写过头。
六、岗位扫描:它不是帮 HR 发职位,而是帮求职者找职位
你原来的大纲里有一项是“多渠道发布一键同步演示”。这个说法更像企业招聘系统,也就是 HR 把一个岗位同步到多个招聘平台。
Career-Ops 不是这个方向。它更适合描述成“多渠道岗位发现”:从 Greenhouse、Ashby、Lever 或公司官网里扫描岗位,帮求职者减少手动刷官网的时间。
这个功能对海外求职尤其有用。很多 AI 公司、SaaS 公司、开发者工具公司都会用 Greenhouse、Ashby、Lever 这类招聘系统。你如果有一批目标公司,与其每天挨个打开官网,不如把门户配置进 portals.yml,让系统帮你定期扫描。
这一步的价值不是炫技,而是减少遗漏。好的岗位经常不是出现在招聘 App 推荐里,而是先出现在公司官网。
七、批量处理:求职不是一次聊天,而是一套 pipeline
AI 工具最容易被低估的一点,是批量处理能力。
如果你只投一个岗位,手动复制 JD 给 ChatGPT 也能解决问题。但如果你要评估 30 个岗位、准备 10 份定制简历、追踪 5 个面试流程,单次聊天就不够用了。
Career-Ops 的批量处理能力,适合把多个岗位统一丢进流程里。它可以批量生成评估报告,批量输出简历,批量更新 tracker。这样你不用每次重新问一遍“这个岗位适合我吗”,也不用在不同对话窗口里找上次 AI 给你的建议。
我觉得这就是它和普通 AI 聊天的分界线:聊天适合临时问题,Career-Ops 适合长期流程。
八、Dashboard:终端里的求职漏斗
很多人求职失败,不是因为能力不行,而是因为过程没有管理起来。投了哪些岗位、哪个岗位需要跟进、哪个岗位已经拒绝、哪个岗位还没准备面试故事,时间一长很容易忘。
Dashboard 的作用就是把这些状态拉到一个界面里。它不一定比 Notion 华丽,但对开发者来说足够直接:岗位列表、公司、评分、状态、筛选、排序都在终端里,和项目文件放在一起。
九、申请表回答:AI 起草,人来把关
海外岗位申请表里,经常会有一些开放题。
比如:
- Why are you interested in this role?
- Why this company?
- Tell us about a relevant project.
- What makes you a good fit?
这些问题看起来简单,但真写起来很耗时间。尤其是每家公司都要写一点不一样的内容,手动写很容易疲劳,最后变成模板化废话。
Career-Ops 可以基于你的简历和岗位 JD 草拟回答。这个功能的正确用法不是“复制粘贴直接提交”,而是让 AI 先给一个结构化草稿,人再根据真实经历改。
我更建议把它当成一个写作助手,而不是投递机器人。原因很简单:申请材料最终代表的是你本人,不是工具。AI 可以帮你节省第一稿时间,但不能替你承担真实性和表达边界。
十、边界能力:哪些地方好用,哪些地方不能盲信
这类工具写文章时最容易变成“全是优点”。但真要落地,边界反而更重要。
Career-Ops 强的地方很明显:
- 适合结构化评估岗位。
- 适合生成定制简历初稿。
- 适合管理大量岗位记录。
- 适合把面试准备沉淀成资料库。
- 适合开发者用命令行方式管理求职。
但它也有明显门槛:
- 第一次配置个人资料比较费时间。
- AI 的岗位判断需要人工校准。
- PDF 简历生成依赖本地环境。
- 国内招聘平台适配情况要自己测试。
- 不适合完全不想碰命令行的人。
还有一个隐私问题也要注意。Career-Ops 是本地运行,但你调用 Claude Code、Codex、Gemini CLI 等工具时,具体数据会不会发送到模型服务,取决于你使用的 provider 和配置。简历里通常有电话、邮箱、公司经历、项目细节,正式使用前最好先搞清楚数据边界。
十一、适合谁用?
我认为 Career-Ops 最适合三类人。
第一类是正在密集求职的开发者。尤其是目标岗位比较多,需要持续筛选、投递、复盘的人。岗位数量一多,手动管理的成本会明显上升。
第二类是 AI 工程师、数据工程师、产品工程师、解决方案架构师这类岗位。因为这些岗位本身就比较重视项目经历和技术叙事,针对 JD 调整材料会更有价值。
第三类是已经在使用 Claude Code、Codex、Gemini CLI 的用户。你本来就熟悉命令行和 AI agent 工作流,用 Career-Ops 会比较顺。
不太适合的人也很明确:只投一两个岗位、完全不想维护个人资料库、或者希望工具自动帮你海投的人。Career-Ops 不是为了偷懒投递,而是为了把高质量求职做得更系统。
十二、部署建议和踩坑点
如果你要自己试,建议先把环境准备好,不要一上来就跑复杂流程。
基础环境一般包括:
- Node.js
- npm
- Playwright 或 Puppeteer 相关依赖
- Claude Code、Codex 或 Gemini CLI
- 一份结构化的 cv.md
- config/profile.yml
- portals.yml
建议优先运行:
npm run doctor
这个命令适合作为第一步验收。很多问题,比如浏览器依赖没装、配置缺失、路径不对,都可以先在这里暴露出来。
Windows 用户要额外注意路径问题。尽量不要把项目放在带特殊字符或太深的目录里。PDF 生成失败时,优先检查 Playwright 依赖。还有一点很重要:包含个人隐私的配置文件不要提交到公开 GitHub 仓库。
总结
Career-Ops 真正有价值的地方,不是“帮你一键海投”,而是把求职变成了一套可以运营的系统。
它把岗位发现、岗位评估、简历定制、申请材料生成、面试准备和进度追踪串到了一起。对开发者来说,这种方式很自然:资料是 Markdown,流程是命令,输出是文件,状态可以追踪,结果可以复盘。
AI 在这里不是替你做决定,而是帮你把重复劳动压缩掉,把模糊判断结构化。岗位值不值得投,最终还是你决定;简历能不能用,最终还是你审核;申请材料是否真实,最终还是你负责。
但这已经足够有价值了。因为高质量求职最怕的不是写不出一句话,而是过程混乱、信息分散、复盘缺失。Career-Ops 给出的启发是:求职不一定只能靠运气,也可以像做项目一样,被拆解、被管理、被 AI 增强。



