hr-resume-scorer

SKILL商业运营
商业运营 未标注权限 许可证不明确
安装这个技能

简历批量筛选打分工具。支持PDF/Word/TXT格式简历解析,基于JD进行匹配度分析,多维度评分,生成Excel/JSON/Markdown报告。当用户需要筛选简历、批量评估候选人、简历打分、匹配度分析、生成筛选报告时触发此技能。适用于HR、猎头、招聘团队。

一句话选型结论

按资料字段整理

hr-resume-scorer是商业运营类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类商业运营 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_15292d5a/yjkj-hr-resume-scorer
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

商业运营
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_15292d5a仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791673684
正文体量21.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写运营方案

按目标产出活动方案与执行清单。

分析数据与指标

从报表里找问题、给结论。

整理客户与销售材料

把客户信息与话术整理成可直接用的材料。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在商业运营场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
hr-resume-scorer当前 未标注权限 未标注 未标注 未标注 有
MX 股票筛选器 联网访问 ClawHub 市场 79.9 万 OpenClaw 有
交易 未标注权限 ClawHub 市场 58.1 万 OpenClaw 有
营销技巧 只读 ClawHub 市场 54.0 万 OpenClaw 有
百灵鸟好 联网访问 GitHub 仓库 52.6 万 Codex、Claude、Cursor 有
股票信息浏览器 接触敏感数据 ClawHub 市场 40.5 万 OpenClaw 有

SKILL.md 全文

21.2 KB
模型实际读到的说明书原文,来自技能仓库

简历批量筛选打分技能

概述

本技能提供完整的简历筛选解决方案:解析简历文件、基于JD匹配度分析、多维度自动评分、批量处理、生成结构化报告。

核心能力:
- 支持 PDF、Word、TXT、Markdown 格式简历解析
- 基于职位描述(JD)的智能匹配度分析
- 5维度评分体系:学历、经验、技能匹配、行业匹配、稳定性
- 批量处理 + Excel/JSON/Markdown 报告输出

使用场景

场景 触发词示例
直接发送简历 用户直接发送简历文件(PDF/Word/TXT)
批量筛选 "帮我筛选这批简历"、"简历打分"、"简历筛选"
JD匹配 "看这些简历和JD匹配度"、"按岗位要求筛选"
生成报告 "生成简历评分报告"、"输出Excel筛选结果"
单份评估 "评估这份简历"、"给这个候选人打分"

工作流程

模式一:用户直接发送简历(推荐)

当用户直接发送简历文件时,按以下流程处理:

用户发送简历文件
  ↓
┌─────────────────────────────────────┐
│ 1. 自动检测文件                      │
│    - 识别文件格式(PDF/Word/TXT)    │
│    - 获取文件路径                    │
└─────────────────────────────────────┘
  ↓
┌─────────────────────────────────────┐
│ 2. 询问JD(如未提供)                │
│    - "请提供岗位描述(JD),           │
│       或输入'跳过'进行基础评分"      │
└─────────────────────────────────────┘
  ↓
┌─────────────────────────────────────┐
│ 3. 解析并评分                        │
│    - 解析简历内容                    │
│    - 提取关键信息                    │
│    - 多维度评分                      │
└─────────────────────────────────────┘
  ↓
┌─────────────────────────────────────┐
│ 4. 即时反馈                          │
│    - 展示候选人信息摘要              │
│    - 显示评分结果                    │
│    - 给出录用建议                    │
└─────────────────────────────────────┘

处理步骤:

  1. 检测文件:用户发送文件后,自动识别为简历文件
  2. 询问JD:如对话中未提供JD,询问用户是否提供岗位描述
  3. 解析简历:使用 ResumeParser.parse_file() 解析文件
  4. 评分分析:使用 ResumeScorer.score_resume() 进行评分
  5. 展示结果:以Markdown格式展示候选人信息和评分结果

输出格式:

## 📋 简历解析结果

**候选人**: 张三
**文件名**: 张三_前端开发.pdf

### 基本信息
- 📱 电话: 13800138000
- 📧 邮箱: zhangsan@email.com
- 🎓 学历: 本科
- 💼 经验: 5年

### 技能列表
React, Vue, TypeScript, Node.js, Webpack

### 评分结果

| 维度 | 分数 | 说明 |
|------|------|------|
| 学历背景 | 70 | 本科 |
| 工作经验 | 85 | 5年经验 |
| 技能匹配 | 90 | 高度匹配 |
| 稳定性 | 80 | 较为稳定 |

**总分**: 82.5
**匹配等级**: A-高度匹配
**建议**: 推荐 - 建议安排面试

模式二:指定文件路径/目录

当用户指定文件路径或目录时,按以下流程处理:

用户提供路径
  ↓
┌─────────────────────────────────────┐
│ 1. 确认输入                         │
│    - 简历文件/目录路径               │
│    - JD文本/文件(可选)               │
│    - 输出格式(默认Excel)             │
└─────────────────────────────────────┘
  ↓
┌─────────────────────────────────────┐
│ 2. 批量解析                         │
│    - 遍历目录文件                    │
│    - 逐个解析简历                    │
│    - 收集结构化数据                  │
└─────────────────────────────────────┘
  ↓
┌─────────────────────────────────────┐
│ 3. 批量评分                         │
│    - 基础维度评分                    │
│    - JD匹配度计算(如有JD)            │
│    - 按分数排序                      │
└─────────────────────────────────────┘
  ↓
┌─────────────────────────────────────┐
│ 4. 生成报告                         │
│    - 输出Excel/JSON/Markdown         │
│    - 展示筛选摘要                    │
└─────────────────────────────────────┘

步骤详解

Step 1: 确认输入

向用户确认:
1. 简历位置:文件路径、目录路径,或用户直接发送文件
2. JD信息:职位描述文本或文件路径(可选)
3. 输出格式:Excel(默认)、JSON、Markdown
4. 输出路径:默认当前目录下

Step 2: 解析简历

调用脚本 scripts/resume_scorer.py 中的 ResumeParser:

from resume_scorer import ResumeParser

# 解析单个文件
resume = ResumeParser.parse_file("path/to/resume.pdf")

# 返回结构化数据
print(resume.name)           # 候选人姓名
print(resume.phone)          # 电话
print(resume.email)          # 邮箱
print(resume.education)      # 学历列表
print(resume.experience_years)  # 工作年限
print(resume.skills)         # 技能列表

Step 3: 评分分析

使用 ResumeScorer 进行多维度评分:

from resume_scorer import ResumeScorer, JDMatcher

# 初始化评分器
scorer = ResumeScorer()

# 解析JD(如有)
jd_requirements = JDMatcher.parse_jd(jd_text)

# 评分
result = scorer.score_resume(resume, jd_requirements)

print(result.total_score)       # 总分(0-100)
print(result.match_level)       # 匹配等级(S/A/B/C/D/E)
print(result.dimension_scores)  # 各维度分数
print(result.strengths)         # 优势
print(result.concerns)          # 关注点
print(result.recommendation)    # 录用建议

Step 4: 批量处理

使用 BatchProcessor 批量处理:

from resume_scorer import BatchProcessor, ReportGenerator

processor = BatchProcessor()

# 处理整个目录
results = processor.process_directory("path/to/resumes/", jd_text)

# 生成Excel报告
ReportGenerator.to_excel(results, "筛选报告.xlsx")

# 生成Markdown报告
ReportGenerator.to_markdown(results, "筛选报告.md")

评分维度

维度 权重 说明
学历背景 15% 博士/硕士/本科/大专
工作经验 25% 年限 + 大厂/行业经验
技能匹配 30% 与JD技能要求的匹配度
行业匹配 20% 同行业/相关行业/跨行业
工作稳定性 10% 平均在职时长

匹配等级:
- S (90-100): 极匹配,强烈推荐
- A (80-89): 高度匹配,推荐面试
- B (70-79): 较为匹配,建议面试
- C (60-69): 基本匹配,可考虑
- D (50-59): 部分匹配,谨慎考虑
- E (<50): 匹配度低,不推荐

详细评分标准见 references/scoring_criteria.md

人物画像分析

分析维度

维度 说明 分析方法
性格特征 领导力、执行力、创新力等 关键词分析
工作风格 技术驱动/业务导向/管理型/研究型 内容分析
职业动机 技术成长/薪资/发展/平衡 关键词分析
职业倾向 管理方向/专家方向/业务方向 经验分析
领导潜力 高/中等/需评估 管理经验分析
团队适配 协作型/独立型/灵活型 工作方式分析

输出示例

#### 👤 人物画像
- **性格特征**: 领导力、执行力、协作力
- **工作风格**: 技术驱动型
- **职业倾向**: 管理方向
- **领导潜力**: 高领导潜力
- **团队适配**: 适合协作型团队
- **总结**: 候选人表现出领导力、执行力、协作力等特质,属于技术驱动型,职业倾向为管理方向。高领导潜力,适合协作型团队。

简历真实性检查

检查维度

维度 说明 风险指标
时间一致性 工作经历时间是否重叠 时间矛盾
描述真实性 是否存在夸大或模糊描述 夸大描述、模糊描述
经验合理性 经验与年限是否匹配 经验与年龄不符
跳槽频率 是否频繁跳槽 频繁跳槽
学历验证 学历信息是否可信 教育时间异常

风险等级

等级 分数区间 建议
低风险 80-100 简历信息较为可信
中等风险 60-79 建议面试中深入了解
较高风险 40-59 建议深度背景调查
高风险 0-39 要求提供第三方证明

红旗标记

常见可疑模式:
- 夸大描述:"精通所有"、"全栈精通"
- 模糊描述:"参与项目"、"协助工作"
- 时间矛盾:工作经历时间重叠
- 经验不符:工作年限与技能不匹配

输出示例

#### 🔍 真实性检查
- **真实性评分**: 85/100
- **风险等级**: 低风险
- **验证要点**:
  - 要求提供学历证书或学信网验证
  - 要求提供离职证明或社保记录
  - 通过技术面试验证核心技能

在职时长预估

预估因素

因素 权重 说明
历史平均在职时长 35% 过往工作稳定性
跳槽频率趋势 20% 最近跳槽是否更频繁
职业发展阶段 15% 初级/成长期/稳定期/资深
行业特性 10% 互联网/传统行业/创业
职位匹配度 10% 与JD的匹配程度

风险等级

等级 预估时长 留任概率
低风险 3年以上 高
中等风险 1-3年 中
高风险 1年以下 低

输出示例

#### ⏱️ 在职预估
- **预估在职时长**: 2-3年
- **留任风险**: 低风险

命令行用法

# 基础用法:筛选目录下所有简历
python scripts/resume_scorer.py ./resumes/

# 指定JD文件
python scripts/resume_scorer.py ./resumes/ --jd ./jd.txt

# 直接输入JD文本
python scripts/resume_scorer.py ./resumes/ --jd-text &quot;岗位要求:3年以上Python经验...&quot;

# 指定输出格式和路径
python scripts/resume_scorer.py ./resumes/ --format excel --output 筛选结果.xlsx

# JSON格式输出
python scripts/resume_scorer.py ./resumes/ --format json --output results.json

# Markdown格式输出
python scripts/resume_scorer.py ./resumes/ --format markdown --output report.md

输出报告示例

Excel报告字段

字段 说明
排名 按总分排序
文件名 原始文件名
候选人 提取的姓名
总分 加权总分(0-100)
匹配等级 S/A/B/C/D/E
学历得分 学历维度分数
经验得分 经验维度分数
技能匹配 技能维度分数
稳定性 稳定性维度分数
优势 候选人亮点
关注点 需注意问题
建议 录用建议

依赖安装

# PDF解析 (二选一)
pip install PyMuPDF
# 或
pip install pdfplumber

# Word解析
pip install python-docx

# Excel输出
pip install pandas openpyxl

文件限制

限制类型 限制值 说明
单个文件大小 10MB 超过会提示压缩或拆分
批量处理总大小 100MB 超过会提示分批处理
支持的文件格式 PDF, .docx, .txt, .md 不支持扫描版PDF和旧版.doc

文件大小限制说明

单个文件限制 (10MB):
- 超过限制会显示详细的错误信息
- 提供压缩建议和工具链接
- 说明如何减小文件大小

批量处理限制 (100MB):
- 处理前会自动检查总大小
- 超过限制会提示分批处理
- 显示当前文件数量和总大小

错误处理

本技能提供详细的错误提示和解决方案,帮助用户快速定位和解决问题。

常见错误类型

1. 文件不存在

❌ 文件不存在: C:/Users/xxx/resume.pdf

💡 解决方案:
1. 检查文件路径是否正确
2. 确认文件是否已被移动或删除
3. 使用绝对路径,例如:C:/Users/xxx/resume.pdf
4. 检查文件名是否有特殊字符或空格

📁 当前工作目录:C:/Users/Administrator

2. 文件大小超限

❌ 文件大小超限: resume.pdf (15.2MB &gt; 10MB)

💡 解决方案:
1. 当前文件大小:15.2MB,超过限制:10MB
2. 如果是PDF文件,尝试压缩:https://smallpdf.com/compress-pdf
3. 如果是Word文件,尝试:
   - 压缩文档中的图片
   - 删除不必要的内容
   - 另存为新文档
4. 联系管理员调整文件大小限制

📊 限制说明:
- 单个文件最大:10MB
- 批量处理总大小最大:100MB

3. 不支持的文件格式

❌ 不支持的文件格式: .jpg

💡 解决方案:
当前文件格式:.jpg
支持的文件格式:.pdf, .docx, .doc, .txt, .md

🔧 格式转换建议:
1. PDF → 直接使用(推荐)
2. Word → 使用.docx格式(推荐)
3. 图片型简历 → 无法解析,需要文本型简历
4. WPS文档 → 另存为.docx格式
5. 其他格式 → 复制内容到.txt文件

4. PDF解析失败

❌ 文件内容为空: resume.pdf

💡 解决方案:
文件内容为空,无法解析。

🔧 可能原因:
1. 文件确实是空的
2. 文件内容是图片(无法提取文字)
3. 文件损坏

💡 建议:
1. 检查文件是否正常打开
2. 如果是扫描版简历,需要文本型简历
3. 联系候选人重新发送

5. Word文件损坏

❌ Word文件损坏:resume.docx

💡 解决方案:
Word文件损坏,可能是旧版.doc格式或文件不完整。

🔧 尝试以下方法:
1. 用Microsoft Word打开并修复
2. 另存为新文档后重试
3. 联系候选人重新发送

6. 编码错误

❌ 文件编码错误: resume.txt

💡 解决方案:
文件编码不是UTF-8,无法正常读取中文内容。

🔧 尝试以下方法:
1. 用记事本打开文件
2. 点击&quot;文件&quot; → &quot;另存为&quot;
3. 编码选择&quot;UTF-8&quot;
4. 保存后重试

7. 权限不足

❌ 文件访问权限不足:resume.pdf

💡 解决方案:
1. 关闭正在使用该文件的程序
2. 以管理员身份运行
3. 检查文件是否被设置为只读
4. 复制文件到其他位置后重试

8. 批量处理超限

❌ 批量处理大小超限: 150.5MB &gt; 100MB

💡 解决方案:
批量处理文件总大小超限。

📊 当前状态:
- 文件数量:150 个
- 总大小:150.5MB
- 限制:100MB

🔧 建议:
1. 分批处理:每次处理部分文件
2. 删除不必要的文件
3. 压缩大文件后重试
4. 联系管理员调整限制

错误处理最佳实践

  1. 遇到错误时:仔细阅读错误信息和解决方案
  2. 文件格式问题:优先使用PDF或.docx格式
  3. 文件大小问题:压缩图片或删除不必要内容
  4. 编码问题:使用UTF-8编码保存文件
  5. 批量处理:控制文件数量和总大小

联系支持

如果按照解决方案仍无法解决问题:
1. 记录完整的错误信息
2. 说明文件类型和大小
3. 提供操作系统和Python版本
4. 联系技术支持获取帮助

注意事项

  1. 文件格式:确保简历文件格式正确,PDF推荐使用文本型PDF
  2. 编码问题:中文简历建议使用UTF-8编码
  3. 批量数量:单次建议不超过100份,大批量请分批处理
  4. JD质量:JD越详细,匹配分析越准确
  5. 人工复核:自动评分仅供参考,重要岗位建议人工复核

参考文档

  • 评分标准详情:references/scoring_criteria.md
  • 简历解析指南:references/resume_parsing_guide.md
  • 人物画像与真实性检查:references/personality_analysis_guide.md

附录:对话式简历解析指南

场景A:用户直接发送简历文件

当用户在对话中直接发送简历文件时,按以下步骤处理:

1. 识别文件

用户发送的文件会自动保存到工作目录。检测文件扩展名:
- .pdf → PDF简历
- .docx / .doc → Word简历
- .txt / .md → 文本简历

2. 解析并展示结果

# 获取用户发送的文件路径(从工作目录)
import glob
from resume_scorer import ResumeParser, ResumeScorer, JDMatcher

