Skip to content
ahaolabelPublic

About

agent

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

简历优化系统

一个基于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            # 项目文档

安装与运行

方法一:使用Docker

  1. 克隆仓库

    git clone <your-repo-url>
    cd jianli
  2. 配置环境变量

    cp .env.example .env
    # 编辑.env文件,添加你的DeepSeek API Key
  3. 构建并运行Docker容器

    docker build -t resume-optimizer .
    docker run -d -p 8001:8001 --env-file .env resume-optimizer

方法二:本地运行

  1. 克隆仓库

    git clone <your-repo-url>
    cd jianli
  2. 安装依赖

    pip install -r requirements.txt
  3. 配置环境变量

    cp .env.example .env
    # 编辑.env文件,添加你的DeepSeek API Key
  4. 启动应用

    python main.py
    # 或
    uvicorn app.main:app --host 0.0.0.0 --port 8001

API文档

应用启动后,可以访问以下地址查看API文档:

API端点

POST /api/analyze-resume

分析简历与职位描述的匹配情况

请求体:

{
  "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": ["添加微服务架构相关经验", "明确说明工作经验年限", "突出与职位相关的技术栈"]
}

POST /api/optimize-resume

生成优化后的简历

请求体:

{
  "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进行容器化部署和管理"
}

GET /api/templates

获取可用的简历模板列表

响应:

{
  "templates": [
    {"id": "1", "name": "简约风格", "description": "简洁明了,突出重点"},
    {"id": "2", "name": "专业风格", "description": "正式专业,适合传统行业"},
    {"id": "3", "name": "创意风格", "description": "新颖独特,适合创意行业"},
    {"id": "4", "name": "技术风格", "description": "突出技术能力,适合IT行业"}
  ]
}

POST /api/generate-template

根据模板生成简历

请求体:

{
  "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- 后端服务开发:使用微服务架构开发和维护核心后端服务"
}

POST /api/score-resume

对简历进行评分

请求体:

{
  "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": ["教育背景完全符合要求", "工作经验接近要求,建议明确说明年限", "技能匹配度高", "项目经验可以更详细", "整体匹配度良好"]
}

POST /api/extract-keywords

提取文本中的关键词

请求体:

{
  "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]
}

POST /api/analyze-skill-match

分析技能匹配度

请求体:

{
  "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"]
}

GET /

根路径,返回欢迎信息

GET /health

健康检查端点

环境变量

  • DEEPSEEK_API_KEY:DeepSeek API的API Key,必填

注意事项

  • 请确保你的DeepSeek API Key有效且有足够的调用额度
  • 分析和优化结果的质量取决于输入简历和职位描述的完整性和准确性
  • 建议提供详细的简历内容和职位描述以获得更好的分析结果

About

agent

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages