应用场景

简历预筛

核查硬性要求、给总体匹配度打分,且不编造经历。

问题

关键词搜索奖励注水简历,惩罚转行者。

代码拿到答案后怎么做

只有硬性条件明显缺失时才拒绝。其余全部进入面试。

先查硬性条件,再评匹配

state 带结构化的岗位信息(must_have 与 nice_to_have 清单)加简历文本。两个问题:meet_must_have(简历是否覆盖每一条硬性要求)与 fit(跨 weak、possible、strong 的 score)。拆开它们很重要,因为两者的行为不同:硬性条件覆盖是清单核对 — TypeScript、Postgres 与 API 设计,对照五年 Node.js 和两套计费系统 — 而 fit 是一个由你的阈值说了算的分级判断。

面试的是人,不是关键词

只有硬性条件明显缺失(低 meet_must_have 概率且高置信)时才拒绝。其他人继续推进 — 被关键词筛选惩罚的转行者,正是语义阅读的价值所在。把 nice_to_have 清单留在 state 里:fit 分数会吸收它,并且当管道渐满时,你为“possible”设的门槛可以浮动。

简历筛选专属的坑

公平在这里是法律层面的问题:分数负责分流、人负责决定,而且硬性条件拒绝必须可落地 — 是缺失的能力,而不是对文化契合的印象。不要把身份数据(姓名、住址、出生日期)送进决策调用;核查硬性条件用不到它们。还有,按季度复审 criteria — 资历会过时,一条实为 nice-to-have 的 must-have 就是靠关键词潜入的偏见。

请求结构

这是 playground 为该预设发送的完整请求 — 与你的服务器带 Bearer key 发往 /v1/systemone 的 JSON 相同。

curl
curl https://jevai.website/api/v1/systemone \
  -H "Authorization: Bearer $JEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "state": {
    "role": {
      "title": "Backend engineer",
      "must_have": [
        "TypeScript",
        "Postgres",
        "API design"
      ],
      "nice_to_have": [
        "Workers",
        "payments"
      ]
    },
    "resume": "5 years Node.js, shipped two billing systems, strong TypeScript and Postgres. No public-cloud certs."
  },
  "questions": {
    "meet_must_have": {
      "type": "noul",
      "instructions": "Does the resume cover every item in `role.must_have`?"
    },
    "fit": {
      "type": "score",
      "instructions": "How strong is this candidate for the role?",
      "criteria": [
        "Weak",
        "Possible",
        "Strong"
      ]
    }
  }
}'

关于此用例的常见问题

这能取代招聘人员吗?
不能 — 它先行处理的是规模化最差的那一步:第一遍的硬性条件核查。淘汰终选人的决定保持人工,fit 分数送去准备面试,而不是丢进拒信堆。
如何避免关键词作弊?
模型读语义,这是双刃剑:“上线过计费系统”读起来比一张技能清单更有分量。把 must_have 项描述成能力,而不只是工具名,这次调用就会奖励真材实料而非注水。
简历属于敏感数据吗?
属于。网关把请求转发给模型计算答案且不保留内容 — 尽管如此,仍要在流程中取得申请者的同意,并且只发送决策所需的字段。
在测试台里运行