一个基于FastAPI和DeepSeek API的简历优化系统,能够分析简历与职位描述的匹配情况,提供优化建议并生成优化后的简历。
- 支持用户输入简历内容和职位描述(JD)
- 分析简历与JD的匹配情况,输出匹配亮点、主要缺口和具体优化建议
- 根据分析结果生成优化后的简历
- 提供多种风格的简历模板,支持根据模板生成简历
- 对简历与职位描述的匹配度进行评分,包括教育背景、工作经验、技能、项目经验和整体匹配度
- 从文本中提取关键词,并计算重要性分数
- 分析简历技能与职位技能的匹配情况,识别匹配的技能、缺失的技能和推荐的相关技能
- 提供RESTful API接口
- 支持Docker部署
- Python 3.10+
- FastAPI
- DeepSeek API
- Docker
jianli/
├── app/ # 应用主目录
│ ├── __init__.py # 包初始化文件
│ ├── config.py # 应用配置
│ ├── schemas.py # 数据模型
│ ├── services.py # 业务逻辑
│ ├── routes.py # API路由
│ └── main.py # 应用入口
├── main.py # 启动文件
├── requirements.txt # 依赖文件
├── Dockerfile # Docker配置
├── .env # 环境变量
├── .env.example # 环境变量示例
├── .gitignore # Git忽略文件
└── README.md # 项目文档
-
克隆仓库
git clone <your-repo-url> cd jianli
-
配置环境变量
cp .env.example .env # 编辑.env文件,添加你的DeepSeek API Key -
构建并运行Docker容器
docker build -t resume-optimizer . docker run -d -p 8001:8001 --env-file .env resume-optimizer
-
克隆仓库
git clone <your-repo-url> cd jianli
-
安装依赖
pip install -r requirements.txt
-
配置环境变量
cp .env.example .env # 编辑.env文件,添加你的DeepSeek API Key -
启动应用
python main.py # 或 uvicorn app.main:app --host 0.0.0.0 --port 8001
应用启动后,可以访问以下地址查看API文档:
- Swagger UI: http://localhost:8001/docs
- ReDoc: http://localhost:8001/redoc
分析简历与职位描述的匹配情况
请求体:
{
"resume_content": "# 张三\n\n## 个人信息\n- 邮箱:zhangsan@example.com\n- 电话:13800138000\n\n## 教育背景\n- 北京大学,计算机科学硕士,2018-2021\n\n## 工作经验\n- 腾讯科技,软件工程师,2021-至今\n 职责:负责后端服务开发,参与多个核心项目的架构设计和实现\n\n## 技能\n- Python\n- Java\n- Docker\n- Kubernetes",
"job_description": "我们正在寻找一位有经验的软件工程师,负责后端服务的开发和维护。要求:\n1. 计算机相关专业本科及以上学历\n2. 3年以上后端开发经验\n3. 熟悉Python、Java等编程语言\n4. 熟悉Docker、Kubernetes等容器技术\n5. 有微服务架构经验者优先"
}响应:
{
"matching_highlights": ["计算机科学硕士学历符合要求", "有软件工程师工作经验", "熟悉Python、Java等编程语言", "熟悉Docker、Kubernetes等容器技术"],
"key_gaps": ["未提及微服务架构经验", "工作经验年限未明确说明"],
"optimization_suggestions": ["添加微服务架构相关经验", "明确说明工作经验年限", "突出与职位相关的技术栈"]
}生成优化后的简历
请求体:
{
"resume_content": "# 张三\n\n## 个人信息\n- 邮箱:zhangsan@example.com\n- 电话:13800138000\n\n## 教育背景\n- 北京大学,计算机科学硕士,2018-2021\n\n## 工作经验\n- 腾讯科技,软件工程师,2021-至今\n 职责:负责后端服务开发,参与多个核心项目的架构设计和实现\n\n## 技能\n- Python\n- Java\n- Docker\n- Kubernetes",
"job_description": "我们正在寻找一位有经验的软件工程师,负责后端服务的开发和维护。要求:\n1. 计算机相关专业本科及以上学历\n2. 3年以上后端开发经验\n3. 熟悉Python、Java等编程语言\n4. 熟悉Docker、Kubernetes等容器技术\n5. 有微服务架构经验者优先",
"analysis_result": {
"matching_highlights": ["计算机科学硕士学历符合要求", "有软件工程师工作经验", "熟悉Python、Java等编程语言", "熟悉Docker、Kubernetes等容器技术"],
"key_gaps": ["未提及微服务架构经验", "工作经验年限未明确说明"],
"optimization_suggestions": ["添加微服务架构相关经验", "明确说明工作经验年限", "突出与职位相关的技术栈"]
}
}响应:
{
"optimized_resume": "# 张三\n\n## 个人信息\n- 邮箱:zhangsan@example.com\n- 电话:13800138000\n\n## 求职目标\n寻求软件工程师职位,专注于后端服务开发和维护\n\n## 教育背景\n- 北京大学,计算机科学硕士,2018-2021\n\n## 工作经验\n- 腾讯科技,软件工程师,2021-至今(3年+经验)\n 职责:负责后端服务开发,参与多个核心项目的架构设计和实现,使用微服务架构进行系统设计和开发\n\n## 技能\n- 编程语言:Python、Java\n- 容器技术:Docker、Kubernetes\n- 架构设计:微服务架构\n\n## 项目经验\n- 参与开发和维护多个核心后端服务,使用微服务架构提高系统可扩展性和可靠性\n- 使用Docker和Kubernetes进行容器化部署和管理"
}获取可用的简历模板列表
响应:
{
"templates": [
{"id": "1", "name": "简约风格", "description": "简洁明了,突出重点"},
{"id": "2", "name": "专业风格", "description": "正式专业,适合传统行业"},
{"id": "3", "name": "创意风格", "description": "新颖独特,适合创意行业"},
{"id": "4", "name": "技术风格", "description": "突出技术能力,适合IT行业"}
]
}根据模板生成简历
请求体:
{
"template_type": "简约风格",
"personal_info": {
"name": "张三",
"email": "zhangsan@example.com",
"phone": "13800138000"
},
"education": [
{
"school": "北京大学",
"degree": "计算机科学硕士",
"period": "2018-2021"
}
],
"work_experience": [
{
"company": "腾讯科技",
"position": "软件工程师",
"period": "2021-至今",
"description": "负责后端服务开发,参与多个核心项目的架构设计和实现"
}
],
"skills": ["Python", "Java", "Docker", "Kubernetes"],
"projects": [
{
"name": "后端服务开发",
"description": "使用微服务架构开发和维护核心后端服务"
}
]
}响应:
{
"template_resume": "# 张三\n\n## 个人信息\n- 邮箱:zhangsan@example.com\n- 电话:13800138000\n\n## 教育背景\n- 北京大学,计算机科学硕士,2018-2021\n\n## 工作经验\n- 腾讯科技,软件工程师,2021-至今\n 职责:负责后端服务开发,参与多个核心项目的架构设计和实现\n\n## 技能\n- Python\n- Java\n- Docker\n- Kubernetes\n\n## 项目经验\n- 后端服务开发:使用微服务架构开发和维护核心后端服务"
}对简历进行评分
请求体:
{
"resume_content": "# 张三\n\n## 个人信息\n- 邮箱:zhangsan@example.com\n- 电话:13800138000\n\n## 教育背景\n- 北京大学,计算机科学硕士,2018-2021\n\n## 工作经验\n- 腾讯科技,软件工程师,2021-至今\n 职责:负责后端服务开发,参与多个核心项目的架构设计和实现\n\n## 技能\n- Python\n- Java\n- Docker\n- Kubernetes",
"job_description": "我们正在寻找一位有经验的软件工程师,负责后端服务的开发和维护。要求:\n1. 计算机相关专业本科及以上学历\n2. 3年以上后端开发经验\n3. 熟悉Python、Java等编程语言\n4. 熟悉Docker、Kubernetes等容器技术\n5. 有微服务架构经验者优先"
}响应:
{
"total_score": 85,
"scores": {
"教育背景": 20,
"工作经验": 25,
"技能": 25,
"项目经验": 10,
"整体匹配度": 5
},
"feedback": ["教育背景完全符合要求", "工作经验接近要求,建议明确说明年限", "技能匹配度高", "项目经验可以更详细", "整体匹配度良好"]
}提取文本中的关键词
请求体:
{
"text": "我们正在寻找一位有经验的软件工程师,负责后端服务的开发和维护。要求:1. 计算机相关专业本科及以上学历;2. 3年以上后端开发经验;3. 熟悉Python、Java等编程语言;4. 熟悉Docker、Kubernetes等容器技术;5. 有微服务架构经验者优先",
"top_n": 10
}响应:
{
"keywords": ["软件工程师", "后端服务", "Python", "Java", "Docker", "Kubernetes", "微服务架构", "开发经验", "计算机相关专业", "维护"],
"scores": [1.0, 0.9, 0.8, 0.8, 0.7, 0.7, 0.6, 0.6, 0.5, 0.5]
}分析技能匹配度
请求体:
{
"resume_skills": ["Python", "Java", "Docker", "Kubernetes"],
"job_skills": ["Python", "Java", "Docker", "Kubernetes", "微服务架构", "Redis", "MongoDB"]
}响应:
{
"match_score": 0.57,
"matched_skills": ["Python", "Java", "Docker", "Kubernetes"],
"missing_skills": ["微服务架构", "Redis", "MongoDB"],
"recommended_skills": ["微服务架构", "Redis", "MongoDB"]
}根路径,返回欢迎信息
健康检查端点
DEEPSEEK_API_KEY:DeepSeek API的API Key,必填
- 请确保你的DeepSeek API Key有效且有足够的调用额度
- 分析和优化结果的质量取决于输入简历和职位描述的完整性和准确性
- 建议提供详细的简历内容和职位描述以获得更好的分析结果