6.0 KiB
6.0 KiB
BOSS招聘自动化优化完成总结
优化完成时间
2026年3月5日
已完成的优化内容
1. ✅ 筛选功能
活跃度筛选
- ✅ 支持解析"03月03日"格式的时间
- ✅ 支持解析"昨天"、"今天"、"刚刚"等相对时间
- ✅ 自动判断年份(如果月份大于当前月份,认为是去年)
- ✅ 支持多种活跃度筛选条件:今天活跃、3天内活跃、本周活跃、本月活跃
年龄筛选
- ✅ 从候选人简历的
resume.age字段获取年龄 - ✅ 根据配置的
age_min和age_max进行筛选
学历筛选
- ✅ 从候选人简历的
resume.education字段获取学历 - ✅ 支持学历等级比较:初中 < 高中 < 中专 < 大专 < 本科 < 硕士 < 博士
- ✅ 候选人学历需要达到或高于要求学历
期望职位筛选
- ✅ 从候选人的
jobName字段获取期望职位 - ✅ 支持多个职位关键词匹配(配置在
FilterConfig.positions字段)
2. ✅ 联系人记录管理
自动保存功能
- ✅ 从聊天中提取到联系方式后自动保存到
ContactRecord表 - ✅ 保存信息包括:姓名、岗位、联系方式、回复状态、是否交换微信、联系时间、备注
- ✅ 去重处理:检查是否已存在相同姓名和联系方式的记录
- ✅ 如果存在则更新,不存在则创建新记录
3. ✅ 复聊管理
消息过滤(核心功能)
- ✅ 过滤自己发送的消息:通过
fromId字段判断消息来源 - ✅
fromId=0表示对方发送的消息 - ✅ 其他
fromId值表示自己发送的消息 - ✅ 只保留对方的消息进行联系方式识别
- ✅ 解决了之前"发送带微信号的消息后,识别到自己消息"的问题
等待回复功能
- ✅ 发送询问微信号后,等待最多30秒
- ✅ 每3秒检查一次是否有新回复
- ✅ 自动识别对方回复中的联系方式
- ✅ 记录是否得到回复、是否提取到联系方式
跟进话术功能
- ✅ 如果对方没有回复,可以发送跟进话术
- ✅ 支持按岗位配置不同的跟进话术
- ✅ 从
ChatScript表中读取话术(script_type="followup") - ✅ 如果没有特定岗位话术,使用通用话术(
position="通用")
代码修改文件
主要修改文件
worker/tasks/boss_recruit.py- 招聘任务处理器(已优化)
新增方法
_apply_filters()- 应用筛选条件_check_activity()- 检查活跃度_check_education()- 检查学历_filter_my_messages()- 过滤自己的消息_handle_follow_up_chat()- 处理复聊管理_send_follow_up_script()- 发送跟进话术_save_contact_record()- 保存联系人记录
修改的方法
_recruit_flow_like_script()- 主流程,添加了筛选、消息过滤、复聊管理、保存联系人记录
测试验证
功能测试
✅ 所有功能测试通过(scripts/test_recruit_features.py)
- ✅ 时间解析测试:5/5 通过
- ✅ 消息过滤测试:成功过滤掉自己发送的消息
- ✅ 联系方式提取测试:正确提取微信号和手机号
- ✅ 学历筛选测试:5/5 通过
语法检查
✅ Python语法检查通过(python -m py_compile)
使用说明
1. 初始化测试数据
python scripts/init_recruit_test_data.py
这将创建:
- 筛选配置示例(Python开发筛选配置)
- 话术配置示例(首次回复、跟进回复、微信交换等)
2. 配置筛选条件
在数据库 filter_config 表中配置或通过管理界面配置:
- 年龄范围
- 学历要求
- 活跃度要求
- 期望职位列表
3. 配置复聊话术
在数据库 chat_script 表中配置或通过管理界面配置:
- 按岗位配置不同的话术
- 配置通用话术作为后备
4. 运行招聘任务
任务会自动执行以下流程:
- 获取候选人列表
- 应用筛选条件(活跃度、年龄、学历、职位)
- 逐个打开会话
- 过滤自己的消息,只分析对方消息
- 如果没有联系方式,发送询问
- 等待对方回复并识别联系方式
- 自动保存联系人记录到数据库
- 如果需要,发送跟进话术
关键问题解决
问题1:识别到自己发送的微信号
原因:之前没有区分消息来源,所有消息都进行联系方式识别
解决方案:
- 添加
_filter_my_messages()方法 - 通过
fromId字段判断消息来源 - 只保留
fromId=0的消息(对方发送的) - 在提取联系方式前先过滤消息
问题2:联系人没有保存到数据库
原因:之前只是收集联系方式,没有保存到数据库
解决方案:
- 添加
_save_contact_record()方法 - 在提取到联系方式后自动保存
- 支持去重和更新
问题3:只发送一句话,没有复聊
原因:之前只发送一次询问,不等待回复
解决方案:
- 添加
_handle_follow_up_chat()方法 - 发送后等待30秒,每3秒检查一次
- 如果没有回复,发送跟进话术
- 记录回复状态
问题4:活跃度时间格式不统一
原因:BOSS直聘返回的时间格式多样("03月03日"、"昨天"等)
解决方案:
- 添加
_check_activity()方法 - 支持多种时间格式解析
- 自动判断年份
注意事项
- 筛选配置:确保
FilterConfig表中有is_active=True的配置 - 话术配置:建议配置通用话术作为后备
- 等待时间:复聊等待时间默认30秒,可根据需要调整
- 消息识别:依赖
fromId字段,确保API返回的消息包含此字段
后续建议
- 可以添加更多的筛选条件(如工作经验、期望薪资等)
- 可以优化复聊策略(如根据对方回复内容智能选择话术)
- 可以添加数据统计功能(如筛选通过率、回复率等)
- 可以添加黑名单功能(避免重复联系)
文档
- 详细说明:
BOSS招聘优化说明.md - 测试脚本:
scripts/test_recruit_features.py - 初始化脚本:
scripts/init_recruit_test_data.py