Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeepRecruit · 智能招聘平台

智能招聘平台 · 简历 → 匹配推荐 → 一键投递

Java 8 Spring Boot 2.7.18 MyBatis-Plus MySQL 8 Redis Vue 3 TypeScript Vite 6 DeepSeek API Python


📑 目录


✨ 项目亮点

  • 🤖 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️⃣ 后端启动

# 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

2️⃣ 前端启动

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 推荐职位批量投递,随时查看投递记录与状态。

🤖 AI 智选助手

  • 智能对话问答,自动保存历史对话并可回显;
  • 「职位推荐」模式:基于简历内容匹配 Top-K 职位,附带匹配度,支持一键投递。

🏢 公司端

  • 岗位发布 / 下线 / 更新,按城市与类别维护岗位;
  • 应聘管理:查看投递简历、修改投递状态;
  • 员工管理:新增 / 查询 / 删除公司成员(新员工默认密码为手机号后六位)。

🛡️ 超级管理员

  • 公司管理:公司信息分页、新增、编辑、删除(逻辑删除);
  • 人员管理:全局用户分页、新增、修改、删除。

📊 数据能力

  • 职位数据自动爬取与分类聚合(城市 / 类别 / 部门三维标签);
  • 用户行为埋点记录(/analysis/track),为后续数据分析提供数据基础。

📸 功能展示

求职者端

🏠 首页 · 职位大厅
首页 · 职位大厅
📄 职位详情
职位详情
🔥 职位热榜 · 排行榜
职位热榜
🤖 AI 智选助手 · 智能推荐
AI 智能推荐

企业端

🏢 公司管理 · 企业首页
公司管理
👥 应聘管理 · HR 视角
应聘管理

🔒 安全设计

  • 登录态通过 LoginInterceptor 拦截校验(基于 userId 请求头),后续经 UserHolder 线程上下文传递;
  • 员工列表返回前对密码等敏感字段做脱敏处理;
  • 邮箱验证码存入 Redis 并设置过期时间,且一次性使用;
  • 涉及公司 / 用户删除均采用逻辑删除,避免数据误删;
  • 敏感配置(数据库密码、API Key)建议通过环境变量注入。

DeepRecruit · 学习与个人展示用途 · 涉及美团平台数据仅用于技术演示

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages