AI求职搜索助手

MadsLorentzen/ai-job-search 访问 GitHub ↗
🔤 Python ★ 60625 ⑂ 0 daily #1 (+3861) 抓取 2026-10-21

一句话简介

基于 TypeScript 的 AI 求职搜索工具,帮助用户高效筛选职位、生成简历与求职信并优化投递策略。

标签

  • AI求职
  • TypeScript
  • 求职工具
  • 简历优化
  • 职位搜索

适用应用场景

  • 根据个人条件智能匹配推荐岗位
  • 一键生成针对不同公司的求职信
  • 分析职位描述并优化简历关键词
  • 追踪求职流程并提供面试准备建议

README 中文摘要

AI 求职框架概述

一个运行在本机、由 AI 辅助的求职申请工作流,基于 Claude Code 构建。Fork 仓库并填写个人资料,即可让 Claude 完成职位匹配评估、简历定制、求职信撰写以及面试准备等全流程。

项目动机

作者本人在 2025 年末失业后,用这套框架运营自己的求职过程——包括 /scrape、/apply、/interview 命令——并对每位雇主坦诚相告。最终在发出 69 份定制化申请、获得 20 次一面机会后,于 2026 年 6 月以 AI 工程师身份入职。项目因此开源。

核心工作流(自我画像、匹配度评估、起草-审阅的申请流水线)与语言和国家无关;职位门户搜索功能默认面向丹麦市场(Jobindex、Jobnet、Akademikernes Jobbank 等),但可替换为本地求职网站。

工作流架构

/setup          /scrape              /apply <url>
  |                |                     |
  v                v                     v
填充个人资料   搜索职位门户        评估匹配度并打分
  |                |                     |
  v                v                     v
生成资料文件   展示带评级的匹配    起草 CV + 求职信
                   |                     |
                   v                     v
              选定匹配 → /apply     审阅代理反馈 → 定稿输出

核心特性

/apply 命令运行起草-审阅双角色流水线,并强制要求 PDF 编译验证:

  1. 解析:从 URL 或文本读取职位描述
  2. 匹配度评估:根据技能、经验、文化、地点、职业方向五个维度打分
  3. 起草:用 LaTeX 编写定制化简历和求职信
  4. 审阅代理:派出独立 Claude 代理研究公司并对草稿提出批评
  5. 修订:根据审阅意见调整
  6. 编译与视觉检查:简历用 lualatex,求职信用 xelatex,迭代直到简历严格 2 页、求职信严格 1 页
  7. ATS 验证:用 pdftotext 提取 PDF 文本层,检查解析器实际看到的关键词覆盖情况
  8. 输出:附带验证清单的最终文件

与众不同的设计

  • PDF 验证回路:编译每个 PDF 并视觉检查,自动修复孤立标题、字体回落等问题
  • ATS 真实解析验证:从编译后的 PDF 提取文本,验证联系方式、关键词命中,而非仅靠肉眼
  • 按相关性裁剪简历:评估每行内容的相关性、唯一性、与求职信的依赖度,裁剪时优先保留命中关键词的旧条目
  • 起草-审阅分离:审阅代理在全新上下文中研究公司并批评草稿,单遍起草易遗漏的弱点可被捕获

扩展机制

框架有三个扩展点,均无需改动上游代码:

  1. 门户技能:/add-portal 生成新市场的职位门户集成;/scrape 自动发现符合契约的任何 *-search 技能
  2. 文档模板:/add-template 注册任何可命令行编译为 PDF 的工具链(LaTeX、Typst 等)
  3. 评估标准:个人资料中的红线条件和偏好以自由文本写入,评分时具有真实权重;语言门槛由 04-job-evaluation.md 中的 Language Gate 强制执行

关键命令

  • /setup:通过 documents 文件夹导入、聊天中粘贴简历、或交互式访谈三种方式建立个人资料
  • /scrape:搜索多个门户并按匹配度排序
  • /apply <url>:完整申请流水线
  • /rank:对抓取结果批量打分并生成排序短名单
  • /interview:根据已跟踪申请构建分阶段面试准备包并提供模拟面试
  • /outcome:记录申请结果,并支持对沉寂的申请生成跟进邮件草稿(仅草稿,从不代发)
  • /html-report:从跟踪表生成离线 HTML 仪表盘
  • /gmail-sync:读取 Gmail 自动识别申请状态信号(面试邀请、offer、拒信等),逐条变更需用户批准
  • /notion-sync:通过官方 Notion MCP 服务单向发布只读流水线视图
  • /upskill:分析个人资料与职位之间的技能差距,生成带学习资源与时间估算的热力图
  • /expand:扫描公开资料(GitHub、Portfolio 等)补充未在文档中显式列出的能力
  • /add-template / /add-portal:注册自定义模板或门户技能
  • /reset:重置个人资料或 documents 文件夹

环境要求

  • Claude Code(CLI),需 Pro/Max/Team 订阅或 API 额度
  • Python 3.10+ 与 Bun
  • LaTeX 发行版(含 lualatex 与 xelatex)
  • 可选:pypdf 或 Poppler pdftotext(ATS 解析检查)

快速上手

# 1. Fork 并克隆(个人使用请用私有仓库,以本仓库为 upstream)
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search

# 2. 安装门户 CLI
python3 tools/install_portal_clis.py

# 3. 设置个人资料
claude
> /setup

# 4. 搜索职位
/scrape

# 5. 申请某职位
/apply https://jobindex.dk/job/1234567

仓库结构

ai-job-search/
├── CLAUDE.md                        # 主个人资料与工作流规则
├── .claude/commands/                # 13 个命令定义(apply、setup、rank 等)
├── .claude/skills/                  # 核心技能(候选人画像、行为画像、评分框架、STAR 示例)
├── .agents/skills/                  # 门户 CLI 工具(丹麦 4 个 + LinkedIn + freehire)
├── cv/main_example.tex              # moderncv LaTeX 简历模板
├── cover_letters/                   # cover.cls + Lato/Raleway 字体
├── templates/                       # /add-template 注册的自定义模板
├── documents/                       # 求职源材料(CV、LinkedIn 导出、证书等)
├── tools/                           # 安装脚本、安全守卫、PDF 验证、布局测量等
├── salary_lookup.py                 # 薪资基准工具
└── SETUP.md                         # 详细安装指南

安全模型

职位描述被视为不可信输入:工作流遵循确定性完整性门禁(隐藏文本、不可见字符、指令形态行、隐藏链接),不执行职位描述中嵌入的指令,也不获取其正文中的链接;但代理级防御是指令层面的,不是沙箱。使用不熟悉的求职网站时,建议在发送前审阅抓取与写入的内容。

摘要更新于 2026-10-20 00:30:35 · 原文 33919 字符 · md5 118cc7c65e1e…