Files
boss_dp/优化完成总结.md
2026-03-05 10:27:28 +08:00

6.0 KiB
Raw Blame History

BOSS招聘自动化优化完成总结

优化完成时间

2026年3月5日

已完成的优化内容

1. 筛选功能

活跃度筛选

  • 支持解析"03月03日"格式的时间
  • 支持解析"昨天"、"今天"、"刚刚"等相对时间
  • 自动判断年份(如果月份大于当前月份,认为是去年)
  • 支持多种活跃度筛选条件今天活跃、3天内活跃、本周活跃、本月活跃

年龄筛选

  • 从候选人简历的 resume.age 字段获取年龄
  • 根据配置的 age_minage_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 - 招聘任务处理器(已优化)

新增方法

  1. _apply_filters() - 应用筛选条件
  2. _check_activity() - 检查活跃度
  3. _check_education() - 检查学历
  4. _filter_my_messages() - 过滤自己的消息
  5. _handle_follow_up_chat() - 处理复聊管理
  6. _send_follow_up_script() - 发送跟进话术
  7. _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. 获取候选人列表
  2. 应用筛选条件(活跃度、年龄、学历、职位)
  3. 逐个打开会话
  4. 过滤自己的消息,只分析对方消息
  5. 如果没有联系方式,发送询问
  6. 等待对方回复并识别联系方式
  7. 自动保存联系人记录到数据库
  8. 如果需要,发送跟进话术

关键问题解决

问题1识别到自己发送的微信号

原因:之前没有区分消息来源,所有消息都进行联系方式识别

解决方案

  • 添加 _filter_my_messages() 方法
  • 通过 fromId 字段判断消息来源
  • 只保留 fromId=0 的消息(对方发送的)
  • 在提取联系方式前先过滤消息

问题2联系人没有保存到数据库

原因:之前只是收集联系方式,没有保存到数据库

解决方案

  • 添加 _save_contact_record() 方法
  • 在提取到联系方式后自动保存
  • 支持去重和更新

问题3只发送一句话没有复聊

原因:之前只发送一次询问,不等待回复

解决方案

  • 添加 _handle_follow_up_chat() 方法
  • 发送后等待30秒每3秒检查一次
  • 如果没有回复,发送跟进话术
  • 记录回复状态

问题4活跃度时间格式不统一

原因BOSS直聘返回的时间格式多样"03月03日"、"昨天"等)

解决方案

  • 添加 _check_activity() 方法
  • 支持多种时间格式解析
  • 自动判断年份

注意事项

  1. 筛选配置:确保 FilterConfig 表中有 is_active=True 的配置
  2. 话术配置:建议配置通用话术作为后备
  3. 等待时间复聊等待时间默认30秒可根据需要调整
  4. 消息识别:依赖 fromId 字段确保API返回的消息包含此字段

后续建议

  1. 可以添加更多的筛选条件(如工作经验、期望薪资等)
  2. 可以优化复聊策略(如根据对方回复内容智能选择话术)
  3. 可以添加数据统计功能(如筛选通过率、回复率等)
  4. 可以添加黑名单功能(避免重复联系)

文档

  • 详细说明:BOSS招聘优化说明.md
  • 测试脚本:scripts/test_recruit_features.py
  • 初始化脚本:scripts/init_recruit_test_data.py