

一个丹麦地球物理学家,被裁之后,把疯狂刷招聘网站和转发锦鲤放在了一边。他做了一件让整个程序员圈子头皮发麻的事:他教会了Claude Code替自己找工作。
69份定制申请,20场一面,1份签字画押的工作合同。2026年6月,他以AI工程师的身份重新上岗。然后,他把整套系统开源了
GitHub仓库 MadsLorentzen/ai-job-search,三个月内砍下超过3万颗星,一度冲上Trending榜首。MIT许可,随便fork,随便改这份公开记录呈现了一场求职流程的工程化起义。

▲ 作者本人在X上的自述:教Claude Code扛下求职的苦活,每一份申请都亲手发出
他用AI改简历,也把求职变成了流水线
故事的主人公叫Mads Lorentzen。打开他的GitHub主页,简介只有一行字:Geophysicist, PhD,坐标丹麦。2025年底,他被裁了
一夜之间,这位有近三年工业界经验的地球物理博士重新掉进了求职市场的汪洋大海。接下来的日子,他和所有人一样:刷招聘站、读JD、研究公司、改简历、写求职信、点提交、等回复、被已读不回。不少白领光看这个循环就已经有生理反应了。
但Lorentzen没有停留在抱怨。他注意到一个更深的荒谬:公司可以用AI在几秒钟内筛掉你,那你为什么不能用AI来评估自己的时间该花在哪里?他在LinkedIn长文里写下的这句话,后来被反复引用,几乎成了这场运动的注脚。
他明确批评过“把简历丢给ChatGPT生成一段漂亮话”的玩法:你会花大量时间删幻觉技能、修格式、调语气,每次从零开始,本质上仍然在被动地改输出。他要的是可重复的、跑在自己机器上的工程系统。
这套系统长什么样?核心命令粗暴清晰:
/setup 先不碰岗位,先建你的深度画像。可以从PDF简历、LinkedIn导出、文凭、推荐信导入,也可以来一场结构化访谈,把技能、性格、硬性约束(他有两个年幼孩子、必须留在哥本哈根地区)全部写入一份会生长的自我档案。
/scrape 多入口搜索岗位,去重,按匹配度排序。量太大?/rank 批量打分出短名单
/apply 是核心杀招解析JD、评估匹配、用LaTeX起草定制简历和求职信、启动第二个审稿代理以招聘方视角挑错、修改、编译PDF、检查版面、校验ATS文本层、最后给人出一份核对清单。
/interview 阶段化面试准备,只基于对方实际看过的材料做模拟问答。/outcome 记录结果、归档材料、在长时间沉默后起草跟进邮件。

▲ README里那行让全世界求职者瞳孔地震的原话:Sixty-nine tailored applications, twenty first interviews, and one signed contract
PDF校验环:一个被低估到极致的技术细节
在X上的高赞回复中,一个叫Wahid的工程师评论道:“PDF验证环是整个系统里最被低估的部分。”
为什么?因为大多数人根本意识不到,你屏幕上看漂亮的简历,在招聘系统里可能是一堆乱码。ATS(Applicant Tracking System)不看你看到的版面,它读的是PDF内嵌的文字层。LaTeX编译出来的文件,邮箱地址可能变成图标字形,阅读顺序可能被打乱,花体字可能静默降级为衬线体,而你浑然不知。
这套系统会把PDF编译出来,用视觉检查修复“职位标题孤行到下一页”“求职信溢出第二页”这类真实排版事故,再用 pdftotext 抽取文字层,核对联系方式和关键词覆盖。画像里缺少支撑的关键词会被标成缺口,系统不会硬塞进去。这个设计哲学贯穿始终:系统拒绝替你撒谎。
再看起草,审稿分离的设计一个代理写,另一个在全新上下文中启动的代理站在招聘方角度读JD、研究公司、专门挑错,然后打回修改。双代理博弈,人类最终把关,相当于把软件工程里的code review塞进求职流程。

▲ 英文学界把流程压缩成五步,强调markdown文件夹与丹麦招聘站vs通用工作流的区分
从丹麦到西语世界:信息流里的连环爆炸
项目的扩散路径本身就是一场当代媒体现象。2026年3月,Lorentzen在LinkedIn发布长文,那时数字还停留在约30份定向申请、有面试、无offer。他老老实实承认,当时还没拿到offer,故事远未收尾。
然后,事态开始滚雪球
英语区的高热度解读帖把它拆解成五步流水线,重点标注:“高fork比意味着用户确实在使用,并非只收藏。”西语区的种子帖用更戏剧化的方式开场,翻译过来大致是,“一位丹麦科学家给Claude编程让它替自己找工作,并且刚刚把它公开了。”
有人半开玩笑地留言:“到了2026年还手动投简历,简直应该禁止。”
有人从实践侧现身说法:自己也用Claude Code做按岗定制、编译LaTeX、检查渲染PDF、相关性裁剪,并强调PDF校验环的价值怎么夸都不过分。
质疑声同样锋利有人说stars好核实,但“上下文求职信”最容易听起来模板化,不人手改就翻车。还有人从成本角度开炮:收入中断的求职者还要烧token?这套方案依赖在线模型,Claude Code的每次运行都在消耗模型费用。

