Install
openclaw skills install @bettermen/resume-jd-scorer简历-JD匹配度5维度评分技能。输入简历文本和目标JD,自动提取关键词→交叉匹配→5维评分→生成交互式HTML报告。5维度:硬技能匹配30分/经历相关性25分/学术产出20分/ATS关键词覆盖率15分/加分项10分。输出:总分评级+维度表+关键词命中表+得分扣分明细+TOP3建议+跨岗位对比。
openclaw skills install @bettermen/resume-jd-scorer输入简历原文 + 目标JD → 输出含雷达图的交互式HTML评分报告
| 维度 | 满分 | 权重 | 评分逻辑 |
|---|---|---|---|
| 1. 硬技能匹配 | 30 | 30% | JD要求的技术栈/框架/工具在简历中的覆盖比例 |
| 2. 经历相关性 | 25 | 25% | 过往岗位角色、项目方向与目标岗位的匹配程度 |
| 3. 学术产出 | 20 | 20% | 论文发表(顶会优先)/专利/学位专业匹配度 |
| 4. ATS关键词覆盖率 | 15 | 15% | JD核心关键词在简历中的命中率(精确+模糊) |
| 5. 加分项 | 10 | 10% | 经验年限/学历层次/行业认证/前沿技术/跨行业经验 |
Step 1: 简历文本提取
├── PDF → PyMuPDF/pdfplumber 提取
├── 文本 → 直接读取
└── 输出: resume_text (UTF-8)
↓
Step 2: JD解析 & 关键词提取
├── 提取硬技能关键词(framework/tool/language 权重: 高/极高)
├── 提取软技能关键词(权重: 低/中)
├── 提取学术要求(论文/专利/顶会 权重: 中/高)
└── 输出: jd_keywords (带权重分类)
↓
Step 3: 关键词交叉匹配
├── 精确匹配: 简历原文含JD关键词 → ✅ 完整命中
├── 语义匹配: 近义词/上下文相关 → ⚠️ 部分命中
├── 未匹配: JD有简历无 → ❌ 未命中
└── 额外项: 简历有JD无但有价值 → 🔵 额外命中
↓
Step 4: 5维度打分
├── 硬技能30分: (命中hard_skills / 总hard_skills) × 30
├── 经历相关性25分: 角色匹配 + 项目方向 + 行业匹配
├── 学术产出20分: 论文/专利/学位专业
├── ATS覆盖率15分: 总命中率 × 15
└── 加分项10分: 年限/学历/认证/前沿技术
↓
Step 5: 报告生成
├── 评级: A(85-100)/B(70-84)/C(50-69)/D(0-49)
├── 一句话定位
├── 5维度分数表 + 雷达图(SVG)
├── 关键词命中明细表
├── 每维度得分/扣分项
├── TOP 3修改建议(按ROI排序/区分改写与被补做)
└── 跨岗位匹配度对比表
↓
Step 6: 输出
├── resume-output/<version>/jd-match-report.html (交互式)
└── resume-output/<version>/jd-match-report.md (纯文本)
用户: 帮我给这份简历对XX岗位打分
[粘贴简历文本]
[粘贴JD文本]
用户: @简历.pdf 给这份简历对XX岗位打分
[粘贴JD文本]
用户: 用我的master简历,对腾讯AI Lab算法研究员打分
(Skill自动搜索JD或追问用户提供)
| 评级 | 分数区间 | 含义 | 建议动作 |
|---|---|---|---|
| A | 85-100 | 高度匹配 | 可直接投递,微调简历 |
| B | 70-84 | 较好匹配 | 针对性改写后投递 |
| C | 50-69 | 部分匹配 | 需要补充技能/改写到位后投递 |
| D | 0-49 | 严重不匹配 | 建议考虑其他岗位方向或大幅补课 |
| 脚本 | 用途 |
|---|---|
scripts/score_resume.py | 核心评分引擎:JD解析→关键词提取→交叉匹配→5维打分→JSON输出 |
scripts/generate_report.py | HTML报告生成:读取评分JSON→渲染交互式报告 |
本技能专注评分诊断,不涉及简历改写。完整简历定制流程请使用 resume-assistant 的 tailor 模式。
评分结果可作为 tailor 的输入参考(如"按刚才的score报告改简历")。