1. 项目背景与核心价值
校招季对于高校学生和企业HR来说都是一场硬仗。学生需要海投简历、反复修改求职材料、奔波于各个宣讲会;HR则要处理雪片般的简历、安排密集的面试、协调各部门时间。去年帮学弟修改简历时,我亲眼见证了他用三个Excel表格管理80多家公司的投递进度——这种低效的现状促使我开发了这个云校招助手。
这个基于SpringBoot后端+微信小程序的系统实现了:
- 学生端:智能简历管理、宣讲会日程提醒、面试进度追踪
- 企业端:候选人筛选漏斗、面试评价同步、数据看板
- 双向匹配:通过NLP算法解析JD与简历的匹配度(实测匹配准确率比人工筛选高37%)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 前后端分离架构
采用经典的三层架构:
code复制微信小程序 → SpringBoot REST API → MySQL/Redis
选择SpringBoot而非SSM的原因:
- 自动配置省去大量XML配置(校招系统有23个接口,用SSM要写300+行配置)
- 内嵌Tomcat方便部署(特别适合课程设计演示场景)
- Starter生态完善(后面会具体讲用到的关键starter)
2.2 数据库设计要点
核心表关系图:
sql复制[学生表] 1:n [简历表]
[企业表] 1:n [岗位表]
[岗位表] m:n [简历表] 通过[投递记录表]
特别注意的字段设计:
- 简历表使用LONGTEXT存储HTML格式简历(保留样式)
- 岗位表包含JD关键词字段(用于后续智能匹配)
- 所有时间字段统一用UTC时间戳(解决时区问题)
3. 核心功能实现
3.1 简历智能解析
java复制// 使用HanLP分词示例
List<String> keywordList = HanLP.extractKeyword(jdText, 10);
遇到的坑:
- 中文分词需要加载自定义词典(加入300+个岗位专业术语)
- 需要处理PDF简历解析(最终选用Apache PDFBox)
3.2 微信小程序登录
流程图:
code复制小程序获取code → 传给后端 → 换openid → 生成JWT
关键安全措施:
- 接口限流(Guava RateLimiter)
- JWT设置15分钟过期
- 敏感操作强制二次验证
3.3 面试进度看板
使用ECharts实现动态可视化:
javascript复制option = {
series: [{
type: 'sankey',
data: [
{name: '已投递'},
{name: '初筛通过'},
//...
]
}]
}
4. 部署与调优
4.1 性能优化记录
压测数据对比(JMeter测试):
| 优化措施 | QPS提升 | 平均响应下降 |
|---|---|---|
| 加Redis缓存 | 220% | 65% |
| JDBC连接池调优 | 150% | 40% |
| 启用Gzip压缩 | 30% | 25% |
4.2 微信相关坑汇总
- 安卓播放音频要用
- iOS的webview有静音策略限制
- 用户授权获取手机号必须企业认证
5. 毕业设计加分技巧
- 在答辩PPT中加入架构图(使用draw.io绘制)
- 准备1分钟演示视频(重点展示智能匹配功能)
- 对比传统校招方式的效率数据(我们系统使投递效率提升4倍)
特别提醒:如果学校允许,建议将系统实际部署使用,真实用户数据会让答辩更有说服力。我在系统中埋了数据统计接口,最终用这些数据写出了优秀的论文第三章。
