被裁员的地球物理博士,用 Claude Code 搭了一套求职流程:投了 69 份,拿到 1 个 offer,现在 5.7 万人在用
今天 GitHub 日榜排第一的项目,单日涨了 3856 颗星,但它并不是新项目。
今天 GitHub 日榜排第一的项目,单日涨了 3856 颗星,但它并不是新项目。
它叫 ai-job-search,3 月份就建好了,早在 7 月份的时候已经火过一轮了,当时一天涨了 5000 多颗星。现在总星数是 5.7 万,fork 数 1.8 万。fork 和 star 的比例差不多是 1 比 3,比大部分热门项目都高得多。原因也很简单:这个项目本来就是让你 fork 一份、填上自己的资料之后才能用的,不是装上就能跑的软件。

我把项目文档、几个讨论最多的 Issues 和社区改版列表都翻了一遍,下面按我关心的顺序来讲:它到底怎么帮你找工作、要花多少钱、国内能不能用,还有一个涉及隐私的坑。
作者自己就是第一个用户
项目作者 Mads Lorentzen 是丹麦的一位地球物理博士。2025 年底他的岗位被裁掉了,于是他用 Claude Code 搭了这套流程来给自己找工作,据他自己说他每周都在用这个工具。
他公布了自己的求职数据:一共投了 69 份定制过的申请,拿到了 20 次初面,最后签了 1 份合同,2026 年 6 月入职,新岗位是 AI 工程师。

还有一个细节我觉得挺有意思:他在面试时会主动告诉面试官自己是用这套工具求职的。按他的说法,这件事没有成为减分项,反而经常能聊出一段正经的技术讨论。毕竟他要应聘的就是 AI 工程师,这套工具本身就是一个现成的作品。
三个命令串起整个流程
整个框架的主线就是三个命令,全部在 Claude Code 里输入:
/setup 建立个人档案
/scrape 去招聘网站搜岗位
/apply <链接> 针对某个岗位生成简历和求职信/setup 有三种建档方式:把你的简历 PDF、LinkedIn 导出文件、学历证明、推荐信等放进 documents/ 文件夹让它自己读;或者直接在对话里粘贴一份简历;或者让它一问一答地访谈你。建好之后,你的经历、技能、性格测评、写作风格都会存成一组 Markdown 文件。
/scrape 会去招聘网站搜和你档案匹配的岗位,去重之后按匹配度排好序给你看。如果搜出来的岗位太多,还可以先运行 /rank 批量打分,挑出一个短名单。
真正干活的是 /apply。你给它一个岗位链接(有的招聘网站会拦截自动访问,这时也可以直接粘贴岗位描述),它会按下面这个顺序走一遍:
- 解析岗位描述,从技能、经验、文化、地点、职业方向五个维度评估你和岗位的匹配度
- 用 LaTeX 起草一份定制简历和一封求职信
- 另外启动一个审稿 Agent,让它去查这家公司的资料,然后挑草稿的毛病
- 根据审稿意见修改
- 编译成 PDF,检查排版
- 模拟招聘系统(ATS)读取 PDF 的文字层,检查关键词覆盖情况
- 输出最终版本和一份核对清单
除了这条主线,还有 /interview 做面试准备(包括模拟面试)、/outcome 记录每次申请的结果、/gmail-sync 从邮箱里识别面试邀请和拒信、/html-report 生成一个离线的求职数据看板,加上清空数据用的 /reset,一共 14 个命令。
我觉得设计得最用心的三个地方
第一个是写稿和审稿分开。 写简历的 Agent 和审稿的 Agent 是两个独立的上下文。审稿的那个是全新启动的,它没有看过前面的推理过程,只看草稿和公司资料,所以更容易发现「关键词漏了」「说法太空泛」这类问题。这和我们平时写完东西找同事帮忙看一遍是一个道理,自己写的东西自己很难看出毛病。
第二个是会真的去看 PDF 长什么样。 用过 LaTeX 写简历的人应该都碰到过:.tex 文件看着没问题,编译出来职位标题孤零零地掉到了下一页,或者求职信多出来半页。/apply 会编译 PDF 并读取渲染后的页面,一直调整到简历正好 2 页、求职信正好 1 页、签名完整显示为止。
如果简历超出了 2 页需要删内容,它也不是简单地从最老的经历开始删,而是给每一行打分:和目标岗位的相关度、在全文里是否重复、求职信有没有引用到它,然后从总分最低的那一行开始删。所以一段很老、但正好命中岗位关键词的经历,是有可能比最近一份工作里的某条描述保留得更久的。
第三个是不编造经历。 这一点在整个项目里反复出现。ATS 检查时如果发现岗位要求的某个关键词你的档案里没有,它会把这个缺口明确标出来,而不是硬塞进简历里。面试准备也一样,碰到你确实没做过的东西,它给的是诚实的过渡回答,不会帮你编一段经历出来。
我觉得这一点很重要。用 AI 改简历最大的风险就是它顺手帮你「润色」出一些你没做过的事情,到了面试时如果正好被问到就很尴尬了。
再聊聊费用:它是比较费 token 的
先说门槛:Claude Code 没有免费额度,你需要订阅 Claude Pro / Max / Team,或者用 Anthropic API 按 token 付费。项目本身也建议,如果只是偶尔用一下,按 API 付费通常更便宜一些。
另外本地还需要装 Python 3.10 以上版本、Bun,以及一套完整的 LaTeX 环境(简历用 lualatex 编译,求职信用 xelatex 编译)。LaTeX 这一项是最重的,估计也是大部分人会卡住的一步。
token 消耗是 Issues 里被吐槽最多的问题。项目建好没几天,就有人开了一个标题是「This app is inefficient!」的 Issue,说几个简单的命令就把额度用光了。8 月份又有人反馈 /rank 一分钟吃掉了 27 万 token。后来一位贡献者把原因拆成了三点:每次运行都要把整个岗位记录文件在上下文里来回搬两次,单次运行打分的岗位数量没有上限,每个打分 Agent 的提示词里都塞了一整套网页抓取的升级流程。他排查完提了两个 PR,9 月初发布的 v1.7.1 已经合并,加上了 --limit 参数来限制一次打分多少个岗位。

