# 岗位简历匹配度接口说明 ## 接口地址 ``` POST /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格式请求 ```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": "计算机科学与技术" } ] } } ``` ## 响应参数 ### 成功响应 ```json { "code": 200, "msg": "计算成功", "data": { "match_score": 90 } } ``` ### 错误响应 ```json { "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:硬性条件不满足 **请求:** ```json { "position": { "position_require": { "年龄要求": "18周岁以上、35周岁以下。", "专业(学科)类别": "计算机科学与技术类" } }, "resume": { "birth_date": "1989-03-01", "education": [ { "majors_name": "逻辑学" } ] } } ``` **响应:** ```json { "code": 200, "msg": "计算成功", "data": { "match_score": 0 } } ``` **说明**:年龄36岁超过35岁上限,或专业不匹配,硬性条件不满足,返回0分。 ### 示例2:通过硬性条件 **请求:** ```json { "position": { "position_require": { "学历要求": "本科及以上", "年龄要求": "18周岁以上、35周岁以下。", "专业(学科)类别": "计算机科学与技术类" } }, "resume": { "birth_date": "1995-03-01", "work_experience": "3年基层工作年限", "education": [ { "education_level": "硕士研究生", "degree": "硕士", "majors_name": "计算机科学与技术" } ] } } ``` **响应:** ```json { "code": 200, "msg": "计算成功", "data": { "match_score": 100 } } ``` **说明**:所有硬性条件满足,软性条件评分100分。 ## 注意事项 1. **硬性条件优先**:硬性条件不满足时,直接返回0分,不进行软性条件评分 2. **匹配度分数**:只有在通过硬性条件筛选后,才会计算匹配度分数(0-100分) 3. **数据结构**:专业资格条件评分需要简历中包含相关证书、获奖等信息,当前数据结构暂不支持,需要扩展 4. **专业匹配**:专业匹配基于关键词匹配,实际应用中可能需要更专业的专业分类映射表 ## 使用场景 该接口适用于: - 公考职位与考生简历匹配 - 事业单位招聘匹配 - 其他需要硬性条件筛选的招聘场景