找工作最麻烦的地方,往往不是“不会投简历”,而是流程太碎:岗位散在不同网站,简历要按岗位改,求职信要重新写,投完还要记录结果。时间一长,很容易变成一堆浏览器标签、几个版本的 PDF 和一个没人维护的表格。
MadsLorentzen/ai-job-search 的思路是把这些动作放进 Claude Code:先建立个人求职档案,再搜索岗位、打分排序、生成定制 CV 和 Cover Letter,最后把申请结果记录回系统。它更像一套求职工作流模板,不是一个点一下就自动海投的工具。
它解决什么问题
ai-job-search 主要想解决四件事:
- 把你的经历、技能、教育背景和写作风格整理成结构化资料;
- 批量查找岗位,并按匹配度筛出值得投的机会;
- 针对单个岗位生成更贴合的 CV 和求职信;
- 投递后记录结果,用真实反馈反过来校准下一轮申请。
这个设计比较务实。它没有承诺“自动帮你拿 offer”,而是把求职中重复、容易漏、容易乱的部分交给 AI 辅助处理。
核心流程
项目的核心命令是 /setup、/scrape 和 /apply。
1. /setup:先建立你的求职档案
第一次使用时,需要先在 Claude Code 里运行:
|
|
项目提供三种初始化方式:
- 读取
documents/文件夹里的资料,例如 CV、LinkedIn 导出、学历证明、推荐信和过往申请; - 直接在对话里粘贴一份 CV;
- 通过问答方式逐步建立个人档案。
这一步很关键。后面所有岗位打分、简历改写和求职信生成,都依赖这里整理出来的真实经历。如果个人资料很空,AI 后面就只能泛泛而谈。
2. /scrape:搜索岗位并筛选
准备好档案后,可以运行:
|
|
它会调用项目里的岗位搜索工具,抓取和个人资料匹配的岗位,并对结果做去重和初步排序。项目自带的求职门户工具偏向丹麦市场,例如 Jobindex、Jobnet、Akademikernes Jobbank 等;LinkedIn public job listings 相对更通用。
如果你不在丹麦,也不是完全不能用。更现实的做法是参考它的结构,替换成本地常用招聘网站,或者直接把岗位描述粘贴给 /apply。
3. /rank:岗位太多时先排序
当搜索结果很多时,可以先运行:
|
|
这个命令会批量读取新抓到的岗位,并按项目的匹配框架给它们打分。它关注的不只是关键词,还包括技能、经验、文化、地点和职业方向等维度。
实际使用里,这一步的价值很大。很多人投简历失败,不是简历写得太差,而是把精力花在了明显不匹配的岗位上。先排序,可以少浪费一点力气。
4. /apply:生成定制 CV 和求职信
确定某个岗位后,可以运行:
|
|
如果岗位网页抓不到,也可以直接粘贴完整岗位描述:
|
|
/apply 会做一整套流程:
- 解析岗位描述;
- 根据你的档案评估匹配度;
- 生成定制版 CV 和 Cover Letter;
- 让第二个 reviewer agent 审查内容;
- 根据审查意见修改;
- 编译 LaTeX PDF;
- 检查 CV 的 ATS 可读性;
- 输出最终材料和检查清单。
这里最有意思的是 PDF 验证。项目不是只生成 Markdown 或纯文本,而是会用 LaTeX 编译简历和求职信,并检查页面是否溢出、标题是否孤立到下一页、字体是否一致、Cover Letter 是否控制在一页。
ATS 检查为什么重要
很多简历 PDF 看起来很漂亮,但 ATS 解析时可能读不到正确文本。尤其是 LaTeX 模板、多栏布局、图标字体和特殊符号,有时会让邮箱、电话、技能关键词变成乱码或顺序错乱。
ai-job-search 的 /apply 会尝试用 pdftotext 读取 PDF 文本层,检查联系方式、阅读顺序和岗位关键词覆盖情况。项目 README 里也明确说,关键词必须来自真实经历,不支持为了过筛而硬塞不存在的技能。
这一点很加分。求职 AI 工具最容易滑向“包装过度”,而这个项目至少在流程上保留了真实性约束。
其他实用命令
除了核心流程,项目还提供了几个扩展命令:
/outcome:记录投递后的结果,例如面试、offer、拒信或无回复;/expand:根据 GitHub、作品集、Kaggle、Google Scholar 等公开资料补充能力画像;/upskill:分析岗位和个人能力之间的差距,生成学习计划;/add-template:注册自己的 LaTeX CV 或求职信模板;/add-portal:为本地招聘网站生成新的搜索工具;/reset:清理资料,重新开始。
这些命令让它不像一次性简历生成器,更像一个能持续维护的求职系统。你投得越多、记录越完整,它越能帮你发现哪些岗位更值得追。
安装和依赖
项目依赖比较明确:
- Claude Code CLI;
- Python 3.10+;
- Bun,用于岗位搜索 CLI 工具;
- LaTeX 发行版,例如 TeX Live 或 MiKTeX;
- 可选的
pdftotext,用于 ATS 文本层检查。
快速开始大致是:
|
|
然后安装各个岗位搜索工具的依赖,再进入 Claude Code 运行 /setup。
这套依赖对普通非技术用户不算轻。它更适合已经会用命令行、愿意配置 Claude Code 和 LaTeX 的人。如果只是想简单改一份简历,用在线工具可能更省事。
适合谁
ai-job-search 比较适合这几类人:
- 正在密集求职,需要管理很多岗位;
- 想给不同岗位定制简历和求职信;
- 已经在用 Claude Code,愿意把求职流程放进仓库管理;
- 对 LaTeX 简历和 PDF 质量有要求;
- 希望记录投递结果,并反过来优化求职策略。
不太适合这几类情况:
- 只投一两个岗位,不需要复杂流程;
- 不想碰命令行、Bun、LaTeX;
- 希望一键自动海投;
- 不愿意整理真实经历和资料;
- 所在地区招聘网站需要大量登录、验证码或反爬处理。
使用时要注意什么
第一,不要让 AI 编造经历。项目本身强调简历和求职信里的声明要来自真实档案,但最终检查责任还是在你自己。
第二,不要把隐私资料随便放进公开仓库。CV、学历证明、推荐信、过往申请记录都可能包含敏感信息。最好用私有仓库,并认真检查 .gitignore。
第三,本地招聘网站适配需要成本。项目自带的岗位搜索工具有明显地区特征,换到其他国家和平台时,很可能要自己写或调整搜索技能。
第四,PDF 好看不等于能过筛。即使项目做了 ATS 检查,正式投递前也建议自己用文本提取工具再看一遍,确认联系方式、技能和经历没有乱码。
总结
ai-job-search 的价值不在于“让 AI 替你找工作”,而在于把求职流程拆成可复用的步骤:建档、找岗位、排优先级、定制材料、检查 PDF、记录结果、复盘反馈。
如果你已经会用 Claude Code,并且正在进行一轮认真求职,它会是一个很有参考价值的开源框架。它需要配置成本,但换来的是更清楚的流程和更少的重复劳动。
参考来源: