# BOSS招聘自动化 - 快速参考指南 ## 核心优化点 ### 1. 筛选功能 ✅ ```python # 在 FilterConfig 表中配置 { "age_min": 22, "age_max": 35, "education": "本科", "activity": "3天内活跃", "positions": ["Python开发", "后端开发"] } ``` ### 2. 消息过滤 ✅(解决识别自己消息的问题) ```python # 通过 fromId 字段区分消息来源 # fromId = 0 -> 对方发送的消息 # fromId != 0 -> 自己发送的消息 filtered_messages = [msg for msg in messages if msg.get("fromId", 0) == 0] ``` ### 3. 自动保存联系人 ✅ ```python # 提取到联系方式后自动保存到 ContactRecord 表 ContactRecord.objects.create( name=name, position=job_name, contact=wechat_or_phone, reply_status="已回复" if got_reply else "未回复", wechat_exchanged=exchange_confirmed, contacted_at=timezone.now() ) ``` ### 4. 复聊管理 ✅ ```python # 发送询问后等待30秒,每3秒检查一次 # 如果没有回复,发送跟进话术 if action_state["send_success"]: reply_result = self._handle_follow_up_chat(tab, name, job_name) ``` ## 时间格式支持 | 格式 | 示例 | 解析结果 | |------|------|----------| | 月日格式 | "03月03日" | 2026-03-03 或 2025-03-03 | | 相对时间 | "昨天" | 当前日期 - 1天 | | 相对时间 | "今天" | 当前日期 | | 相对时间 | "刚刚" | 当前日期 | ## 学历等级 ``` 初中 < 高中 < 中专 < 大专 < 本科 < 硕士 < 博士 ``` 候选人学历需要 >= 要求学历 ## 活跃度筛选 | 配置值 | 含义 | |--------|------| | "今天活跃" | 最后上线时间在今天 | | "3天内活跃" | 最后上线时间在3天内 | | "本周活跃" | 最后上线时间在7天内 | | "本月活跃" | 最后上线时间在30天内 | | "不限" | 不筛选活跃度 | ## 话术类型 | script_type | 说明 | 使用场景 | |-------------|------|----------| | first | 首次回复 | 第一次联系候选人 | | followup | 跟进回复 | 候选人没有回复时 | | wechat | 微信交换 | 询问微信号 | | closing | 结束语 | 结束对话 | ## 快速开始 ### 1. 初始化测试数据 ```bash python scripts/init_recruit_test_data.py ``` ### 2. 运行功能测试 ```bash python scripts/test_recruit_features.py ``` ### 3. 启动招聘任务 通过API或管理界面启动招聘任务,系统会自动: - 应用筛选条件 - 过滤自己的消息 - 保存联系人记录 - 进行复聊管理 ## 常见问题 ### Q1: 为什么识别到了自己发送的微信号? **A**: 已修复。现在通过 `fromId` 字段过滤消息,只识别对方发送的消息。 ### Q2: 联系人记录在哪里查看? **A**: 在 `ContactRecord` 表中,可以通过 `/api/contacts` 接口查询。 ### Q3: 如何配置不同岗位的话术? **A**: 在 `ChatScript` 表中,设置 `position` 字段为岗位名称,`script_type` 为话术类型。 ### Q4: 筛选条件不生效? **A**: 检查 `FilterConfig` 表中是否有 `is_active=True` 的配置。 ### Q5: 如何调整复聊等待时间? **A**: 修改 `_handle_follow_up_chat()` 方法中的 `max_wait` 参数(默认30秒)。 ## 数据库表 ### FilterConfig(筛选配置) - `age_min`, `age_max` - 年龄范围 - `education` - 学历要求 - `activity` - 活跃度要求 - `positions` - 期望职位列表(JSON数组) - `is_active` - 是否启用 ### ChatScript(话术配置) - `position` - 岗位类型 - `script_type` - 话术类型 - `content` - 话术内容 - `is_active` - 是否启用 ### ContactRecord(联系人记录) - `name` - 姓名 - `position` - 岗位 - `contact` - 联系方式 - `reply_status` - 回复状态 - `wechat_exchanged` - 是否交换微信 - `contacted_at` - 联系时间 ## 代码位置 - 主文件:`worker/tasks/boss_recruit.py` - 测试脚本:`scripts/test_recruit_features.py` - 初始化脚本:`scripts/init_recruit_test_data.py` - 详细说明:`BOSS招聘优化说明.md` - 完成总结:`优化完成总结.md`