Files
boss_dp/快速参考指南.md

149 lines
3.9 KiB
Markdown
Raw Normal View History

2026-03-05 10:27:28 +08:00
# 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`