Files
work_dhd_back_end/doc/岗位简历匹配度接口说明.md
2026-01-06 11:23:52 +08:00

6.0 KiB
Raw Blame History

岗位简历匹配度接口说明

接口地址

POST http://work.dhdjy.com/match/calculate

接口说明

该接口用于计算岗位信息和简历信息的匹配度,采用硬性条件一票否决 + 软性条件加分的双层匹配机制,符合公考职位匹配的实际需求。

返回结果仅返回匹配度分数0-100分硬性条件不满足时返回0分。

匹配机制说明

匹配流程

  1. 硬性条件检查(一票否决)

    • 首先检查硬性条件,如学历、学位、年龄、专业、性别等
    • 任一硬性条件不满足直接返回0分不进行软性条件评分
    • 所有硬性条件满足后,进入软性条件评分
  2. 软性条件评分100分制

    • 在通过硬性条件筛选的基础上,对软性条件进行评分
    • 评分维度包括:专业匹配度、学历层次匹配度、专业资格条件、基层工作经历、其他条件等
    • 最终得分范围为 0-100 分

请求参数

请求方式

  • 方法: POST
  • Content-Type: application/json 或 application/x-www-form-urlencoded

请求参数说明

参数名 类型 必填 说明
position object 岗位信息对象
resume object 简历信息对象

请求示例

JSON格式请求

{
  "position": {
    "id": 1,
    "base_info": {
      "岗位名称": "人工智能与大数据侦察职位一",
      "招考单位": "市级公安机关",
      "招录人数": "10",
      "岗位代码": "45150001"
    },
    "position_info": {
      "岗位名称": "人工智能与大数据侦察职位一",
      "招考单位": "市级公安机关",
      "招录人数": "10",
      "岗位代码": "45150001"
    },
    "position_require": {
      "学历要求": "本科及以上",
      "学位要求": "学士及以上",
      "年龄要求": "18周岁以上、35周岁以下。",
      "专业(学科)类别": "计算机科学与技术类,电气、电子及自动化类",
      "其他资格条件": "适合男性。符合人民警察录用条件。",
      "专业资格条件": "曾参加人工智能、大数据、计算机领域竞赛,获个人三等奖或团体三等奖及以上。"
    }
  },
  "resume": {
    "user_id": 527,
    "birth_date": "1995-03-01",
    "gender": "男",
    "work_experience": "3年基层工作年限",
    "education": [
      {
        "education_level": "硕士研究生",
        "degree": "硕士",
        "majors_name": "计算机科学与技术"
      }
    ]
  }
}

响应参数

成功响应

{
  "code": 200,
  "msg": "计算成功",
  "data": {
    "match_score": 90
  }
}

错误响应

{
  "code": 400,
  "msg": "参数错误:岗位信息和简历信息不能为空",
  "data": null
}

匹配度分数说明

分数含义

  • 0分:硬性条件不满足(如年龄超限、专业不匹配、学历不达标等),一票否决
  • 1-100分:通过硬性条件筛选后的软性条件匹配度

硬性条件(一票否决)

以下条件不满足时直接返回0分

  1. 学历要求:必须达到或超过岗位要求的学历
  2. 学位要求:必须达到或超过岗位要求的学位
  3. 年龄要求:必须在岗位要求的年龄范围内
  4. 专业要求:专业必须属于岗位要求的专业类别
  5. 性别要求:如果岗位明确要求性别,必须匹配

软性条件评分规则100分制

在通过硬性条件筛选后,进行软性条件评分:

  1. 专业匹配度40分

    • 专业完全匹配40分
    • 专业部分匹配:根据匹配程度评分
  2. 学历层次匹配度20分

    • 刚好满足要求15分
    • 超过要求一级20分
    • 超过要求两级及以上20分
  3. 专业资格条件20分

    • 根据专业竞赛获奖、证书等情况评分
    • 无要求时给满分
  4. 基层工作经历10分

    • 有基层工作经历10分
    • 无基层工作经历0分
  5. 其他条件10分

    • 根据政治面貌、特殊身份等其他条件评分
    • 无要求时给满分

使用示例

示例1硬性条件不满足

请求:

{
  "position": {
    "position_require": {
      "年龄要求": "18周岁以上、35周岁以下。",
      "专业(学科)类别": "计算机科学与技术类"
    }
  },
  "resume": {
    "birth_date": "1989-03-01",
    "education": [
      {
        "majors_name": "逻辑学"
      }
    ]
  }
}

响应:

{
  "code": 200,
  "msg": "计算成功",
  "data": {
    "match_score": 0
  }
}

说明年龄36岁超过35岁上限或专业不匹配硬性条件不满足返回0分。

示例2通过硬性条件

请求:

{
  "position": {
    "position_require": {
      "学历要求": "本科及以上",
      "年龄要求": "18周岁以上、35周岁以下。",
      "专业(学科)类别": "计算机科学与技术类"
    }
  },
  "resume": {
    "birth_date": "1995-03-01",
    "work_experience": "3年基层工作年限",
    "education": [
      {
        "education_level": "硕士研究生",
        "degree": "硕士",
        "majors_name": "计算机科学与技术"
      }
    ]
  }
}

响应:

{
  "code": 200,
  "msg": "计算成功",
  "data": {
    "match_score": 100
  }
}

说明所有硬性条件满足软性条件评分100分。

注意事项

  1. 硬性条件优先硬性条件不满足时直接返回0分不进行软性条件评分
  2. 匹配度分数只有在通过硬性条件筛选后才会计算匹配度分数0-100分
  3. 数据结构:专业资格条件评分需要简历中包含相关证书、获奖等信息,当前数据结构暂不支持,需要扩展
  4. 专业匹配:专业匹配基于关键词匹配,实际应用中可能需要更专业的专业分类映射表

使用场景

该接口适用于:

  • 公考职位与考生简历匹配
  • 事业单位招聘匹配
  • 其他需要硬性条件筛选的招聘场景