基于大模型(DeepSeek)的求职辅助平台,将「简历管理 → 岗位匹配 → 模拟面试 → 复盘报告」整合为一条完整链路,覆盖求职者从准备到冲刺的核心场景。
- 简历上传与智能解析:支持 PDF / Word / TXT / 图片,内置 PaddleOCR 文字识别,后台异步解析并通过 SSE 实时推送进度;可选接入 MinerU 提升复杂版式解析效果
- 在线编辑:支持手动新建简历、在线编辑、解析结果人工校正
- AI 体检与定向优化:对已有简历执行 AI 健康检查;针对目标岗位(基于匹配结果)生成定向优化建议
- PDF 导出:一键导出规范排版的简历 PDF
- 岗位库:内置技术 / 财务会计 / 市场营销等行业分类,含来自国家大学生就业服务平台的真实岗位模板(技能要求、薪资范围、学历与经验门槛)
- 自定义 JD(高级):粘贴任意岗位描述(JD)进行匹配分析
- 多维匹配评分:从技能、经验、学历三个维度对简历与岗位进行匹配分析,输出综合评分、命中/缺失技能明细与针对性优化建议
- 收藏与历史:岗位收藏、匹配历史记录
- 实时对话:基于 WebSocket 的实时模拟面试,支持断线重连与会话恢复
- 智能出题:题库基于 BM25 检索,按岗位类别/技能方向抽取题目,可自定义题目数量与范围
- 逐题 AI 评估:每次回答由 AI 即时评分并给出反馈,支持追问提示
- 智能追问:根据回答质量自动生成追问(最多两级深度)
- 面试统计:结束自动汇总成绩与统计信息
- 面试结束后生成结构化复盘报告:总分、技能维度得分、题目得分分布、逐题详情与改进建议
- 关联目标岗位上下文与简历匹配摘要,输出 PDF 报告
- 注册 / 登录(JWT 认证,7 天有效)
- 邮箱找回密码 / 重置密码 / 修改密码
- 登录接口限流(防止暴力破解),资源访问越权校验(用户仅可访问自己的数据)
┌─────────────────────────────────────────────────────────┐
│ Frontend (Vue 3 + Vite) │
│ Element Plus · Pinia · Vue Router · ECharts · Axios │
└───────────────┬─────────────────────────┬────────────────┘
│ HTTP (REST) │ WebSocket
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ Backend (FastAPI) │
│ ┌─────────┐ ┌──────────┐ ┌───────────┐ ┌────────────┐ │
│ │ 认证/用户│ │ 简历服务 │ │ 匹配服务 │ │ 面试服务 │ │
│ └─────────┘ └──────────┘ └───────────┘ └────────────┘ │
│ SQLAlchemy (SQLite) · BM25 题库检索 · 日志/限流中间件 │
└───────┬─────────────────┬──────────────────┬────────────┘
│ │ │
▼ ▼ ▼
SQLite (自动建表) DeepSeek API SMTP 邮件服务
(阿里云百炼备链路)
| 类别 | 技术 |
|---|---|
| Web 框架 | FastAPI(REST + WebSocket + SSE) |
| ORM / 数据库 | SQLAlchemy 2.0,SQLite(启动时自动建表与初始化) |
| 数据校验 | Pydantic v2 + pydantic-settings |
| 认证安全 | python-jose(JWT)、passlib/bcrypt、登录限流 |
| AI 接入 | DeepSeek API(主链路);阿里云百炼(自动降级备份链路) |
| 文档解析 | PaddleOCR、pdfplumber、PyPDF2、python-docx;可选 MinerU API |
| 检索 | BM25(面试题库检索) |
| 报告生成 | reportlab(PDF) |
| 类别 | 技术 |
|---|---|
| 框架 | Vue 3(Composition API)+ Vite 5 |
| UI | Element Plus(按需自动导入,主题色 #2563EB) |
| 状态 / 路由 | Pinia · Vue Router(路由级鉴权) |
| 可视化 | ECharts |
| 网络 | Axios(统一封装 + JWT 注入) |
- Python 3.9+
- Node.js 18+
在 backed/ 目录下创建 .env 文件(参考根目录 .env.example):
# DeepSeek API Key(AI 功能必填)
DEEPSEEK_API_KEY=sk-your-deepseek-api-key
# 邮件服务(找回密码功能,可选)
SMTP_HOST=smtp.qq.com
SMTP_PORT=587
SMTP_USERNAME=your-email@qq.com
SMTP_PASSWORD=your-smtp-auth-code
# 备用 AI 链路(可选):阿里云百炼
FALLBACK_API_KEY=
FALLBACK_API_URL=https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
FALLBACK_MODEL=deepseek-v4-flash
# 文档解析增强(可选):MinerU API Token,留空则使用内置解析方案
MINERU_TOKEN=# 后端(进入 backed/)
pip install -r requirements.txt
# 前端(进入 frontend/)
npm install方式一:双击根目录 启动.bat,同时启动后端与前端。
方式二:手动启动
# 后端(端口 8000)
cd backed
python start_backend.py
# 前端(端口 3000,已配置 /api 代理)
cd frontend
npm run dev访问 http://localhost:3000;Swagger 接口文档见 http://localhost:8000/docs。
.
├── backed/ # 后端服务(FastAPI)
│ ├── app/
│ │ ├── core/ # 配置、数据库、安全、日志、限流
│ │ ├── models/ # SQLAlchemy 模型(用户/简历/面试/匹配等)
│ │ ├── routers/ # API 路由(auth/resumes/jobs/interview_ws/reports…)
│ │ ├── schemas/ # Pydantic 请求/响应模型
│ │ ├── services/ # 业务层(AI 客户端/解析/匹配/面试/报告…)
│ │ └── main.py # 应用入口(路由注册、CORS、启动迁移)
│ ├── knowledge_base/ # 知识库(JSON)
│ │ ├── categories.json # 岗位分类与技能库索引
│ │ ├── skills_*.json # 各行业技能库
│ │ ├── questions_*.json # 各行业面试题库
│ │ └── job_templates/ # 岗位模板(含真实岗位数据)
│ ├── requirements.txt
│ └── start_backend.py
├── frontend/ # 前端应用(Vue 3 + Vite)
│ ├── src/
│ │ ├── api/ # 接口封装(auth/resume/jobs/interview/reports…)
│ │ ├── components/ # 通用组件
│ │ ├── composables/ # 组合式函数
│ │ ├── layouts/ # 页面布局
│ │ ├── router/ # 路由(含登录鉴权守卫)
│ │ ├── stores/ # Pinia 状态
│ │ ├── styles/ # 全局样式(SCSS)
│ │ ├── utils/ # 工具(token 状态管理等)
│ │ └── views/ # 页面视图
│ ├── index.html
│ ├── package.json
│ └── vite.config.js # 构建/代理/按需自动导入配置
├── 启动.bat # 一键启动脚本
├── .env.example # 环境变量模板
└── .gitignore
| 模块 | 路由前缀 | 说明 |
|---|---|---|
| 认证 | /api/v1/auth |
注册、登录、找回/重置/修改密码、当前用户 |
| 简历 | /api/v1/resumes |
上传解析、在线编辑、AI 体检、定向优化、PDF 导出、SSE 进度 |
| 岗位 | /api/v1/jobs |
岗位 CRUD、匹配分析、匹配结果、收藏 |
| 面试 | /ws/interview/{id} + /api/v1/interview |
WebSocket 实时面试、会话管理、统计 |
| 报告 | /api/v1/reports |
面试复盘报告 |
| 题库 | /api/v1/questions |
面试题检索(BM25) |
| 变量 | 必填 | 说明 |
|---|---|---|
DEEPSEEK_API_KEY |
✅ | DeepSeek 官方 API Key,驱动全部 AI 能力 |
SMTP_* |
找回密码 | QQ 邮箱等 SMTP 服务配置 |
FALLBACK_API_KEY |
可选 | 阿里云百炼 Key,DeepSeek 不可用时自动切换 |
MINERU_TOKEN |
可选 | MinerU API Token,增强文档解析 |
SECRET_KEY |
可选 | JWT 签名密钥,未配置时自动生成并落盘 |
- 数据库使用 SQLite,后端首次启动自动建表并初始化岗位、题库等基础数据
- 岗位库中的真实岗位数据来自国家大学生就业服务平台,仅供学习参考
- 简历生成(对话式)模块已弃用,代码保留但前端无入口,不影响现有功能
- 请妥善保管
.env中的密钥,切勿提交到版本库
本项目基于 MIT License 开源,可自由使用、修改与商用(需保留版权声明)。