resume-parser
智能简历解析系统,支持PDF/Word/图片格式简历的结构化信息提取、岗位匹配度分析、优化建议生成。完全本地运行,无需外部API。使用场景:(1) 解析上传的简历文件提取核心信息,(2) 输入岗位JD计算简历匹配度,(3) 生成简历优化建议,(4) 导出结构化简历数据。
Best use case
resume-parser is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
智能简历解析系统,支持PDF/Word/图片格式简历的结构化信息提取、岗位匹配度分析、优化建议生成。完全本地运行,无需外部API。使用场景:(1) 解析上传的简历文件提取核心信息,(2) 输入岗位JD计算简历匹配度,(3) 生成简历优化建议,(4) 导出结构化简历数据。
Teams using resume-parser should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/resume-parser/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How resume-parser Compares
| Feature / Agent | resume-parser | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
智能简历解析系统,支持PDF/Word/图片格式简历的结构化信息提取、岗位匹配度分析、优化建议生成。完全本地运行,无需外部API。使用场景:(1) 解析上传的简历文件提取核心信息,(2) 输入岗位JD计算简历匹配度,(3) 生成简历优化建议,(4) 导出结构化简历数据。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# 智能简历解析系统 Skill
## 核心功能
1. **多格式支持**:PDF (.pdf)、Word (.docx/.doc)、图片 (.jpg/.png/.webp) 格式简历解析
2. **信息提取**:自动识别并提取以下核心信息:
- 个人基本信息(姓名、电话、邮箱、年龄、性别、所在地)
- 教育经历(学校、专业、学历、起止时间、GPA、相关课程)
- 工作经历(公司名称、职位、起止时间、工作内容、业绩成果)
- 项目经历(项目名称、角色、起止时间、项目描述、技术栈、成果)
- 技能栈(编程语言、框架、工具、软技能、语言能力)
- 证书、获奖经历、自我评价
3. **匹配度分析**:输入岗位JD后自动计算简历匹配度,从技能匹配、经验匹配、学历匹配等多维度打分
4. **优化建议**:针对简历不足生成具体优化建议,包括内容补充、表述优化、结构调整
5. **数据导出**:支持JSON/Markdown格式导出结构化简历数据
## 工作流程
1. 当用户上传简历文件或提供简历路径时,先调用对应解析脚本提取文本内容
2. 将提取的文本传入大模型进行结构化信息提取,输出标准JSON格式
3. 如果用户提供了岗位JD,按照以下严格规则进行匹配度分析:
- **第一步:先区分JD中的「核心要求」和「加分要求」**:核心要求占比80%权重,加分要求占20%
- **第二步:严格匹配核心要求**:核心要求只要有一项不满足,整体评分上限不超过60分;2项及以上不满足,上限不超过40分
- **第三步:加权计算总分**:严格按照各维度权重计算,禁止主观加分
- **第四步:客观说明匹配情况**:必须明确说明「完全匹配/基本匹配/不匹配」,禁止模糊表述
4. 最终返回结构化结果 + 严格的分析报告 + 可落地优化建议
## 匹配度评分严格规则
1. **90-100分:完全匹配**:所有核心要求100%满足,加分要求满足80%以上,有超出要求的亮点
2. **70-89分:基本匹配**:核心要求全部满足,加分要求满足50%以上,无明显核心短板
3. **60-69分:勉强匹配**:核心要求基本满足,有1项非关键核心要求不满足,加分要求满足30%以上,可以进入面试
4. **<60分:不匹配**:核心要求有2项及以上不满足,或有1项关键核心要求不满足,不符合岗位基本要求
## 核心要求判定规则
- 岗位JD中明确标注「必须」「要求」「需具备」的技能/经验
- 岗位名称对应的核心能力(如AI算法岗必须懂深度学习,后端岗必须懂编程语言)
- 明确的工作年限、学历要求
## 脚本使用
### 1. PDF文本提取
```bash
python scripts/extract_pdf.py <input-pdf-path>
```
返回纯文本内容
### 2. Word文本提取
```bash
python scripts/extract_docx.py <input-docx-path>
```
返回纯文本内容
### 3. 图片OCR提取
```bash
python scripts/extract_image.py <input-image-path>
```
返回OCR识别的文本内容
### 4. 结构化解析
```bash
python scripts/parse_resume.py <extracted-text-file>
```
返回结构化JSON数据
### 5. 匹配度分析
```bash
python scripts/match_jd.py <resume-json-path> <jd-text-path>
```
返回匹配度分析结果
## 输出格式规范
### 结构化简历JSON格式
```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": ""
}
```
### 匹配度分析格式
```json
{
"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": ["具体的优化建议列表"]
}
```
## 依赖安装
首次使用前安装依赖:
```bash
pip install PyPDF2 python-docx pytesseract pillow python-multipart
```
*注意:OCR功能需要安装Tesseract引擎*Related Skills
content-parser
Extract and parse content from URLs. Triggers on: user provides a URL to extract content from, another skill needs to parse source material, "parse this URL", "extract content", "解析链接", "提取内容".
resume-rewrite
简历改写 skill。用于优化个人总结、工作经历、项目经历、技能和教育经历,强调结果、业务价值和岗位匹配度。当用户说“优化简历”“改写工作经历”“润色项目经历”时使用。
resume-analysis
简历分析 skill。用于诊断整份简历的完整性、清晰度、岗位相关性、成果表达和结构质量。当用户说“分析简历”“看看我的简历”“简历诊断”时使用。
resume-jd-match
AI-powered JD-matched resume generator with native Chinese and English support. Collects structured user profile (work history, projects, skills, education), parses target job descriptions, performs explicit match analysis before generating, then outputs print-optimized HTML resume + auto-export PDF. Core strengths: (1) JD→resume full pipeline with transparency, (2) Chinese resume native support, (3) persistent profile reuse across multiple JDs. Use when: tailoring resume for a job posting, creating resume from scratch, optimizing for ATS, building Chinese/English resume, "make me a resume", "customize resume for this job", "简历定制", "针对岗位优化简历".
resume-tailor
Generate job-specific tailored resumes from a base profile and job description. First collects structured user info (personal details, work history, side projects, education, skills, certificates), then reads a target JD to produce a polished HTML resume customized to match. Outputs print-optimized HTML that exports cleanly to PDF via browser print. Use when user wants to create/rewrite/tailor a resume for a specific job posting, optimize a resume for ATS, build a resume from scratch, or says "make me a resume" / "tailor my resume" / "customize resume for this job". Supports Chinese and English resumes.
boot-resume
Zero-cooperation session recovery after gateway restart. No checkpoints, no hooks, no agent involvement — just reads the evidence and picks up where it left off. Use when: the gateway was killed mid-task (SIGTERM, OOM, SIGKILL, crash), sessions were interrupted mid-turn with tool calls in progress, the agent stopped responding after a restart, a user reports the agent went silent after a crash, you need to manually check whether any sessions need recovery, or you want automatic resume without writing any checkpoint logic.
resume-helper
简历优化助手。帮我写简历,改简历、导出PDF、准备面试问答。适用于:更新简历、补充项目经验、排版调整、导出PDF、准备面试问答。
multimodal-parser
Unified multi-modal content parser for images, PDF, DOCX, audio, auto OCR/transcription, output structured text for LLM processing
document-parser
高精度文档解析技能,从 PDF、图片、Word 文档中提取结构化数据。
resume-reviewer
Analyze resumes for target roles, identify weak bullets, missing keywords, ATS gaps, and provide actionable rewrite suggestions.
resume-builder
Generate professional resumes that conform to the Reactive Resume schema. Use when the user wants to create, build, or generate a resume through conversational AI, or asks about resume structure, sections, or content. This skill guides the agent to ask clarifying questions, avoid hallucination, and produce valid JSON output for https://rxresu.me.
resume
Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating.