Skip to content

Repository files navigation

AI 智能简历分析系统

一个面向招聘筛选场景的 AI 简历分析平台。系统支持简历批量上传、异步解析与 AI 分析、知识库匹配、评分展示、分析详情查看等流程,帮助招聘人员把重复的简历初筛工作沉淀成可追踪、可复用、可批量处理的工作台。

项目亮点

  • 批量处理能力:支持一次上传多份简历,每份简历独立进入上传、排队、分析、完成或失败状态。
  • 异步分析链路:上传成功后通过 Redis Stream 投递分析任务,前端无需长时间阻塞等待。
  • 知识库驱动匹配:可维护招聘标准、岗位要求、筛选规则等知识库内容,AI 分析时会结合知识库进行匹配。
  • 结构化分析结果:自动提取候选人姓名、邮箱、电话、地址、薪资期望、综合评分、评价和匹配明细。
  • 状态自动刷新:简历列表和上传页都会持续查询后端状态,分析完成后自动更新页面。
  • 文件内容解析:基于 Apache Tika 解析 PDF、Word、TXT、HTML 等常见简历格式。
  • 容器化基础设施:PostgreSQL、Redis 和后端服务可通过 Docker Compose 快速启动。

功能展示

知识库管理

用于维护招聘标准、岗位要求、筛选规则等内容,作为 AI 分析简历时的参考依据。

alt text

批量简历上传

支持多文件拖拽上传,上传后每份简历会单独展示处理状态,并自动轮询分析进度。

alt text

简历列表

集中展示所有简历的处理状态、候选人姓名、评分和上传时间。处于待分析或分析中的简历会自动刷新状态。

alt text

分析详情

展示简历原文、候选人基础信息、AI 评分、综合评价、知识库匹配明细和失败原因。

alt text

技术架构

frontend
  Vue 3 + Vite + Element Plus
  负责上传交互、列表展示、状态轮询、详情展示

backend
  Spring Boot 3 + Spring Web + Spring Data JPA
  负责文件接收、内容解析、任务投递、AI 调用、结果持久化

infra
  PostgreSQL: 存储知识库、简历、分析结果
  Redis Stream: 承载简历分析异步任务队列
  Apache Tika: 解析不同格式的简历文本
  DeepSeek/OpenAI compatible API: 执行简历智能分析

目录结构

resumeAnalysis/
├── backend/                 # Spring Boot 后端服务
│   ├── src/main/java/       # Controller、Service、Consumer、Entity 等代码
│   ├── src/main/resources/  # application.yml、Flyway 迁移脚本
│   ├── Dockerfile
│   └── pom.xml
├── frontend/                # Vue 3 前端应用
│   ├── src/api/             # Axios API 封装
│   ├── src/views/           # 页面视图
│   ├── src/components/      # 公共组件
│   └── package.json
├── docs/screenshots/        # README 截图占位目录
└── docker-compose.yml

快速开始

1. 准备环境

  • JDK 17+
  • Maven 3.8+
  • Node.js 18+
  • Docker 和 Docker Compose
  • DeepSeek 或 OpenAI 兼容接口 API Key

2. 配置 AI API Key

推荐使用环境变量,不要把真实 Key 提交到代码仓库。

$env:AI_API_KEY="你的 API Key"

后端默认读取:

ai:
  endpoint: https://api.deepseek.com/chat/completions
  api-key: ${AI_API_KEY:}
  model: deepseek-v4-pro

3. 启动基础设施

docker compose up -d postgres redis

4. 启动后端

cd backend
mvn spring-boot:run

后端默认端口:http://localhost:8080

5. 启动前端

cd frontend
npm install
npm run dev

前端默认端口:http://localhost:3000

Docker 启动后端

如果希望连同后端一起由 Docker Compose 启动:

docker compose up -d --build

服务说明:

  • PostgreSQL: localhost:5432
  • Redis: localhost:6379
  • Backend: localhost:8080

前端仍可单独使用 npm run dev 启动,并通过 Vite 代理访问 /api

核心流程

  1. 用户上传一份或多份简历。
  2. 后端保存文件,并使用 Apache Tika 解析文本内容。
  3. 简历记录写入 PostgreSQL,初始状态为 PENDING
  4. 数据库事务提交后,后端向 Redis Stream 投递分析任务。
  5. 消费者读取任务,将简历状态更新为 ANALYZING
  6. 后端调用 AI 接口,结合知识库生成结构化分析结果。
  7. 分析完成后写回数据库,状态更新为 COMPLETED;异常时状态更新为 FAILED
  8. 前端列表页和上传页轮询状态,自动展示最新结果。

API 概览

方法 路径 说明
POST /api/resume/upload 上传简历并创建分析任务
GET /api/resume 查询简历列表
GET /api/resume/{id} 查询简历详情
GET /api/resume/{id}/status 查询简历分析状态
DELETE /api/resume/{id} 删除简历
GET /api/knowledge-base 查询知识库
POST /api/knowledge-base 新增知识库内容

截图替换说明

README 中已预留截图路径:

docs/screenshots/knowledge-base.png
docs/screenshots/resume-upload.png
docs/screenshots/resume-list.png
docs/screenshots/resume-detail.png

你后续手动截图后,把图片放到对应路径即可自动在 README 中展示。

适用场景

  • HR 简历初筛
  • 校招或社招批量简历评估
  • 岗位要求与候选人能力匹配分析
  • 招聘知识库沉淀与复用
  • 简历解析、评分和筛选流程演示

后续可扩展方向

  • 增加批量导出分析报告
  • 增加岗位维度和多知识库选择
  • 增加分析任务重试和失败原因分类
  • 支持更多 AI Provider 配置
  • 增加候选人对比视图和筛选看板

About

A convenient resume analysis system

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages