MadsLorentzen / ai-job-search
AI Job Search
一个基于 Claude Code 构建的 AI 驱动求职应用框架。Fork 它,填写你的个人资料,让 Claude 评估职位发布、定制你的简历、撰写求职信,并为你准备面试。
注意:这是一个独立的开源项目,与 Anthropic 无关联、未经其认可、赞助或维护。提及 Anthropic 和 Claude Code 仅用于描述此工作流所使用的工具链。
这是什么
这是一个结构化工作流,将 Claude Code 转变为全栈求职助手。核心工作流(自我建档、匹配度评估、以及起草-审核申请流程)与语言和国家无关。职位门户搜索技能专为丹麦市场构建(Jobindex、Jobnet、Akademikernes Jobbank 等),但该模式设计为可替换为你本地的求职网站。
/setup /scrape /apply
| | |
v v v
填写个人资料 搜索职位 评估匹配度
门户 评分 & 推荐
| | |
v v v
个人资料就绪 展示匹配结果 起草简历 + 求职信
附带匹配度评分 (LaTeX,定制化)
| |
v v
选择一个匹配 审核代理评审 -> /apply -> 修改 -> 最终输出
该框架融入了职业指导最佳实践,包括结构化评估标准、前瞻性的求职信框架,以及可选的薪资基准分析。
前提条件
- Claude Code(CLI)
- Python 3.10+
- Bun(用于丹麦求职搜索 CLI 工具)
- LaTeX 发行版,支持
lualatex和xelatex:TeX Live、MacTeX、TinyTeX 或 MiKTeX。简历使用lualatex编译(pdflatex在较新的 MiKTeX 安装中常因fontawesome5字体扩展错误而失败);求职信使用xelatex编译,因为cover.cls需要fontspec。如果使用最小化 TeX 安装(如 TinyTeX 或 BasicTeX),请安装SETUP.md中列出的额外包。 - 可选:来自
poppler的pdftotext(macOS:brew install poppler,Debian/Ubuntu:apt install poppler-utils,Windows:choco install poppler)——用于/apply对编译后简历的 ATS 可解析性检查。如果缺失,该检查会优雅降级为视觉关键词审查。
快速开始
- Fork 并克隆
- 安装求职搜索工具
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search
cd .agents/skills/jobbank-search/cli && bun install && cd ../../../..
cd .agents/skills/jobdanmark-search/cli && bun install && cd ../../../..
cd .agents/skills/jobindex-search/cli && bun install && cd ../../../..
cd .agents/skills/jobnet-search/cli && bun install && cd ../../../..
cd .agents/skills/linkedin-search/cli && bun install && cd ../../../..
对于 linkedin-search,安装是可选的:它没有运行时依赖,直接使用 bun 运行;bun install 仅拉取 TypeScript 开发类型。
- 设置个人资料
claude
# 然后在 Claude Code 中:
/setup
/setup 提供三种路径:读取你的 documents/ 文件夹(如果你已填充内容,如简历 PDF、LinkedIn 导出文件、学位证书、推荐信、过往申请)、导入粘贴在聊天中的单份简历,或通过面试引导完成。它会自动检测你已有的内容并询问。文档文件夹模式是幂等的,当你添加更多材料时可以安全地重新运行;详见 documents/README.md 了解布局。
- 搜索职位
/scrape
此命令会在多个职位门户中搜索与你个人资料匹配的职位,去重结果,并按匹配度排序展示。选择一个匹配项可直接对其运行 /apply——或者,当抓取返回的职位多于你想逐一查看的数量时,先运行 /rank 对所有职位进行批量评分,获得一个排序后的候选列表。
- 申请职位
/apply https://jobindex.dk/job/1234567
如果无法获取该 URL(某些职位门户会阻止自动化访问),你可以直接粘贴职位描述:
/apply < 在此粘贴完整的职位描述 >
这会运行完整工作流:评估匹配度、起草简历 + 求职信、由第二个代理审核、修改,并呈现最终输出。
其他命令
/setup、/scrape 和 /apply 构成了核心工作流。在个人资料就绪后,还有七个扩展命令:
/interview:为已跟踪申请中的预定面试做准备。它会根据申请的存档(确切的职位发布、面试官实际看到的简历和求职信、之前轮次的反馈)构建一个针对特定阶段的准备包,使用“验证后再使用”规则研究公司和面试官,将可能的问题映射到你的 STAR 示例,并提供遵循07-interview-prep.md中角色扮演协议的模拟面试。不足之处会给出诚实的过渡性回答,绝不编造经历。/outcome:记录申请的结果——面试阶段、录用、拒绝、无回应。它会将提交的简历、求职信和职位发布文本归档到documents/applications/<公司>_<职位>/中,以/setup路径 A 可解析的格式保留outcome.md,并更新跟踪器。当一些申请有了结果后,它会引导你返回/setup,根据实际获得面试机会的情况校准匹配度框架。/rank:连接/scrape和/apply:它会批量评分所有新抓取的职位发布(并行代理获取每个发布并评估五个维度),返回一个排序后的候选列表,并附带每个职位的诚实优势和不足。硬性限制条件会被否决,截止日期会获得紧急标记,已过期的职位会被标记为失效。选择一个编号后,它会移交至完整的/apply工作流。/expand:通过扫描你个人资料中已链接的公开来源(GitHub 仓库、作品集网站、Kaggle、Google Scholar)并查找指定课程和认证的教学大纲,来丰富你的个人资料。发现的技能会附带来源标签添加到你的个人资料中。在/setup之后立即使用此命令,有助于挖掘文档本身未明确体现的技能。/upskill:分析你的个人资料与已跟踪职位发布(或通过/upskill指定的单个发布)之间的差距。生成一个按优先级排序的技能差距热力图,以及一个包含网络搜索学习资源和时间估算的学习计划。适用于申请之间的职业规划。/add-template:注册你自己的 LaTeX