242 lines
6.0 KiB
Markdown
242 lines
6.0 KiB
Markdown
# 岗位简历匹配度接口说明
|
||
|
||
## 接口地址
|
||
|
||
```
|
||
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. **专业匹配**:专业匹配基于关键词匹配,实际应用中可能需要更专业的专业分类映射表
|
||
|
||
## 使用场景
|
||
|
||
该接口适用于:
|
||
- 公考职位与考生简历匹配
|
||
- 事业单位招聘匹配
|
||
- 其他需要硬性条件筛选的招聘场景
|