Job Matcher Skill banner
sangowu sangowu

Job Matcher Skill

Development community

Description

Match your CV to live job postings and generate an interactive HTML report. Agent-native skill for Claude Code & Codex (WebSearch + subagents, zero-dependency).

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

job-matcher

[English](README.en.md) | **中文**

版本文档:[更新记录](CHANGELOG.md) · [v2.3.0 发布说明](docs/releases/v2.3.0.md) · [v2.2.0 发布说明](docs/releases/v2.2.0.md) · [v2.1.0 发布说明](docs/releases/v2.1.0.md) · [v2.0.0 发布说明](docs/releases/v2.0.0.md)

一个 **agent skill(Claude Code 与 Codex 通用)**:输入**简历(CV) + 求职意向**,自动抽取简历字段、用 **web 搜索实时检索**匹配职位,生成一份**可交互的 HTML 报告**。

是 [JobRadar](https://github.com/sangowu/JobRadar) 的**轻量版**——默认只依赖 agent 原生能力(web 搜索 + 子代理 + Python 脚本),并可选接入 BYOK 隔离浏览器,借鉴 JobRadar 的 schema、算法与界面风格。


✨ 功能

  • 📄 简历解析:支持 PDF / DOCX / TXT / MD,或直接粘贴文本(不做 OCR)。
  • 🧠 结构化抽取:抽取目标职位、技能、资历(seniority)、地点、语言等,自动按相关年限定级。
  • 🔎 实时职位检索:基于 WebSearch 自适应分批搜索;按 CV 语言选职位词,按目标地点叠加当地平台(爱尔兰/英国、欧陆、澳新、中国大陆,其余市场按语言+地点推断)。
  • 🎯 5 维匹配打分:title / seniority / skills / location / must-have,输出五档投递建议(强烈投递→跳过)。资历硬规则与契约校验拦截打分漂移。
  • 🗂️ 增量缓存:CV、JD、匹配分三层缓存;多来源同职位自动聚合(含区域平台 job-id 强命中);换 query 自动失效重算。
  • 🛡️ 不可信输入隔离:搜索结果与 JD 正文按纯数据处理并忽略其中指令;报告内嵌 JSON 转义、链接限 http(s)。
  • 📊 可交互报告:两栏布局(左职位列表 30% + 右详情 70%)+ 评分徽章 + 深色模式 + 排序/筛选/搜索 + 7/30 天运行健康快照 + 中英 i18n,自包含单文件 HTML。
  • 🌐 可选隔离浏览器:Kernel BYOK 作为最终抓取兜底,支持受限列表翻页、视觉控制和 Live View 人工接管;默认关闭,CI 使用 Fake Provider。

🏗️ 架构

  • 主 agent = 编排者:调脚本、融合 query、追问用户、spawn subagent。
  • subagent 承担重上下文工作(CV 抽取 / 搜索 / 打分):大块原始文本留在 subagent,主上下文只搬「路径 + 小 JSON」,保持整洁。
  • Python 脚本承担确定性工作:解析、校验、去重聚合缓存、失效验证、渲染。
  • 并行计算、串行提交:第 N 批评估与第 N+1 批搜索并行发出(批间重叠);jobs_table.json 只有一个写入路径,使用评估快照、跨进程锁和原子替换防止丢失更新。超龄未完成的快照会在下次 merge 时作废回收,职位不会永久卡在评估中。
CV + query
   │ [脚本] extract_cv          → 纯文本 + cv_hash
   │ [缓存检查]                 → 命中则跳过抽取
   │ [subagent] 抽取 CVProfile  → [脚本] validate_profile
   │ [主agent] 融合 query       → search_plan + candidate_profile
   │ [并行 subagent] WebSearch+解析+初筛 → [脚本] merge_jobs(去重/聚合/缓存+评估快照)
   │ [并行 subagent] 粗排→精排抓JD+5维打分 + 失效验证 → [脚本] 条件化回写
   │ [脚本] render_html         → report_*.html(自动打开)
   ▼
可交互 HTML 报告

**容错阶梯**(失效验证 & JD 抓取共用):`WebFetch → requests 静态抓 → 本机 headless → 可选远程隔离浏览器 → 标注未验证不阻塞`