返回首页

用于自动填充职位筛选器的 AI

本文描述了用于 HH、SuperJob 等职位搜索筛选器自动填充的数据驱动管道。LLM 分析查询,数据库解析 ID。150 倍令牌节省,转化率增长。

自动填充职位搜索筛选器 AI 和 DB
Advertisement 728x90

数据驱动数据库赋能 AI 自动填充求职筛选条件

求职者在 HeadHunter、SuperJob、Zarplata.ru 和 TrudVsem 等平台上常常为筛选条件烦恼。数据分析显示,用户打开筛选面板,随手输入信息,结果要么是成千上万的保洁岗位,要么是空空如也的列表,然后直接放弃。各种修复方案如添加提示语、必填字段和高亮显示都失败了:转化率反而下降,用户要么被吓跑,要么输入“工作”这种乱七八糟的内容。

关键洞察:问题出在复杂性上。每个平台对城市(HeadHunter 有 1600 个带 ID 的城市,SuperJob 有自己的编码)、专业方向、工作经验等都有独特的 ID。将完整词典塞进大模型,一次查询就要 14 万 token(25–40 卢布),还容易幻觉或直接破产。

数据驱动 AI 流水线架构

解决方案利用现有数据库,包含 job_filtersjob_filter_optionsjob_service_filterscity_mastercity_source_map 等表。这些表将标准值映射到平台特定 ID(例如,Moscow:HeadHunter=1,SuperJob=4)。

Google AdInline article slot

系统自动分类标记为 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:

Google AdInline article slot
{
  "text": "Python 后端开发工程师",
  "area_name": "Moscow",
  "experience": "between1And3",
  "salary": {"from": 250000}
}

处理阶段与解析

阶段 1:提示生成与模型调用

BuildSearchFiltersPromptTask 组装指令。大模型(GigaChat)解析用户意图,从小词典挑选,从大词典提取名称。

阶段 2:代码后处理

  • 解析SearchCitiesActioncity_master 中查找“Moscow”,通过 city_source_map 映射 ID。
  • 适配:将 between1And3 转换为平台 API 格式。
  • 组装unified_filters + filter_labels 供前端使用。

结果:所有平台的预填充筛选条件。用户审核后保存。

可扩展性:新增平台/筛选——只需更新数据库数据,提示和流水线自动适配。

Google AdInline article slot

性能指标

| 方案 | Token 数 | 单次查询成本 | 准确率 |

|------|----------|--------------|--------|

| 朴素(全词典) | 140,000 | 25–40 卢布 | 低(幻觉) |

| 数据驱动 | 850 + 150 | 0.1 卢布 | 高(数据库解析) |

节省:150 倍。搜索跳出率下降,付费功能平均用户收入上升。

核心要点

  • 职责分离:大模型负责语义,数据库处理 ID 映射——减少 token 和错误。
  • 自动分类:30 个选项阈值动态调整;新筛选无代码接入。
  • JSON 输出:严格格式简化解析。
  • 扩展性:轻松应对数千用户,无成本激增。
  • 用户体验:自动填充降低门槛。

— Editorial Team

Advertisement 728x90

继续阅读