# openai-analyze-resume  
基于OpenAI的CLI版简历匹配度分析工具  


## 一、工具简介  
这是一个**轻量级、无冗余依赖**的简历评估系统，通过命令行（CLI）操作，借助OpenAI的能力实现3大核心功能：  
1. 自动从简历中提取关键信息（如姓名、工作年限、学历、技术能力等）；  
2. 对比职位描述（JD）与简历内容，生成简洁的匹配度概要（200字内）；  
3. 按照预设规则计算匹配分数（0-100分），方便多候选人横向对比。  

核心优势：去掉了Streamlit、LangChain、FAISS等复杂依赖，仅保留OpenAI SDK核心能力，上手快、运行轻。  


## 二、前置准备  
在使用工具前，需准备以下3件事：  

### 1. 环境要求  
- 安装 **Python 3.8及以上版本**（可通过 `python --version` 查看当前版本，低于3.8建议升级）；  
- 确保网络可正常访问OpenAI API（若有网络限制，需配置对应代理）。  

### 2. 必备资源  
- **OpenAI API密钥**：  
  1. 前往 [OpenAI官网](https://platform.openai.com/) 注册/登录账号；  
  2. 进入「API keys」页面（左侧菜单 → Personal → View API keys）；  
  3. 点击「Create new secret key」生成密钥，复制保存（密钥仅显示一次，丢失需重新生成）。  
- **2个文本文件**：  
  1. `jd.txt`：存放完整的职位描述（JD），内容需包含岗位职责、任职要求等关键信息；  
  2. `resume.txt`：存放完整的候选人简历，建议包含个人信息、工作经历、教育背景、技能等内容（支持TXT格式，编码为UTF-8）。  


## 三、快速使用步骤  
按以下步骤操作，5分钟内即可完成一次简历分析：  

### 步骤1：下载工具代码  
将 `resume_analyzer.py` 文件（工具核心代码）保存到本地电脑的任意文件夹（如 `C:\resume-tool` 或 `~/resume-tool`）。  

### 步骤2：安装依赖包  
打开命令行（Windows用「命令提示符」或PowerShell，Mac/Linux用「终端」），进入工具所在文件夹，执行以下命令安装所需依赖：  
```bash
pip install openai pandas tqdm
```  
（若提示 `pip` 命令不存在，需先配置Python环境变量，或用 `python -m pip install ...` 替代）。  

### 步骤3：配置API密钥  
用记事本、VS Code等文本编辑器打开 `resume_analyzer.py`，找到以下代码行：  
```python
# 设置OpenAI API密钥 - 请替换为您自己的密钥
openai.api_key = "YOUR_OPENAI_API_KEY"  # 替换成您的API密钥
```  
将 `"YOUR_OPENAI_API_KEY"` 替换为你在「前置准备」中获取的OpenAI API密钥（注意保留英文引号），保存文件。  

### 步骤4：运行工具并输入文件路径  
在命令行中，进入工具所在文件夹，执行以下命令启动工具：  
```bash
python resume_analyzer.py
```  
启动后，工具会提示你输入两个文件的路径：  
1. 输入职位描述（JD）文件的路径（如 `C:\resume-tool\jd.txt` 或 `./jd.txt`，若文件和代码在同一文件夹，直接输文件名即可）；  
2. 输入简历文件的路径（同理，如 `./resume.txt`）。  

示例交互：  
```
===== 简历匹配度分析工具 =====
请输入职位描述(JD)文件路径: ./jd.txt
请输入简历文件路径: ./resume.txt
正在从简历中提取信息...
信息提取中: 100%|██████████| 14/14 [00:20<00:00,  1.43s/项]

正在生成综合匹配度分析...
正在计算匹配得分...

===== 分析结果 =====
综合匹配得分：85

详细信息：
          option       value
姓名           张三
联系号码       138****1234
性别           男
年龄           32
工作年数（数字）  8
最高学历       硕士
本科学校名称     XX大学（985）
硕士学校名称     YY大学（211）
是否在职       是
当前职务       数据分析师
历史任职公司列表   A科技（头部企业）、B互联网
技术能力       熟练使用Python、SQL、Tableau，了解机器学习基础
经验程度       资深级，主导过3个千万级用户项目
管理能力       带领5人小团队，负责任务分配与进度管控
综合概要       候选人8年数据分析经验，匹配JD中"5年以上经验"要求；硕士学历+985本科背景符合学历要求；熟练掌握Python/SQL/Tableau，与JD技术栈匹配；有头部企业经历，具备小团队管理经验，整体匹配度高。
匹配得分       85
```  

### 步骤5：查看结果文件  
工具会自动在当前文件夹生成一个 **`resume_analysis_result.csv`** 文件，包含所有分析结果（可用Excel、WPS打开），方便存档或多候选人对比。  


## 四、核心功能说明  
### 1. 信息提取项  
工具会自动从简历中提取以下14项关键信息（无需手动配置）：  
- 基础信息：姓名、联系号码、性别、年龄  
- 职业背景：工作年数（数字）、是否在职、当前职务、历史任职公司列表  
- 教育背景：最高学历、本科学校名称、硕士学校名称  
- 能力评估：技术能力、经验程度、管理能力  

若某信息在简历中未找到，会显示「未提供」。  

### 2. 匹配打分规则  
打分基于「教育背景+企业经历」双维度，总分100分（基础分70分+附加分30分）：  
| 加分项                | 分值 | 说明                          |
|-----------------------|------|-------------------------------|
| 国内Top10大学背景     | +3分 | 指国内公认的顶尖高校（如清北复交等） |
| 985大学背景           | +2分 | 本科/硕士阶段任一满足即可      |
| 211大学背景           | +1分 | 本科/硕士阶段任一满足即可      |
| 头部企业经历          | +2分 | 如互联网大厂、行业龙头企业等  |
| 知名企业经历          | +1分 | 行业内有较高知名度的企业      |
| 海外背景（教育/工作） | +3分 | 海外留学或海外企业工作经历    |
| 外企背景              | +1分 | 外资企业工作经历              |

（注：附加分可累计，但总分不超过100分；基础分70分基于简历与JD的核心要求匹配度计算，如工作年限、技术能力等）。  


## 五、常见问题（FAQ）  
### Q1：运行时提示「API调用出错」怎么办？  
- 检查API密钥是否正确（是否多/少了引号，或密钥过期）；  
- 检查OpenAI账号是否有余额（可登录OpenAI官网查看账单）；  
- 若网络受限，需配置代理（可在代码中添加代理设置，如 `openai.proxy = "http://你的代理地址:端口"`）。  

### Q2：提取的信息不准确（如工作年数错了）？  
- 确保简历内容完整，尤其是关键信息（如“工作8年”需明确写出，避免模糊表述）；  
- 若仍不准确，可修改代码中信息提取的prompt（在 `analyze_resume` 函数的 `question` 部分，增加更明确的指引，如“工作年数需返回纯数字，如8”）。  

### Q3：可以分析多份简历吗？  
- 目前支持单次分析1份简历，若需对比多份，可多次运行工具，将生成的CSV文件汇总对比。  


## 六、注意事项  
1. **数据安全**：简历包含个人敏感信息（如手机号、学历），请确保文件存储在安全位置，避免泄露；工具仅在本地运行，不会上传数据到第三方服务器（除OpenAI API调用外）。  
2. **API费用**：每次运行会调用多次OpenAI API（提取14项信息+1次概要+1次打分，共16次调用），需注意OpenAI的收费标准（GPT-3.5-turbo调用成本较低，约0.002美元/1K tokens）。  
3. **结果参考性**：工具分析结果仅为辅助参考，最终招聘决策建议结合人工面试、实际能力评估等综合判断。
