乐于分享
好东西不私藏

丹麦博士被裁后怒写AI求职系统:69投20面拿下offer,GitHub狂揽2.9万星,求职工具进入新阶段

丹麦博士被裁后怒写AI求职系统:69投20面拿下offer,GitHub狂揽2.9万星,求职工具进入新阶段

一个地球物理学博士丢了工作他跳过招聘网站里的复制粘贴,打开了终端。

六个月后,他的战绩是,69份定制申请、20场首轮面试、1份签约的AI工程师offer随后,他把整套系统用MIT许可证开源,任何人都能用仓库冲上GitHub Trending第一名,星标飙到2.9万,fork逼近1万

故事的重点远超“把JD丢进ChatGPT改改简历”:一个失业者把求职变成了一套可观测、可迭代、可审计的工程系统

被裁的那一天,他决定不再当"人肉ATS适配器"

2025年末,丹麦哥本哈根Mads Lorentzen,地球物理学博士,接近三年工业界经验,突然被通知岗位没了。

家里有年幼的孩子,生活圈被锁定在哥本哈根一带,不能说走就走。这是一个极其典型的中年技术人遭遇结构性失业的场景,学历很好,经验不差,但市场不等人。

如果你投过简历,你一定经历过这种折磨:打开一个招聘页面,读三遍JD,打开简历改措辞,再写一封“Dear Hiring Manager”开头的求职信,保存PDF,上传,点提交,然后大概率石沉大海Indeed的调查早已揭示:求职者最痛苦的环节往往是投递后长期没有回应

Mads做了一个不同的选择他停下复制粘贴,问了自己一个工程师才会问的问题:这件事的瓶颈在哪里?能不能系统化?

答案是Claude Code

从聊天框到“求职操作系统”

先科普一下区别于网页里的AI聊天框,Claude Code是Anthropic出品的编码代理,跑在你自己的终端里,能读写本地文件、执行命令,并按指令多步推进你可以把它理解成一个住在电脑里、能动手干活的AI程序员

Mads用它搭了什么?一套把求职拆成斜杠命令的完整流水线:

第一步 /setup:建立“你是谁”的档案。 它比模板简历细得多,是一份机器可读的自我认知,包含教育经历、技能树、行为风格、能量来源与消耗点、动机与硬约束。Mads在LinkedIn长文里写到,这段工作让他对“自己到底想要什么”的清晰度,超过了此前多年的手动求职

第二步 /scrape:扫描并去重职位。 内置丹麦本地门户(Jobindex、Jobnet等),也支持LinkedIn公开列表。一键跑完,去重后按匹配度排序呈现

第三步 /apply <职位>:核心引擎 解析JD → 评估你和岗位的匹配度 → 生成LaTeX定制简历与求职信 → 启动第二个独立的"审阅代理",从招聘方视角挑刺、抓虚高表述、查漏关键词 → 修订 → 编译PDF → 用pdftotext检查ATS文本层是否可读。

这最后一步极其关键ATS(申请跟踪系统)主要读取PDF的文本层,视觉排版再精致,也可能让邮箱地址变成乱码,或让电话号码被装饰线切断,导致机器无法识别。Mads的系统会自动抽取文本层做可读性校验

第四步 /interview:面试准备。 从你的真实经历中抽取STAR(情境-任务-行动-结果)示例,按岗位生成模拟问答。

第五步 /outcome 与 /upskill:闭环。 记录每一次申请结果,把能力缺口反馈进学习计划。

▲ Mads本人的推文:"I sent every application myself." 69投20面1 offer

“双代理审阅”,容易被低估的设计

在这套系统里,审阅环节尤其精妙

起草代理写完简历和求职信后,一个完全独立上下文的审阅代理会被启动。它不了解起草代理的“心路历程”,只拿到成品和JD,然后从招聘经理的视角开始挑刺:关键词覆盖是否充分?虚高表述或档案中缺失的技能是否混了进来?

规则写得非常硬:档案不支持的关键词,标记为gap,不硬塞。 面试时你讲不出口的技能,不要出现在简历上

一位叫W A H I D的技术评论者在X上精准点评:“PDF验证循环是整个系统里最被低估的部分。”

