Extract information from PDF resumes, score candidates across multiple dimensions according to the target position requirements, and generate a structured Excel evaluation report.
Workflow
Resume analysis includes the following steps:
- Confirm input information (resume path, target position)
- Load position requirements (read the corresponding position document under
resources/) - Read resumes (run
scripts/read_pdf.py) - Analyze and score one by one (AI scores each resume across multiple dimensions according to the position requirements)
- Generate Excel report (run
scripts/write_excel.py)
Step 1: Confirm input information
Confirm the following information with the user:
- Resume path: path to a single PDF file or path to a folder containing multiple PDFs (required)
- Target position: the position name used for evaluation (required)
- Output path: the location where the Excel report is saved (optional, by default generated in the same directory as the resumes
简历分析报告.xlsx)
Step 2: Load position requirements
Position requirement documents are stored in the resources/ directory, named after the position (e.g., 产品经理.md)。
Existing positions: Product Manager, Frontend Development, Java Engineer, Test Engineer, Project Manager
- The position specified by the user exists in
resources/→ directly read the corresponding file - The position specified by the user does not exist → inform the user that there is no requirement document for that position and ask whether they need:
- (a) to choose from existing positions
- (b) AI to generate general requirements based on the position name and then continue the analysis
After reading the position document, focus on itscore skill requirementsandscoring criteriasections.
Step 3: Read resumes
Use the scripts/read_pdf.py script to extract resume text:
# 单个简历
python scripts/read_pdf.py /路径/简历.pdf
# 批量简历
python scripts/read_pdf.py /路径/简历文件夹/
The script outputs JSON-formatted results to stdout, including the path, filename, and extracted text content of each file.
Dependency: requires installation of pdfplumber(pip install pdfplumber). Check whether it is installed before running; if not installed, install it first.
Step 4: Analyze and score one by one
For each resume, score across the following six dimensions according to the position requirements:
| Dimension | Score | Scoring points |
|---|---|---|
| Educational background | 15 points | Degree level (PhD 15/Master's 12/Bachelor's 9/Associate 5), institution level (985/211 bonus), major relevance |
| Work experience | 20 points | Years of work in the relevant field, position fit, career level growth trajectory |
| Skill match | 25 points | The degree to which the skills demonstrated in the resume match the position's core skill requirements |
| Project experience | 20 points | Project complexity, role undertaken, outcomes produced, relevance to the position |
| Stability | 10 points | Average tenure at each company, job-hopping frequency (frequent job-hopping results in point deductions) |
| Development potential | 10 points | Learning ability, growth speed, technical/management vision, additional skills and certifications |
Total score = sum of scores across all dimensions (maximum 100 points)
Scoring principles
- In the resumeonly content that is explicitly mentionedis scored; do not make excessive inferences
- For dimensions with insufficient information, give a below-average score rather than zero
- Scoring must incorporate the specific skill weights in the job requirements document
Recommendation conclusion
Give a recommendation conclusion based on the total score:
- Recommended: total score ≥ 75 points
- Pending: total score 60-74 points
- Not recommended: total score < 60 points
Comprehensive evaluation
Write a 100-200 word comprehensive evaluation for each candidate, including:
- Core strengths (1-2 highlights)
- Main shortcomings (1-2 weaknesses)
- Overall assessment conclusion
Information extraction
Extract the following basic information from the resume text as much as possible:
姓名、性别、年龄、学历、毕业院校、专业、工作年限、联系电话、邮箱
For fields that cannot be extracted, enter "-".
Step 5: Generate Excel report
Organize all analysis results into JSON format, then call scripts/write_excel.py:
echo '<JSON数据>' | python scripts/write_excel.py /输出路径/简历分析报告.xlsx
or first write the JSON to a temporary file and then call:
python scripts/write_excel.py /输出路径/简历分析报告.xlsx --input /临时文件.json
Dependency: requires installation of openpyxl(pip install openpyxl). Check before running whether it is installed; if not, install it first.
JSON data format
{
"position": "岗位名称",
"candidates": [
{
"name": "姓名",
"file_name": "源文件名",
"basic_info": {
"gender": "性别",
"age": "年龄",
"education": "学历",
"school": "毕业院校",
"major": "专业",
"work_years": "工作年限",
"phone": "联系电话",
"email": "邮箱"
},
"scores": {
"education_score": 0,
"experience_score": 0,
"skill_match_score": 0,
"project_score": 0,
"stability_score": 0,
"potential_score": 0,
"total_score": 0
},
"evaluation": "综合评价",
"recommendation": "推荐/待定/不推荐"
}
]
}
Completed
After the report is generated, show the user an analysis summary:
- The total number of resumes analyzed
- The distribution of the number of people in each recommendation level
- The top 3 candidates with the highest scores, along with their scores and core strengths
- The location where the Excel report is saved