作者对这个问题的态度我觉得挺实在的。项目说明里专门写了一句:PDF 排版检查这一步会花掉一部分前面省下来的 token,这是用 token 换来更少的排版错误。
所以如果你打算用它,建议先用 /apply 针对一两个你真正想去的岗位跑一下,看看一次大概消耗多少额度,再决定要不要批量 /rank。
国内能不能用:主线可以,搜岗位要靠社区改版
这个项目的核心流程(建档、评估匹配度、写稿审稿)是不分国家和语言的,但内置的岗位搜索工具是给丹麦市场做的,包括 Jobindex、Jobnet 这几个丹麦招聘网站。另外还内置了两个不限国家的搜索工具:一个走 LinkedIn 公开的职位接口(项目里特别注明这违反 LinkedIn 的服务条款,只建议个人少量使用),另一个是技术岗位聚合站 freehire.me 的公开 API。
其他国家的用户主要靠 fork 改版。项目在 Discussions 里专门开了一个帖子收集社区改版,目前列出来的已经有 40 多个,覆盖印度、德国、巴西、波兰、马来西亚、越南等十几个市场,还有移植到 Codex、OpenCode、Google Antigravity、DeepSeek Harness 上的版本。
和国内相关的有三个:
- cypggs/ai-job-search-cn:中文化改版
- youngledo/ai-job-search:加了一层面向中国大陆市场的配置,岗位描述主要靠手动粘贴
- offer-harvester:有中文说明,对接的是实习僧、腾讯招聘和一些公司的校招官网

这几个改版里都没有看到对接 Boss 直聘、智联、猎聘的。所以对国内用户来说,比较现实的用法是:岗位自己在招聘 App 上找,看中了就把岗位描述复制下来,用 /apply 粘贴进去,让它帮你做匹配评估、改简历和写求职信。这部分功能是完全不受地区影响的。
另外项目也提供了 /add-portal 命令,给它一个招聘网站的地址,它会自己分析页面结构、生成一个搜索工具并试跑一次。不过需要登录才能看的网站它会直接拒绝,国内大部分招聘平台都属于这种情况。
上手之前一定要知道的隐私问题
这是我觉得最容易出事的地方,所以单独拿出来说。
正常的上手步骤是先 fork 仓库再 clone 到本地:
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search
python3 tools/install_portal_clis.py问题在于:GitHub 上公开仓库的 fork 一定也是公开的,没法设成私有。而 /setup 会把你的姓名、联系方式、工作经历、期望薪资写进仓库里被 Git 跟踪的文件。如果你按习惯 commit、push,你的完整简历和期望薪资就公开在 GitHub 上了。

项目文档里用很醒目的方式提醒了这一点:如果只是自己求职用,不打算给上游贡献代码,不要 fork,而是新建一个私有仓库,把原项目设成 upstream 来同步更新,具体步骤在 SETUP.md 的第 8 节。看到 fork 数有 1.8 万,我还是挺担心有一部分人没注意到这段提醒的。
还有一个小坑来自 Issues:有用户反映 LinkedIn 搜索偶尔会冒出「幽灵岗位」,点进去要么不存在,要么是另一个不相关的职位,而 Claude 还给这些岗位打了高匹配分。最后查出来的原因是 LinkedIn 的岗位关闭之后,原链接不会报 404,而是悄悄跳转到一个相似的在招岗位。v1.7.0 已经通过识别「No longer accepting applications」的提示来过滤这类岗位了,但这也说明,AI 推荐给你的岗位,投递之前最好还是自己点进去确认一下。

一个小建议
ai-job-search 追求的是每一份申请的质量,而不是海投的数量。作者自己 69 份申请拿到 20 次面试,靠的是每一份都根据岗位改过,而不是一天投 100 家。如果你正在找工作、手里也有 Claude 的订阅,可以先建一个私有仓库,跑一遍 /setup,再挑一个真正想去的岗位试试 /apply,看看它改出来的简历和你自己写的差别在哪里。
项目地址:
资料来源:
- GitHub 仓库:https://github.com/MadsLorentzen/ai-job-search
- 社区改版汇总(Discussion #78):https://github.com/MadsLorentzen/ai-job-search/discussions/78
- token 消耗讨论:https://github.com/MadsLorentzen/ai-job-search/issues/2 、https://github.com/MadsLorentzen/ai-job-search/issues/395
- LinkedIn 幽灵岗位问题:https://github.com/MadsLorentzen/ai-job-search/issues/331
- DEV Community 评测:https://dev.to/andrew-ooo/ai-job-search-review-claude-code-as-your-job-hunter-18c7