Skills resume-parser
智能简历解析系统,支持PDF/Word/图片格式简历的结构化信息提取、岗位匹配度分析、优化建议生成。完全本地运行,无需外部API。使用场景:(1) 解析上传的简历文件提取核心信息,(2) 输入岗位JD计算简历匹配度,(3) 生成简历优化建议,(4) 导出结构化简历数据。
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ayalili/resume-parser" ~/.claude/skills/clawdbot-skills-resume-parser && rm -rf "$T"
manifest:
skills/ayalili/resume-parser/SKILL.mdsource content
智能简历解析系统 Skill
核心功能
- 多格式支持:PDF (.pdf)、Word (.docx/.doc)、图片 (.jpg/.png/.webp) 格式简历解析
- 信息提取:自动识别并提取以下核心信息:
- 个人基本信息(姓名、电话、邮箱、年龄、性别、所在地)
- 教育经历(学校、专业、学历、起止时间、GPA、相关课程)
- 工作经历(公司名称、职位、起止时间、工作内容、业绩成果)
- 项目经历(项目名称、角色、起止时间、项目描述、技术栈、成果)
- 技能栈(编程语言、框架、工具、软技能、语言能力)
- 证书、获奖经历、自我评价
- 匹配度分析:输入岗位JD后自动计算简历匹配度,从技能匹配、经验匹配、学历匹配等多维度打分
- 优化建议:针对简历不足生成具体优化建议,包括内容补充、表述优化、结构调整
- 数据导出:支持JSON/Markdown格式导出结构化简历数据
工作流程
- 当用户上传简历文件或提供简历路径时,先调用对应解析脚本提取文本内容
- 将提取的文本传入大模型进行结构化信息提取,输出标准JSON格式
- 如果用户提供了岗位JD,按照以下严格规则进行匹配度分析:
- 第一步:先区分JD中的「核心要求」和「加分要求」:核心要求占比80%权重,加分要求占20%
- 第二步:严格匹配核心要求:核心要求只要有一项不满足,整体评分上限不超过60分;2项及以上不满足,上限不超过40分
- 第三步:加权计算总分:严格按照各维度权重计算,禁止主观加分
- 第四步:客观说明匹配情况:必须明确说明「完全匹配/基本匹配/不匹配」,禁止模糊表述
- 最终返回结构化结果 + 严格的分析报告 + 可落地优化建议
匹配度评分严格规则
- 90-100分:完全匹配:所有核心要求100%满足,加分要求满足80%以上,有超出要求的亮点
- 70-89分:基本匹配:核心要求全部满足,加分要求满足50%以上,无明显核心短板
- 60-69分:勉强匹配:核心要求基本满足,有1项非关键核心要求不满足,加分要求满足30%以上,可以进入面试
- <60分:不匹配:核心要求有2项及以上不满足,或有1项关键核心要求不满足,不符合岗位基本要求
核心要求判定规则
- 岗位JD中明确标注「必须」「要求」「需具备」的技能/经验
- 岗位名称对应的核心能力(如AI算法岗必须懂深度学习,后端岗必须懂编程语言)
- 明确的工作年限、学历要求
脚本使用
1. PDF文本提取
python scripts/extract_pdf.py <input-pdf-path>
返回纯文本内容
2. Word文本提取
python scripts/extract_docx.py <input-docx-path>
返回纯文本内容
3. 图片OCR提取
python scripts/extract_image.py <input-image-path>
返回OCR识别的文本内容
4. 结构化解析
python scripts/parse_resume.py <extracted-text-file>
返回结构化JSON数据
5. 匹配度分析
python scripts/match_jd.py <resume-json-path> <jd-text-path>
返回匹配度分析结果
输出格式规范
结构化简历JSON格式
{ "basic_info": { "name": "", "phone": "", "email": "", "age": null, "gender": "", "location": "", "work_years": null }, "education": [ { "school": "", "major": "", "degree": "", "start_date": "", "end_date": "", "gpa": "", "courses": [] } ], "work_experience": [ { "company": "", "position": "", "start_date": "", "end_date": "", "description": "", "achievements": [], "technologies": [] } ], "projects": [ { "name": "", "role": "", "start_date": "", "end_date": "", "description": "", "technologies": [], "achievements": [] } ], "skills": { "technical": [], "soft": [], "languages": [] }, "certificates": [], "awards": [], "self_assessment": "" }
匹配度分析格式
{ "overall_score": 0-100, "dimensions": [ { "name": "核心技能匹配", "score": 0-100, "weight": 0.4, "matched": ["匹配的核心技能列表"], "missing": ["缺失的核心技能列表"], "analysis": "详细分析说明" }, { "name": "岗位职责匹配", "score": 0-100, "weight": 0.3, "matched": ["匹配的职责经验"], "gap": "职责差距描述", "analysis": "详细分析说明" }, { "name": "经验/资历匹配", "score": 0-100, "weight": 0.15, "matched": ["匹配的经验点"], "gap": "经验差距描述", "analysis": "详细分析说明" }, { "name": "学历/背景匹配", "score": 0-100, "weight": 0.15, "matched": "匹配结果描述", "gap": "背景差距描述(如果有)", "analysis": "详细分析说明" } ], "overall_analysis": "整体匹配情况总结,明确说明是否匹配", "strengths": ["简历优势列表"], "weaknesses": ["简历不足列表,必须明确核心差距"], "suggestions": ["具体的优化建议列表"] }
依赖安装
首次使用前安装依赖:
pip install PyPDF2 python-docx pytesseract pillow python-multipart
注意:OCR功能需要安装Tesseract引擎