一个面向招聘筛选场景的 AI 简历分析平台。系统支持简历批量上传、异步解析与 AI 分析、知识库匹配、评分展示、分析详情查看等流程,帮助招聘人员把重复的简历初筛工作沉淀成可追踪、可复用、可批量处理的工作台。
- 批量处理能力:支持一次上传多份简历,每份简历独立进入上传、排队、分析、完成或失败状态。
- 异步分析链路:上传成功后通过 Redis Stream 投递分析任务,前端无需长时间阻塞等待。
- 知识库驱动匹配:可维护招聘标准、岗位要求、筛选规则等知识库内容,AI 分析时会结合知识库进行匹配。
- 结构化分析结果:自动提取候选人姓名、邮箱、电话、地址、薪资期望、综合评分、评价和匹配明细。
- 状态自动刷新:简历列表和上传页都会持续查询后端状态,分析完成后自动更新页面。
- 文件内容解析:基于 Apache Tika 解析 PDF、Word、TXT、HTML 等常见简历格式。
- 容器化基础设施:PostgreSQL、Redis 和后端服务可通过 Docker Compose 快速启动。
用于维护招聘标准、岗位要求、筛选规则等内容,作为 AI 分析简历时的参考依据。
支持多文件拖拽上传,上传后每份简历会单独展示处理状态,并自动轮询分析进度。
集中展示所有简历的处理状态、候选人姓名、评分和上传时间。处于待分析或分析中的简历会自动刷新状态。
展示简历原文、候选人基础信息、AI 评分、综合评价、知识库匹配明细和失败原因。
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
- JDK 17+
- Maven 3.8+
- Node.js 18+
- Docker 和 Docker Compose
- DeepSeek 或 OpenAI 兼容接口 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-prodocker compose up -d postgres rediscd backend
mvn spring-boot:run后端默认端口:http://localhost:8080
cd frontend
npm install
npm run dev前端默认端口:http://localhost:3000
如果希望连同后端一起由 Docker Compose 启动:
docker compose up -d --build服务说明:
- PostgreSQL:
localhost:5432 - Redis:
localhost:6379 - Backend:
localhost:8080
前端仍可单独使用 npm run dev 启动,并通过 Vite 代理访问 /api。
- 用户上传一份或多份简历。
- 后端保存文件,并使用 Apache Tika 解析文本内容。
- 简历记录写入 PostgreSQL,初始状态为
PENDING。 - 数据库事务提交后,后端向 Redis Stream 投递分析任务。
- 消费者读取任务,将简历状态更新为
ANALYZING。 - 后端调用 AI 接口,结合知识库生成结构化分析结果。
- 分析完成后写回数据库,状态更新为
COMPLETED;异常时状态更新为FAILED。 - 前端列表页和上传页轮询状态,自动展示最新结果。
| 方法 | 路径 | 说明 |
|---|---|---|
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 配置
- 增加候选人对比视图和筛选看板



