智能招聘平台 · 简历 → 匹配推荐 → 一键投递
🤖 AI 智能求职助手 :基于 DeepSeek 对话接口实现智能问答,自动保存并回显历史对话记录;
🎯 简历语义匹配 :PDFBox 解析简历 → DeepSeek 精简提炼关键词 → 调用 Python 语义匹配引擎,按匹配度推荐 Top-K 职位,支持一键批量投递 ;
🕷️ 职位数据爬取 :基于美团招聘官方接口 + Python 辅助爬虫,自动抓取岗位、职责、亮点等数据,建立「城市 / 职位类别 / 岗位部门」三维分类体系;
🏢 多角色权限模型 :求职者 / HR / 公司管理员 / 超级管理员,覆盖前台应聘与后台管理全流程;
📧 邮箱验证码体系 :注册、登录均支持邮箱验证码,验证码存 Redis 自动过期、一次性消费;
📄 简历管理 :在线预览、上传、下载、删除 PDF/DOC/DOCX 简历,支持 PDF 文本抽取;
🧩 前后端分离架构 :Spring Boot 2.7 分层后端 + Vue3 + TypeScript + Ant Design Vue 前端,接口文档由 Knife4j 自动生成。
层次
技术
后端
Java 8 · Spring Boot 2.7 · MyBatis-Plus 3.5 · MySQL 8 · Redis · Knife4j (Swagger2)
前端
Vue 3 · TypeScript · Vite 6 · Pinia · Vue Router · Ant Design Vue 4
AI 能力
DeepSeek Chat API · PDFBox 简历解析 · Python 语义匹配服务
工具类
Hutool · OkHttp · Apache HttpClient · Gson · Easy-Captcha · Lombok
graph TD
DR["DeepRecruit"]
DR --> BE["backend · Spring Boot 2.7"]
DR --> FE["frontend · Vue3 + TS"]
BE --> SRC["src/main/java/com/hm/monitor"]
BE --> RES["src/main/resources"]
SRC --> CFG["config"]
SRC --> CTRL["controller"]
SRC --> SVC["service + impl"]
SRC --> MAP["mapper"]
SRC --> POJO["pojos"]
SRC --> UTIL["util"]
CFG --> CFG_D["Mybatis / Redis / Swagger / 异常处理 / MVC"]
CTRL --> CTRL_D["用户 / 职位 / 公司 / AI / 行为分析"]
SVC --> SVC_D["业务逻辑"]
MAP --> MAP_D["MyBatis-Plus Mapper"]
POJO --> POJO_D["实体与 DTO/VO"]
UTIL --> UTIL_D["邮件 / PDF / 爬虫 / 验证码 / 登录拦截"]
RES --> YAML["application.yaml"]
RES --> BANNER["banner.txt"]
FE --> FSRC["src"]
FSRC --> PAGE["page · 首页 / 职位详情 / AI 助手 / 公司端 / 管理端"]
FSRC --> LAYOUT["layout · 基础布局"]
FSRC --> ROUTER["router · 路由表"]
FSRC --> UTILS["utils · 请求封装 / 登录鉴权 / 环境配置"]
FSRC --> ASSETS["assets · 图片与样式"]
FSRC --> COMP["components · 通用组件"]
Loading
JDK 1.8+、Maven 3.6+
Node.js 16+、npm
MySQL 8、Redis
(可选)DeepSeek API Key、QQ 邮箱授权码、Python 匹配服务
# 1. 创建数据库并初始化表结构(表设计对应 pojos 下各实体)
# 2. 修改 application.yaml 中的数据库 / Redis / 邮箱 / API 配置
# (或通过环境变量注入,避免明文密钥)
cd backend
mvn spring-boot:run
服务地址:http://127.0.0.1:8080
接口文档(Knife4j):http://127.0.0.1:8080/doc.html
cd frontend
npm install
npm run dev # 默认 http://localhost:9091
npm run build # 生产构建(含类型检查)
前端 API 地址在 .env.example 中配置,复制为 .env.development / .env.production 后按需修改。
变量
说明
默认值
DB_HOST / DB_NAME / DB_USERNAME / DB_PASSWORD
MySQL 连接信息
localhost / meituan / root / your_password
REDIS_HOST / REDIS_PASSWORD
Redis 连接信息
localhost / 空
MAIL_USERNAME / MAIL_PASSWORD
QQ 邮箱及授权码
your_email@qq.com
DEEPSEEK_API_KEY
DeepSeek API Key
your_api_key
VITE_API_BASE_URL
前端访问后端的基础地址
http://127.0.0.1:8082
说明:python.match.api(默认 http://127.0.0.1:12000/api/match)为 Python 语义匹配服务地址,需单独部署。
注册 / 登录:支持 用户名+密码 与 邮箱验证码 两种方式;
简历管理:上传、预览、下载、删除 PDF/DOC/DOCX 简历;
职位浏览:按关键词、城市、职位类别、部门多维度筛选,支持查看热门职位;
一键投递:对 AI 推荐职位批量投递,随时查看投递记录与状态。
智能对话问答,自动保存历史对话并可回显;
「职位推荐」模式:基于简历内容匹配 Top-K 职位,附带匹配度,支持一键投递。
岗位发布 / 下线 / 更新,按城市与类别维护岗位;
应聘管理:查看投递简历、修改投递状态;
员工管理:新增 / 查询 / 删除公司成员(新员工默认密码为手机号后六位)。
公司管理:公司信息分页、新增、编辑、删除(逻辑删除);
人员管理:全局用户分页、新增、修改、删除。
职位数据自动爬取与分类聚合(城市 / 类别 / 部门三维标签);
用户行为埋点记录(/analysis/track),为后续数据分析提供数据基础。
🏠 首页 · 职位大厅
📄 职位详情
🔥 职位热榜 · 排行榜
🤖 AI 智选助手 · 智能推荐
🏢 公司管理 · 企业首页
👥 应聘管理 · HR 视角
登录态通过 LoginInterceptor 拦截校验(基于 userId 请求头),后续经 UserHolder 线程上下文传递;
员工列表返回前对密码等敏感字段做脱敏处理 ;
邮箱验证码存入 Redis 并设置过期时间,且一次性使用 ;
涉及公司 / 用户删除均采用逻辑删除 ,避免数据误删;
敏感配置(数据库密码、API Key)建议通过环境变量注入。
DeepRecruit · 学习与个人展示用途 · 涉及美团平台数据仅用于技术演示