# 查找最新的简历文件
resume_files = glob.glob(&quot;*.pdf&quot;) + glob.glob(&quot;*.docx&quot;) + glob.glob(&quot;*.txt&quot;)
if resume_files:
    file_path = resume_files[-1]  # 取最新文件

    # 解析简历
    resume = ResumeParser.parse_file(file_path)

    # 评分(无JD时使用基础评分)
    scorer = ResumeScorer()
    result = scorer.score_resume(resume)

    # 格式化输出
    print(f&quot;## 📋 简历解析结果\n&quot;)
    print(f&quot;**候选人**: {resume.name}&quot;)
    print(f&quot;**文件名**: {resume.filename}\n&quot;)
    print(f&quot;### 基本信息&quot;)
    print(f&quot;- 📱 电话: {resume.phone or &#x27;未提供&#x27;}&quot;)
    print(f&quot;- 📧 邮箱: {resume.email or &#x27;未提供&#x27;}&quot;)
    print(f&quot;- 🎓 学历: {&#x27;, &#x27;.join(resume.education) if resume.education else &#x27;未提供&#x27;}&quot;)
    print(f&quot;- 💼 经验: {resume.experience_years}年\n&quot;)
    print(f&quot;### 技能列表&quot;)
    print(f&quot;{&#x27;, &#x27;.join(resume.skills) if resume.skills else &#x27;未识别到明确技能&#x27;}\n&quot;)
    print(f&quot;### 评分结果&quot;)
    print(f&quot;| 维度 | 分数 |&quot;)
    print(f&quot;|------|------|&quot;)
    for dim, score in result.dimension_scores.items():
        print(f&quot;| {dim} | {score} |&quot;)
    print(f&quot;\n**总分**: {result.total_score}&quot;)
    print(f&quot;**匹配等级**: {result.match_level}&quot;)
    print(f&quot;**建议**: {result.recommendation}&quot;)

3. 询问是否需要JD匹配

展示基础评分后,询问用户:

是否提供岗位描述(JD)进行更精准的匹配分析?
- 提供JD文本 → 进行JD匹配度分析
- 输入&quot;跳过&quot; → 保持基础评分

场景B:用户发送多个简历文件

当用户一次发送多个简历文件时:

  1. 收集所有文件:遍历工作目录中的简历文件
  2. 批量解析:逐个解析并评分
  3. 汇总展示:按分数排序,展示排名表
  4. 询问是否导出:是否需要生成Excel/JSON报告
## 📊 批量简历筛选结果

共解析 5 份简历

| 排名 | 候选人 | 总分 | 等级 | 建议 |
|------|--------|------|------|------|
| 1 | 张三 | 85.5 | A | 推荐面试 |
| 2 | 李四 | 78.0 | B | 建议面试 |
| 3 | 王五 | 72.5 | B | 建议面试 |
| 4 | 赵六 | 65.0 | C | 可考虑 |
| 5 | 钱七 | 55.0 | D | 谨慎考虑 |

是否需要生成详细的Excel报告?

场景C:用户粘贴简历文本

当用户直接粘贴简历内容时:

  1. 保存为临时文件:将文本保存为 temp_resume.txt
  2. 解析并评分:使用标准流程处理
  3. 展示结果:即时反馈评分结果
# 保存用户粘贴的文本
with open(&quot;temp_resume.txt&quot;, &quot;w&quot;, encoding=&quot;utf-8&quot;) as f:
    f.write(user_pasted_text)

# 解析并评分
resume = ResumeParser.parse_file(&quot;temp_resume.txt&quot;)
result = scorer.score_resume(resume)

最佳实践

  1. 即时反馈:用户发送文件后,立即解析并展示结果
  2. 渐进式分析:先展示基础评分,再询问是否需要JD匹配
  3. 清晰展示:使用表格和格式化输出,便于阅读
  4. 灵活导出:根据用户需求生成不同格式的报告
  5. 错误处理:解析失败时给出明确提示和解决建议

常见问题

5 问
答案由本站依据条目字段整理
hr-resume-scorer怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_15292d5a/yjkj-hr-resume-scorer。安装方式为未标注。装完刷新技能列表或重开客户端。

hr-resume-scorer支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

hr-resume-scorer权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

hr-resume-scorer收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

hr-resume-scorer用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。