▲ 西语帖子把痛点写成“复制粘贴改写定制重复”,并标注3.5k stars引发讨论
别认错仓库:740份申请来自另一个项目
这里有一个必须掰扯清楚的真相:社交平台上大量短视频文案把数字搞混了。
另一个叫 santifer/career-ops 的开源项目,声称评估740+岗位、生成100+份定制简历,拿到Head of Applied AI职位,star数比ai-job-search还高。短视频创作者们常常把后者的规模感,安到前者的丹麦作者头上。69份申请这个数字,只属于Mads Lorentzen。740份那个故事,是另一个人、另一套哲学,更偏大规模评估,甚至涉及Playwright自动生成PDF和门户扫描。
两个项目分别沿着两条路前进:“诚实自动化”与“AI海投军备竞赛”。
Lorentzen的系统里有一套铁律:所有声称必须锚定真实画像,不能发明技能,关键词缺口显式保留,自动化和你的大脑之间横着一道必须人工通过的闸门。代理绝不代填表单、绝不代点apply。最终打开门户、上传、发送,必须是人的决定。
他甚至在LinkedIn上开玩笑地抱怨:申请表里“你从哪里听说这个岗位”的下拉框,还没有“我的AI代理扫了四个招聘站并对照我的行为画像”这一项。

▲ 请注意:这个更庞大的项目与本篇主角不同,相关数字不能混用
安全、伦理与门槛:穷忙者吃不起的免费午餐
SECURITY文档里的威胁模型,读起来像一份小型情报报告:这是一个同时吞读“不可信网页”和“你全部职业隐私”的代理。JD可能是恶意的,正文里的链接可能是诱饵,第三方招聘站技能不在上游安全承诺范围内。仓库甚至在更新日志里点名了利用SessionStart hook的供应链蠕虫研究,严加看管 .claude/settings.json。
而对普通打工人而言,更现实的门槛是:Claude Code订阅或API费用、Python 3.10+、运行搜索CLI的Bun,以及一套完整的LaTeX发行版。那玩意初次安装下包就能让人怀疑人生。这套东西对收入中断的土木工程师和英语老师,几乎不具备可复制性。
作者自己的数字收敛得漂亮:69/20/1,中段还公开承认过“无offer”状态,降低了事后全胜包装的嫌疑。但它仍然是样本量为1的奇迹一个地球物理博士、有近三年工业经验、有可展示的技术项目、目标市场是丹麦这种高数字化小经济体,这组条件,换到别的行业、别的资历、别的国家,结果完全可能是一地鸡毛。

▲ 支撑整套系统运转的底座:Anthropic的代理式编程工具Claude Code
更大的结构:求职者终于开始“用工程学反击”
把镜头拉远,这件事的关键分量在于:它把求职从“提示词技巧”推进到了“工作流与安全配置”的层面。
在此之前,求职科技的产品化路线几乎全是SaaS:简历模板订阅、LinkedIn优化课、一键海投插件、聊天机器人改写。本质上,你的职业数据被收进中心化平台的数据库,换来一次性的输出。
而Lorentzen给出的替代方案是:版本化的配置、命令驱动的流程、双角色评审、编译与测试、结果回流校准,把软件工程里的整套纪律,搬进了求职这件事里。你的画像、申请记录、薪资数据,存在你fork的仓库里,gitignore掉了。项目标语只有一行,却像宣言:The job search that runs on your machine. 求职流程,跑在你自己的机器上。
这也是为什么它能在GitHub迅速走红。它服务正在找工作、愿意装LaTeX和代理CLI的实践者,纯算法论文读者并非主要受众。Hacker News上它的Show HN条目分数平平,传统极客论坛不好这口,热度全都集中在GitHub Trending、X和各国技术信息流里。可演示的完整系统是它区别于简历模板的地方。
所有这一切背后,是一个更古老的命题在2026年的重新演绎:当系统越来越自动,个体可以夺回工具的控制权。Lorentzen把最终的上传按钮留给了人类。这也许就是他那套系统里最激进,也最温柔的设计。

夜雨聆风