▲ 技术向用户点评:PDF校验循环才是核心差异化

把JD丢进ChatGPT说“帮我改简历”,通常只能得到一次回答,缺少记忆、质检和反馈闭环。Mads的系统则把记忆(档案)、决策(匹配分)、质检(审阅代理)和循环(outcome/upskill)写进了可版本管理的仓库用他自己的说法,这是个人求职的小型操作系统

“自动化以后,我反而更挑剔”

很多人把这个项目脑补成了“全自动海投机器人”,实际流程并非如此。

Mads在多个公开渠道反复强调:“I sent every application myself.” 工具做到提交按钮之前为止。最终的上传与发送,由人完成

自动化之后,他反而减少了投递弱匹配的岗位,系统评估完就直接跳过。弄清楚自己要什么之后,他甚至敢在一轮面试后主动退出不合适的流程

他的LinkedIn长文标题本身就是最好的注解:"I Automated My Job Search. It Made the Process More Human, Not Less."

这句话值得所有在用AI"优化"求职的人停下来想三秒钟。

同一浪潮里的另一个故事:700个职位筛出66个,拿下Head of AI

Mads之外,几乎同一时期,西班牙塞维利亚的Santiago Fernández de Valderrama Aparicio用Claude Code造了另一个开源项目Career-Ops,被Business Insider报道。

▲ Career-Ops官网:同样强调开源、本地运行、数据留在自己机器上

他的系统评估了超过740个职位列表,建议申请其中66个,带来12场面试。他最终接受了Head of AI岗位。同样开源,同样不愿对求职者收费,他的理由很朴素:找工作是基本需求

两个项目共享同一个结构:裁员/转岗压力 → 用编码代理把求职工程化 → 开源 → 社区复用。 Santiago自己认为,工具筛岗只是一部分,项目也证明了“我能造工具解决自己问题”。开源求职框架兼具生产工具和作品集的作用。

这指向了一种正在发生的深层变化:在AI辅助筛选与AI辅助申请同时升级的年代,可展示的工程化作品本身成为了最强信号

88%的雇主承认:合格候选人正在被自己的ATS刷掉

为什么求职者要被迫进入这场军备竞赛?因为另一端早就先动手了

哈佛商学院与埃森哲的Hidden Workers研究揭示了一个令人窒息的数字:受访雇主中约88%表示,合格的高技能候选人会因不完全匹配招聘标准而被ATS直接筛出,根本到不了人类HR眼前。

这就是Mads在文章里引用这项研究的原因。他的逻辑是:如果公司端用算法在几秒钟内过滤候选人,候选人也可以用结构化系统来决定自己的时间花在哪里。 他把这种做法视为一种对等选择

谁用不起?一个不能回避的问题

必须泼一盆冷水这套系统并非零门槛

依赖Claude Code意味着订阅或API用量费用LaTeX环境配置对非技术用户相当劝退X上已有用户直接点出:拮据的求职者可能难以承担模型调用费用。

▲ 有人担忧:Claude的token成本对经济困难的求职者是额外负担

开源降低了被平台锁定的风险,MIT许可证确保你可以任意修改和分发,但“开源”与“开箱即用”仍有距离。Career-Ops社区用Discord互助降低安装摩擦,侧面印证了这一点。

从Word模板到求职操作系统:十年求职工具进化的终局?

拉长时间线看,这件事的意义远不止一个博士找到了工作。

过去十年,求职者从Word模板,走到在线简历生成器,再到把JD粘进大模型。每一代工具的反复失败模式惊人一致:模型编造指标、语气不像本人、一次生成无法沉淀为系统记忆。

AI Job Search与Career-Ops代表的增量,在于把求职从一次性文案改写,升级为有记忆、有决策、有质检、有闭环的工程系统它们已经接近个人求职的操作系统,远超单次文案助手的能力边界。

历史上类似的军备升级出现在SEO与反垃圾邮件领域:一端过滤,一端适配,最终谁掌握可解释的规则与反馈闭环,谁就更不容易被噪声淹没

求职的下一章,可能不属于投得最多的人,而属于系统建得最好的人。