一个 Claude Code Skill:把「简历 → BOSS直聘/猎聘岗位 → S/A/B/C 分档投递建议」跑成一条可复用的流水线。
抓取交给 job-crawler 的现成脚本;判断哪条值得投、为什么、有什么坑由 Claude 按简历画像逐条完成 —— 这是本 Skill 的核心价值。
- Safari 权限与登录态检查 — 区分「Apple Events JS 开关没开」「自动化权限被拒」「登录态过期」,给出对应的修复动作
- 简历画像时效检查 — 简历 PDF 比画像新时自动重新提炼,否则直接读画像,避免每次重复解析
- 搜索词一致性检查 — 比对画像里的求职方向与实际抓取关键词,方向变了先改关键词再抓
- 固定双渠道 — BOSS直聘 + 猎聘,渠道由抓取项目的
activeSites统一控制 - 后台抓取 — 10 个关键词 × 2 站,8–15 分钟,不阻塞会话
- 三项质量门禁 — 薪资可读数必须等于总条数、每站无报错、按本次抓取时间隔离历史数据
- 方向排除 — ADAS / 智驾等方向按
excludeRoles自动剔除
- 五道否决 — 非汽车行业、职能不符、硬门槛不符、教育培训马甲岗、明确排除方向
- S/A/B/C 四档 — 按核心技术信号数量、经验学历门槛、城市与薪资缺口分档
- 跨站重复合并 — 同一岗位在 BOSS 是直招、猎聘是猎头代招时合并成一条,并注明优先投哪个渠道
- 区分猎头与外包 —
isHeadhunter与isOutsourcing是两回事,判断依据写进风险栏 - 匹配理由具体到简历段落 — 不接受「符合你的技能」这类空话
- 八节交付物 — 先说结论、S/A/B/C 分档、明确别投、投递节奏、面试必问、安全提醒、数据口径
- 链接逐条自检 — 每条岗位链接回查
data/jobs.json,编造或失效的链接不允许交付 - 安全收尾 — 提醒关闭 Safari 的 Apple Events JavaScript 开关
| 步骤 | 内容 | 执行方 |
|---|---|---|
| 1 | 前置检查:Safari 权限、登录态、简历画像时效、搜索词一致性 | Claude |
| 2 | 确认抓取范围(默认全国) | Claude |
| 3 | 后台运行 safari-crawl.mjs 抓取两站岗位 |
脚本 |
| 4 | 运行 report.mjs 按渠道、行业门槛、相关度过滤 |
脚本 |
| 5 | 对照简历画像逐条过五道否决并分档 | Claude |
| 6 | 按模板生成投递优先级表 + 链接自检 | Claude + 脚本 |
| 7 | 结论先行汇报、提醒关闭 Safari 开关、说明数据局限 | Claude |
| 层 | 技术 |
|---|---|
| Skill 载体 | Markdown(SKILL.md + references/) |
| 运行环境 | Claude Code |
| 抓取与报告 | Node.js 脚本(见 job-crawler) |
| 浏览器 | Safari + AppleScript(复用真实登录态) |
| 数据 | JSON 文件,无数据库 |
- Claude Code
- macOS(依赖 Safari 与 AppleScript)
- Node.js 20+
- 已安装并配置 job-crawler
git clone https://github.com/hhd-git-code/job-hunt-match.gitcp -r job-hunt-match ~/.claude/skills/打开 ~/.claude/skills/job-hunt-match/SKILL.md,把「常量」一节改成你自己的目录:
| 变量 | 说明 |
|---|---|
PROJECT_DIR |
job-crawler 项目路径 |
RESUME |
简历 PDF 路径(没有 PDF 可跳过,直接维护画像) |
PROFILE |
简历画像路径,默认在 $PROJECT_DIR/config/resume-profile.md |
cp "$PROJECT_DIR/config/resume-profile.example.md" "$PROJECT_DIR/config/resume-profile.md"按真实经历填写。该文件不会被 job-crawler 仓库追踪。
在 Claude Code 中输入 /job-hunt-match,或直接说「帮我找工作 / 抓一下岗位」,能触发本 Skill 即安装成功。
/job-hunt-match
也可以用自然语言触发:
- 「帮我找工作」
- 「抓一下最近的岗位」
- 「有什么岗位适合我」
- 「更新岗位表」
- 「简历匹配岗位」
- Safari 已打开,并登录了 BOSS直聘 / 猎聘
- Safari → 设置 → 开发 → 勾选「允许来自 Apple Events 的 JavaScript」
config/resume-profile.md已按最新简历填写
抓取期间不要切换 Safari 窗口,脚本全程作用于 window 1。
最终交付物写入:
$PROJECT_DIR/output/岗位匹配表-YYYYMMDD-HHMMSS.md
中间产物:
$PROJECT_DIR/output/候选岗位-YYYYMMDD-HHMMSS.md
| 档位 | 含义 | 核心条件 |
|---|---|---|
| S | 强推,本周内投 | 命中 ≥2 个核心技术信号,职能匹配,经验学历不超岗 |
| A | 值得投 | 命中 1 个核心信号;或够 S 但差一项(薪资偏低、猎头发布等) |
| B | 可投,有明确缺口 | 长期出差/派驻、薪资偏低、方向偏硬件/标定、经验要求超岗 |
| C | 备胎 | 明确外包/派驻、薪资过低、方向勉强沾边 |
| 别投 | 明确别投 | 命中五道否决中的任意一条 |
核心技术信号:CANoe、CANape、ECU-TEST、CAPL、DBC、UDS、HIL、IVI、信息娱乐、智能座舱、车机、OTA、T-Box、车联网、诊断测试、网络管理、Bootloader 等。
完整规则见 references/打分量表.md。
job-hunt-match/
├── SKILL.md # Skill 主文件:常量、角色、7 步流程、红线
├── README.md
└── references/
├── 打分量表.md # 五道否决 + S/A/B/C 分档 + 技术信号
├── 交付物模板.md # 八节交付物的结构骨架与写作要求
└── 抓取排查手册.md # 权限、登录态、验证码、选择器、薪资乱码等排查
- 只读:不点投递、不发消息、不动用户已有的 Safari 标签页
- 不破解验证码:遇到验证码交人工处理
- 不主动删历史数据:
data/jobs.json是累加库,重跑用--crawled-after隔离 - 不编造链接与 JD 内容:判断依据只有岗位卡片文字,没有 JD 正文
- 删除任何文件先问用户
- 只支持 macOS — Safari + AppleScript 路线,Windows/Linux 不适用
- 需要先安装 job-crawler — 本 Skill 只负责流程编排与打分,不包含抓取脚本
- 登录态会过期 — 猎聘尤其明显,每次抓取前都要检查
- 不要反复重跑 — 高频重试会把偶发限流升级成 IP 封锁
- 结果不含发布时间 — 两站结果页都不暴露发布时间,投递前需自行确认更新时间
- 合法使用 — 请遵守目标网站的使用条款,仅用于个人求职
本项目仅供学习和个人求职使用。