我用Claude + Python 写了个投简历机器人:支持 ATS 优化、JD 匹配打分、白板题模拟

我用 Claude 写了个投简历机器人
把求职这件事自动化,核心不是让机器替你点按钮,而是解决信息碎片化和重复劳动——比如评估岗位匹配度、根据 JD 一键生成定制简历,以及模拟面试官问答。
我把这套流程封装成本地 CLI 工具后,每周能省下 6-8 小时。这种代理的价值在于从海量招聘平台里快速筛出值得申请的高潜岗位,然后用同一套结构化信息批量生成申请材料。

架构设计:本地优先的 Agent 工作流
我没有用 Anthropic 官方产品(事实上也没叫 Claude Code 这种东西,那是社区误传),而是用 Ollama 在本地跑了 claude-3.5-sonnet:latest。原因很简单:本地运行、可定制、不经过第三方 API 泄露简历隐私。
系统分三个模块:岗位解析器、内容生成器、面试模拟器。
岗位解析器负责抓取招聘信息。输入是招聘 URL 或保存的 JD 文本。上周我试了三种解析方式,最后选了 BeautifulSoup——因为某招聘站的 JD 页面连 class 都没写全,只有 XPath 能稳住。
我用 Python 写了个爬虫(基于 requests 和 BeautifulSoup):
import requests
from bs4 import BeautifulSoup
def parse_job_post(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('h1', class_='job-title').text
requirements = soup.find_all('li', class_='requirement')
return {
'title': title,
'requirements': [r.text for r in requirements]
}
内容生成器调用本地 Claude 模型生成简历和求职信。关键技巧是给足结构化上下文:把解析出的岗位要求和候选人现有简历做映射,让模型针对性补全。比如 JD 强调"团队管理经验",而你有 3 年项目管理经历,引导模型突出相关成就而非流水账。
面试模拟器基于本地 FAQ 数据库和岗位要求生成模拟问题。我维护了一个包含技术概念、项目经验提问和行为面试题的本地库,Claude 根据 JD 随机抽取组合。
核心功能实现
自动简历优化
我开发了一个叫 cv-gen 的命令行工具。指定简历路径和目标 JD,它自动完成映射和生成。
上周投递一个 DevOps 岗,JD 里写了"熟悉 ArgoCD + Kustomize",我简历里只提过 GitOps,工具名都没列。cv-gen 直接标红这句,还把我在内部灰度项目里用 Kustomize 改过 17 个环境配置的事拎出来补上了——原来那不算经验,只是"改配置";现在它成了"支撑多集群 GitOps 流水线落地"。
手动调整一份简历要 45 分钟,用这个工具生成初稿只需 5 分钟,人工修改时间缩减到 10 分钟。
智能岗位筛选
每天面对几十个新职位,怎么快速识别值得申请的?我实现了几个筛选逻辑:
- 匹配度评分:基于技能关键词重叠率计算初步匹配分(阈值 70%)
- 公司稳定性检查:集成 Crunchbase API 查融资状态
- 文化契合度评估:分析公司博客与技术栈匹配度
某次我用系统筛选了 47 个新岗位,标记出 12 个高价值目标。投递后面试邀约率达 35%,远高于行业平均的 10-15%。
沉浸式面试模拟
面试准备阶段,我用本地 Claude 构建了交互式模拟系统。它先分析 JD,生成 3-5 个核心技术问题(含陷阱题),再以对话形式模拟面试。
- 难度自适应:根据答题表现动态调整后续问题
- 反馈机制:每轮回答后提供结构优化建议(如 STAR 法则)
- 压力测试:模拟白板编程、系统设计等高压力场景
第三次模拟时,我手心没再冒汗,但还是把 LRU 缓存讲反了。系统自动记下这道题,下周又考了一遍,这次答对了。
部署与集成
环境搭建
本地运行需要:
- Node.js 18+ 与 npm/yarn
- Ollama 已安装并拉取
claude-3.5-sonnet:latest - 本地 PostgreSQL 数据库存储简历模板与面试记录
安装流程跑了三行命令就装好,比上次配 Ollama 还快:
git clone https://github.com/your-org/ai-job-agent.git
cd ai-job-agent
npm install
npm run setup:envs # 生成.env 示例文件
数据隐私
本地部署的最大优势是数据不出本机。所有简历内容、面试记录、公司信息均存储在本地数据库。我设计了"隐私沙盒"模式,在敏感岗位申请时使用临时脱敏数据,避免个人信息泄露。
与 ATS 集成
部分求职者需同时管理多个平台账户。我提供了插件系统,支持通过 API 与 LinkedIn、Indeed、Glassdoor 等集成,实现一键投递与状态追踪。
实际效果与改进空间
团队内部试点 3 个月,参与者的平均投递响应时间从 4.2 周缩短至 2.1 周。不过仍有局限:
- 行业适配性:目前针对技术岗位优化较好,对创意类、销售类岗位覆盖不足
- 动态内容处理:对视频 JD、交互式页面的解析能力有限
- 长期维护成本:需定期更新招聘平台接口与面试题库
后续计划增强多模态输入支持,引入主动学习机制,根据用户反馈自动优化内容生成策略。
下一步实践建议
如果想基于此框架开始自己的求职自动化系统,可以从以下步骤入手:
- 第一阶段(1 周):仅部署解析器模块,手动验证其对目标行业 JD 的解析准确率,重点调试 HTML 解析规则
- 第二阶段(2 周):接入本地 Claude API 实现简历自动生成,先用 5-10 份历史成功案例调优,收集主观反馈迭代提示词
- 第三阶段(持续):构建面试模拟流程,每次模拟后记录弱点分布,定期导入新的技术趋势与行业面试题
现在我每天早上花 7 分钟跑一遍 cv-gen,然后边喝咖啡边删掉它生成的第三版求职信里那句"赋能业务增长"——真写上去,HR 可能以为我在招 AI。
相关阅读
本文首发于 我用Claude + Python 写了个投简历机器人:支持 ATS 优化、JD 匹配打分、白板题模拟 — https://lyxq.com.cn/en/blog/claude-code-local-ai-job-agent
转载或引用请注明出处,商业使用请联系作者获得授权。