Appearance
简历解析
我们支持客户通过 SaaS 接口或私有化部署方式使用简历解析服务,服务提供标准的 Restful 接口。
解析服务提供了三种解析模式供用户灵活选择,以满足不同场景需求:
模式 | 说明 |
---|---|
极速模式(fast) | 适用于对解析速度要求高的场景,对解析速度和准确率进行了折中,普通简历在 100ms 左右完成解析。 简历文件大小限制: 6MB(Base64 编码后的文本大小约 8MB) |
标准模式(standard) | 适用于大部分场景,使用自研的文本提取器,能够轻松处理图片嵌入、表格、分栏排版简历,文本提取更符合阅读顺序,解析准确率高,核心字段准确率近 99%。 简历文件大小限制: 10MB(Base64 编码后的文本大小约 13.33MB) |
极致模式(ultimate) | 适用于对解析准确率要求高的场景,支持对超大简历的解析。 简历文件大小限制: 20MB(Base64 编码后的文本大小约 26.66MB) 注:极致模式(ultimate)只在私有化部署时生效,在 SaaS 接口中不生效 |
为了便于客户使用,除了 SaaS 接口外,我们还提供了云市场 API 接口:
接口请求格式
解析接口以 POST
+ application/json
方式提供,通过 HTTP 请求调用。
请求方法
POST
HEADER 参数设置
字段 | 值 | 是否必填 | 说明 |
---|---|---|---|
Content-Type | application/json; charset=utf-8 | 是 | 请求内容类型 |
user_id | your user id | 是 | 用户 ID |
user_secret | your user secret | 是 | 用户秘钥 |
提示
用户 ID 及秘钥由后台生成,欢迎联系我们开通服务,竭诚为您服务 🎉🎉🎉
私有化部署模式下,请求 HEADER 中不需要设置user_id
和user_secret
这两个字段。
请求 Body 参数设置
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
file_name | String | 是 | 简历文件名,带后缀名,如.pdf 、.doc 、.docx 、.txt 等 |
file_content | String | 是 | Base64 编码后的简历文件内容,不能为空字符串,Base64 解码后的内容也不能空 |
mode | String | 否 | 解析模式,为如下枚举值:fast : 极速模式standard : 标准模式ultimate : 极致模式缺省时默认值为 standard |
parse_avatar | Integer | 否 | 是否解析头像,为如下枚举值:0 : 不需要解析头像1 : 需要解析头像缺省时默认值为 0 |
请求 Body 参考样例
json
{
"file_name": "test.pdf",
"file_content": "base64 encoded content",
"mode": "standard",
"parse_avatar": 1
}
接口响应格式
响应 HEADER 自定义内容
接口返回的 Response 的 HEADER 中定义了用户的额度信息,具体内容如下:
字段 | 类型 | 说明 |
---|---|---|
user_id | String | 用户 ID |
subscription | String | 用户订阅模式,为如下枚举值:yearly : 包年monthly : 包月traffic : 频次 |
expiry_date | String | 包含年月日的日期格式,如2099.01.01 ,表示2099.01.01 当日零点开始包年包月服务失效,在之前均有效,具体格式参考日期格式 ,订阅模式为yearly 、monthly 时字段有效 |
quota | Integer | 单位: 次 ,总的额度 |
quota_usage | Integer | 单位: 次 ,已经使用额度 |
提示
私有化部署模式下,Response 的 HEADER 中没有上述字段。
响应 Body 部分整体格式
解析接口以 Json 格式组织并返回解析结果,包含三部分内容:
解析状态信息
解析状态信息字段名为status
,类型为Object
,包含解析成功或失败的状态码及描述信息,定义如下:
字段 | 类型 | 说明 |
---|---|---|
code | Integer | 状态码(详细定义参考返回状态码表 )200 : 解析正常其他: 解析异常 |
message | String | 状态描述信息 |
解析器信息
解析器信息字段名为parser_info
,类型为Object
,包含当前使用的解析器版本及解析时间(北京时间),定义如下:
字段 | 类型 | 说明 |
---|---|---|
version | String | 解析器版本号,包含三部分:主版本号、子版本号、阶段版本号,并以"."连接,如1.0.0 |
parse_time | String | 解析时间,时间格式为yyyy.MM.dd HH:mm:ss ,如:2024.01.01 01:01:01 |
解析结果
解析结果字段名为result
,类型为Object
,包含解析器提取的各个字段信息,具体定义参考解析结果格式
整体返回格式示例
json
{
"status": {
"code": 200,
"message": "解析成功"
},
"parser_info": {
"version": "1.0.0",
"parse_time": "2000.01.01 01:01:01"
},
"result": {
...
}
}
解析结果格式
字段设计风格
解析结果包含字段繁多,为了便于管理和使用,在组织解析结果时我们按语义将字段进行了归类分组,对于没有解析结果的字段不包含在返回结果中。
为了便于用户直观了解各字段来源,我们对字段命名做了如下约定:
字段名后缀 | 含义 | 说明 |
---|---|---|
_norm | 规范化字段 | 是对某个解析字段的规范化,如address_norm 是对address 字段的规范化 |
_inf | 推理字段 | 通过人工智能技术预测或通过复杂计算得到的结果 |
_detail | 详情字段 | 我们提供细粒度的解析结果,供用户灵活使用,如work_year (工作年限字段)是普通字段,work_year_detail 是work_year 对应的详情字段,其中包含了提取work_year 字段时涉及的更细粒度的字段如果普通字段是 Array 类型,则其详情字段也是Array 类型,且元素个数和顺序均保持一致 |
无后缀 | 解析字段 | 从简历中直接提取或简单映射得到的结果 |
提示
我们支持客户按需定制返回格式,定制内容包括但不限于字段组织结构、字段命名、字段值类型等,如有需要欢迎联系我们,竭诚为您服务 🎉🎉🎉
基本信息
基本信息字段名为basic_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | name | String | 姓名 | 优先提取中文名,如张三 ;无中文名时会提取英文名,如Anna |
2 | gender | String | 性别 | 枚举值:男 、女 ,具体定义参考性别字段枚举值 |
3 | age | Integer | 年龄 | 简历中填写的年龄,如23 |
4 | age_inf | Integer | 年龄 | 推断的年龄,如23 |
5 | birthday | String | 生日 | 日期格式,如2001.04.08 ,具体格式参考日期格式 |
6 | ethnic | String | 民族 | 枚举值,对应中国的 56 个民族,如汉族 、维吾尔族 ,具体定义参考民族字段枚举值 |
7 | political_status | String | 政治面貌 | 枚举值,共有 13 类,如中共党员 、群众 ,具体定义参考政治面貌字段枚举值 |
8 | marital_status | String | 婚姻状况 | 枚举值:已婚 、未婚 ,具体定义参考婚姻状况字段枚举值 |
9 | height | Integer | 身高 | 单位:cm ,如170 表示身高为 170 cm |
10 | weight | Integer | 体重 | 单位:kg ,如60 表示体重为 60 kg |
11 | nationality | String | 国籍 | 如中国 、美国 |
12 | id_card | String | 身份证号 | 18 位数字的中国身份证号码 |
13 | native_place | String | 籍贯 | 如北京海淀 |
14 | native_place_norm | String | 籍贯(规范化) | native_place 字段的规范化,规范化到区县级别,如中国-北京市-海淀区 |
15 | hukou_addr | String | 户口地址 | 简历中填写的户口地址,如南京玄武区xxx路xxx号xxx室 |
16 | hukou_addr_norm | String | 户口地址(规范化) | hukou_addr 字段的规范化,规范化到区县级别,如中国-南京市-玄武区 |
17 | addr | String | 住址 | 居住地址,如北京海淀xxx路xxx号xxx室 |
18 | addr_norm | String | 住址(规范化) | addr 字段的规范化,规范化到区县级别,如中国-北京市-海淀区 |
19 | city | String | 所在城市 | 精确到区县级别,如上海徐汇区 |
20 | city_norm | String | 所在城市(规范化) | city 字段的规范化,规范化到区县级别,如中国-上海市-徐汇区 |
21 | postal_code | String | 邮编 | 6 位数字组成的中国邮政编号,如100091 |
基本信息字段格式示例
json
"basic_info": {
"name": "张三",
"gender": "男",
"age": 23,
"age_inf": 23,
"birthday": "2001.04.08",
"ethnic": "汉族",
"political_status": "群众",
"marital_status": "未婚",
"height": 170,
"weight": 60,
"nationality": "中国",
"id_card": "110000xxxxxxxxxxxx",
"native_place": "北京海淀",
"native_place_norm": "中国-北京市-海淀区",
"hukou_addr": "南京玄武区xxx路xxx号xxx室",
"hukou_addr_norm": "中国-南京市-玄武区",
"addr": "北京海淀xxx路xxx号xxx室",
"addr_norm": "中国-北京市-海淀区",
"city": "北京海淀",
"city_norm": "中国-北京市-海淀区",
"postal_code": "100091"
}
头像信息
头像信息字段名为avatar_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | data | string | 头像图片数据 | 数据为 Base64 编码后的图片内容,头像图片格式为PNG 格式 |
2 | url | string | 头像 url | 头像图片的 url 链接,部分具有 HTML 标签的简历可能会包含头像 url |
头像信息字段格式示例
json
"avatar_info": {
"data": "Base64编码后的图片内容",
"url": "http://xxx.xxx/xxx"
}
联系方式
联系方式字段名为contact_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | email_list | Array[String] | 邮箱 | 值为数组形式,简历中可能填写了多个邮箱,如["xxx@126.com", "xxx@qq.com"] |
2 | phone_list | Array[String] | 国内手机号码 | 值为数组形式,简历中可能填写了多个 11 位的中国手机号,如["13112345678", "13912345678"] |
3 | fixed_line_phone | String | 国内固定电话 | 如010-23456789 ,计算逻辑参考其详情字段 的fixed_line_phone 字段定义 |
4 | fixed_line_phone_detail | Object | 国内固定电话详情 | fixed_line_phone 字段的详情字段,具体定义参考国内固定电话详情 字段定义 |
5 | inter_phone | String | 国际地区电话号码 | 包括中国港澳台地区的国际地区电话号码,如+852-23456789 ,计算逻辑参考其详情字段 的inter_phone 字段定义 |
6 | inter_phone_detail | Object | 国际地区电话号码详情 | inter_phone 的详情字段,具体定义参考国际地区电话号码详情 字段定义 |
7 | virtual_phone | Object | 虚拟电话号码 | 部分平台提供的简历中包含虚拟电话号码,Object 中包含三个字段(具体定义参考虚拟电话号码 字段定义):phone :虚拟号码,如13188888888 ext_number :分机号,如1234 expire_time :失效时间,如2024.01.01 12:00 |
8 | String | QQ 号 | 由 5 至 10 位数字组成,如12345678 | |
9 | String | 微信号 | 5 到 20 长度的字符串,如zxf_123456 |
联系方式字段格式示例
json
"contact_info": {
"email_list": [
"xxx@126.com",
"xxx@qq.com"
],
"phone_list": [
"13112345678",
"13912345678"
],
"fixed_line_phone": "010-23456789",
"fixed_line_phone_detail": {
"code": "010",
"number": "23456789",
"fixed_line_phone": "010-23456789"
},
"inter_phone": "+852-23456789",
"inter_phone_detail": {
"code": "852",
"number": "23456789",
"inter_phone": "+852-23456789"
},
"virtual_phone": {
"phone": "13188888888",
"ext_number": "1234",
"expire_time": "2024.01.01 12:00"
},
"qq": "12345678",
"wechat": "zxf_123456"
}
国内固定电话详情
国内固定电话详情字段名为fixed_line_phone_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | code | String | 区号 | 国内区号,如010 、021 |
2 | number | String | 固定电话号码 | 7 位或 8 位数字的座机号码,如23456789 |
3 | fixed_line_phone | String | 完整固定电话号码 | 该字段与联系方式 字段的fixed_line_phone 字段始终保持一致,由已有字段生成,生成规则:当 code 字段无值时,值为number 字段的值,如23456789 当 code 字段有值时,值为{code}-{number} ,如010-23456789 |
国内固定电话详情字段格式示例
示例 1
json
"fixed_line_phone_detail": {
"code": "010",
"number": "23456789",
"fixed_line_phone": "010-23456789"
}
示例 2
json
"fixed_line_phone_detail": {
"number": "23456789",
"fixed_line_phone": "23456789"
}
国际地区电话号码详情
国际地区电话号码详情字段名为inter_phone_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | code | String | 国际区号 | 国际区号,如1 、852 |
2 | number | String | 电话号码 | 均为数字的电话号码,如23456789 |
3 | inter_phone | String | 完整电话号码 | 该字段与联系方式 字段的inter_phone 字段始终保持一致,由已有字段生成,生成规则:+{code}-{number} ,如+852-23456789 |
国际地区电话号码详情字段格式示例
json
"inter_phone_detail": {
"code": "852",
"number": "23456789",
"inter_phone": "+852-23456789"
}
虚拟电话号码
虚拟电话号码字段名为virtual_phone
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | phone | String | 虚拟号码 | 虚拟电话号码,如13188888888 |
2 | ext_number | String | 电话号码 | 分机号,如1234 |
3 | expire_time | String | 失效时间 | 时间格式为yyyy.MM.dd hh:mm ,如2024.01.01 12:00 |
虚拟电话号码字段格式示例
json
"virtual_phone": {
"phone": "13188888888",
"ext_number": "1234",
"expire_time": "2024.01.01 12:00"
}
最高学历信息
最高学历信息字段名为highest_edu_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | school | String | 毕业学校 | 如清华大学 |
2 | date | String | 毕业时间 | 日期格式,如2001.07 ,具体格式参考日期格式 |
3 | dept | String | 毕业院系 | 如计算机科学与技术学院 |
4 | major | String | 毕业专业 | 如计算机科学与技术 |
5 | degree | String | 最高学历 | 枚举值,如本科 ,具体参考学历字段枚举值 |
6 | tags | Array[String] | 教育经历标签 | 简历中填写的内容,枚举值,如985 、全日制 ,具体参考教育经历标签字段枚举值 |
最高学历信息字段格式示例
json
"highest_edu_info": {
"school": "清华大学",
"date": "2001.07",
"dept": "计算机科学与技术学院",
"major": "计算机科学与技术",
"degree": "本科",
"tags": [
"985",
"全日制"
]
}
工作信息
工作信息字段名为work_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | work_year | Float | 工作年限 | 如4.5 ,计算逻辑参考其详情字段 中的work_year 字段定义 |
2 | work_year_detail | Object | 工作年限详情 | work_year 字段的详情字段,具体参考工作年限详情 字段定义 |
3 | domains_year | Array[String] | 领域经验年限 | 如["5年Java开发经验"] ,计算逻辑参考其详情字段 中的domain_year 字段定义 |
4 | domains_year_detail | Array[Object] | 领域经验年限详情 | domain_year 字段的详情字段,具体参考领域经验年限详情 字段定义 |
5 | start_work_time | String | 开始工作时间 | 日期格式,如2001.08 ,具体格式参考日期格式 |
6 | company | String | 最近工作公司 | 如北京xxx科技有限公司 |
7 | position | String | 最近公司担任职位 | 如资深算法工程师 |
8 | status | String | 工作状态 | 枚举值:在职 、离职 、待业 ,具体定义参考职业状态字段枚举值 |
9 | nature | String | 工作性质 | 枚举值:全职 、实习 、兼职 ,具体定义参考职业性质字段枚举值 |
10 | loc | String | 工作地点 | 如北京 |
11 | loc_norm | String | 工作地点(规范化) | loc 字段的规范化,规范化到区县级别,如中国-北京市 |
12 | industry | String | 行业 | 行业描述,字段结果和简历文本中的描述一致,如电子技术/半导体/集成电路 、互联网 |
13 | salary | String | 薪资 | 如10000-15000元/月 、500000元/年 ,具体计算逻辑参考其详情字段 字段中的salary 字段定义 |
14 | salary_detail | Object | 薪资详情 | salary 字段的详情字段,具体参考工作薪资详情 字段定义 |
工作信息字段格式示例
json
"work_info": {
"work_year": 4.5,
"work_year_detail": {
"mention": "4年6个月",
"years": 4,
"months": 6,
"work_year": 4.5
},
"domains_year": [
"5年Java开发经验",
...
],
"domains_year_detail": [
{
"domain": "Java开发",
"time_mention": "4年6个月",
"years": 4,
"months": 6,
"year_norm": 4.5,
"domain_year": "4.5年Java开发经验"
},
...
],
"start_work_time": "2001.08",
"company": "北京xxx科技有限公司",
"position": "资深算法工程师",
"status": "在职",
"nature": "全职",
"loc": "北京",
"loc_norm": "中国-北京市",
"industry": "电子技术/半导体/集成电路",
"salary": "10000-15000元/月",
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
}
}
工作年限详情
工作年限详情字段名为work_year_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述工作年限时间的文本,如简历文本工作年限:4年6个月 ,解析后mention 字段值为4年6个月 |
2 | years | Float | 工作年份 | 如mention 字段为4年6个月 ,解析后years 字段值为4 |
3 | months | Integer | 工作月份 | 如mention 字段为4年6个月 ,解析后months 字段值为6 |
4 | work_year | Float | 工作年限规范化 | 该字段值与工作信息 字段的work_year 字段始终保持一致,计算方式:years + months/12 ,最多保留两位小数,如years=4, months=6 时,work_year_norm 字段值为4.5 |
工作年限详情字段格式示例
示例 1
json
"work_year_detail": {
"mention": "4年6个月",
"years": 4,
"months": 6,
"work_year": 4.5
}
示例 2
json
"work_year_detail": {
"mention": "6个月",
"months": 6,
"work_year": 0.5
}
示例 3
json
"work_year_detail": {
"mention": "4年",
"years": 4,
"work_year": 4
}
领域经验年限详情
领域经验年限详情字段名为domains_year_detail
,类型为Array[Object]
,每个元素为一个领域经验,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | domain | String | 领域 | 如简历文本具有4年6个月的Java开发工作经验 ,解析后domain 字段值为Java开发 |
2 | time_mention | String | 提及 | 简历中描述工作年限时间的文本,如简历文本具有4年6个月的Java开发工作经验 ,解析后time_mention 字段值为4年6个月 |
3 | years | Float | 工作年份 | 如time_mention 字段为4年6个月 ,解析后years 字段值为4 |
4 | months | Integer | 工作月份 | 如time_mention 字段为4年6个月 ,解析后months 字段值为6 |
5 | year_norm | Float | 领域年限(规范化) | 计算方式为years + months/12 ,最多保留两位小数,如years=4, months=6 时,year_norm 字段值为4.5 |
6 | domain_year | String | 领域经验年限规范化 | 该字段值与工作信息 字段的domain_year 字段始终保持一致,由已有字段组合生成,生成方式为{year_norm}年{domain}经验 ,如year_norm=4.5, domain="Java开发" 时,domain_year_norm 字段值为4.5年Java开发经验 |
领域经验年限详情字段格式示例
json
"domains_year_detail": [
{
"domain": "Java开发",
"time_mention": "4年6个月",
"years": 4,
"months": 6,
"year_norm": 4.5,
"domain_year": "4.5年Java开发经验"
},
{
"domain": "项目管理",
"time_mention": "6个月",
"months": 6,
"year_norm": 0.5,
"domain_year": "0.5年项目管理经验"
},
{
"domain": "Python开发",
"time_mention": "4年",
"years": 4,
"year_norm": 4,
"domain_year": "4年Python开发经验"
}
]
工作薪资详情
工作薪资详情字段名为salary_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述当前薪资的文本,如10k-15k每月 、50w每年 |
2 | span_type | String | 薪资类型 | 为如下枚举值:月 :薪资是月薪年 :薪资是年薪 |
3 | type | String | 薪资区间类型 | 为如下枚举值:区间 :如10k-15k每月 非区间 :如15k每月 |
4 | salary_val_min | Integer | 薪资区间下限 | 单位元 ,当type 字段值为区间 时有效,如10000 |
5 | salary_val_max | Integer | 薪资区间上限 | 单位元 ,当type 字段值为区间 时有效,如15000 |
6 | salary_val | Integer | 薪资 | 单位元 ,当type 字段为非区间 时有效,如10000 |
7 | salary | String | 薪资规范化 | 该字段值与工作信息 字段的salary 字段始终保持一致,由已有字段组合生成,生成逻辑:当 type 为区间 时,生成逻辑为{salary_val_min}-{salary_val_max}元/{span_type} ,如10000-15000元/月 当 type 为非区间 时,生成逻辑为{salary_val}元/{span_type} ,如500000元/年 |
工作薪资详情字段格式示例
示例 1
json
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
}
示例 2
json
"salary_detail": {
"mention": "15k每月",
"span_type": "月",
"type": "非区间",
"salary_val": 15000,
"salary": "15000元/月"
}
投递职位信息
投递职位信息字段名为apply_job_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | company | String | 投递公司 | 如上海xxx科技有限公司 |
2 | job | String | 投递职位 | 如资深算法工程师 |
3 | loc | String | 工作地点 | 如深圳 |
4 | time | String | 投递时间 | 如2024-01-01 01:01:01 |
投递职位信息字段格式示例
json
"apply_job_info": {
"company": "上海xxx科技有限公司",
"job": "资深算法工程师",
"loc": "深圳",
}
期望职位信息
期望职位信息字段名为expect_job_list
,类型是Array[Object]
,每一个元素对应一个期望职位,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | job_mention | String | 期望职位提及 | 简历中描述期望职位的文本,如测试工程师 ,可能同时包括多个职位,如测试工程师、测试开发工程师 |
2 | jobs | Array[String] | 期望职位 | 将job_mention 按职位粒度进行拆分的结果,如["测试工程师"] 、["测试工程师", "测试开发工程师"] |
3 | job_type | String | 期望职能 | 简历中填写的职能,如测试 |
4 | nature | String | 期望工作性质 | 枚举值:全职 、实习 、兼职 ,具体定义参考职业性质字段枚举值 |
5 | recruitment | String | 期望招聘类型 | 枚举值:社会招聘 、校园招聘 ,具体定义参考招聘类型字段枚举值 |
6 | loc_mention | String | 期望工作地点提及 | 简历中描述期望工作地点的文本,如不限城市 、广州、深圳 ,来源于locs_detail 详情字段的mention 字段 |
7 | locs | Array[String] | 期望工作地点 | 如["广州", "深圳"] ,来源于locs_detail 详情字段中的locs 字段 |
8 | locs_norm | Array[String] | 期望工作地点(规范化) | 如["中国-广东省-广州市", "中国-广东省-深圳市"] ,来源于locs_detail 详情字段中的locs_norm 字段 |
9 | locs_detail | Object | 期望工作地点详情 | locs 字段的详情字段,具体参考期望工作地点详情 字段定义 |
10 | salary | String | 薪资 | 如10000-15000元/月 、500000元/年 、面议 ,具体计算逻辑参考其详情字段 中的salary 字段 |
11 | salary_detail | Object | 薪资详情 | salary 字段的详情字段,具体参考期望薪资详情 字段定义 |
12 | industry_mention | String | 行业提及 | 简历中描述期望行业的文本,如互联网、IT服务 、不限行业 ,来源于industry_detail 字段的mention 字段 |
13 | industry | Array[String] | 行业 | 如["互联网", "IT服务"] ,具体计算逻辑参考其详情字段 的industry 字段定义 |
14 | industry_detail | Object | 行业详情 | industry 字段的详情字段,具体定义参考期望行业详情 字段定义 |
15 | onboard_time | String | 入职时间 | 如随时 、待商议 、14天内 ,字段生成方式参考其详情字段 的onboard_time 字段定义 |
16 | onboard_time_detail | Object | 入职时间详情 | onboard_time 字段的详情字段,具体定义参考入职时间详情 字段定义 |
期望职位信息字段格式示例
json
"expect_job_list": {
"job_mention": "测试工程师、测试开发工程师",
"jobs": [
"测试工程师",
"测试开发工程师"
],
"job_type": "测试",
"nature": "全职",
"recruitment": "社会招聘",
"loc_mention": "广州、深圳",
"locs": [
"广州",
"深圳"
],
"locs_norm": [
"中国-广东省-广州市",
"中国-广东省-深圳市"
],
"locs_detail": {
"mention": "广州、深圳",
"unlimited": 0,
"locs": [
"广州",
"深圳"
],
"locs_norm": [
"中国-广东省-广州市",
"中国-广东省-深圳市"
]
},
"salary": "10000-15000元/月",
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
},
"industry_mention": "互联网、IT服务",
"industry": [
"互联网",
"IT服务"
],
"industry_detail": {
"mention": "互联网、IT服务",
"unlimited": 0,
"industry": [
"互联网",
"IT服务"
]
},
"onboard_time": "14天内",
"onboard_time_detail": {
"mention": "2周内到岗",
"type": "确切时间",
"day": 14,
"onboard_time": "14天内"
}
}
期望工作地点详情
期望工作地点详情字段名为locs_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述期望工作地点的文本,如不限城市 、广州、深圳 ,该字段与期望职位信息 字段的loc_mention 字段始终保持一致 |
2 | unlimited | Integer | 是否不限期望工作地点 | 为如下枚举值:0 :期望限定的地点的工作1 :不限工作地点 |
3 | locs | Array[String] | 期望工作地点 | 该字段与期望职位信息 字段的locs字段始终保持一致,由已有字段计算得到,计算逻辑为:当 unlimited 字段为1 时,locs 字段为空,默认不包含在结果里当 unlimited 字段为0 且mention 字段有值时,将mention 字段中的地点信息切分为单个地点的列表,如["广州", "深圳"] |
4 | locs_norm | Array[String] | 期望工作地点 | locs 字段的规范化,如["中国-广东省-广州市", "中国-广东省-深圳市"] ,该字段与期望职位信息 字段的locs_norm 字段始终保持一致 |
期望工作地点详情字段格式示例
示例 1
json
"locs_detail": {
"mention": "广州、深圳",
"unlimited": 0,
"locs": [
"广州",
"深圳"
],
"locs_norm": [
"中国-广东省-广州市",
"中国-广东省-深圳市"
]
}
示例 2
json
"locs_detail": {
"mention": "不限城市",
"unlimited": 1
}
期望薪资详情
期望薪资详情字段名为salary_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述期望薪资的文本,如10k-15k每月 、50w每年 |
2 | span_type | String | 薪资类型 | 为如下枚举值:月 :表示薪资是月薪年 :表示薪资是年薪 |
3 | type | String | 薪资区间类型 | 为如下枚举值:面议 :期望薪资面议 区间 :如10k-15k每月 非区间 :如15k每月 |
4 | salary_val_min | Integer | 薪资区间下限 | 单位元 ,当type 字段值为区间 时有效,如10000 |
5 | salary_val_max | Integer | 薪资区间上限 | 单位元 ,当type 字段值为区间 时有效,如15000 |
6 | salary_val | Integer | 薪资 | 单位元 ,当type 字段为非区间 时有效,如10000 |
7 | salary | String | 薪资规范化 | 该字段值与期望职位信息 字段的salary 字段始终保持一致,由已有字段组合生成,生成逻辑:当 type 为面议 时,salary 置为面议 当 type 为区间 时,生成逻辑为{salary_val_min}-{salary_val_max}元/{span_type} ,如10000-15000元/月 当 type 为非区间 时,生成逻辑为{salary_val}元/{span_type} ,如500000元/年 |
期望薪资详情字段格式示例
示例 1
json
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
}
示例 2
json
"salary_detail": {
"mention": "50w每年",
"span_type": "年",
"type": "非区间",
"salary_val": 500000,
"salary": "500000元/月"
}
示例 3
json
"salary_detail": {
"mention": "薪资面议",
"type": "面议",
"salary": "面议"
}
期望行业详情
期望行业详情字段名为industry_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述期望行业的文本,如互联网、IT服务 、不限行业 ,该字段与期望职位信息 字段的industry_mention 字段始终保持一致 |
2 | unlimited | Integer | 是否不限行业 | 为如下枚举值:0 :期望从事限定的行业1 :不限行业 |
3 | industry | Array[String] | 行业 | 该字段与期望职位信息 字段的industry 字段始终保持一致,由已有字段计算得到,计算逻辑为:当 unlimited 字段为1 时,industry 字段为空,默认不包含在结果里当 unlimited 字段为0 且mention 字段有值时,将mention 字段中的行业切分为单个行业的列表,如["互联网", "IT服务"] |
期望行业详情字段格式示例
示例 1
json
"industry_detail": {
"mention": "互联网、IT服务",
"unlimited": 0,
"industry": [
"互联网",
"IT服务"
]
}
示例 2
json
"industry_detail": {
"mention": "不限行业",
"unlimited": 1
}
入职时间详情
入职时间详情字段名为onboard_time_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述到岗时间的文本,如随时到岗 、2周内到岗 、1月内到岗 |
2 | type | String | 到岗时间类型 | 为如下枚举值:随时 :随时可以到岗;待商议 :需再商定到岗时间确切时间 :如14天内到岗 |
3 | day | Integer | 到岗天数 | 到岗所需天数,只有当type 值为确切时间 时有效,我们会将mention 中的时间转换为天数,转换关系:1周=7天 :如mention 为2周内到岗 时,day 的值为2*7=14 1月=30天 :如mention 为1月内到岗 时,day 的值为30 |
4 | onboard_time | String | 到岗时间 | 该字段与期望职位信息 字段的onboard_time 始终保持一致,由已有字段生成,生成规则为:当 type 字段为随时 时,值为随时 当 type 字段为待商议 时,值为待商议 当 type 字段为确切时间 时,生成方式为{day}天内 ,如day=14 时,值为14天内 |
入职时间详情字段格式示例
示例 1
json
"onboard_time_detail": {
"mention": "2周内到岗",
"type": "确切时间",
"day": 14,
"onboard_time": "14天内"
}
示例 2
json
"onboard_time_detail": {
"mention": "随时到岗",
"type": "随时",
"onboard_time": "随时"
}
示例 3
json
"onboard_time_detail": {
"mention": "到岗时间待商定",
"type": "待商议",
"onboard_time": "待商议"
}
教育经历
教育经历字段名为edu_list
,类型是Array[Object]
,每一个元素对应一段教育经历,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | school | String | 学校名 | 就读学校,如清华大学 |
2 | school_info | Object | 学校信息 | 学校信息依赖外部知识库,非简历填写内容,具体定义参考学校信息字段 |
3 | major | String | 专业 | 如计算机科学与技术 |
4 | minor | String | 辅修专业 | 如工商管理 |
5 | degree | String | 学历 | 枚举值,如本科 ,具体定义参考学历字段枚举值 |
6 | dept | String | 院系 | 如计算机科学与技术学院 |
7 | start_date | String | 开始时间 | 日期格式,如1997.09 ,具体格式参考日期格式 |
8 | end_date | String | 结束时间 | 日期格式,如2001.07 ,具体格式参考日期格式 |
9 | loc | String | 学校地点 | 如北京 |
10 | loc_norm | String | 学校地点(规范化) | 如中国-北京市 |
11 | courses | Array[String] | 课程 | 如["高等数学", "C语言程序设计", "计算机网络"] |
12 | gpa | String | GPA | 如3.8 、3.8/4 ,具体计算逻辑参考其详情字段 的gpa 字段 |
13 | gpa_detail | Object | GPA 详情 | gpa 字段的详细字段,具体参考GPA详情 字段定义 |
14 | relative_rank | String | 相对排名 | 如前10% 、5%-10% ,具体计算逻辑参考其详情字段 的relative_rank 字段定义 |
15 | relative_rank_detail | Object | 相对排名详情 | relative_rank 字段的详情字段,具体参考相对排名详情 字段定义 |
16 | abs_rank | String | 绝对排名 | 如3 、3/180 ,具体计算逻辑参考其详情字段 的abs_rank 字段 |
17 | abs_rank_detail | Object | 绝对排名详情 | abs_rank 字段的详细字段,具体参考绝对排名详情 字段定义 |
18 | desc | String | 经历描述 | 教育经历的描述文本 |
19 | tags | Array[String] | 教育经历标签 | 枚举值,简历中填写内容,如985 、全日制 ,具体定义参考教育经历标签字段枚举值 |
教育经历字段格式示例
json
"edu_list": [
{
"school": "清华大学",
"school_info": {
"country": "中国",
"loc": "中国-北京市",
"tags": [
"双一流",
"985",
"211"
],
"rank": 5,
"qs_rank": 300
},
"major": "计算机科学与技术",
"minor": "工商管理",
"degree": "本科",
"dept": "计算机科学与技术学院",
"start_date": "1997.09",
"end_date": "2001.07",
"loc": "北京",
"loc_norm": "中国-北京市",
"courses": [
"高等数学",
"C语言程序设计",
"计算机网络"
],
"gpa": "3.8/4",
"gpa_detail": {
"mention": "3.8/4",
"gpa_val": 3.8,
"total": 4,
"gpa": "3.8/4"
},
"relative_rank": "5%-10%",
"relative_rank_detail": {
"mention": "5%-10%",
"type": "区间",
"rank_val_min": 5,
"rank_val_max": 10,
"relative_rank": "5%-10%"
},
"abs_rank": "3/180",
"abs_rank_detail": {
"mention": "3/180",
"rank_val": 3,
"total": 180,
"abs_rank": "3/180"
},
"desc": "edu description",
"tags": [
"985",
"全日制"
]
},
...
]
学校信息字段
学校信息字段名为school_info
,字段数据来源于外部知识库,非简历填写内容,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | country | String | 所在国家 | 如中国 ,美国 |
2 | loc | String | 学校地点 | 如中国-北京市 ,美国-芝加哥 |
3 | rank | Integer | 国内大学排名 | 国内非港澳台院校排名,排名范围:1-1000 |
4 | qs_rank | Integer | QS 世界大学排名 | QS 世界大学排名,排名范围:1-1000 |
5 | tags | Array[String] | 学校标签 | 枚举值,如双一流 、985 、海外院校 ,具体定义参考学校标签字段枚举值 |
学校信息字段格式示例
json
"school_info": {
"country": "中国",
"loc": "中国-北京市",
"tags": [
"双一流",
"985",
"211"
],
"rank": 5,
"qs_rank": 300
}
GPA 详情
GPA 详情字段名为gpa_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述 GPA 的文本,如3.8/4 |
2 | gpa_val | Float | GPA | 如3.8 |
3 | total | Float | GPA 总分 | GPA 的总分,如4 ,也可能没有值,此时默认不会出现在结果中 |
4 | gpa | String | GPA | 该字段与教育经历 字段的gpa 字段始终保持一致,由已有字段生成,生成规则:当 total 无值时,值为{gpa_val} ,如3.8 当 total 有值时,值为{gpa_val}/{total} ,如3.8/4 |
GPA 详情字段格式示例
示例 1
json
"gpa_detail": {
"mention": "3.8/4",
"gpa_val": 3.8,
"total": 4,
"gpa": "3.8/4"
}
示例 2
json
"gpa_detail": {
"mention": "3.8",
"gpa_val": 3.8,
"gpa": "3.8"
}
相对排名详情
相对排名详情字段名relative_rank_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述相对排名的文本,如5%-10% |
2 | type | String | 排名类型 | 枚举值:区间 :如成绩排名: 5%-10% 非区间 :如成绩排名: 前10% |
3 | rank_val_min | Integer | 排名值 | type 为区间 时有效,如5 |
4 | rank_val_max | Integer | 排名值 | type 为区间 时有效,如10 |
5 | rank_val | Integer | 排名值 | type 为非区间 时有效,如10 |
6 | relative_rank | String | 相对排名 | 该字段与教育经历 字段的relative_rank 字段始终保持一致,由已有字段生成,生成规则:当 type 为区间 时,值为{rank_val_min}%-{rank_val_max}% ,如5%-10% 当 type 为非区间 时,值为前{rank_val} ,如前10% |
相对排名详情字段格式示例
示例 1
json
"relative_rank_detail": {
"mention": "5%-10%",
"type": "区间",
"rank_val_min": 5,
"rank_val_max": 10,
"relative_rank": "5%-10%"
}
示例 2
json
"relative_rank_detail": {
"mention": "10%",
"type": "非区间",
"rank_val": 10,
"relative_rank": "前10%"
}
绝对排名详情
绝对排名详情字段名abs_rank_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述绝对排名的文本,如3/180 |
2 | rank_val | Integer | 排名 | 如3 |
3 | total | Integer | 总人数 | 如180 |
4 | abs_rank | String | 绝对排名 | 该字段与教育经历 字段的abs_rank 字段始终保持一致,由已有字段生成,生成规则:当 total 无值时,值为{rank_val} ,如3 当 total 有值时,值为{rank_val}/{total} ,如3/180 |
绝对排名详情字段格式示例
示例 1
json
"abs_rank_detail": {
"mention": "3/180",
"rank_val": 3,
"total": 180,
"abs_rank": "3/180"
}
示例 2
json
"abs_rank_detail": {
"mention": "第3名",
"rank_val": 3,
"abs_rank": "3"
}
工作经历
工作经历字段名为career_list
,类型为Array[Object]
,每一个元素对应一段工作经历,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | company | String | 公司名 | 如上海xxx科技有限公司 |
2 | position | String | 职位名 | 如测试工程师 |
3 | position_type | String | 职能 | 简历中填写的职能,如测试 |
4 | nature | String | 工作性质 | 枚举值:全职 、实习 、兼职 ,具体定义参考职业性质字段枚举值 |
5 | dept | String | 部门 | 如测试部 |
6 | start_date | String | 开始时间 | 日期格式,如2001.07 ,具体格式参考日期格式 |
7 | end_date | String | 结束时间 | 日期格式,如至今 ,具体格式参考日期格式 |
8 | salary | String | 薪资 | 如10000-15000元/月 、500000元/年 ,具体计算逻辑参考其详情字段 的salary 字段定义 |
9 | salary_detail | Object | 薪资详情 | salary 字段的详情字段,具体参考工作薪资详情 字段定义 |
10 | why_leave | String | 离职原因 | 如没有成长空间 |
11 | report_to | String | 汇报对象 | 如测试部门总监 |
12 | loc | String | 工作地点 | 如上海 |
13 | loc_norm | String | 工作地点(规范化) | 如中国-上海市 |
14 | duration | String | 工作时长 | 如3年6个月 、3.5年 ,具体计算逻辑参考其详情字段 的duration 字段定义 |
15 | duration_detail | Object | 工作时长详情 | duration 字段的详情字段,具体参考工作时长详情 字段定义 |
16 | company_desc | String | 公司描述 | 公司的描述信息 |
17 | company_nature | String | 公司性质 | 如民营 、国企 |
18 | industry | String | 公司行业 | 如互联网 |
19 | stuff_size | String | 公司规模 | 如50000人以上 ,50-100人 ,具体计算逻辑参考其详情字段 的stuff_size 字段定义 |
20 | stuff_size_detail | Object | 公司规模详情 | stuff_size 字段的详情字段,具体参考公司规模详情 字段定义 |
21 | subordinate | String | 下属人数 | 如30人 ,10-20人 ,具体计算逻辑参考其详情字段 中的subordinate 字段定义 |
22 | subordinate_detail | Object | 下属人数详情 | subordinate 字段的详情字段,具体参考下属人数详情 字段定义 |
23 | desc | String | 工作描述 | 工作的描述信息 |
24 | skills | Array[String] | 技能词 | 工作描述中的技能词 |
工作经历字段格式示例
json
"career_list": [
{
"company": "上海xxx科技有限公司",
"position": "测试工程师",
"position_type": "测试",
"nature": "全职",
"dept": "测试部",
"start_date": "2001.07",
"end_date": "至今",
"salary": "10000-15000元/月",
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
},
"why_leave": "没有成长空间",
"report_to": "测试部门总监",
"loc": "上海",
"loc_norm": "中国-上海市",
"duration": "3年6个月",
"duration_detail": {
"mention": "3 年零 6 个月",
"years": 3,
"months": 6,
"duration": "3年6个月"
},
"company_desc": "company description",
"company_nature": "民营",
"industry": "互联网",
"stuff_size": "50-100人",
"stuff_size_detail": {
"mention": "50 - 100 人",
"type": "区间",
"size_val_min": 50,
"size_val_max": 100,
"stuff_size": "50-100人"
},
"subordinate": "10-20人",
"subordinate_detail": {
"mention": "10 - 20 人",
"type": "区间",
"size_val_min": 10,
"size_val_max": 20,
"subordinate": "10-20人"
},
"desc": "career description",
"skills": ["xxx"]
},
...
]
工作薪资详情
工作薪资详情字段名为salary_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述当前薪资的文本,如10k-15k每月 、50w每年 |
2 | span_type | String | 薪资类型 | 为如下枚举值:月 :薪资是月薪年 :薪资是年薪 |
3 | type | String | 薪资区间类型 | 为如下枚举值:区间 :如10k-15k每月 非区间 :如15k每月 |
4 | salary_val_min | Integer | 薪资区间下限 | 单位元 ,当type 字段值为区间 时有效,如10000 |
5 | salary_val_max | Integer | 薪资区间上限 | 单位元 ,当type 字段值为区间 时有效,如15000 |
6 | salary_val | Integer | 薪资 | 单位元 ,当type 字段为非区间 时有效,如10000 |
7 | salary | String | 薪资规范化 | 该字段与工作经历 字段的salary 字段始终保持一致,由已有字段组合生成,生成逻辑:当 type 为区间 时,生成逻辑为{salary_val_min}-{salary_val_max}元/{span_type} ,如10000-15000元/月 当 type 为非区间 时,生成逻辑为{salary_val}元/{span_type} ,如500000元/年 |
工作薪资详情字段格式示例
示例 1
json
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
}
示例 2
json
"salary_detail": {
"mention": "50w每年",
"span_type": "年",
"type": "非区间",
"salary_val": 500000,
"salary": "500000元/年"
}
工作时长详情
工作时长详情字段名为duration_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 如3年6个月 |
2 | years | Float | 工作时长年份 | 如3 、3.5 |
3 | months | Integer | 工作时长月份 | 如6 |
4 | duration | String | 工作时长 | 该字段与工作经历 字段的duration 字段始终保持一致,由已有字段生成,生成方式为:years 、months 均有值时,值为{years}年{months}个月 ,如3年6个月 仅 years 有值时,值为{years}年 ,如3年 仅 months 有值时,值为{months}个月 ,如6个月 |
工作时长详情字段格式示例
示例 1
json
"duration_detail": {
"mention": "3 年零 6 个月",
"years": 3,
"months": 6,
"duration": "3年6个月"
}
示例 2
json
"duration_detail": {
"mention": "3.5 年",
"years": 3.5,
"duration": "3.5年"
}
示例 3
json
"duration_detail": {
"mention": "6 个月",
"months": 6,
"duration": "6个月"
}
公司规模详情
公司规模详情字段名为stuff_size_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述公司规模的文本,如50000人以上 ,50-100人 |
2 | type | String | 公司规模类型 | 为如下枚举值:区间 :如50-100人 非区间 :如50000人以上 |
3 | modifier | String | 修饰符 | 为如下枚举值:左右 :如1000人左右 以上 :如1000人以上 以下 :如1000人一下 |
4 | size_val_min | Integer | 公司规模最小值 | 单位人 ,当type 字段值为区间 时有效,如50 |
5 | size_val_max | Integer | 公司规模最大值 | 单位人 ,当type 字段值为区间 时有效,如100 |
6 | size_val | Integer | 公司规模大小 | 单位人 ,当type 字段值为非区间 时有效,如50000 |
7 | stuff_size | String | 公司规模 | 该字段与工作经历 字段的stuff_size 字段始终保持一致,由已有字段生成,生成方式为:type 为区间 时,值为{size_val_min}-{size_val_max}人 ,如50-100人 type 为非区间 且modifier 为空时,值为{size_val}人 ,如50000人 type 为非区间 且modifier 为非空时,值为{size_val}人{modifier} ,如50000人以上 |
公司规模详情字段格式示例
示例 1
json
"stuff_size_detail": {
"mention": "50 - 100 人",
"type": "区间",
"size_val_min": 50,
"size_val_max": 100,
"stuff_size": "50-100人"
}
示例 2
json
"stuff_size_detail": {
"mention": "100 人",
"type": "非区间",
"size_val": 100,
"stuff_size": "100人"
}
示例 3
json
"stuff_size_detail": {
"mention": "100 人",
"type": "非区间",
"modifier": "以上",
"size_val": 100,
"stuff_size": "100人以上"
}
下属人数详情
下属人数详情字段名为subordinate_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 如10-20人 |
2 | type | String | 下属人数类型 | 为如下枚举值:区间 :如10-20人 非区间 :如30人 |
3 | size_val_min | Integer | 下属人数最小值 | 单位人 ,当type 值为区间 时有效,如10 |
4 | size_val_max | Integer | 下属人数最大值 | 单位人 ,当type 值为区间 时有效如20 |
5 | size_val | Integer | 下属人数大小 | 单位人 ,当type 值为非区间 时有效如30 |
6 | subordinate | String | 下属人数 | 该字段与工作经历 字段的subordinate 字段始终保持一致,由已有字段生成,生成方式为:type 为区间 时,值为{size_val_min}-{size_val_max}人 ,如10-20人 type 为非区间 且modifier 为空时,值为{size_val}人 ,如30人 |
下属人数详情字段格式示例
示例 1
json
"subordinate_detail": {
"mention": "10 - 20 人",
"type": "区间",
"size_val_min": 10,
"size_val_max": 20,
"subordinate": "10-20人"
}
示例 2
json
"subordinate_detail": {
"mention": "30 人",
"type": "非区间",
"size_val": 30,
"subordinate": "30人"
}
项目经历
项目经历字段名为project_list
,类型为Array[Object]
,每一个元素对应一段项目经历,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | name | String | 项目名称 | 如xxx系统 |
2 | position | String | 项目职位 | 如Java开发 |
3 | start_date | String | 开始时间 | 日期格式,如2023.07 ,具体格式参考日期格式 |
4 | end_date | String | 结束时间 | 日期格式,如至今 ,具体格式参考日期格式 |
5 | company | String | 项目所在公司 | 如上海xxx科技有限公司 |
6 | desc | String | 项目描述 | 项目描述文本 |
7 | skills | Array[String] | 技能词 | 项目描述中的技能词 |
项目经历字段格式示例
json
"project_list": [
{
"name": "xxx系统",
"position": "Java开发",
"start_date": "2023.07",
"end_date": "至今",
"company": "上海xxx科技有限公司",
"desc": "project description",
"skills": ["xxx"]
},
...
]
培训经历
培训经历字段名为training_list
,类型为Array[Object]
,每一个元素对应一段培训经历,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | org | String | 培训机构 | 如xxx培训机构 |
2 | subject | String | 培训主题 | 如xxx培训 |
3 | start_date | String | 开始时间 | 日期格式,如2023.07 ,具体格式参考日期格式 |
4 | end_date | String | 结束时间 | 日期格式,如2023.08 ,具体格式参考日期格式 |
5 | loc | String | 培训地点 | 简历中填写的培训地点 |
6 | cert | String | 培训证书 | 简历中填写的培训证书 |
7 | desc | String | 培训描述 | 简历中填写的培训描述 |
培训经历字段格式示例
json
"training_list": [
{
"org": "xxx培训机构",
"subject": "xxx培训",
"start_date": "2023.07",
"end_date": "2023.08",
"loc": "training location",
"cert": "certificate name",
"desc": "project description"
},
...
]
实践经历
实践经历字段名为practice_list
,类型为Array[Object]
,每一个元素对应一段实践经历,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | name | String | 实践名 | 简历中填写的实践名 |
2 | role | String | 角色 | 简历中填写的实践角色 |
3 | start_date | String | 开始时间 | 日期格式,如2023.01 ,具体格式参考日期格式 |
4 | end_date | String | 结束时间 | 日期格式,如2023.03 ,具体格式参考日期格式 |
5 | desc | String | 实践描述 | 简历中填写的实践描述 |
实践经历字段格式示例
json
"practice_list": [
{
"name": "practice name",
"role": "practice role",
"start_date": "2023.01",
"end_date": "2023.03",
"desc": "practice description"
},
...
]
语言证书
语言证书字段名为lang_cert_list
,类型为Array[Object]
,每一个元素对应一个证书,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | lang | String | 语言类型 | 枚举值,如英语 ,支持主流语言,具体枚举值定义参考语言证书字段枚举值 |
2 | cert | String | 语言证书名 | 枚举值,如大学英语六级 ,支持主流语言的主流证书,具体枚举值定义参考语言证书字段枚举值 |
3 | score | Float | 分数 | 如485 |
4 | date | String | 取证时间 | 日期格式,如2013.03 ,具体格式参考日期格式 |
语言证书字段格式示例
json
"lang_cert_list": [
{
"lang": "英语",
"cert": "大学英语六级",
"score": 485,
"date": "2013.03"
},
...
]
语言能力
语言能力字段名为lang_ability_list
,类型为Array[Object]
,每一个元素对应一个语言能力,定义如下:
语言能力字段定义
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | lang | String | 语言 | 枚举值,如英语 ,支持主流语言,具体枚举值定义参考语言能力字段支持语言枚举值 |
2 | ability | String | 能力水平 | 枚举值,如商务会话 ,具体定义参考语言能力熟练程度枚举值 |
3 | listen | String | 语言听力水平 | 枚举值,具体定义参考语言能力听说读写水平枚举值 |
4 | speak | String | 语言口语水平 | 同上 |
5 | read | String | 语言阅读水平 | 同上 |
6 | write | String | 语言写作水平 | 同上 |
语言能力字段格式示例
json
"lang_ability_list": [
{
"lang": "英语",
"ability": "商务会话",
"listen": "良好",
"speak": "流利",
"read": "优秀",
"write": "精通"
},
...
]
计算机证书
计算机证书字段名为computer_cert_list
,类型为Array[Object]
,每一个元素对应一个计算机证书,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | name | String | 计算机证书名 | 证书名命名符合如下规则: 未明确表示是全国还是省级证书时,为枚举值: 计算机一级 、计算机二级 、计算机三级 、计算机四级 省级计算机证书,为以省份名打头的名称,如: 浙江省计算机一级 、浙江省计算机二级 、浙江省计算机三级 、浙江省计算机四级 全国计算机等级证书,为枚举值: 全国计算机一级 、全国计算机二级 、全国计算机三级 、全国计算机四级 |
2 | date | String | 取证时间 | 日期格式,如2013.05 ,具体格式参考日期格式 |
计算机证书字段格式示例
json
"computer_cert_list": [
{
"name": "全国计算机二级",
"date": "2013.05"
},
...
]
证书
证书字段包含所有证书(含语言及计算机证书),字段名为cert_list
,类型为Array[Object]
,每一个元素对应一个证书,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | name | String | 证书名 | 如教师资格证 |
2 | date | String | 取证时间 | 日期格式,如2013.01 ,具体格式参考日期格式 |
证书字段格式示例
json
"cert_list": [
{
"name": "教师资格证",
"date": "2013.01"
},
...
]
技能关键词
技能关键词字段名为skill_list
,类型为Array[Object]
,每一个元素对应一个技能词,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | skill | String | 技能词 | 如Java |
2 | level | String | 熟练程度 | 枚举值,如精通 ,具体定义参考技能熟练程度枚举值 |
3 | time | String | 使用时长 | 如3年 ,具体计算逻辑参考其详情字段 的time 字段定义 |
4 | time_detail | String | 使用时长详情 | time 字段的详情字段,具体参考技能使用时长详情字段定义 |
技能关键词字段格式示例
json
"skill_list": [
{
"skill": "Java",
"level": "精通",
"time": "3年",
"time_detail": {
"mention": "3 年",
"years": 3.0,
"time": "3年"
}
},
...
]
技能使用时长详情
技能使用时长详情字段名为time_detail
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | mention | String | 提及 | 简历中描述技能使用时长的文本,如3 年 |
2 | years | Float | 使用年份 | 如3.0 |
3 | months | Float | 使用月份 | 如10.0 |
4 | time | String | 使用时长 | 该字段与技能关键词 字段的time 字段始终保持一致,由已有字段生成,生成方式为:years 、months 均有值时,值为{years}年{months}个月 ,如3年10个月 仅 years 有值时,值为{years}年 ,如3年 仅 months 有值时,值为{months}个月 ,如10个月 |
技能使用时长详情字段格式示例
示例 1
json
"time_detail": {
"mention": "3 年 10 个月",
"years": 3.0,
"months": 10.0,
"time": "3年10个月"
}
示例 2
json
"time_detail": {
"mention": "3 年",
"years": 3.0,
"time": "3年"
}
示例 3
json
"time_detail": {
"mention": "10 个月",
"months": 10.0,
"time": "10个月"
}
简历信息
简历信息字段名为resume_info
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | file_name | String | 简历文件名 | 请求中的文件名 |
2 | lang_type | String | 语言类型 | 枚举值,如简体中文 ,具体定义参考简历语言类型枚举值 |
3 | source | String | 简历来源 | 枚举值,如拉勾 ,具体定义参考简历来源枚举值 |
4 | id | String | 简历 ID | 如智联招聘来源的简历 ID |
5 | update_time | String | 简历更新时间 | 如2024-01-01 01:01:01 |
简历信息字段格式示例
json
"resume_info": {
"file_name": "xxx.pdf",
"lang_type": "简体中文",
"source": "智联招聘",
"id": "resume id",
"update_time": "2024.01"
}
简历内容
简历内容字段名为resume_content
,类型为Object
,定义如下:
序号 | 字段 | 类型 | 含义 | 说明 |
---|---|---|---|---|
1 | text | String | 简历文本内容 | 完整的简历文本内容 |
2 | basic_info | String | 基本信息区块文本内容 | 典型区块名如基本信息 |
3 | job_intention | String | 求职意向区块文本内容 | 典型区块名如求职意向 |
4 | career_profile | String | 职业概况区块文本内容 | 典型区块名如职业概况 |
5 | contact | String | 联系方式区块文本内容 | 典型区块名如联系方式 |
6 | education | String | 教育经历区块文本内容 | 典型区块名如教育经历 |
7 | course | String | 课程信息区块文本内容 | 典型区块名如主修课程 |
8 | highest_degree | String | 最高学历信息区块文本内容 | 典型区块名如最高学历 |
9 | career | String | 工作经历区块文本内容 | 典型区块名如工作经历 |
10 | internship | String | 实习经历区块文本内容 | 典型区块名如实习经历 |
11 | project | String | 项目经历区块文本内容 | 典型区块名如项目经历 |
12 | skill | String | 专业技能区块文本内容 | 典型区块名如专业技能 |
13 | campus | String | 校园经历区块文本内容 | 典型区块名如校内经历 |
14 | activity | String | 活动经历区块文本内容 | 典型区块名如社会活动 |
15 | practice | String | 实践经历区块文本内容 | 典型区块名如社会实践 |
16 | self_evaluation | String | 自我评价区块文本内容 | 典型区块名如自我评价 |
17 | award | String | 所获奖励区块文本内容 | 典型区块名如荣获奖励 |
18 | language | String | 语言能力区块文本内容 | 典型区块名如语言能力 |
19 | contest | String | 竞赛经历区块文本内容 | 典型区块名如竞赛经历 |
20 | certification | String | 所获证书区块文本内容 | 典型区块名如荣获证书 |
21 | training | String | 培训经历区块文本内容 | 典型区块名如培训经历 |
22 | hobby | String | 兴趣爱好区块文本内容 | 典型区块名如兴趣爱好 |
23 | academic | String | 学术经历区块文本内容 | 典型区块名如学术经历 |
24 | works | String | 个人作品区块文本内容 | 典型区块名如个人作品 |
25 | papers | String | 个人论文区块文本内容 | 典型区块名如论文成果 |
26 | social | String | 社交主页区块文本内容 | 典型区块名如社交主页 |
27 | cover_letter | String | 自荐信区块文本内容 | 典型区块名如自荐信 |
28 | extra_info | String | 其他附加信息区块文本内容 | 典型区块名如附加信息 |
简历内容字段格式示例
json
"resume_content": {
"text": "完整的简历文本内容",
"basic_info": "基本信息区块文本内容",
"job_intention": "求职意向区块文本内容",
"career_profile": "职业概况区块文本内容",
"contact": "联系方式区块文本内容",
"education": "教育经历区块文本内容",
"course": "课程信息区块文本内容",
"highest_degree": "最高学历信息区块文本内容",
"career": "工作经历区块文本内容",
"internship": "实习经历区块文本内容",
"project": "项目经历区块文本内容",
"skill": "专业技能区块文本内容",
"campus": "校园经历区块文本内容",
"activity": "活动经历区块文本内容",
"practice": "实践经历区块文本内容",
"self_evaluation": "自我评价区块文本内容",
"award": "所获奖励区块文本内容",
"language": "语言能力区块文本内容",
"contest": "竞赛经历区块文本内容",
"certification": "所获证书区块文本内容",
"training": "培训经历区块文本内容",
"hobby": "兴趣爱好区块文本内容",
"academic": "学术经历区块文本内容",
"works": "个人作品区块文本内容",
"papers": "个人论文区块文本内容",
"social": "社交主页区块文本内容",
"cover_letter": "自荐信区块文本内容",
"extra_info": "其他附加信息区块文本内容"
}
接口响应完整格式示例
json
{
"status": {
"code": 200,
"message": "解析成功"
},
"parser_info": {
"version": "1.0.0",
"parse_time": "2000.01.01 01:01:01"
},
"result": {
"basic_info": {
"name": "张三",
"gender": "男",
"age": 23,
"age_inf": 23,
"birthday": "2001.04.08",
"ethnic": "汉族",
"political_status": "群众",
"marital_status": "未婚",
"height": 170,
"weight": 60,
"nationality": "中国",
"id_card": "110000xxxxxxxxxxxx",
"native_place": "北京海淀",
"native_place_norm": "中国-北京市-海淀区",
"hukou_addr": "南京玄武区xxx路xxx号xxx室",
"hukou_addr_norm": "中国-南京市-玄武区",
"addr": "北京海淀xxx路xxx号xxx室",
"addr_norm": "中国-北京市-海淀区",
"city": "北京海淀",
"city_norm": "中国-北京市-海淀区",
"postal_code": "100091"
},
"avatar_info": {
"data": "Base64编码后的图片内容",
"url": "http://xxx.xxx/xxx"
},
"contact_info": {
"email_list": [
"xxx@126.com",
"xxx@qq.com"
],
"phone_list": [
"13112345678",
"13912345678"
],
"fixed_line_phone": "010-23456789",
"fixed_line_phone_detail": {
"code": "010",
"number": "23456789",
"fixed_line_phone": "010-23456789"
},
"inter_phone": "+852-23456789",
"inter_phone_detail": {
"code": "852",
"number": "23456789",
"inter_phone": "+852-23456789"
},
"virtual_phone": {
"phone": "13188888888",
"ext_number": "1234",
"expire_time": "2024.01.01 12:00"
},
"qq": "12345678",
"wechat": "zxf_123456"
},
"highest_edu_info": {
"school": "清华大学",
"date": "2001.07",
"dept": "计算机科学与技术学院",
"major": "计算机科学与技术",
"degree": "本科",
"tags": [
"985",
"全日制"
]
},
"work_info": {
"work_year": 4.5,
"work_year_detail": {
"mention": "4年6个月",
"years": 4,
"months": 6,
"work_year": 4.5
},
"domains_year": [
"5年Java开发经验",
...
],
"domains_year_detail": [
{
"domain": "Java开发",
"time_mention": "4年6个月",
"years": 4,
"months": 6,
"year_norm": 4.5,
"domain_year": "4.5年Java开发经验"
},
...
],
"start_work_time": "2001.08",
"company": "北京xxx科技有限公司",
"position": "资深算法工程师",
"status": "在职",
"nature": "全职",
"loc": "北京",
"loc_norm": "中国-北京市",
"industry": "电子技术/半导体/集成电路",
"salary": "10000-15000元/月",
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
},
},
"apply_job_info": {
"company": "上海xxx科技有限公司",
"job": "资深算法工程师",
"loc": "深圳",
},
"expect_job_list": {
"job_mention": "测试工程师、测试开发工程师",
"jobs": [
"测试工程师",
"测试开发工程师"
],
"job_type": "测试",
"nature": "全职",
"recruitment": "社会招聘",
"loc_mention": "广州、深圳",
"locs": [
"广州",
"深圳"
],
"locs_norm": [
"中国-广东省-广州市",
"中国-广东省-深圳市"
],
"locs_detail": {
"mention": "广州、深圳",
"unlimited": 0,
"locs": [
"广州",
"深圳"
],
"locs_norm": [
"中国-广东省-广州市",
"中国-广东省-深圳市"
]
},
"salary": "10000-15000元/月",
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
},
"industry_mention": "互联网、IT服务",
"industry": [
"互联网",
"IT服务"
],
"industry_detail": {
"mention": "互联网、IT服务",
"unlimited": 0,
"industry": [
"互联网",
"IT服务"
]
},
"onboard_time": "14天内",
"onboard_time_detail": {
"mention": "2周内到岗",
"type": "确切时间",
"day": 14,
"onboard_time": "14天内"
}
},
"edu_list": [
{
"school": "清华大学",
"loc": "中国-北京市",
"school_info": {
"country": "中国",
"tags": [
"双一流",
"985",
"211"
],
"rank": 5,
"qs_rank": 300
},
"major": "计算机科学与技术",
"minor": "工商管理",
"degree": "本科",
"dept": "计算机科学与技术学院",
"start_date": "1997.09",
"end_date": "2001.07",
"loc": "北京",
"loc_norm": "中国-北京市",
"courses": [
"高等数学",
"C语言程序设计",
"计算机网络"
],
"gpa": "3.8/4",
"gpa_detail": {
"mention": "3.8/4",
"gpa_val": 3.8,
"total": 4,
"gpa": "3.8/4"
},
"relative_rank": "5%-10%",
"relative_rank_detail": {
"mention": "5%-10%",
"type": "区间",
"rank_val_min": 5,
"rank_val_max": 10,
"relative_rank": "5%-10%"
},
"abs_rank": "3/180",
"abs_rank_detail": {
"mention": "3/180",
"rank_val": 3,
"total": 180,
"abs_rank": "3/180"
},
"desc": "edu description",
"tags": [
"985",
"全日制"
]
},
...
],
"career_list": [
{
"company": "上海xxx科技有限公司",
"position": "测试工程师",
"position_type": "测试",
"nature": "全职",
"dept": "测试部",
"start_date": "2001.07",
"end_date": "至今",
"salary": "10000-15000元/月",
"salary_detail": {
"mention": "10k-15k每月",
"span_type": "月",
"type": "区间",
"salary_val_min": 10000,
"salary_val_max": 15000,
"salary": "10000-15000元/月"
},
"why_leave": "没有成长空间",
"report_to": "测试部门总监",
"loc": "上海",
"loc_norm": "中国-上海市",
"duration": "3年6个月",
"duration_detail": {
"mention": "3 年零 6 个月",
"years": 3,
"months": 6,
"duration": "3年6个月"
},
"company_desc": "company description",
"company_nature": "民营",
"industry": "互联网",
"stuff_size": "50-100人",
"stuff_size_detail": {
"mention": "50 - 100 人",
"type": "区间",
"size_val_min": 50,
"size_val_max": 100,
"stuff_size": "50-100人"
},
"subordinate": "10-20人",
"subordinate_detail": {
"mention": "10 - 20 人",
"type": "区间",
"size_val_min": 10,
"size_val_max": 20,
"subordinate": "10-20人"
},
"desc": "career description",
"skills": ["xxx"]
},
...
],
"project_list": [
{
"name": "xxx系统",
"position": "Java开发",
"start_date": "2023.07",
"end_date": "至今",
"company": "上海xxx科技有限公司",
"desc": "project description",
"skills": ["xxx"]
},
...
],
"training_list": [
{
"org": "xxx培训机构",
"subject": "xxx培训",
"start_date": "2023.07",
"end_date": "2023.08",
"loc": "training location",
"cert": "certificate name",
"desc": "project description"
},
...
],
"practice_list": [
{
"name": "practice name",
"role": "practice role",
"start_date": "2023.01",
"end_date": "2023.03",
"desc": "practice description"
},
...
],
"lang_cert_list": [
{
"lang": "英语",
"cert": "大学英语六级",
"score": 485,
"date": "2013.03"
},
...
],
"lang_ability_list": [
{
"lang": "英语",
"ability": "商务会话",
"listen": "良好",
"speak": "流利",
"read": "优秀",
"write": "精通"
},
...
],
"computer_cert_list": [
{
"name": "全国计算机二级",
"date": "2013.05"
},
...
],
"cert_list": [
{
"name": "教师资格证",
"date": "2013.01"
},
...
],
"skill_list": [
{
"skill": "Java",
"level": "精通",
"time": "3 年",
"time_detail": {
"mention": "3年",
"years": 3.0,
"time": "3 年"
}
},
...
],
"resume_info": {
"file_name": "xxx.pdf",
"lang_type": "简体中文",
"source": "智联招聘",
"id": "resume id",
"update_time": "2024.01"
},
"resume_content": {
"text": "完整的简历文本内容",
"basic_info": "基本信息区块文本内容",
"job_intention": "求职意向区块文本内容",
"career_profile": "职业概况区块文本内容",
"contact": "联系方式区块文本内容",
"education": "教育经历区块文本内容",
"course": "课程信息区块文本内容",
"highest_degree": "最高学历信息区块文本内容",
"career": "工作经历区块文本内容",
"internship": "实习经历区块文本内容",
"project": "项目经历区块文本内容",
"skill": "专业技能区块文本内容",
"campus": "校园经历区块文本内容",
"activity": "活动经历区块文本内容",
"practice": "实践经历区块文本内容",
"self_evaluation": "自我评价区块文本内容",
"award": "所获奖励区块文本内容",
"language": "语言能力区块文本内容",
"contest": "竞赛经历区块文本内容",
"certification": "所获证书区块文本内容",
"training": "培训经历区块文本内容",
"hobby": "兴趣爱好区块文本内容",
"academic": "学术经历区块文本内容",
"works": "个人作品区块文本内容",
"papers": "个人论文区块文本内容",
"social": "社交主页区块文本内容",
"cover_letter": "自荐信区块文本内容",
"extra_info": "其他附加信息区块文本内容"
}
}
}
接口请求代码样例
python
# _*_ coding:utf-8 _*_
# 需安装: requests
import sys
import os
import requests
import base64
import json
reload(sys)
sys.setdefaultencoding('utf8')
class ResumeParser:
def __init__(self, url, user_id, user_secret):
self.url = url
self.user_id = user_id
self.user_secret = user_secret
def parse(self, file_name, dir_path, mode, parse_avatar):
# 获取完整的简历文件路径
file_path = os.path.join(dir_path, file_name)
# 获取简历文件内容并Base64编码
content = open(file_path, 'rb').read()
b64_content = base64.b64encode(content)
# 设置请求头
headers = {
'Content-Type': 'application/json; charset=utf-8',
'user_id': self.user_id,
'user_secret': self.user_secret,
}
# 设置请求Body
data = {
'file_name': file_name,
'file_content': b64_content,
'mode': mode,
'parse_avatar': parse_avatar
}
# 请求解析服务获取结果
response = requests.post(self.url, json=data, timeout=10, verify=False, headers=headers)
result = json.loads(response.text)
# 返回解析结果
return result
def test():
url = 'https://qingsong-ai.com/api/resume/parse' # 简历解析服务URL
user_id = 'your user id' # 您的用户ID
user_secret = 'your user secret' # 您的秘钥
file_name = 'resume file name' # 简历文件名
dir_path = 'resume file dictionary path' # 简历文件目录路径
mode = 'standard' # 解析模式
parse_avatar = 0 # 是否需要提取头像
# 调用解析服务并打印解析结果
resume_parser = ResumeParser(url, user_id, user_secret)
result = resume_parser.parse(file_name, dir_path, mode, parse_avatar)
print json.dumps(result, indent=4, ensure_ascii=False)
if __name__ == '__main__':
test()
python
# _*_ coding:utf-8 _*_
# 需安装: requests
import os
import requests
import base64
import json
class ResumeParser:
def __init__(self, url, user_id, user_secret):
self.url = url
self.user_id = user_id
self.user_secret = user_secret
def parse(self, file_name, dir_path, mode, parse_avatar):
# 获取完整的简历文件路径
file_path = os.path.join(dir_path, file_name)
# 获取简历文件内容并Base64编码
content = open(file_path, 'rb').read()
b64_content = base64.b64encode(content).decode('utf8')
# 设置请求头
headers = {
'Content-Type': 'application/json; charset=utf-8',
'user_id': self.user_id,
'user_secret': self.user_secret,
}
# 设置请求Body
data = {
'file_name': file_name,
'file_content': b64_content,
'mode': mode,
'parse_avatar': parse_avatar
}
# 请求解析服务获取结果
response = requests.post(self.url, json=data, timeout=10, verify=False, headers=headers)
result = json.loads(response.text)
# 返回解析结果
return result
def test():
url = 'https://qingsong-ai.com/api/resume/parse' # 简历解析服务URL
user_id = 'your user id' # 您的用户ID
user_secret = 'your user secret' # 您的秘钥
file_name = 'resume file name' # 简历文件名
dir_path = 'resume file dictionary path' # 简历文件目录路径
mode = 'standard' # 解析模式
parse_avatar = 0 # 是否需要提取头像
# 调用解析服务并打印解析结果
resume_parser = ResumeParser(url, user_id, user_secret)
result = resume_parser.parse(file_name, dir_path, mode, parse_avatar)
print(json.dumps(result, indent=4, ensure_ascii=False))
if __name__ == '__main__':
test()
java
// 需安装: apache-http, fastjson2
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONWriter;
import org.apache.http.Consts;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
public class ResumeParserTest {
private final String url;
private final String userId;
private final String userSecret;
public ResumeParserTest(String url, String userId, String userSecret) {
this.url = url;
this.userId = userId;
this.userSecret = userSecret;
}
public JSONObject resumeParse(String fileName, String dirPath, String mode, int parseAvatar) throws IOException {
// 获取完整的简历文件路径
Path dir = Paths.get(dirPath);
Path filePath = dir.resolve(fileName);
// 获取简历文件内容并Base64编码
byte[] content = Files.readAllBytes(filePath);
String b64Content = new String(Base64.getEncoder().encode(content));
HttpPost httpPost = new HttpPost(this.url);
// 设置请求头
httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
httpPost.setHeader("user_id", userId);
httpPost.setHeader("user_secret", userSecret);
// 设置请求Body
JSONObject data = new JSONObject();
data.put("file_name", fileName);
data.put("file_content", b64Content);
data.put("mode", mode);
data.put("parse_avatar", parseAvatar);
httpPost.setEntity(new StringEntity(data.toString(), Consts.UTF_8));
// 请求解析服务获取结果
HttpClient httpclient = HttpClients.createDefault();
HttpResponse response = httpclient.execute(httpPost);
String result = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
// 返回解析结果
return JSONObject.parseObject(result);
}
public static void test() throws IOException {
String url = "https://qingsong-ai.com/api/resume/parse"; // 简历解析服务URL
String userId = "your user id"; // 您的用户ID
String userSecret = "your user secret"; // 您的秘钥
String fileName = "resume file name"; // 简历文件名
String dirPath = "resume file dictionary path"; // 简历文件目录路径
String mode = "standard"; // 解析模式
int parseAvatar = 0; // 是否需要提取头像
// 调用解析服务并打印解析结果
ResumeParserTest resumeParser = new ResumeParserTest(url, userId, userSecret);
JSONObject result = resumeParser.resumeParse(fileName, dirPath, mode, parseAvatar);
System.out.println(JSONObject.toJSONString(result, JSONWriter.Feature.PrettyFormat));
}
public static void main(String[] args) throws Exception {
test();
}
}
C#
// 需安装: Newtonsoft.Json
using System;
using System.IO;
using System.Text;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace ResumeParserTest
{
class ResumeParser
{
private string url;
private string userId;
private string userSecret;
public ResumeParser(string url, string userId, string userSecret)
{
this.url = url;
this.userId = userId;
this.userSecret = userSecret;
}
public string Parse(string fileName, string dirPath, string mode, int parseAvatar)
{
// 获取完整的简历文件路径
string filePath = Path.Combine(dirPath, fileName);
// 获取简历文件内容并Base64编码
byte[] content = File.ReadAllBytes(filePath);
string b64Content = Convert.ToBase64String(content);
// 设置请求头
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(this.url);
req.Method = "POST";
req.ContentType = "application/json; charset=utf-8";
req.Headers.Add("user_id", this.userId);
req.Headers.Add("user_secret", this.userSecret);
// 设置请求Body
JObject data = new JObject();
data["file_name"] = fileName;
data["file_content"] = b64Content;
data["mode"] = mode;
data["parse_avatar"] = parseAvatar;
byte[] byteData = Encoding.UTF8.GetBytes(data.ToString());
req.ContentLength = byteData.Length;
// 请求解析服务获取结果
using (Stream postStream = req.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
{
string result = reader.ReadToEnd();
return result;
}
}
return null;
}
}
class Tester
{
static void Test()
{
String url = "https://qingsong-ai.com/api/resume/parse"; // 简历解析服务URL
String userId = "your user id"; // 您的用户ID
String userSecret = "your user secret"; // 您的秘钥
String fileName = "resume file name"; // 简历文件名
String dirPath = "resume file dictionary path"; // 简历文件目录路径
String mode = "standard"; // 解析模式
int parseAvatar = 0; // 是否需要提取头像
// 调用解析服务并打印解析结果
ResumeParser resumeParser = new ResumeParser(url, userId, userSecret);
string result = resumeParser.Parse(fileName, dirPath, mode, parseAvatar);
if (result != null)
{
dynamic jsonObject = JsonConvert.DeserializeObject(result);
string resultShow = JsonConvert.SerializeObject(jsonObject, Formatting.Indented);
Console.WriteLine(resultShow);
}
else
{
Console.WriteLine("解析错误");
}
}
static void Main(string[] args)
{
Test();
}
}
}
JavaScript
// 需安装: axios
const path = require("path");
const fs = require("fs");
const axios = require("axios");
class ResumeParser {
constructor(url, userId, userSecret) {
this.url = url;
this.userId = userId;
this.userSecret = userSecret;
}
async parse(fileName, dirPath, mode, parseAvatar) {
// 获取完整的简历文件路径
const filePath = path.join(dirPath, fileName);
// 获取简历文件内容并Base64编码
const content = fs.readFileSync(filePath);
const b64Content = content.toString("base64");
// 设置请求头
const headers = {
"Content-Type": "application/json; charset=utf-8",
user_id: this.userId,
user_secret: this.userSecret,
};
// 设置请求Body
const data = {
file_name: fileName,
file_content: b64Content,
mode: mode,
parse_avatar: parseAvatar,
};
// 请求解析服务获取并返回结果
return axios
.post(this.url, data, { headers: headers })
.then((response) => {
return response.data;
})
.catch((error) => {
return error;
});
}
}
function test() {
const url = "https://qingsong-ai.com/api/resume/parse"; // 简历解析服务URL
const userId = "your user id"; // 您的用户ID
const userSecret = "your user secret"; // 您的秘钥
var fileName = "resume file name"; // 简历文件名
var dirPath = "resume file dictionary path"; // 简历文件目录路径
var mode = "standard"; // 解析模式
var parseAvatar = 0; // 是否需要提取头像
// 调用解析服务并打印解析结果
const resumeParser = new ResumeParser(url, userId, userSecret);
resumeParser
.parse(fileName, dirPath, mode, parseAvatar)
.then((result) => {
console.log(JSON.stringify(result, null, 4));
})
.catch((error) => {
console.error("解析失败: ", error);
});
}
test();
Go
package main
import (
"bytes"
"encoding/base64"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"path/filepath"
)
type ResumeParser struct {
url string
userId string
userSecret string
}
func (resumeParser ResumeParser) parse(fileName string, dirPath string, mode string, parseAvatar int) (string, error) {
// 获取完整的简历文件路径
filePath := filepath.Join(dirPath, fileName)
// 获取简历文件内容并Base64编码
content, err := ioutil.ReadFile(filePath)
if err != nil {
fmt.Println("无法读取文件: ", err)
return "", err
}
b64Content := base64.StdEncoding.EncodeToString(content)
// 设置请求Body
data, err := json.Marshal(map[string]interface{}{
"file_name": fileName,
"file_content": b64Content,
"mode": mode,
"parse_avatar": parseAvatar,
})
if err != nil {
fmt.Println("设置请求Body错误: ", err)
return "", err
}
req, err := http.NewRequest("POST", resumeParser.url, bytes.NewBuffer(data))
if err != nil {
fmt.Println("创建POST请求错误: ", err)
return "", err
}
// 设置请求头
req.Header.Set("Content-Type", "application/json; charset=utf-8")
req.Header.Set("user_id", resumeParser.userId)
req.Header.Set("user_secret", resumeParser.userSecret)
// 请求解析服务获取结果
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("解析请求错误: ", err)
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("读取请求响应错误: ", err)
return "", err
}
result := string(body)
// 返回解析结果
return result, nil
}
func test() {
url := "https://qingsong-ai.com/api/resume/parse" // 简历解析服务URL
userId := "your user id" // 您的用户ID
userSecret := "your user secret" // 您的秘钥
fileName := "resume file name" // 简历文件名
dirPath := "resume file dictionary path" // 简历文件目录路径
mode := "standard" // 解析模式
parseAvatar := 0 // 是否需要提取头像
// 调用解析服务并打印解析结果
resumeParser := ResumeParser{url, userId, userSecret}
resultStr, err := resumeParser.parse(fileName, dirPath, mode, parseAvatar)
if err != nil {
fmt.Println("获取简历解析结果失败: ", err)
}
var result map[string]interface{}
err = json.Unmarshal([]byte(resultStr), &result)
if err != nil {
fmt.Println("Json反序列化失败: ", err)
}
resultShow, err := json.MarshalIndent(result, "", " ")
fmt.Println(string(resultShow))
}
func main() {
test()
}
PHP
<?php
class ResumeParser
{
private $url;
private $userId;
private $userSecret;
public function __construct($url, $userId, $userSecret)
{
$this->url = $url;
$this->userId = $userId;
$this->userSecret = $userSecret;
}
public function parse($fileName, $dirPath, $mode, $parseAvatar)
{
// 获取完整的简历文件路径
$filePath = join(DIRECTORY_SEPARATOR, array($dirPath, $fileName));
// 获取简历文件内容并Base64编码
$content = file_get_contents($filePath);
$b64Content = base64_encode($content);
// 设置请求Body
$ch = curl_init($this->url);
$dataArr = array(
'file_name' => $fileName,
'file_content' => $b64Content,
'mode' => $mode,
'parse_avatar' => $parseAvatar
);
$data = json_encode($dataArr);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// 设置请求头
$headers = array(
'Content-Type: application/json; charset=utf-8',
'user_id: ' . $this->userId,
'user_secret: ' . $this->userSecret
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 请求解析服务获取结果
$response = curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
curl_close($ch);
die('解析错误: ' . $error_msg);
}
curl_close($ch);
$result = json_decode($response, null);
// 返回解析结果
return $result;
}
}
function test()
{
$url = 'https://qingsong-ai.com/api/resume/parse'; // 简历解析服务URL
$userId = 'your user id'; // 您的用户ID
$userSecret = 'your user secret'; // 您的秘钥
$fileName = 'resume file name'; // 简历文件名
$dirPath = 'resume file dictionary path'; // 简历文件目录路径
$mode = 'standard'; // 解析模式
$parseAvatar = 0; // 是否需要提取头像
// 调用解析服务并打印解析结果
$resumeParser = new ResumeParser($url, $userId, $userSecret);
$result = $resumeParser->parse($fileName, $dirPath, $mode, $parseAvatar);
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
}
test();
?>
Ruby
require 'base64'
require 'net/http'
require 'json'
require 'uri'
class ResumeParser
def initialize(url, user_id, user_secret)
@url = url
@user_id = user_id
@user_secret = user_secret
end
def parse(file_name, dir_path, mode, parse_avatar)
# 获取完整的简历文件路径
file_path = File.join(dir_path, file_name)
# 获取简历文件内容并Base64编码
file = File.open(file_path, 'rb')
content = file.read
file.close
b64_content = Base64.strict_encode64(content)
# 设置请求头
headers = {
'Content-Type' => 'application/json; charset=utf-8',
'user_id' => @user_id,
'user_secret' => @user_secret
}
uri = URI(@url)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.path, headers)
# 设置请求Body
request.body = { file_name: file_name,
file_content: b64_content,
mode: mode,
parse_avatar: parse_avatar }.to_json
# 请求解析服务获取结果
response = http.request(request)
result = response.read_body
JSON.parse(result)
end
end
def test()
url = 'https://qingsong-ai.com/api/resume/parse'; # 简历解析服务URL
user_id = 'your user id'; # 您的用户ID
user_secret = 'your user secret'; # 您的秘钥
file_name = 'resume file name'; # 简历文件名
dir_path = 'resume file dictionary path'; # 简历文件目录路径
mode = 'standard'; # 解析模式
parse_avatar = 0; # 是否需要提取头像
# 调用解析服务并打印解析结果
resume_parser = ResumeParser.new(url, user_id, user_secret)
result = resume_parser.parse(file_name, dir_path, mode, parse_avatar)
puts JSON.pretty_generate(result)
end
test()
Objective-C
#import <Foundation/Foundation.h>
@interface ResumeParser : NSObject
@property (nonatomic, strong) NSString *url;
@property (nonatomic, strong) NSString *userId;
@property (nonatomic, strong) NSString *userSecret;
- (instancetype)initWithUrl:(NSString *)url withUserId:(NSString *)userId withUserSecret:(NSString *)userSecret;
- (NSDictionary *)parse:(NSString *)fileName withDirPath:(NSString *)dirPath withMode:(NSString *)mode withParseAvatar:(NSNumber *)parseAvatar;
@end
@implementation ResumeParser
- (instancetype)initWithUrl:(NSString *)url withUserId:(NSString *)userId withUserSecret:(NSString *)userSecret {
self = [super init];
if (self) {
_url = url;
_userId = userId;
_userSecret = userSecret;
}
return self;
}
- (NSDictionary *)parse:(NSString *)fileName withDirPath:(NSString *)dirPath withMode:(NSString *)mode withParseAvatar:(NSNumber *)parseAvatar {
// 获取完整的简历文件路径
NSString *filePath = [dirPath stringByAppendingPathComponent:fileName];
// 获取简历文件内容并Base64编码
NSData *content = [NSData dataWithContentsOfFile:filePath];
NSString *b64Content = [content base64EncodedStringWithOptions:0];
NSURL *nsUrl = [NSURL URLWithString:_url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:nsUrl];
[request setHTTPMethod:@"POST"];
// 设置请求头
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:_userId forHTTPHeaderField:@"user_id"];
[request setValue:_userSecret forHTTPHeaderField:@"user_secret"];
// 设置请求Body
NSDictionary *jsonDict = @{
@"file_name": fileName,
@"file_content": b64Content,
@"mode": mode,
@"parse_avatar": parseAvatar,
};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:0 error:nil];
[request setHTTPBody:jsonData];
// 请求解析服务获取结果
NSURLResponse *response = nil;
NSError *error = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (error == nil && responseData != nil) {
NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
// 返回解析结果
return responseDict;
} else {
return nil;
}
}
@end
void test() {
NSString *url = @"https://qingsong-ai.com/api/resume/parse"; // 简历解析服务URL
NSString *userId = @"your user id"; // 您的用户ID
NSString *userSecret = @"your user secret"; // 您的秘钥
NSString *fileName = @"resume file name"; // 简历文件名
NSString *dirPath = @"resume file dictionary path"; // 简历文件目录路径
NSString *mode = @"standard"; // 解析模式
NSNumber *parseAvatar = [NSNumber numberWithInt:0]; // 是否需要提取头像
@autoreleasepool {
// 调用解析服务并打印解析结果
ResumeParser *resumeParser = [[ResumeParser alloc] initWithUrl:url withUserId:userId withUserSecret:userSecret];
NSDictionary *result = [resumeParser parse:fileName withDirPath:dirPath withMode:mode withParseAvatar:parseAvatar];
if (result != nil) {
NSData *resultNSData = [NSJSONSerialization dataWithJSONObject:result
options:NSJSONWritingPrettyPrinted
error:nil];
NSString *resultStr= [[NSString alloc] initWithData:resultNSData encoding:NSUTF8StringEncoding];
NSLog(@"%@", resultStr);
}
[resumeParser release];
}
}
int main(int argc, char *argv[]) {
test();
return 0;
}
Shell
curl -i -X POST 'https://qingsong-ai.com/api/resume/parse' \
-H 'Content-Type: application/json; charset=UTF-8' \
-H 'user_id: your_user_id' \
-H 'user_secret: your_user_secret' \
--data '{"file_name": "resume file name", "file_content": "Base64编码后的简历文件内容", "mode": "standard", "parse_avatar": 0}'
附录
返回状态码表
序号 | 状态码 | 含义 |
---|---|---|
1 | 200 | 解析成功 |
2 | 10001 | 用户 ID 或秘钥错误 |
3 | 10002 | 无可用解析额度 |
4 | 10101 | 请求参数错误 |
5 | 10102 | 请求参数错误,无文件名 |
6 | 10103 | 请求参数错误,无文件内容或文件内容为空 |
7 | 10104 | 请求参数错误,解析模式(mode)参数设置错误 |
8 | 10105 | 请求参数错误,是否提取头像(parse_avatar)参数设置错误 |
9 | 10106 | 请求参数错误,SaaS 接口不支持极致解析模式(极致模式只在私有化部署时生效) |
10 | 10201 | 文件内容 Base64 解码错误 |
11 | 10202 | 文件大小超出限制 |
12 | 10301 | 解析服务内部错误 |
文件格式支持
序号 | 格式 | 说明 |
---|---|---|
1 | txt | 文本文件格式 |
2 | pdf | PDF 文件格式 |
3 | doc | Microsoft Word 97-2003 文件格式 |
4 | dot | Microsoft Word 97-2003 模版文件格式 |
5 | docx | Microsoft Word 文件格式 |
6 | dotx | Microsoft Word 模版文件格式 |
7 | ppt | Microsoft PowerPoint 97-2003 文件格式 |
8 | pot | Microsoft PowerPoint 97-2003 模版文件格式 |
9 | pptx | Microsoft PowerPoint 文件格式 |
10 | potx | Microsoft PowerPoint 模版文件格式 |
11 | pps | Microsoft PowerPoint 97-2003 放映文件 |
12 | ppsx | Microsoft PowerPoint 放映文件格式 |
13 | xls | Microsoft Excel 97-2003 文件格式 |
14 | xlt | Microsoft Excel 97-2003 模版文件格式 |
15 | xlsx | Microsoft Excel 文件格式 |
16 | xltx | Microsoft Excel 模版文件格式 |
17 | wps | WPS 文字文件格式 |
18 | wpt | WPS 文字模版文件格式 |
19 | dps | WPS 演示文件格式 |
20 | dpt | WPS 演示模版文件格式 |
21 | et | WPS 表格文件格式 |
22 | ett | WPS 表格模版文件格式 |
23 | rtf | 富文本(Rich Text Format)文件格式 |
24 | htm , html | 网页文件格式 |
25 | mht , mhtml | 单一(聚合)网页文件格式 |
26 | xml | XML 文件格式 |
27 | eml | Email Message 邮件文件格式 |
28 | msg | Saved Email Message 邮件文件格式 |
29 | mbx | Microsoft Outlook Express 邮件文件格式 |
30 | png | PNG 图片格式 |
31 | jpg | JPG 图片格式 |
32 | jpeg | JPEG 图片格式 |
33 | bmp | BMP 图片格式 |
34 | odt | ODF Text 文件格式 |
35 | ott | ODF Text 模版文件格式 |
36 | odp | ODF Presentation 文件格式 |
37 | otp | ODF Presentation 模版文件格式 |
38 | ods | ODF Spreadsheet 文件格式 |
39 | ots | ODF Spreadsheet 模版文件格式 |
40 | odg | ODF Drawing 文件格式 |
41 | otg | ODF Drawing 模版文件格式 |
42 | sxw | OpenOffice XML 1.0 Text 文件格式 |
43 | stw | OpenOffice XML 1.0 Text 模版文件格式 |
44 | sxi | OpenOffice XML 1.0 Presentation 文件格式 |
45 | sti | OpenOffice XML 1.0 Presentation 模版文件格式 |
46 | sxc | OpenOffice XML 1.0 Spreadsheet 文件格式 |
47 | stc | OpenOffice XML 1.0 Spreadsheet 模版文件格式 |
48 | sxd | OpenOffice XML 1.0 Drawing 文件格式 |
49 | std | OpenOffice XML 1.0 Drawing 模版文件格式 |
50 | uot | Uniform Office Format 1/2 Text 文件格式 |
51 | uop | Uniform Office Format 1/2 Presentation 文件格式 |
52 | uos | Uniform Office Format 1/2 Spreadsheeet 文件格式 |
53 | slk | SYLK 文件格式 |
54 | epub | Electronic Publication 文件格式 |
55 | wk3 | Lotus1-2-3 Version 3 文件格式 |
56 | wk4 | Lotus1-2-3 Version 4 文件格式 |
57 | wks | Lotus 1-2-3 文件格式 |
58 | wpd | WordPerfect Document 文件格式 |
59 | sam | Ami Pro 文件格式 |
60 | qpw | Quattro Pro 文件格式 |
日期格式
由于解析结果中日期类型的字段较多,我们定义了统一的日期格式,如下:
序号 | 日期格式 | 说明 |
---|---|---|
1 | 至今 | 至今 是解析器中定义的一个特殊日期表示,可能会出现在某个经历的结束时间字段中。解析器中所有非 至今 的时间字段,均满足下一条规则 |
2 | yyyy.MM.dd | 我们采用可缺省方式表示日期,缺省规则: 缺省月份和日期:即只包含年份,如 2024 缺省日期:即只包含年份月份,如 2024.01 年份不可缺省:即返回的时间中一定会包含一个 4 位数表示的年份,如 2024 、2024.01 、2024.01.01 |
枚举值定义
提示
部分变量枚举值可能随着解析器版本迭代而丰富,原则上只会新增。
性别字段枚举值
ID | 枚举值 |
---|---|
1 | 男 |
2 | 女 |
民族字段枚举值
ID | 枚举值 | ID | 枚举值 | ID | 枚举值 | ID | 枚举值 |
---|---|---|---|---|---|---|---|
1 | 汉族 | 2 | 蒙古族 | 3 | 回族 | 4 | 藏族 |
5 | 维吾尔族 | 6 | 苗族 | 7 | 彝族 | 8 | 壮族 |
9 | 布依族 | 10 | 朝鲜族 | 11 | 满族 | 12 | 侗族 |
13 | 瑶族 | 14 | 白族 | 15 | 土家族 | 16 | 哈尼族 |
17 | 哈萨克族 | 18 | 傣族 | 19 | 黎族 | 20 | 傈僳族 |
21 | 佤族 | 22 | 畲族 | 23 | 拉祜族 | 24 | 水族 |
25 | 东乡族 | 26 | 纳西族 | 27 | 景颇族 | 28 | 柯尔克孜族 |
29 | 土族 | 30 | 达斡尔族 | 31 | 仫佬族 | 32 | 羌族 |
33 | 布朗族 | 34 | 撒拉族 | 35 | 毛南族 | 36 | 仡佬族 |
37 | 锡伯族 | 38 | 阿昌族 | 39 | 普米族 | 40 | 塔吉克族 |
41 | 怒族 | 42 | 乌孜别克族 | 43 | 俄罗斯族 | 44 | 鄂温克族 |
45 | 德昂族 | 46 | 保安族 | 47 | 裕固族 | 48 | 京族 |
49 | 塔塔尔族 | 50 | 独龙族 | 51 | 鄂伦春族 | 52 | 赫哲族 |
53 | 门巴族 | 54 | 珞巴族 | 55 | 基诺族 | 56 | 高山族 |
政治面貌字段枚举值
ID | 枚举值 |
---|---|
1 | 中共党员 |
2 | 中共预备党员 |
3 | 共青团员 |
4 | 民革党员 |
5 | 民盟盟员 |
6 | 民建会员 |
7 | 民进会员 |
8 | 农工党党员 |
9 | 致公党党员 |
10 | 九三学社社员 |
11 | 台盟盟员 |
12 | 无党派人士 |
13 | 群众 |
婚姻状况字段枚举值
ID | 枚举值 |
---|---|
1 | 已婚 |
2 | 未婚 |
学历字段枚举值
ID | 枚举值 |
---|---|
1 | 小学 |
2 | 初中 |
3 | 专职 |
4 | 高中 |
5 | 大专 |
6 | 本科 |
7 | 硕士 |
8 | 博士 |
9 | 博士后 |
ID | 枚举值 |
---|---|
1 | 非统招 |
2 | 统招 |
3 | 自考 |
4 | 成人高等教育 |
5 | 非全日制 |
6 | 全日制 |
7 | 函授 |
8 | 第二学位 |
9 | 交换生 |
10 | 专升本 |
11 | 辅修 |
12 | 211 |
13 | 985 |
14 | MBA |
15 | 博士后 |
16 | 在职 |
17 | 双一流 |
18 | 单证 |
19 | 一本 |
20 | 二本 |
21 | 三本 |
22 | 重点本科 |
23 | 民办 |
24 | 远程网络教育 |
25 | 肄业 |
26 | 在读 |
ID | 枚举值 |
---|---|
1 | 双一流 |
2 | 985 |
3 | 211 |
4 | 重点院校 |
5 | 一本 |
6 | 二本 |
7 | 本科 |
8 | 专科 |
9 | 中专 |
10 | 技校 |
11 | 成人教育 |
12 | 港澳台院校 |
13 | 海外院校 |
职业状态字段枚举值
ID | 枚举值 |
---|---|
1 | 在职 |
2 | 离职 |
3 | 待业 |
职业性质字段枚举值
ID | 枚举值 |
---|---|
1 | 全职 |
2 | 实习 |
3 | 兼职 |
招聘类型字段枚举值
ID | 枚举值 |
---|---|
1 | 校园招聘 |
2 | 社会招聘 |
语言证书字段枚举值
ID | 语言类型 | 语言证书名 |
---|---|---|
1 | 普通话 | 普通话一级甲等 |
2 | 普通话一级乙等 | |
3 | 普通话二级甲等 | |
4 | 普通话二级乙等 | |
5 | 普通话三级甲等 | |
6 | 普通话三级乙等 | |
7 | 普通话一级 | |
8 | 普通话二级 | |
9 | 普通话三级 | |
10 | 英语 | 英语专业四级 |
11 | 英语专业八级 | |
12 | 大学英语三级 | |
13 | 大学英语四级 | |
14 | 大学英语六级 | |
15 | 公共英语一级 | |
16 | 公共英语二级 | |
17 | 公共英语三级 | |
18 | 公共英语四级 | |
19 | 公共英语五级 | |
20 | BEC商务英语初级 | |
21 | BEC商务英语中级 | |
22 | BEC商务英语高级 | |
23 | 雅思 | |
24 | 托福 | |
25 | 托业 | |
26 | GRE | |
27 | 法语 | 法语A1 |
28 | 法语A2 | |
29 | 法语B1 | |
30 | 法语B2 | |
31 | 法语C1 | |
32 | 法语C2 | |
33 | 法语初级 | |
34 | 法语中级 | |
35 | 法语高级 | |
36 | 法语四级 | |
37 | 法语六级 | |
38 | 法语专业四级 | |
39 | 法语专业八级 | |
40 | 德语 | 德语A1 |
41 | 德语A2 | |
42 | 德语B1 | |
43 | 德语B2 | |
44 | 德语C1 | |
45 | 德语C2 | |
46 | 德语初级 | |
47 | 德语中级 | |
48 | 德语高级 | |
49 | 德语四级 | |
50 | 德语六级 | |
51 | 德语专业四级 | |
52 | 德语专业八级 | |
53 | 俄语 | 俄语A1 |
54 | 俄语A2 | |
55 | 俄语B1 | |
56 | 俄语B2 | |
57 | 俄语C1 | |
58 | 俄语C2 | |
59 | 俄语基础级 | |
60 | 俄语初级 | |
61 | 俄语中级 | |
62 | 俄语高级 | |
63 | 俄语一级 | |
64 | 俄语二级 | |
65 | 俄语三级 | |
66 | 俄语四级 | |
67 | 俄语六级 | |
68 | 俄语专业四级 | |
69 | 俄语专业八级 | |
70 | 日语 | 日语N1 |
71 | 日语N2 | |
72 | 日语N3 | |
73 | 日语N4 | |
74 | 日语N5 | |
75 | 日语初级 | |
76 | 日语中级 | |
77 | 日语高级 | |
78 | 日语四级 | |
79 | 日语六级 | |
80 | 日语专业四级 | |
81 | 日语专业八级 | |
82 | 韩语 | 韩语TOPIK-1级 |
83 | 韩语TOPIK-2级 | |
84 | 韩语TOPIK-3级 | |
85 | 韩语TOPIK-4级 | |
86 | 韩语TOPIK-5级 | |
87 | 韩语TOPIK-6级 | |
88 | 韩语初级 | |
89 | 韩语中级 | |
90 | 韩语高级 | |
91 | 韩语四级 | |
92 | 韩语六级 | |
93 | 韩语专业四级 | |
94 | 韩语专业八级 | |
95 | 西班牙语 | 西班牙语A1 |
96 | 西班牙语A2 | |
97 | 西班牙语B1 | |
98 | 西班牙语B2 | |
99 | 西班牙语C1 | |
100 | 西班牙语C2 | |
101 | 西班牙语初级 | |
102 | 西班牙语中级 | |
103 | 西班牙语高级 | |
104 | 西班牙语四级 | |
105 | 西班牙语六级 | |
106 | 西班牙语专业四级 | |
107 | 西班牙语专业八级 | |
108 | 葡萄牙语 | 葡萄牙语A1 |
109 | 葡萄牙语A2 | |
110 | 葡萄牙语B1 | |
111 | 葡萄牙语B2 | |
112 | 葡萄牙语C1 | |
113 | 葡萄牙语C2 | |
114 | 葡萄牙语初级 | |
115 | 葡萄牙语中级 | |
116 | 葡萄牙语高级 | |
117 | 葡萄牙语四级 | |
118 | 葡萄牙语六级 | |
119 | 葡萄牙语专业四级 | |
120 | 葡萄牙语专业八级 |
语言能力字段支持语言类型枚举值
ID | 枚举值 |
---|---|
1 | 普通话 |
2 | 粤语 |
3 | 英语 |
4 | 法语 |
5 | 德语 |
6 | 俄语 |
7 | 日语 |
8 | 韩语 |
9 | 西班牙语 |
10 | 葡萄牙语 |
11 | 阿拉伯语 |
12 | 意大利语 |
13 | 土耳其语 |
14 | 越南语 |
15 | 马拉地语 |
16 | 爪哇语 |
17 | 印度斯坦语 |
18 | 印地语 |
19 | 孟加拉语 |
20 | 豪萨语 |
21 | 波斯语 |
22 | 泰米尔语 |
23 | 泰卢固语 |
24 | 斯瓦西里语 |
25 | 旁遮普语 |
语言能力熟练程度枚举值
ID | 枚举值 |
---|---|
1 | 入门 |
2 | 一般 |
3 | 良好 |
4 | 熟悉 |
5 | 流利 |
6 | 精通 |
7 | 简单沟通 |
8 | 日常会话 |
9 | 商务会话 |
10 | 无障碍沟通 |
11 | 母语 |
语言能力听说读写水平枚举值
ID | 枚举值 |
---|---|
1 | 一般 |
2 | 良好 |
3 | 优秀 |
4 | 较强 |
5 | 熟练 |
6 | 流利 |
7 | 精通 |
技能熟练程度枚举值
ID | 枚举值 |
---|---|
1 | 了解 |
2 | 一般 |
3 | 熟悉 |
4 | 掌握 |
5 | 熟练 |
6 | 精通 |
简历语言类型枚举值
ID | 枚举值 | 说明 |
---|---|---|
1 | 简体中文 | 简体中文简历 |
2 | 繁体中文 | 繁体中文简历 |
3 | 英文 | 英文简历 |
4 | 简体中文-英文 | 前部分为简体中文,后部分为英文 |
5 | 英文-简体中文 | 前部分为英文,后部分为简体中文 |
6 | 繁体中文-英文 | 前部分为繁体中文,后部分为英文 |
7 | 英文-繁体中文 | 前部分为英文,后部分为繁体中文 |
8 | 其他 | 其他语言类型的简历 |
简历来源枚举值
ID | 枚举值 |
---|---|
1 | 前程无忧 |
3 | 拉勾 |
4 | 智联招聘 |
5 | BOSS直聘 |
6 | 猎聘 |
7 | 牛客网 |