莫潇羽 @ 源码七号站(www.fuyuan7.com)|原创首发,转载请注明出处
快速摘要
本文核心结论: Career-Ops 是一套运行在本地终端的开源 AI 求职辅助系统,由西班牙开发者 Santiago Fernández de Valderrama 构建,他用这套系统亲自评估了 600 余个职位,最终拿下了梦想中的 AI 负责人职位。项目于 2025 年 4 月开源,数周内在 GitHub 累计获得超过 41,400 颗 Star,社区用户已突破 2,300 人。
它不是一个批量投递工具,而是一个智能过滤器。 它的核心逻辑是:公司用 AI 筛选求职者,那求职者为什么不能用 AI 来筛选公司?整套系统基于 Claude Code(Anthropic 出品的 AI 编码 CLI 工具)构建,包含 14 个评估技能模式、A-F 分级打分体系、ATS 优化 PDF 简历生成、招聘平台自动扫描、批量并行处理等完整流程,且所有数据均保留在用户本地,不上传至任何服务器。
关键数字:
- 开源数周突破 41,400+ GitHub Star
- 覆盖 Greenhouse、Ashby、Lever、Wellfound 等主流招聘平台
- 预置 45+ 家知名科技公司招聘页面
- 14 个技能评估模式,15 条斜杠命令
- 支持 Claude Code、OpenCode、Gemini CLI 三种 AI 引擎
往下看有更详细的原理拆解、操作指南和配置技巧。
一、AI 时代的招聘困局:你用什么武器在找工作
如果你最近在找工作,可能会发现一个令人沮丧的现实:简历投出去,石沉大海;面试邀约稀少,等待漫长。不少人误以为是自己能力不够,但实际上,问题往往出在求职流程的起点——你的简历,可能根本没有被人看过。
当前绝大多数规模以上企业,已经将招聘流程的第一关交给了 ATS(Applicant Tracking System,应聘者跟踪系统) 来处理。这是一种专为自动化筛选简历设计的软件系统,它的工作逻辑并不复杂:先用特定算法解析简历中的文本内容,提取关键字段(学历、技能、工作年限、职位关键词等),再与职位描述(JD)进行比对,生成匹配分数,最终决定你的简历是进入 HR 的邮件箱,还是直接被归入"不符合要求"的文件夹。
据相关研究显示,在竞争激烈的岗位中,高达 75% 的简历 会在 ATS 系统的第一轮扫描中就被直接过滤掉,根本轮不到真人阅读。这意味着,你精心设计排版、花几个小时撰写的简历,很可能因为某个关键词的缺失或格式不被识别,就此消失在系统里,永远不会有人知道它的存在。
更令人头疼的是,随着大语言模型技术的普及,ATS 系统正在从原先粗糙的关键词匹配,进化为能够理解语义、推断能力、分析候选人职业轨迹的智能评估引擎。公司对候选人的筛选越来越精准、越来越高效——但求职者这一侧,许多人还在用十年前的方式找工作:打开招聘网站,看到合适的岗位就投,改改简历再投,然后坐等电话,陷入焦虑。
这种处境很像是一场不对等的比赛:裁判和规则都在向有技术优势的一方倾斜,而另一方的装备还是十年前的样子。
这是一场严重不对等的博弈。
2026 年的招聘市场,技术已经深度嵌入了几乎每一个筛选环节。企业在 IT 系统上的投入让候选人评估的效率提升了数倍,但候选人手里可用的辅助工具却寥寥无几,且大多数只是美化简历排版或者简单的关键词建议。没有哪个工具真正帮你做那件最关键的事:在你花时间正式投递之前,告诉你这个机会值不值得认真对待。
对抗这种不对等最直接的办法,不是再花更多时间打磨一份"完美简历",而是从底层改变你的求职策略——让 AI 替你做那些消耗精力却低附加值的分析工作,把你的注意力集中在真正值得投入时间的机会上。
这正是 Career-Ops 这个开源项目想解决的问题,也是它能在短时间内获得数万 Star 的根本原因——它触到了一个真实存在、规模庞大、但始终缺乏有效解决方案的痛点。
二、它是如何诞生的:一个 AI 从业者亲历的求职实验
Career-Ops 的开发者是西班牙人 Santiago Fernández de Valderrama(GitHub 用户名 santifer)。他有超过 16 年的创业经历,曾经将自己创办的手机维修连锁业务做到了相当规模,并且大量引入了 AI 技术来优化运营流程——包括用 ElevenLabs 的语音 AI 和 n8n 构建的 WhatsApp 自动化客服,实现了约 90% 的客户问题自助解决率,将每月人工工时节省超过 170 小时。2025 年,他完成了这项业务的出售,决定全面转型进入 AI 应用领域,寻找一个高级 Applied AI 相关的职位。
他最初的求职过程和大多数人一样:阅读职位描述,判断是否合适,调整简历,提交申请,等待回复。然而,当他开始系统性地分析自己投递的那些职位时,发现一个令人清醒的数字——在他当时关注的岗位里,大约 74% 的职位 对他来说并不是真正合适的机会,要么岗位层级不匹配,要么技术栈差异过大,要么公司文化与自己的预期相差甚远。而发现这个问题,通常需要花大量时间认真读完整份 JD 之后才能意识到。
这个发现让他停下来思考:如果能在最开始就用 AI 快速扫描和评估职位,自动过滤掉那 74% 不合适的机会,那么他的求职效率将提升数倍。于是,他暂停了求职,用了数周时间,在 Claude Code 的基础上构建了 Career-Ops 这套系统。
系统建好后,他用它评估了超过 600 个职位(项目文档中的不同版本显示不同数字,这是系统持续迭代过程中的累计,最终数字超过 740),生成了 100 多份定制简历,最终拿到了自己理想中的 Head of Applied AI 职位。值得一提的是,在面试过程中,Career-Ops 本身作为他构建的一个实际产品,成了他技术能力最直接的证明——他不需要在面试中口头描述自己"擅长构建多智能体系统",因为面试官已经能从他的 GitHub 上看到它真实运作。
拿到 Offer 之后,他将这套系统整理打包,以 MIT 开源协议发布到 GitHub。项目上线第一周,就收获了超过 41,000 个 Star,在 Reddit 上获得了 2,600 多个点赞,Discord 社区用户迅速增长到 2,300 多人,引发了法国、中国、韩国等多个国家媒体的广泛报道。从某种意义上说,这个项目本身也成了一次成功的求职产品发布——它展示了一个人在没有大公司背书的情况下,依然可以通过构建真实有价值的东西来引发行业关注。
这件事本身有一种让人会心一笑的逻辑闭环:他用一套多智能体 AI 系统去寻找多智能体 AI 相关的岗位,而这套系统本身展示出的架构能力和工程思维,比任何面试中的口头表述都更有说服力。
三、必须先搞懂的背景知识:ATS 系统到底在做什么
在深入理解 Career-Ops 的设计之前,有必要把 ATS 系统的工作原理说清楚。这是理解整套求职策略的基础。
ATS 的核心工作流程
一个标准的 ATS 系统,在处理求职者简历时,大体上经历以下几个阶段。
第一阶段:简历解析。系统首先将简历文件(Word、PDF 或网页表单)转换为可处理的结构化数据。它会尝试识别你的姓名、联系方式、工作经历、教育背景、技能标签等字段,将非结构化的文本转化为系统能够读懂的数据库记录。这一步的陷阱在于:复杂的排版、多栏布局、图表、特殊字体,都有可能干扰解析,导致内容识别错误或丢失。
第二阶段:关键词匹配与评分。系统提取职位描述中的核心词汇(包括技术栈、职责动词、行业术语、资质要求等),在你的简历文本中进行比对,生成一个匹配度分数。早期 ATS 是纯关键词匹配,现代系统已经引入了语义分析能力,能够理解"数据建模"和"数据分析"之间的关联,但关键词的密度和准确匹配仍然是重要权重因素。
第三阶段:排序与过滤。根据匹配分数和预设的门槛规则,系统将候选人分层排序。达到阈值的候选人进入 HR 的审核队列;未达到的则被系统自动归档,通常不会再有任何人工介入。
第四阶段:状态追踪。ATS 还承担着整个招聘漏斗的状态管理,记录每个候选人在各个环节的进展,方便招聘团队协同操作。
ATS 的演进:从关键词匹配到语义理解
早期的 ATS 系统逻辑相当粗暴:JD 里写了"Python",你的简历里也有"Python",就算匹配成功。这种机制催生了一种颇为荒诞的应对策略——简历堆砌关键词,把技能列表写得密密麻麻,甚至用白色字体在白色背景上隐藏大量关键词,专门用来欺骗 ATS 的文本识别。
然而随着大语言模型技术的普及,现代 ATS 的能力已经今非昔比。头部招聘平台的 AI 筛选模块,开始具备语义理解能力,能够判断"构建过 LLM 应用"和"有 LangChain 使用经验"之间的关联,能够识别候选人的职业成长轨迹是否与岗位要求的经验层级匹配,甚至开始尝试预测候选人的入职留存概率和岗位适配度。据行业数据,头部 ATS 厂商的入职留存预测准确率已经接近 70%。
这种技术演进对求职者提出了更高的要求:仅靠堆关键词已经不够用了,系统会分析你描述工作经历的方式、逻辑连贯性、成果量化程度,综合判断你是否真的具备相关能力。这也意味着,与其花时间研究如何"对付" ATS,不如用 AI 工具从更宏观的视角去分析职位与自身的真实匹配度,做出更聪明的投递决策。
求职者面对 ATS 的困境
站在求职者的角度,ATS 造成了几个叠加的核心困境。
信息不对称是最基础的问题。你看到一份 JD,无法知道 ATS 会用哪些关键词来筛选,也无法了解各维度在评分中的实际权重。你只能凭主观感觉判断自己和岗位的匹配度,而这种判断往往因为缺乏客观对照而严重偏差——有时你觉得非常匹配却石沉大海,有时你觉得差得很远却意外收到面试邀约。
时间损耗的不成比例是另一个核心痛点。认真阅读一份 JD 并评估其是否值得投递,通常需要 15 到 30 分钟,而这还只是"看是否值得投"的阶段,不包括后续调整简历、撰写求职信等工作。如果一天关注 10 个职位,一周就要消耗五六个小时在初步筛选上,而其中大量职位最终会发现并不合适。时间换来的不是机会,而是疲惫和自我怀疑。
每次投递都需要重新定制简历让这个问题更加棘手。经验丰富的求职者都知道,用一份通用简历投递所有职位是低效的,针对每个 JD 调整简历的关键词、调整描述角度、突出不同的侧重经历,才能提高通过 ATS 的概率。但这件事做起来既繁琐又重复,需要大量时间投入,而且很难保持高质量的一致性。
Career-Ops 正是针对这三个困境同时设计的:用 AI 的语义理解能力替代人工阅读和初步判断,用自动化的定制简历生成替代每次手动调整,用结构化的追踪系统替代电子表格的手动维护,把人的精力和注意力留给那些真正值得深入了解和认真对待的机会。
四、Career-Ops 的核心设计理念:过滤器,而不是投递机器
Career-Ops 的 README 中有一句话非常关键,原文是:"This is NOT a spray-and-pray tool."(这不是一个海投工具。)这句话可以说是整个项目的设计纲领。
市面上存在一些自动批量投递工具,它们的逻辑是:尽可能多地提交申请,用数量换概率。这种策略表面上有一定道理,但实际上存在两个根本性的问题。其一,大规模批量投递会触发招聘平台的反垃圾机制,反而降低你简历被认真对待的概率。其二,即使你获得了更多的面试机会,如果你对那个公司、那个岗位根本不了解,面试表现也会大打折扣。招聘是双向的,面试官很快就能感知到候选人是否真的对这个岗位有深入了解和真实兴趣,敷衍准备的面试比没有面试更糟糕。
Career-Ops 与批量投递工具完全相反——它的设计目标是帮你从大量职位中精选出真正值得花时间的少数机会,然后针对这些机会生成高质量的定制简历,让你的每一次投递都有意义、有重量。这不是在降低投递数量,而是在提高每次投递的质量和胜率。
系统内置了一条明确的建议:强烈不建议申请评分低于 4.0/5.0 的职位。 这背后的逻辑是,招聘是一个双向选择的过程,不合适的职位即使投递成功,后续的面试、沟通、入职适配也会消耗大量资源,对双方都是损耗。把精力集中在真正匹配的机会上,是对自己时间的尊重,也是对招聘方时间的尊重。一个 100 份简历定向投递、50 个获得面试的人,比一个 1000 份简历批量投递、100 个获得面试的人,求职体验和成功质量都要好得多。
另一个核心设计理念是 "人类在环"(Human-in-the-Loop,HITL)。系统永远不会替你提交任何申请,AI 负责分析和建议,但每一个最终决策都必须由你来做。这个设计既是对招聘平台使用条款的尊重,也是一种清醒的风险管理——AI 的评估可能有偏差,人的判断是最后的校验。每次评估的报告、每份生成的简历,都需要你亲自审阅和确认,才能进入下一步流程。这种设计让 Career-Ops 更像一个智能助理,而不是一个自动化机器。
在数据安全层面,Career-Ops 的所有运算都在本地完成。你的简历文件、个人配置、评估报告,全部保存在你自己的机器上,不经过任何第三方服务器。唯一的外部调用是你选择的 AI 引擎接口(如 Claude API),而这是直接在你和 AI 提供商之间进行的,Career-Ops 本身不收集、不存储、不转发任何数据。
五、系统架构深度拆解:Career-Ops 内部是怎么运转的
理解 Career-Ops 的架构,有助于你在使用过程中更好地做出配置决策,也能在遇到问题时快速定位原因。
整体架构概览
Career-Ops 的核心是一套基于文件驱动的多智能体管道。整个系统没有传统意义上的图形界面或后端服务,它的"大脑"是一系列 Markdown 格式的指令文件(称为"模式文件"或"技能文件"),这些文件告诉 AI 引擎在接收到特定命令时应该执行什么样的分析流程。
career-ops/
├── CLAUDE.md # 主指令文件,AI 的行为规范
├── cv.md # 你的简历(Markdown 格式,核心数据源)
├── article-digest.md # 你的项目证明点(可选)
├── config/
│ └── profile.yml # 你的个人信息与求职偏好配置
├── modes/ # 14 个技能评估模式
│ ├── _shared.md # 共享上下文(重点定制区)
│ ├── oferta.md # 单个职位完整评估
│ ├── pdf.md # PDF 简历生成
│ ├── scan.md # 招聘平台自动扫描
│ ├── batch.md # 批量处理模式
│ └── ... # 其他模式
├── templates/
│ ├── cv-template.html # ATS 优化的简历 HTML 模板
│ ├── portals.yml # 招聘平台配置(公司列表)
│ └── states.yml # 申请状态标准定义
├── dashboard/ # Go 语言编写的终端 UI 仪表盘
├── data/ # 你的求职追踪数据(已 gitignore)
├── reports/ # 评估报告(已 gitignore)
├── output/ # 生成的 PDF 文件(已 gitignore)
└── fonts/ # Space Grotesk + DM Sans 字体文件
完整的评估管道流转过程
当你向系统提交一个职位 URL 或粘贴职位描述时,Career-Ops 会按照以下流程自动运转:
你输入职位 URL 或描述
│
▼
┌─────────────────────┐
│ 职位类型识别 │ 分类到预设的职位原型
│ (Archetype Detection)│ (如:LLMOps / Agentic AI / PM /
└──────────┬──────────┘ SA / FDE / 转型岗 等)
│
▼
┌─────────────────────┐
│ A-F 综合评估 │ 读取 cv.md,执行 10 个维度的
│ (读取 cv.md) │ 加权评分,生成匹配分析报告
└──────────┬──────────┘
│
┌─────┼─────┐
▼ ▼ ▼
评估报告 PDF 追踪记录
(.md) (.pdf) (.tsv)
评估完成后,系统会同时生成三类输出:Markdown 格式的详细评估报告、ATS 优化的 PDF 简历文件,以及更新到求职追踪表格中的状态记录。
Playwright 的角色
Career-Ops 使用 Playwright(一个浏览器自动化库)来完成两类任务:一是访问招聘平台页面,抓取职位描述的完整文本内容;二是将评估结果渲染为 PDF 格式的简历文件。这也是为什么安装过程中需要单独安装 playwright chromium 的原因。
需要说明的是,系统对招聘平台的访问是只读的——它只读取页面内容用于分析,不会代替你登录账户或提交任何表单。
零 Token 平台扫描器
最新版本的 Career-Ops 引入了一个值得特别关注的功能:零 Token 平台扫描器(Zero-token Portal Scanner)。这个功能通过直接调用 Greenhouse、Ashby、Lever 等招聘平台提供的公开 API 接口来获取职位列表,而不是让 AI 去读取网页内容。这意味着,扫描 73 个以上的预置公司时,不消耗任何 AI token,在功能完全保留的情况下大幅降低了使用成本。
六、A-F 评分体系详解:AI 如何衡量一个职位对你的价值
Career-Ops 最核心的功能模块是其职位评估系统。它不依赖简单的关键词命中率,而是通过读取你的 cv.md 简历文件,对职位进行多维度的语义分析,最终给出一个综合评分。
评分维度
系统采用 A-F 分级制度(类似学业成绩体系),同时也会映射到 1-5 的数值评分,以便于排序和筛选。评估维度涵盖以下几个主要方面。
职位与候选人的技能匹配度,这是权重最高的维度。AI 不只比对关键词,而是推断你的历史经验与该职位所需能力之间的实质性关联程度,理解"构建自动化工作流"和"n8n/Zapier 经验"之间的语义近似性,而不仅仅是字面匹配。
职级与职业发展策略,评估这个职位在你的职业轨迹上处于什么位置,是向上发展、横向拓展还是下行风险,并给出相应的申请策略建议。
薪资水平研究,系统会基于职位描述中的线索、公司规模、行业标准等信息,对该职位可能的薪资区间进行分析,辅助你在面试环节做出更合理的预期判断。
招聘信息真实性核查,最新版本新增了"B 类职位"检测功能,用于识别可能的僵尸职位(长期挂着但并没有真实招聘需求的职位)。系统通过分析 JD 质量、发布时间、历史记录等信号,给出职位真实性的判断,避免你浪费时间在根本不存在的机会上。
个性化建议,基于对你的简历和该职位的综合理解,系统会给出具体的简历调整建议、需要补充哪些证明点、在申请信中应当强调什么角度。
面试准备(STAR+R 框架),系统会提前为你生成一系列基于该职位要求的行为面试问题,并从你的历史经历中提炼出符合 STAR+Reflection 格式的故事回答框架,帮助你在面试前就做好准备。
评估报告的结构
每次评估完成后,系统会生成一份格式如下的 Markdown 报告文件:
文件名格式:{序号}-{公司名}-{YYYY-MM-DD}.md
内容结构:
Block A:职位基本信息汇总
Block B:简历匹配度分析(含具体差距说明)
Block C:职级与发展策略
Block D:薪资范围研究
Block E:个性化建议
Block F:面试准备(STAR+R 故事)
Block G:职位真实性评估(Legitimacy Check)
最终评分:X.X / 5.0 → 字母等级 A/B/C/D/F
面试故事库的积累逻辑
这是 Career-Ops 中一个容易被忽视但非常有价值的设计。每次评估职位时,系统都会从你的简历中提炼出与该职位相关的 STAR+R 面试故事(Situation-Task-Action-Result-Reflection)。随着你评估的职位越来越多,系统会逐渐积累出一套跨越不同岗位类型的核心故事库,最终沉淀出 5 到 10 个能够回答几乎任何行为面试题的"主线叙事"。这些故事会随着每次评估而不断被精炼和优化。
七、14 个技能模式完整解析
Career-Ops 通过 modes/ 目录下的 Markdown 文件定义了 14 种不同的工作模式,每种模式对应不同的求职场景需求。这些模式文件既是 AI 的操作指令,也是你个性化定制系统的主要入口。
oferta(职位评估):这是系统最核心的模式。输入任意职位 URL 或 JD 文本,AI 自动完成从读取内容到生成评估报告、PDF 简历、追踪记录的完整流程。日常使用中调用最频繁的模式。
pdf(PDF 生成):独立的 PDF 简历生成模式,可以在不重新评估职位的情况下,单独为某个已评估的职位重新生成或更新定制化 PDF 简历。简历采用 Space Grotesk 和 DM Sans 字体组合,布局和内容都经过 ATS 兼容性优化。
scan(平台扫描):自动扫描 portals.yml 中配置的招聘平台,收集预置公司的最新职位列表,过滤掉已经评估过的,将新职位加入待处理队列。利用零 Token 扫描器,对多数平台的基础扫描不消耗 AI 调用额度。
batch(批量处理):使用 AI 子智能体并行处理多个待评估的职位 URL,可以同时处理 10 个以上的职位,大幅提升效率。适合一次性处理积累的待评估队列。
tracker(申请追踪):可视化展示当前求职管道的状态,包括各职位的评分、申请状态、跟进情况等,是一个集中管理申请进度的工具。
dashboard(仪表盘 TUI):这是一个用 Go 语言编写的终端 UI 应用,可以在命令行中以更直观的方式浏览、筛选和排序你的整个求职管道,支持按评分、公司名、状态等维度进行过滤。
apply(申请表辅助):帮助用 AI 辅助填写招聘平台的在线申请表单,节省手动填写的时间。注意:这个模式只是辅助填写,最终提交仍由你来操作,系统永远不会自动提交申请。
contacto(LinkedIn 外联):根据你要联系的对象类型(招聘者、招聘经理、同级别同行或面试官),生成不同风格和侧重点的外联消息框架,帮助你在职位申请之外建立更直接的人脉联系。
deep(公司深度调研):对特定公司进行更深入的背景研究,包括公司产品方向、近期动态、团队文化信号等,为面试准备和职位优先级判断提供更充分的信息。
pipeline(管道处理):处理待处理 URL 队列,将 scan 模式发现的新职位批量导入评估管道,是将扫描结果和评估流程衔接起来的中间环节。
training(课程评估):如果你正在考虑通过学习某门课程或考取某项证书来提升竞争力,这个模式会帮你评估该课程对你目标职位的实际加分程度,避免花时间在对求职帮助有限的学习上。
project(作品集评估):评估你正在考虑加入作品集的项目,从目标岗位的视角分析这个项目能证明哪些能力、能为你的求职故事增加什么维度。
negociacion(薪资谈判):内置了薪资谈判脚本框架,涵盖谈判话术结构、面对"本地化折扣"说法时的反驳逻辑、利用竞品 Offer 作为谈判杠杆的策略,帮助你在 Offer 谈判阶段做好充分准备。
followup(跟进提醒):新版本新增的模式,用于追踪各申请的跟进节点,根据不同申请状态配置差异化的跟进规则,提醒你何时应该主动发送跟进邮件,避免因为跟进不及时而错失机会。
八、完整操作指南:从零开始上手 Career-Ops
下面这部分是本文最核心的实操内容。即使你之前从未接触过命令行工具,跟着这份指南也可以顺利完成配置。
环境准备
在开始之前,你的电脑上需要安装以下基础工具:
- Node.js(版本 18 或以上):用于安装项目依赖和运行 Playwright
- Git:用于克隆项目代码
- Claude Code:Anthropic 官方出品的 AI 编码 CLI 工具,是 Career-Ops 的默认 AI 引擎(需要 Claude Max 或 Claude Pro 订阅)
- 或者,替代方案是使用 Gemini CLI(完全免费,使用 Google 账户认证)
如果你已经安装了 Node.js 和 Git,可以直接进入下一步。
第一步:克隆项目并安装依赖
打开终端,依次执行以下命令:
# 克隆项目仓库到本地
git clone https://github.com/santifer/career-ops.git
# 进入项目目录
cd career-ops
# 安装 Node.js 依赖包
npm install
# 安装 Playwright 的 Chromium 浏览器(PDF 生成必需)
npx playwright install chromium
安装过程可能需要几分钟,请耐心等待。
第二步:运行环境检查
Career-Ops 提供了一个自动检查脚本,可以帮你验证所有必要组件是否已正确安装:
npm run doctor
这个命令会检查 Node.js 版本、Playwright 安装状态、AI CLI 工具是否可用等各项前提条件,如果有问题会给出提示。
第三步:复制并编辑配置文件
项目提供了配置文件模板,你需要基于模板创建自己的配置:
# 复制个人配置文件模板
cp config/profile.example.yml config/profile.yml
# 复制招聘平台配置模板
cp templates/portals.example.yml portals.yml
然后用任意文本编辑器打开 config/profile.yml,填写你的基本信息:
# profile.yml 示例结构(需根据实际模板调整)
name: "你的姓名"
email: "your@email.com"
location: "城市,国家"
target_roles:
- "Senior AI Engineer"
- "Applied AI Lead"
narrative: |
你的职业故事摘要,用 2-3 句话概括你是谁、
你做过什么、你现在在找什么方向的机会。
strengths:
- "多智能体系统设计"
- "LLMOps 工程化"
- "产品化 AI 应用落地"
avoid:
- "纯前端开发岗位"
- "不涉及 AI 的传统软件开发"
portals.yml 是招聘平台的配置文件,项目已预置了 Anthropic、OpenAI、ElevenLabs、Retool、n8n 等 45 家以上知名科技公司的招聘页面地址,你也可以手动添加你感兴趣的公司。
第四步:创建你的简历文件(最关键的一步)
在项目根目录下创建一个名为 cv.md 的文件,将你的完整简历内容用 Markdown 格式写入。这个文件是整个系统的数据核心,所有的评估、匹配分析、PDF 生成,都以这份简历为基础。
写这份简历时,不需要考虑 ATS 关键词优化,也不需要在意排版——这只是数据源文件。你要做的是尽可能完整、诚实地记录你的经历,包括:
- 完整的工作经历(包括具体的项目、使用的技术、取得的可量化成果)
- 教育背景
- 技能标签(技术能力、软技能、工具使用等)
- 个人项目或开源贡献
- 可以作为能力证明的任何内容(公开演讲、文章、专利等)
一个简洁的 cv.md 示例结构如下:
# 张三
当前职位:AI 应用工程师
所在地:北京
联系方式:example@email.com
## 工作经历
### 某科技公司 · AI 工程师 · 2022年至今
- 主导构建了基于 RAG 架构的企业内部知识问答系统,覆盖 5000+ 员工,日均查询量 2000+
- 使用 n8n + LangChain 搭建了自动化合同审查工作流,将人工审查时间从 2 小时缩短至 15 分钟
- 参与 LLM 模型微调项目,在私有数据集上将领域问答准确率提升 18%
### 上一家公司 · 后端工程师 · 2019-2022
- ...
## 技能
Python / LangChain / LlamaIndex / OpenAI API / Claude API / n8n / Docker / PostgreSQL / ...
## 教育背景
某大学 · 计算机科学 · 学士 · 2015-2019
第五步:启动 Claude Code 并让 AI 帮你个性化配置
# 在 career-ops 目录下启动 Claude Code
claude
Claude Code 启动后,它会读取 CLAUDE.md 中的系统指令,了解 Career-Ops 的工作框架。你可以直接用自然语言告诉它你需要哪些定制化调整:
你(用自然语言输入):
"请把评估原型改成后端工程师和全栈工程师的相关岗位"
"把评估模式的语言改成中文"
"帮我把以下这几家公司加到 portals.yml:[公司名列表]"
"根据我粘贴的这份简历更新我的 profile"
Claude Code 会直接对配置文件进行修改,无需你手动编辑。这也是"Agentic"的体现——AI 不只是给建议,而是真的去执行操作。
第六步:开始使用
配置完成后,你有多种方式开始使用系统。
方式一:直接粘贴职位 URL
在 Claude Code 对话框中直接粘贴一个职位的链接:
/career-ops https://jobs.ashby.com/某公司/某职位链接
系统会自动访问该页面,读取职位描述,执行完整的评估流程,生成评估报告、定制 PDF 和追踪记录。
方式二:粘贴职位描述文本
如果职位链接无法直接访问,可以把 JD 文本复制粘贴过来:
/career-ops [在这里粘贴完整的职位描述文本]
方式三:扫描预置平台
/career-ops scan
系统会自动扫描 portals.yml 中配置的所有公司招聘页面,收集新职位。
方式四:批量处理
如果你积累了一批待评估的 URL,可以用批量模式并行处理:
/career-ops batch
方式五:查看求职管道
/career-ops tracker
或者启动 Go 语言仪表盘(需要先安装 Go 环境):
cd dashboard
go build -o career-dashboard .
./career-dashboard --path ..
完整的斜杠命令列表
Career-Ops 提供了 15 条斜杠命令,覆盖求职的各个环节:
/career-ops → 显示所有可用命令及使用说明
/career-ops {URL 或 JD} → 完整自动管道(评估 + PDF + 追踪)
/career-ops scan → 扫描招聘平台寻找新职位
/career-ops pdf → 单独生成 ATS 优化 PDF 简历
/career-ops batch → 批量并行评估多个职位
/career-ops tracker → 查看申请状态追踪表
/career-ops apply → 辅助填写在线申请表
/career-ops pipeline → 处理待评估的 URL 队列
/career-ops contacto → 生成 LinkedIn 外联消息
/career-ops deep → 对特定公司做深度调研
/career-ops training → 评估学习课程或认证的求职价值
/career-ops project → 评估作品集项目对求职的帮助
/career-ops negociacion → 生成薪资谈判脚本框架
/career-ops followup → 设置跟进节点与提醒规则
/career-ops dashboard → 启动终端可视化仪表盘
九、使用 Gemini CLI 作为替代方案
对于不方便使用 Claude Code 的用户,Career-Ops 同样支持 Google 的 Gemini CLI 作为 AI 引擎。这是一个完全免费的替代方案,使用 Google 账户认证,无需额外付费。
安装 Gemini CLI
# 全局安装 Gemini CLI
npm install -g @google/gemini-cli
# 使用 Google 账户进行认证
gemini auth
在 Career-Ops 中使用 Gemini
# 进入 career-ops 目录
cd career-ops
# 启动 Gemini CLI
gemini
项目根目录下的 GEMINI.md 文件会作为上下文被自动加载,所有的 15 条命令定义在 .gemini/commands/*.toml 文件中,使用方式与 Claude Code 完全一致。
免费额度说明
Gemini CLI 的免费套餐使用 gemini-2.0-flash 模型,提供每分钟 15 次请求、每天 100 万 token 的免费额度。对于普通求职场景下的日常评估需求,这个额度通常已经足够。
如果你更偏向用 API 脚本方式调用(不需要安装 CLI),可以在 Google AI Studio 申请 API Key,然后使用项目自带的 gemini-eval.mjs 脚本:
# 复制环境变量配置文件
cp .env.example .env
# 编辑 .env 文件,填入你的 GEMINI_API_KEY
# 直接评估职位描述
node gemini-eval.mjs "职位描述文本粘贴在这里"
# 或者评估本地的 JD 文本文件
node gemini-eval.mjs --file ./jds/my-job.txt
十、cv.md 的写法技巧与系统个性化配置
让系统读懂你:cv.md 的书写要点
Career-Ops 的评估质量,在很大程度上取决于 cv.md 的质量。项目文档中有一句话值得关注:"前几次评估可能不会太准确。系统还不了解你。给它提供更多上下文——你的职业故事、你的证明点、你的偏好、你擅长什么、你想避免什么。你投入的越多,它就变得越好。"
这里有几个具体的建议,可以让 cv.md 发挥更大的作用。
用行动动词和量化数据描述每段经历。 "负责过 AI 项目"这样的描述对 AI 来说很难做出准确判断。换成"主导设计并上线了基于 RAG 的知识库系统,服务 1500 名内部用户,响应准确率达到 87%",AI 可以从中提取技术栈、规模感、成果指标,评估的精准度会明显提升。
在简历末尾加一个"职业偏好与限制"章节。 你可以明确写出你希望寻找什么方向的机会,以及你明确不想从事的工作类型。这些信息会帮助系统在评估时更准确地判断某个职位与你的长期目标是否契合。
可选的 article-digest.md。如果你有技术文章、开源项目、演讲记录、或者其他可以公开引用的能力证明,可以在这个文件中汇总整理。系统在生成简历和评估报告时会引用这些内容作为证明点,让你的匹配度分析更有说服力。
个性化配置的几个关键调整点
修改职位原型(Archetypes):modes/_shared.md 文件中定义了系统用来分类职位的原型标签。默认配置是围绕 AI/机器学习相关职位设计的。如果你的目标岗位是后端工程师、产品经理、数据科学家或其他方向,可以告诉 Claude Code:"把职位原型修改为后端工程师和系统架构师相关的分类",AI 会直接编辑这个文件。
调整评分维度的权重:不同的人对不同评估维度的关注程度不同。有人更在意技术匹配度,有人更在意公司文化和发展空间。你可以根据自己的优先级,要求系统调整各维度的评分权重。
自定义公司列表:打开 portals.yml,你可以添加任何你感兴趣的公司及其招聘页面链接,支持 Greenhouse、Ashby、Lever、Wellfound 平台,也支持公司官网的招聘页面。
语言本地化:系统默认的提示词和评估报告是英文输出的。如果你更习惯阅读中文评估报告,可以要求 AI 将模式文件中的输出语言改为中文。
十一、最佳实践与使用注意事项
在实际使用 Career-Ops 的过程中,有几点经验值得提前了解,可以避免一些常见的困惑和误操作。
建立持续使用的习惯比单次使用更重要
Career-Ops 的价值不在于你第一次用它时能得到多完美的评估,而在于它随着时间积累越来越了解你。每次评估都是在丰富系统对你的认知:哪类职位你评分高、哪类你明确拒绝、哪些故事在多个评估中被反复提炼……这些信息让系统越来越像一个熟悉你的职业顾问,而不只是一个冷冰冰的分析工具。
建议建立一个固定的节奏,比如每周一次平台扫描,每天处理 3 到 5 个待评估职位,而不是偶尔想起来才用一次。把它变成日常求职流程的一部分,就像每天看新闻一样自然。
系统评分只是参考,不是答案
Career-Ops 会给出 A-F 的评级和 1-5 的数值评分,但这个分数是基于你提供的简历和配置进行的算法判断,不可能做到完美。有时候,一个分数不高的职位可能因为你有内部推荐人脉、或者你特别感兴趣那个行业方向,仍然值得认真对待。系统的建议是不申请 4.0 分以下的职位,但你永远有权覆盖这个建议。
把评分当作一个快速的优先级排序工具,而不是一个非此即彼的过滤开关。3.5 分的职位不代表你不应该投,只代表系统认为匹配度相对有限,你在决定投递前应该更认真地思考"我有什么特别的理由相信这次会例外"。
PDF 简历生成后需要人工审阅
系统生成的 ATS 优化 PDF 简历,是基于你的 cv.md 和职位描述自动定制的,内容上通常是准确的,但仍建议在投递前完整读一遍,确认没有事实性错误,并确保内容与你的实际情况相符。
特别需要注意的是:AI 在处理数字和时间节点时偶尔会产生细节错误,比如工作年限的计算、项目参与的时间跨度等。另外,系统生成的一些描述措辞可能过于书面化或者不够符合你的个人表达习惯,适当的人工润色会让简历读起来更自然、更有个人辨识度。
善用"谈判脚本"功能做好 Offer 准备
很多人在整个求职过程中把大量精力放在投递和面试准备上,却在最后的 Offer 谈判环节准备不足。Career-Ops 的 /career-ops negociacion 命令提供了一套结构化的谈判框架,包括如何设定第一轮报价、如何回应"我们预算有限"类的说辞、如何在没有竞品 Offer 时仍然维持谈判空间等策略。在收到 Offer 后、正式回复之前,不妨先跑一下这个模式,让 AI 帮你梳理谈判逻辑。
遵守各招聘平台的使用条款
Career-Ops 的作者在文档中明确说明,使用这套工具时需要遵守各个招聘平台的服务条款。系统的平台扫描功能是以合理频率访问公开信息,不是高频爬虫或 API 滥用,但仍需保持合理使用。不要用这套工具对同一家公司的同一个职位反复操作,也不要用它来批量发送没有个性化内容的外联消息。被招聘平台封禁的风险,比手动操作的效率损失要大得多。
关于 ghost job(幽灵职位)的判断
新版本加入的 Block G 职位真实性检测是一个很实用的功能。在当前的招聘市场上,长期挂着但实际上并没有真实招聘需求的职位并不少见,有些公司挂着 JD 是在被动地建立人才库,有些是内部已经确定了候选人但流程上还需要走公开发布的程序,有些则是简单地懒得下线过期职位。
Career-Ops 对这类职位会综合分析 JD 文本质量、职位发布时间、历史重发记录、市场供需信号等维度给出真实性评级,帮助你把精力优先集中在更可能有真实缺口的机会上。当然,这个判断也有一定误判率,分数低不代表一定是假职位,建议配合自己对该公司的实际了解来综合判断。
十二、数据安全与隐私:你的信息如何被处理
对于一个涉及个人简历和求职信息的工具,数据安全是不可回避的话题。Career-Ops 的隐私设计有以下几个关键点需要了解。
完全本地化运行。Career-Ops 本身不是一个 SaaS 服务,它没有后端服务器、没有用户账户系统、也没有任何数据上传机制。所有的文件(cv.md、profile.yml、评估报告、生成的 PDF)都保存在你本地机器的项目目录下,且大部分敏感目录(data/、reports/、output/)默认被加入了 .gitignore,不会因为 git 操作而意外上传到公开仓库。这一点非常重要——很多人在使用开源项目时习惯 push 到自己的 GitHub 仓库做版本管理,要注意这些包含个人信息的目录已经被系统保护起来了,但 cv.md 和 profile.yml 本身的保护需要你自己留意。
AI 调用的数据流向。当 Career-Ops 调用 Claude Code 或 Gemini CLI 进行评估时,你的简历内容和职位描述会作为 prompt 的一部分发送给 AI 提供商的 API。这意味着数据会经过 Anthropic 或 Google 的服务器处理,遵循这些公司的隐私政策。如果你对此有顾虑,应当查阅对应 AI 提供商的数据使用协议,了解你的 prompt 数据是否会被用于模型训练,以及数据保留期限等细节。目前 Anthropic 和 Google 都提供了相应的企业级隐私选项,如果涉及敏感的职业信息,可以考虑在使用 API 时关闭对应的数据共享选项。
未来的本地模型支持。项目 roadmap 中提到,Career-Ops 将支持接入本地运行的开源 AI 模型(无需 API Key 和订阅),届时所有推理运算都可以完全在本地完成,彻底解决数据外传的顾虑。这个功能目前正在开发中,感兴趣的用户可以持续关注 GitHub 的 releases 页面获取最新进展。
GDPR 等法规合规。项目的 LEGAL_DISCLAIMER.md 文件中包含了对 GDPR、欧盟 AI 法案等法规的说明和用户须知,明确了用户对自己数据的控制权、工具的免责声明范围、以及用户对招聘平台的遵守义务。如果你在欧盟地区使用,建议阅读这份文件。对于国内用户,目前国内相关数据保护法规(如《个人信息保护法》)的适用细节需要根据你实际使用的服务提供商的条款来判断。
总体来说,Career-Ops 在数据保护方面的设计是相当负责任的——本地存储、不收集数据、明确的 HITL 边界,这些设计让用户对自己的信息始终保有控制权。相较于许多"免费"的在线简历优化工具(其商业模式往往依赖收集和分析用户简历数据),Career-Ops 这种本地化开源工具的隐私保护水准要好得多。
十三、项目当前的局限性与适用边界
说明一个工具能做什么,和说清楚它不能做什么,同样重要。
Career-Ops 目前最适合的使用场景,是面向以英文为主要工作语言的国际科技公司的求职。它的预置平台列表(Greenhouse、Ashby、Lever、Wellfound 等)主要覆盖的是欧美科技行业的招聘生态。如果你的目标是国内企业,这些平台的适用性会打折扣,需要自行配置国内招聘平台的地址,且系统的许多提示词和模板是为英文简历和英文 JD 优化的,中文场景下需要做相应的汉化调整。
虽然开发者已经确认系统支持中文模式(README 中也提供了中文版本),但整体体验在中文求职场景下仍处于早期阶段,需要用户付出更多的配置成本。如果你有意在中文场景下使用,建议先完整跑通英文场景的流程,对系统架构有了直观认识之后,再着手做汉化改造,这样会更有效率。
此外,Career-Ops 需要用户具备基本的命令行操作能力。整体流程并不复杂,但对于完全没有接触过终端操作的人来说,仍然有一定的上手门槛。如果你从来没有用过 git clone、npm install 这类命令,建议先花一两个小时熟悉基本的命令行操作,再来上手这个项目。网上有大量针对零基础用户的命令行入门教程,这个投资是值得的——不只是为了用 Career-Ops,更是因为命令行能力在 AI 工具日益普及的今天越来越有用。
对 AI 引擎的依赖也是一个需要考量的因素。Career-Ops 的核心评估能力依赖 Claude Code 或 Gemini CLI 的语言模型能力,而 Claude Code 需要 Claude Max 或 Claude Pro 的订阅账户。Gemini CLI 虽然有免费套餐,但在处理复杂评估任务时,速率限制可能会影响批量处理的效率。项目 roadmap 中提到的本地模型支持一旦上线,这个依赖问题将得到根本性改善,届时整套系统的使用门槛会进一步降低。
另外值得注意的是,系统在处理国内求职平台的职位页面时,可能遇到 Playwright 无法正常抓取内容的情况,原因在于部分国内平台的页面结构或登录机制与 Playwright 的默认配置不兼容。这类问题通常需要额外的技术配置才能解决,对于非技术背景的用户来说有一定难度。遇到这种情况,最直接的解决方法是把 JD 文本手动复制粘贴到对话框中,让 AI 直接分析文本而不是爬取页面。
最后,Career-Ops 的评估质量在很大程度上取决于你投入的"训练成本"。如果你的 cv.md 写得过于简单、profile.yml 配置得不够细致,系统的评估精准度就会大打折扣。这不是工具本身的问题,而是任何 AI 系统共同的特性:你给它的信息质量决定了它给你的分析质量,"垃圾进垃圾出"这条铁律在这里同样适用。
十四、关于这套系统更深层的思考
Career-Ops 作为一个开源工具本身固然值得关注,但它背后折射出的求职逻辑变化,或许更值得深思。
最近几年,招聘市场正在经历一场典型的技术不对称。公司这一侧,ATS 系统、AI 简历筛选、视频面试分析工具已经相当成熟,筛选候选人的效率越来越高、成本越来越低。但求职者这一侧,多数人的工具箱里还是 Word 文档和招聘网站的搜索框。这种不对称不是一两年内能完全弥合的,但像 Career-Ops 这样的工具的出现,至少让部分求职者开始站到同一条技术起跑线上。
从更宏观的视角看,这场不对称的根源在于信息处理能力的差距。一家公司的 HR 团队,即便使用了完善的 ATS 系统,在筛选每个候选人时仍然有固定的处理框架和评估标准,而这些标准写在 JD 里,是可以被分析和应对的。Career-Ops 做的,本质上是帮你用 AI 的速度和精度来完成这个分析过程,让你在投递之前就已经做了人类通常只有在被拒绝之后才会反思的功课。
更深层的启示:作品就是最好的简历
Career-Ops 的作者 Santiago 用它找到工作这件事本身,已经超越了工具本身的价值——他用一套 AI 求职系统去应聘 AI 系统相关的岗位,而这套系统本身就是他最有力的能力证明。这种"作品即证明"的逻辑,在 AI 时代会越来越重要。你构建的东西、你解决的真实问题,比你在简历上写的任何形容词都更有说服力。
Career-Ops 项目在 GitHub 上病毒式传播这件事本身也很有意思:它走红不是因为做了精心的营销,而是因为它解决了一个真实存在、很多人都在面对却缺乏有效工具应对的问题。好项目自己会说话,好作品自己会传播。这是另一个维度的启示——在信息噪音泛滥的时代,真正解决问题的东西反而会以意想不到的方式被发现和传播。
对国内求职者的参考价值
如果你的目标是国内企业或以中文为主的求职场景,Career-Ops 目前的完整价值可能需要打一定折扣。它的预置平台、默认配置和大部分提示词都是为英文求职环境优化的。但它的核心方法论——用 AI 进行结构化职位评估、批量定制简历、系统化追踪申请状态——这些理念完全可以迁移到中文求职场景中。
你可以在完成中文汉化配置之后用它来评估国际职位,也可以把它作为学习 Prompt 工程和 AI 工作流设计的实战案例——拆解 modes/ 目录下每一个模式文件的写法,理解为什么要这样设计提示词,本身就是非常有价值的学习材料。事实上,Career-Ops 的每一个模式文件都是一个精心设计的、有明确目标的系统 Prompt,研究它们的结构对于任何想要深入学习 Prompt Engineering 的人来说都有直接的参考价值。
作为源码七号站(www.fuyuan7.com)的站长,莫潇羽会持续跟踪 Career-Ops 项目的迭代进展,如果后续有更完善的中文适配版本或值得记录的更新,也会在站内同步分享。如果你在使用过程中遇到问题,或者已经在用这套工具并有心得体会,欢迎在评论区留言交流。
工具是方法,方法服务于目标。你的目标是找到一份让自己真正满意的工作,而不是"更高效地投出更多简历"。这是 Career-Ops 设计哲学里最值得记住的一点:宁可少投三个,保证投出去的每一个都是真正值得的。那些把精力集中在真正匹配的机会上、并且认真为每次投递做好准备的人,最终的求职结果往往比那些广泛撒网的人要好得多——不只是因为胜率更高,还因为最终找到的工作本身会更合适,入职之后的满意度和适应速度都会有明显差异。
项目资源汇总
- GitHub 仓库:https://github.com/santifer/career-ops
- 官方文档站:https://career-ops.org
- 开发者个人主页:https://santifer.io
本文由莫潇羽@源码七号站(www.fuyuan7.com)原创撰写,转载请注明出处。文章所涉及的开源项目均为作者独立分析,与项目方无任何商业关联。
文末 SEO 附录
链接别名(URL Slug)
career-ops-ai-job-search-guide
文章 SDK(用于网站后台填写)
Title:
Career-Ops 深度评测:用 AI 替你筛选 Offer,开源求职系统完整操作指南
Description:
Career-Ops 是一套基于 Claude Code 的开源 AI 求职辅助系统,开源数周获得 41,000+ GitHub Star。本文深度拆解其架构原理、A-F 评分体系、14 个技能模式,并提供从环境安装到实战使用的完整操作指南,适合程序员、AI 从业者及技术求职者参考。
Keywords:
Career-Ops,AI求职工具,开源求职系统,ATS简历优化,Claude Code,AI筛选Offer,GitHub开源项目,求职自动化,简历生成,AI招聘,智能求职,多智能体求职,Playwright简历PDF,Gemini CLI求职
适合自媒体平台的高点击率标题
推荐标题:
开源一个月 41,000 Star!这个 AI 求职神器帮你筛 Offer、改简历、备面试,全流程实操详解
用 AI 替你筛选 Offer:开源求职系统 Career-Ops 深度拆解,从安装到实战全流程详解
莫潇羽 @ 源码七号站(www.fuyuan7.com)|原创首发,转载请注明出处
快速摘要
本文核心结论: Career-Ops 是一套运行在本地终端的开源 AI 求职辅助系统,由西班牙开发者 Santiago Fernández de Valderrama 构建,他用这套系统亲自评估了 600 余个职位,最终拿下了梦想中的 AI 负责人职位。项目于 2025 年 4 月开源,数周内在 GitHub 累计获得超过 41,400 颗 Star,社区用户已突破 2,300 人。
它不是一个批量投递工具,而是一个智能过滤器。 它的核心逻辑是:公司用 AI 筛选求职者,那求职者为什么不能用 AI 来筛选公司?整套系统基于 Claude Code(Anthropic 出品的 AI 编码 CLI 工具)构建,包含 14 个评估技能模式、A-F 分级打分体系、ATS 优化 PDF 简历生成、招聘平台自动扫描、批量并行处理等完整流程,且所有数据均保留在用户本地,不上传至任何服务器。
关键数字:
- 开源数周突破 41,400+ GitHub Star
- 覆盖 Greenhouse、Ashby、Lever、Wellfound 等主流招聘平台
- 预置 45+ 家知名科技公司招聘页面
- 14 个技能评估模式,15 条斜杠命令
- 支持 Claude Code、OpenCode、Gemini CLI 三种 AI 引擎
往下看有更详细的原理拆解、操作指南和配置技巧。
一、AI 时代的招聘困局:你用什么武器在找工作
如果你最近在找工作,可能会发现一个令人沮丧的现实:简历投出去,石沉大海;面试邀约稀少,等待漫长。不少人误以为是自己能力不够,但实际上,问题往往出在求职流程的起点——你的简历,可能根本没有被人看过。
当前绝大多数规模以上企业,已经将招聘流程的第一关交给了 ATS(Applicant Tracking System,应聘者跟踪系统) 来处理。这是一种专为自动化筛选简历设计的软件系统,它的工作逻辑并不复杂:先用特定算法解析简历中的文本内容,提取关键字段(学历、技能、工作年限、职位关键词等),再与职位描述(JD)进行比对,生成匹配分数,最终决定你的简历是进入 HR 的邮件箱,还是直接被归入"不符合要求"的文件夹。
据相关研究显示,在竞争激烈的岗位中,高达 75% 的简历 会在 ATS 系统的第一轮扫描中就被直接过滤掉,根本轮不到真人阅读。这意味着,你精心设计排版、花几个小时撰写的简历,很可能因为某个关键词的缺失或格式不被识别,就此消失在系统里,永远不会有人知道它的存在。
更令人头疼的是,随着大语言模型技术的普及,ATS 系统正在从原先粗糙的关键词匹配,进化为能够理解语义、推断能力、分析候选人职业轨迹的智能评估引擎。公司对候选人的筛选越来越精准、越来越高效——但求职者这一侧,许多人还在用十年前的方式找工作:打开招聘网站,看到合适的岗位就投,改改简历再投,然后坐等电话,陷入焦虑。
这种处境很像是一场不对等的比赛:裁判和规则都在向有技术优势的一方倾斜,而另一方的装备还是十年前的样子。
这是一场严重不对等的博弈。
2026 年的招聘市场,技术已经深度嵌入了几乎每一个筛选环节。企业在 IT 系统上的投入让候选人评估的效率提升了数倍,但候选人手里可用的辅助工具却寥寥无几,且大多数只是美化简历排版或者简单的关键词建议。没有哪个工具真正帮你做那件最关键的事:在你花时间正式投递之前,告诉你这个机会值不值得认真对待。
对抗这种不对等最直接的办法,不是再花更多时间打磨一份"完美简历",而是从底层改变你的求职策略——让 AI 替你做那些消耗精力却低附加值的分析工作,把你的注意力集中在真正值得投入时间的机会上。
这正是 Career-Ops 这个开源项目想解决的问题,也是它能在短时间内获得数万 Star 的根本原因——它触到了一个真实存在、规模庞大、但始终缺乏有效解决方案的痛点。
二、它是如何诞生的:一个 AI 从业者亲历的求职实验
Career-Ops 的开发者是西班牙人 Santiago Fernández de Valderrama(GitHub 用户名 santifer)。他有超过 16 年的创业经历,曾经将自己创办的手机维修连锁业务做到了相当规模,并且大量引入了 AI 技术来优化运营流程——包括用 ElevenLabs 的语音 AI 和 n8n 构建的 WhatsApp 自动化客服,实现了约 90% 的客户问题自助解决率,将每月人工工时节省超过 170 小时。2025 年,他完成了这项业务的出售,决定全面转型进入 AI 应用领域,寻找一个高级 Applied AI 相关的职位。
他最初的求职过程和大多数人一样:阅读职位描述,判断是否合适,调整简历,提交申请,等待回复。然而,当他开始系统性地分析自己投递的那些职位时,发现一个令人清醒的数字——在他当时关注的岗位里,大约 74% 的职位 对他来说并不是真正合适的机会,要么岗位层级不匹配,要么技术栈差异过大,要么公司文化与自己的预期相差甚远。而发现这个问题,通常需要花大量时间认真读完整份 JD 之后才能意识到。
这个发现让他停下来思考:如果能在最开始就用 AI 快速扫描和评估职位,自动过滤掉那 74% 不合适的机会,那么他的求职效率将提升数倍。于是,他暂停了求职,用了数周时间,在 Claude Code 的基础上构建了 Career-Ops 这套系统。
系统建好后,他用它评估了超过 600 个职位(项目文档中的不同版本显示不同数字,这是系统持续迭代过程中的累计,最终数字超过 740),生成了 100 多份定制简历,最终拿到了自己理想中的 Head of Applied AI 职位。值得一提的是,在面试过程中,Career-Ops 本身作为他构建的一个实际产品,成了他技术能力最直接的证明——他不需要在面试中口头描述自己"擅长构建多智能体系统",因为面试官已经能从他的 GitHub 上看到它真实运作。
拿到 Offer 之后,他将这套系统整理打包,以 MIT 开源协议发布到 GitHub。项目上线第一周,就收获了超过 41,000 个 Star,在 Reddit 上获得了 2,600 多个点赞,Discord 社区用户迅速增长到 2,300 多人,引发了法国、中国、韩国等多个国家媒体的广泛报道。从某种意义上说,这个项目本身也成了一次成功的求职产品发布——它展示了一个人在没有大公司背书的情况下,依然可以通过构建真实有价值的东西来引发行业关注。
这件事本身有一种让人会心一笑的逻辑闭环:他用一套多智能体 AI 系统去寻找多智能体 AI 相关的岗位,而这套系统本身展示出的架构能力和工程思维,比任何面试中的口头表述都更有说服力。
三、必须先搞懂的背景知识:ATS 系统到底在做什么
在深入理解 Career-Ops 的设计之前,有必要把 ATS 系统的工作原理说清楚。这是理解整套求职策略的基础。
ATS 的核心工作流程
一个标准的 ATS 系统,在处理求职者简历时,大体上经历以下几个阶段。
第一阶段:简历解析。系统首先将简历文件(Word、PDF 或网页表单)转换为可处理的结构化数据。它会尝试识别你的姓名、联系方式、工作经历、教育背景、技能标签等字段,将非结构化的文本转化为系统能够读懂的数据库记录。这一步的陷阱在于:复杂的排版、多栏布局、图表、特殊字体,都有可能干扰解析,导致内容识别错误或丢失。
第二阶段:关键词匹配与评分。系统提取职位描述中的核心词汇(包括技术栈、职责动词、行业术语、资质要求等),在你的简历文本中进行比对,生成一个匹配度分数。早期 ATS 是纯关键词匹配,现代系统已经引入了语义分析能力,能够理解"数据建模"和"数据分析"之间的关联,但关键词的密度和准确匹配仍然是重要权重因素。
第三阶段:排序与过滤。根据匹配分数和预设的门槛规则,系统将候选人分层排序。达到阈值的候选人进入 HR 的审核队列;未达到的则被系统自动归档,通常不会再有任何人工介入。
第四阶段:状态追踪。ATS 还承担着整个招聘漏斗的状态管理,记录每个候选人在各个环节的进展,方便招聘团队协同操作。
ATS 的演进:从关键词匹配到语义理解
早期的 ATS 系统逻辑相当粗暴:JD 里写了"Python",你的简历里也有"Python",就算匹配成功。这种机制催生了一种颇为荒诞的应对策略——简历堆砌关键词,把技能列表写得密密麻麻,甚至用白色字体在白色背景上隐藏大量关键词,专门用来欺骗 ATS 的文本识别。
然而随着大语言模型技术的普及,现代 ATS 的能力已经今非昔比。头部招聘平台的 AI 筛选模块,开始具备语义理解能力,能够判断"构建过 LLM 应用"和"有 LangChain 使用经验"之间的关联,能够识别候选人的职业成长轨迹是否与岗位要求的经验层级匹配,甚至开始尝试预测候选人的入职留存概率和岗位适配度。据行业数据,头部 ATS 厂商的入职留存预测准确率已经接近 70%。
这种技术演进对求职者提出了更高的要求:仅靠堆关键词已经不够用了,系统会分析你描述工作经历的方式、逻辑连贯性、成果量化程度,综合判断你是否真的具备相关能力。这也意味着,与其花时间研究如何"对付" ATS,不如用 AI 工具从更宏观的视角去分析职位与自身的真实匹配度,做出更聪明的投递决策。
求职者面对 ATS 的困境
站在求职者的角度,ATS 造成了几个叠加的核心困境。
信息不对称是最基础的问题。你看到一份 JD,无法知道 ATS 会用哪些关键词来筛选,也无法了解各维度在评分中的实际权重。你只能凭主观感觉判断自己和岗位的匹配度,而这种判断往往因为缺乏客观对照而严重偏差——有时你觉得非常匹配却石沉大海,有时你觉得差得很远却意外收到面试邀约。
时间损耗的不成比例是另一个核心痛点。认真阅读一份 JD 并评估其是否值得投递,通常需要 15 到 30 分钟,而这还只是"看是否值得投"的阶段,不包括后续调整简历、撰写求职信等工作。如果一天关注 10 个职位,一周就要消耗五六个小时在初步筛选上,而其中大量职位最终会发现并不合适。时间换来的不是机会,而是疲惫和自我怀疑。
每次投递都需要重新定制简历让这个问题更加棘手。经验丰富的求职者都知道,用一份通用简历投递所有职位是低效的,针对每个 JD 调整简历的关键词、调整描述角度、突出不同的侧重经历,才能提高通过 ATS 的概率。但这件事做起来既繁琐又重复,需要大量时间投入,而且很难保持高质量的一致性。
Career-Ops 正是针对这三个困境同时设计的:用 AI 的语义理解能力替代人工阅读和初步判断,用自动化的定制简历生成替代每次手动调整,用结构化的追踪系统替代电子表格的手动维护,把人的精力和注意力留给那些真正值得深入了解和认真对待的机会。
四、Career-Ops 的核心设计理念:过滤器,而不是投递机器
Career-Ops