数据驱动数据库赋能 AI 自动填充求职筛选条件
求职者在 HeadHunter、SuperJob、Zarplata.ru 和 TrudVsem 等平台上常常为筛选条件烦恼。数据分析显示,用户打开筛选面板,随手输入信息,结果要么是成千上万的保洁岗位,要么是空空如也的列表,然后直接放弃。各种修复方案如添加提示语、必填字段和高亮显示都失败了:转化率反而下降,用户要么被吓跑,要么输入“工作”这种乱七八糟的内容。
关键洞察:问题出在复杂性上。每个平台对城市(HeadHunter 有 1600 个带 ID 的城市,SuperJob 有自己的编码)、专业方向、工作经验等都有独特的 ID。将完整词典塞进大模型,一次查询就要 14 万 token(25–40 卢布),还容易幻觉或直接破产。
数据驱动 AI 流水线架构
解决方案利用现有数据库,包含 job_filters、job_filter_options、job_service_filters、city_master 和 city_source_map 等表。这些表将标准值映射到平台特定 ID(例如,Moscow:HeadHunter=1,SuperJob=4)。
系统自动分类标记为 is_ai_eligible = true 的筛选条件:
- 小词典(≤30 个选项):工作经验(
noExperience、“无经验”,between1And3、“1-3 年”)、就业形式(FULL、“全职”,PART、“兼职”)。直接送入提示词(约 400 token)。 - 大词典(>30 个):城市、专业。模型输出文本(如“Moscow”),代码从数据库解析 ID。
- 自由文本:如“Python 后端开发工程师”。
- 数字:薪资,从简历或模型提取。
提示词动态从数据库生成。例如:
== 多选筛选 ==
experience: noExperience="无经验", between1And3="1-3 年"
employment_form: FULL="全职"
== 词典字段 ==
city_name: "Moscow"
== 文本字段 ==
text: 2-8 个词
输入:简历摘要(技能、经验)、期望职位、目标平台。输出——无 ID 的 JSON:
{
"text": "Python 后端开发工程师",
"area_name": "Moscow",
"experience": "between1And3",
"salary": {"from": 250000}
}
处理阶段与解析
阶段 1:提示生成与模型调用
BuildSearchFiltersPromptTask 组装指令。大模型(GigaChat)解析用户意图,从小词典挑选,从大词典提取名称。
阶段 2:代码后处理
- 解析:
SearchCitiesAction在city_master中查找“Moscow”,通过city_source_map映射 ID。 - 适配:将
between1And3转换为平台 API 格式。 - 组装:
unified_filters+filter_labels供前端使用。
结果:所有平台的预填充筛选条件。用户审核后保存。
可扩展性:新增平台/筛选——只需更新数据库数据,提示和流水线自动适配。
性能指标
| 方案 | Token 数 | 单次查询成本 | 准确率 |
|------|----------|--------------|--------|
| 朴素(全词典) | 140,000 | 25–40 卢布 | 低(幻觉) |
| 数据驱动 | 850 + 150 | 0.1 卢布 | 高(数据库解析) |
节省:150 倍。搜索跳出率下降,付费功能平均用户收入上升。
核心要点
- 职责分离:大模型负责语义,数据库处理 ID 映射——减少 token 和错误。
- 自动分类:30 个选项阈值动态调整;新筛选无代码接入。
- JSON 输出:严格格式简化解析。
- 扩展性:轻松应对数千用户,无成本激增。
- 用户体验:自动填充降低门槛。
— Editorial Team
暂无评论。