Skip to content

简历解析

我们支持客户通过 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-Typeapplication/json; charset=utf-8请求内容类型
user_idyour user id用户 ID
user_secretyour user secret用户秘钥

提示

用户 ID 及秘钥由后台生成,欢迎联系我们开通服务,竭诚为您服务 🎉🎉🎉
私有化部署模式下,请求 HEADER 中不需要设置user_iduser_secret这两个字段。

请求 Body 参数设置

字段类型是否必填说明
file_nameString简历文件名,带后缀名,如.pdf.doc.docx.txt
file_contentStringBase64 编码后的简历文件内容,不能为空字符串,Base64 解码后的内容也不能空
modeString解析模式,为如下枚举值:
fast: 极速模式
standard: 标准模式
ultimate: 极致模式
缺省时默认值为standard
parse_avatarInteger是否解析头像,为如下枚举值:
0: 不需要解析头像
1: 需要解析头像
缺省时默认值为0
请求 Body 参考样例
json
{
  "file_name": "test.pdf",
  "file_content": "base64 encoded content",
  "mode": "standard",
  "parse_avatar": 1
}

接口响应格式

响应 HEADER 自定义内容

接口返回的 Response 的 HEADER 中定义了用户的额度信息,具体内容如下:

字段类型说明
user_idString用户 ID
subscriptionString用户订阅模式,为如下枚举值:
yearly: 包年
monthly: 包月
traffic: 频次
expiry_dateString包含年月日的日期格式,如2099.01.01,表示2099.01.01当日零点开始包年包月服务失效,在之前均有效,具体格式参考日期格式,订阅模式为yearlymonthly时字段有效
quotaInteger单位: ,总的额度
quota_usageInteger单位: ,已经使用额度

提示

私有化部署模式下,Response 的 HEADER 中没有上述字段。

响应 Body 部分整体格式

解析接口以 Json 格式组织并返回解析结果,包含三部分内容:

解析状态信息

解析状态信息字段名为status,类型为Object,包含解析成功或失败的状态码及描述信息,定义如下:

字段类型说明
codeInteger状态码(详细定义参考返回状态码表
200: 解析正常
其他: 解析异常
messageString状态描述信息

解析器信息

解析器信息字段名为parser_info,类型为Object,包含当前使用的解析器版本及解析时间(北京时间),定义如下:

字段类型说明
versionString解析器版本号,包含三部分:主版本号、子版本号、阶段版本号,并以"."连接,如1.0.0
parse_timeString解析时间,时间格式为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_detailwork_year对应的详情字段,其中包含了提取work_year字段时涉及的更细粒度的字段
如果普通字段是Array类型,则其详情字段也是Array类型,且元素个数和顺序均保持一致
无后缀解析字段从简历中直接提取或简单映射得到的结果

提示

我们支持客户按需定制返回格式,定制内容包括但不限于字段组织结构、字段命名、字段值类型等,如有需要欢迎联系我们,竭诚为您服务 🎉🎉🎉

基本信息

基本信息字段名为basic_info,类型为Object,定义如下:

序号字段类型含义说明
1nameString姓名优先提取中文名,如张三;无中文名时会提取英文名,如Anna
2genderString性别枚举值:,具体定义参考性别字段枚举值
3ageInteger年龄简历中填写的年龄,如23
4age_infInteger年龄推断的年龄,如23
5birthdayString生日日期格式,如2001.04.08,具体格式参考日期格式
6ethnicString民族枚举值,对应中国的 56 个民族,如汉族维吾尔族,具体定义参考民族字段枚举值
7political_statusString政治面貌枚举值,共有 13 类,如中共党员群众,具体定义参考政治面貌字段枚举值
8marital_statusString婚姻状况枚举值:已婚未婚,具体定义参考婚姻状况字段枚举值
9heightInteger身高单位:cm,如170表示身高为 170 cm
10weightInteger体重单位:kg,如60表示体重为 60 kg
11nationalityString国籍中国美国
12id_cardString身份证号18 位数字的中国身份证号码
13native_placeString籍贯北京海淀
14native_place_normString籍贯(规范化)native_place字段的规范化,规范化到区县级别,如中国-北京市-海淀区
15hukou_addrString户口地址简历中填写的户口地址,如南京玄武区xxx路xxx号xxx室
16hukou_addr_normString户口地址(规范化)hukou_addr字段的规范化,规范化到区县级别,如中国-南京市-玄武区
17addrString住址居住地址,如北京海淀xxx路xxx号xxx室
18addr_normString住址(规范化)addr字段的规范化,规范化到区县级别,如中国-北京市-海淀区
19cityString所在城市精确到区县级别,如上海徐汇区
20city_normString所在城市(规范化)city 字段的规范化,规范化到区县级别,如中国-上海市-徐汇区
21postal_codeString邮编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,定义如下:

序号字段类型含义说明
1datastring头像图片数据数据为 Base64 编码后的图片内容,头像图片格式为PNG格式
2urlstring头像 url头像图片的 url 链接,部分具有 HTML 标签的简历可能会包含头像 url
头像信息字段格式示例
json
"avatar_info": {
    "data": "Base64编码后的图片内容",
    "url": "http://xxx.xxx/xxx"
}

联系方式

联系方式字段名为contact_info,类型为Object,定义如下:

序号字段类型含义说明
1email_listArray[String]邮箱值为数组形式,简历中可能填写了多个邮箱,如["xxx@126.com", "xxx@qq.com"]
2phone_listArray[String]国内手机号码值为数组形式,简历中可能填写了多个 11 位的中国手机号,如["13112345678", "13912345678"]
3fixed_line_phoneString国内固定电话010-23456789,计算逻辑参考其详情字段fixed_line_phone字段定义
4fixed_line_phone_detailObject国内固定电话详情fixed_line_phone字段的详情字段,具体定义参考国内固定电话详情字段定义
5inter_phoneString国际地区电话号码包括中国港澳台地区的国际地区电话号码,如+852-23456789,计算逻辑参考其详情字段inter_phone字段定义
6inter_phone_detailObject国际地区电话号码详情inter_phone的详情字段,具体定义参考国际地区电话号码详情字段定义
7virtual_phoneObject虚拟电话号码部分平台提供的简历中包含虚拟电话号码,Object 中包含三个字段(具体定义参考虚拟电话号码字段定义):
phone:虚拟号码,如13188888888
ext_number:分机号,如1234
expire_time:失效时间,如2024.01.01 12:00
8qqStringQQ 号由 5 至 10 位数字组成,如12345678
9wechatString微信号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,定义如下:

序号字段类型含义说明
1codeString区号国内区号,如010021
2numberString固定电话号码7 位或 8 位数字的座机号码,如23456789
3fixed_line_phoneString完整固定电话号码该字段与联系方式字段的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,定义如下:

序号字段类型含义说明
1codeString国际区号国际区号,如1852
2numberString电话号码均为数字的电话号码,如23456789
3inter_phoneString完整电话号码该字段与联系方式字段的inter_phone字段始终保持一致,由已有字段生成,生成规则:+{code}-{number},如+852-23456789
国际地区电话号码详情字段格式示例
json
"inter_phone_detail": {
    "code": "852",
    "number": "23456789",
    "inter_phone": "+852-23456789"
}

虚拟电话号码

虚拟电话号码字段名为virtual_phone,类型为Object,定义如下:

序号字段类型含义说明
1phoneString虚拟号码虚拟电话号码,如13188888888
2ext_numberString电话号码分机号,如1234
3expire_timeString失效时间时间格式为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,定义如下:

序号字段类型含义说明
1schoolString毕业学校清华大学
2dateString毕业时间日期格式,如2001.07,具体格式参考日期格式
3deptString毕业院系计算机科学与技术学院
4majorString毕业专业计算机科学与技术
5degreeString最高学历枚举值,如本科,具体参考学历字段枚举值
6tagsArray[String]教育经历标签简历中填写的内容,枚举值,如985全日制,具体参考教育经历标签字段枚举值
最高学历信息字段格式示例
json
"highest_edu_info": {
    "school": "清华大学",
    "date": "2001.07",
    "dept": "计算机科学与技术学院",
    "major": "计算机科学与技术",
    "degree": "本科",
    "tags": [
        "985",
        "全日制"
    ]
}

工作信息

工作信息字段名为work_info,类型为Object,定义如下:

序号字段类型含义说明
1work_yearFloat工作年限4.5,计算逻辑参考其详情字段中的work_year字段定义
2work_year_detailObject工作年限详情work_year字段的详情字段,具体参考工作年限详情字段定义
3domains_yearArray[String]领域经验年限["5年Java开发经验"],计算逻辑参考其详情字段中的domain_year字段定义
4domains_year_detailArray[Object]领域经验年限详情domain_year字段的详情字段,具体参考领域经验年限详情字段定义
5start_work_timeString开始工作时间日期格式,如2001.08,具体格式参考日期格式
6companyString最近工作公司北京xxx科技有限公司
7positionString最近公司担任职位资深算法工程师
8statusString工作状态枚举值:在职离职待业,具体定义参考职业状态字段枚举值
9natureString工作性质枚举值:全职实习兼职,具体定义参考职业性质字段枚举值
10locString工作地点北京
11loc_normString工作地点(规范化)loc字段的规范化,规范化到区县级别,如中国-北京市
12industryString行业行业描述,字段结果和简历文本中的描述一致,如电子技术/半导体/集成电路互联网
13salaryString薪资10000-15000元/月500000元/年,具体计算逻辑参考其详情字段字段中的salary字段定义
14salary_detailObject薪资详情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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述工作年限时间的文本,如简历文本工作年限:4年6个月,解析后mention字段值为4年6个月
2yearsFloat工作年份mention字段为4年6个月,解析后years字段值为4
3monthsInteger工作月份mention字段为4年6个月,解析后months字段值为6
4work_yearFloat工作年限规范化该字段值与工作信息字段的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],每个元素为一个领域经验,定义如下:

序号字段类型含义说明
1domainString领域如简历文本具有4年6个月的Java开发工作经验,解析后domain字段值为Java开发
2time_mentionString提及简历中描述工作年限时间的文本,如简历文本具有4年6个月的Java开发工作经验,解析后time_mention字段值为4年6个月
3yearsFloat工作年份time_mention字段为4年6个月,解析后years字段值为4
4monthsInteger工作月份time_mention字段为4年6个月,解析后months字段值为6
5year_normFloat领域年限(规范化)计算方式为years + months/12,最多保留两位小数,如years=4, months=6时,year_norm字段值为4.5
6domain_yearString领域经验年限规范化该字段值与工作信息字段的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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述当前薪资的文本,如10k-15k每月50w每年
2span_typeString薪资类型为如下枚举值:
:薪资是月薪
:薪资是年薪
3typeString薪资区间类型为如下枚举值:
区间:如10k-15k每月
非区间:如15k每月
4salary_val_minInteger薪资区间下限单位,当type字段值为区间时有效,如10000
5salary_val_maxInteger薪资区间上限单位,当type字段值为区间时有效,如15000
6salary_valInteger薪资单位,当type字段为非区间时有效,如10000
7salaryString薪资规范化该字段值与工作信息字段的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,定义如下:

序号字段类型含义说明
1companyString投递公司上海xxx科技有限公司
2jobString投递职位资深算法工程师
3locString工作地点深圳
4timeString投递时间2024-01-01 01:01:01
投递职位信息字段格式示例
json
"apply_job_info": {
    "company": "上海xxx科技有限公司",
    "job": "资深算法工程师",
    "loc": "深圳",
}

期望职位信息

期望职位信息字段名为expect_job_list,类型是Array[Object],每一个元素对应一个期望职位,定义如下:

序号字段类型含义说明
1job_mentionString期望职位提及简历中描述期望职位的文本,如测试工程师,可能同时包括多个职位,如测试工程师、测试开发工程师
2jobsArray[String]期望职位job_mention按职位粒度进行拆分的结果,如["测试工程师"]["测试工程师", "测试开发工程师"]
3job_typeString期望职能简历中填写的职能,如测试
4natureString期望工作性质枚举值:全职实习兼职,具体定义参考职业性质字段枚举值
5recruitmentString期望招聘类型枚举值:社会招聘校园招聘,具体定义参考招聘类型字段枚举值
6loc_mentionString期望工作地点提及简历中描述期望工作地点的文本,如不限城市广州、深圳,来源于locs_detail详情字段的mention字段
7locsArray[String]期望工作地点["广州", "深圳"],来源于locs_detail详情字段中的locs字段
8locs_normArray[String]期望工作地点(规范化)["中国-广东省-广州市", "中国-广东省-深圳市"],来源于locs_detail详情字段中的locs_norm字段
9locs_detailObject期望工作地点详情locs字段的详情字段,具体参考期望工作地点详情字段定义
10salaryString薪资10000-15000元/月500000元/年面议,具体计算逻辑参考其详情字段中的salary字段
11salary_detailObject薪资详情salary字段的详情字段,具体参考期望薪资详情字段定义
12industry_mentionString行业提及简历中描述期望行业的文本,如互联网、IT服务不限行业,来源于industry_detail字段的mention字段
13industryArray[String]行业["互联网", "IT服务"],具体计算逻辑参考其详情字段industry字段定义
14industry_detailObject行业详情industry字段的详情字段,具体定义参考期望行业详情字段定义
15onboard_timeString入职时间随时待商议14天内,字段生成方式参考其详情字段onboard_time字段定义
16onboard_time_detailObject入职时间详情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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述期望工作地点的文本,如不限城市广州、深圳,该字段与期望职位信息字段的loc_mention字段始终保持一致
2unlimitedInteger是否不限期望工作地点为如下枚举值:
0:期望限定的地点的工作
1:不限工作地点
3locsArray[String]期望工作地点该字段与期望职位信息字段的locs字段始终保持一致,由已有字段计算得到,计算逻辑为:
unlimited字段为1时,locs字段为空,默认不包含在结果里
unlimited字段为0mention字段有值时,将mention字段中的地点信息切分为单个地点的列表,如["广州", "深圳"]
4locs_normArray[String]期望工作地点locs字段的规范化,如["中国-广东省-广州市", "中国-广东省-深圳市"],该字段与期望职位信息字段的locs_norm字段始终保持一致
期望工作地点详情字段格式示例

示例 1

json
"locs_detail": {
    "mention": "广州、深圳",
    "unlimited": 0,
    "locs": [
        "广州",
        "深圳"
    ],
    "locs_norm": [
        "中国-广东省-广州市",
        "中国-广东省-深圳市"
    ]
}

示例 2

json
"locs_detail": {
    "mention": "不限城市",
    "unlimited": 1
}

期望薪资详情

期望薪资详情字段名为salary_detail,类型为Object,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述期望薪资的文本,如10k-15k每月50w每年
2span_typeString薪资类型为如下枚举值:
:表示薪资是月薪
:表示薪资是年薪
3typeString薪资区间类型为如下枚举值:
面议期望薪资面议
区间:如10k-15k每月
非区间:如15k每月
4salary_val_minInteger薪资区间下限单位,当type字段值为区间时有效,如10000
5salary_val_maxInteger薪资区间上限单位,当type字段值为区间时有效,如15000
6salary_valInteger薪资单位,当type字段为非区间时有效,如10000
7salaryString薪资规范化该字段值与期望职位信息字段的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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述期望行业的文本,如互联网、IT服务不限行业,该字段与期望职位信息字段的industry_mention字段始终保持一致
2unlimitedInteger是否不限行业为如下枚举值:
0:期望从事限定的行业
1:不限行业
3industryArray[String]行业该字段与期望职位信息字段的industry字段始终保持一致,由已有字段计算得到,计算逻辑为:
unlimited字段为1时,industry字段为空,默认不包含在结果里
unlimited字段为0mention字段有值时,将mention字段中的行业切分为单个行业的列表,如["互联网", "IT服务"]
期望行业详情字段格式示例

示例 1

json
"industry_detail": {
    "mention": "互联网、IT服务",
    "unlimited": 0,
    "industry": [
        "互联网",
        "IT服务"
    ]
}

示例 2

json
"industry_detail": {
    "mention": "不限行业",
    "unlimited": 1
}

入职时间详情

入职时间详情字段名为onboard_time_detail,类型为Object,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述到岗时间的文本,如随时到岗2周内到岗1月内到岗
2typeString到岗时间类型为如下枚举值:
随时:随时可以到岗;
待商议:需再商定到岗时间
确切时间:如14天内到岗
3dayInteger到岗天数到岗所需天数,只有当type值为确切时间时有效,我们会将mention中的时间转换为天数,转换关系:
1周=7天:如mention2周内到岗时,day的值为2*7=14
1月=30天:如mention1月内到岗时,day的值为30
4onboard_timeString到岗时间该字段与期望职位信息字段的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],每一个元素对应一段教育经历,定义如下:

序号字段类型含义说明
1schoolString学校名就读学校,如清华大学
2school_infoObject学校信息学校信息依赖外部知识库,非简历填写内容,具体定义参考学校信息字段
3majorString专业计算机科学与技术
4minorString辅修专业工商管理
5degreeString学历枚举值,如本科,具体定义参考学历字段枚举值
6deptString院系计算机科学与技术学院
7start_dateString开始时间日期格式,如1997.09,具体格式参考日期格式
8end_dateString结束时间日期格式,如2001.07,具体格式参考日期格式
9locString学校地点北京
10loc_normString学校地点(规范化)中国-北京市
11coursesArray[String]课程["高等数学", "C语言程序设计", "计算机网络"]
12gpaStringGPA3.83.8/4,具体计算逻辑参考其详情字段gpa字段
13gpa_detailObjectGPA 详情gpa字段的详细字段,具体参考GPA详情字段定义
14relative_rankString相对排名前10%5%-10%,具体计算逻辑参考其详情字段relative_rank字段定义
15relative_rank_detailObject相对排名详情relative_rank字段的详情字段,具体参考相对排名详情字段定义
16abs_rankString绝对排名33/180,具体计算逻辑参考其详情字段abs_rank字段
17abs_rank_detailObject绝对排名详情abs_rank字段的详细字段,具体参考绝对排名详情字段定义
18descString经历描述教育经历的描述文本
19tagsArray[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,定义如下:

序号字段类型含义说明
1countryString所在国家中国美国
2locString学校地点中国-北京市美国-芝加哥
3rankInteger国内大学排名国内非港澳台院校排名,排名范围:1-1000
4qs_rankIntegerQS 世界大学排名QS 世界大学排名,排名范围:1-1000
5tagsArray[String]学校标签枚举值,如双一流985海外院校,具体定义参考学校标签字段枚举值
学校信息字段格式示例
json
"school_info": {
    "country": "中国",
    "loc": "中国-北京市",
    "tags": [
        "双一流",
        "985",
        "211"
    ],
    "rank": 5,
    "qs_rank": 300
}

GPA 详情

GPA 详情字段名为gpa_detail,类型为Object,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述 GPA 的文本,如3.8/4
2gpa_valFloatGPA3.8
3totalFloatGPA 总分GPA 的总分,如4,也可能没有值,此时默认不会出现在结果中
4gpaStringGPA该字段与教育经历字段的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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述相对排名的文本,如5%-10%
2typeString排名类型枚举值:
区间:如成绩排名: 5%-10%
非区间:如成绩排名: 前10%
3rank_val_minInteger排名值type区间时有效,如5
4rank_val_maxInteger排名值type区间时有效,如10
5rank_valInteger排名值type非区间时有效,如10
6relative_rankString相对排名该字段与教育经历字段的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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述绝对排名的文本,如3/180
2rank_valInteger排名3
3totalInteger总人数180
4abs_rankString绝对排名该字段与教育经历字段的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],每一个元素对应一段工作经历,定义如下:

序号字段类型含义说明
1companyString公司名上海xxx科技有限公司
2positionString职位名测试工程师
3position_typeString职能简历中填写的职能,如测试
4natureString工作性质枚举值:全职实习兼职,具体定义参考职业性质字段枚举值
5deptString部门测试部
6start_dateString开始时间日期格式,如2001.07,具体格式参考日期格式
7end_dateString结束时间日期格式,如至今,具体格式参考日期格式
8salaryString薪资10000-15000元/月500000元/年,具体计算逻辑参考其详情字段salary字段定义
9salary_detailObject薪资详情salary字段的详情字段,具体参考工作薪资详情字段定义
10why_leaveString离职原因没有成长空间
11report_toString汇报对象测试部门总监
12locString工作地点上海
13loc_normString工作地点(规范化)中国-上海市
14durationString工作时长3年6个月3.5年,具体计算逻辑参考其详情字段duration字段定义
15duration_detailObject工作时长详情duration字段的详情字段,具体参考工作时长详情字段定义
16company_descString公司描述公司的描述信息
17company_natureString公司性质民营国企
18industryString公司行业互联网
19stuff_sizeString公司规模50000人以上50-100人,具体计算逻辑参考其详情字段stuff_size字段定义
20stuff_size_detailObject公司规模详情stuff_size字段的详情字段,具体参考公司规模详情字段定义
21subordinateString下属人数30人10-20人,具体计算逻辑参考其详情字段中的subordinate字段定义
22subordinate_detailObject下属人数详情subordinate字段的详情字段,具体参考下属人数详情字段定义
23descString工作描述工作的描述信息
24skillsArray[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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述当前薪资的文本,如10k-15k每月50w每年
2span_typeString薪资类型为如下枚举值:
:薪资是月薪
:薪资是年薪
3typeString薪资区间类型为如下枚举值:
区间:如10k-15k每月
非区间:如15k每月
4salary_val_minInteger薪资区间下限单位,当type字段值为区间时有效,如10000
5salary_val_maxInteger薪资区间上限单位,当type字段值为区间时有效,如15000
6salary_valInteger薪资单位,当type字段为非区间时有效,如10000
7salaryString薪资规范化该字段与工作经历字段的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,定义如下:

序号字段类型含义说明
1mentionString提及3年6个月
2yearsFloat工作时长年份33.5
3monthsInteger工作时长月份6
4durationString工作时长该字段与工作经历字段的duration字段始终保持一致,由已有字段生成,生成方式为:
yearsmonths均有值时,值为{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,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述公司规模的文本,如50000人以上50-100人
2typeString公司规模类型为如下枚举值:
区间:如50-100人
非区间:如50000人以上
3modifierString修饰符为如下枚举值:
左右:如1000人左右
以上:如1000人以上
以下:如1000人一下
4size_val_minInteger公司规模最小值单位,当type字段值为区间时有效,如50
5size_val_maxInteger公司规模最大值单位,当type字段值为区间时有效,如100
6size_valInteger公司规模大小单位,当type字段值为非区间时有效,如50000
7stuff_sizeString公司规模该字段与工作经历字段的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,定义如下:

序号字段类型含义说明
1mentionString提及10-20人
2typeString下属人数类型为如下枚举值:
区间:如10-20人
非区间:如30人
3size_val_minInteger下属人数最小值单位,当type值为区间时有效,如10
4size_val_maxInteger下属人数最大值单位,当type值为区间时有效如20
5size_valInteger下属人数大小单位,当type值为非区间时有效如30
6subordinateString下属人数该字段与工作经历字段的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],每一个元素对应一段项目经历,定义如下:

序号字段类型含义说明
1nameString项目名称xxx系统
2positionString项目职位Java开发
3start_dateString开始时间日期格式,如2023.07,具体格式参考日期格式
4end_dateString结束时间日期格式,如至今,具体格式参考日期格式
5companyString项目所在公司上海xxx科技有限公司
6descString项目描述项目描述文本
7skillsArray[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],每一个元素对应一段培训经历,定义如下:

序号字段类型含义说明
1orgString培训机构xxx培训机构
2subjectString培训主题xxx培训
3start_dateString开始时间日期格式,如2023.07,具体格式参考日期格式
4end_dateString结束时间日期格式,如2023.08,具体格式参考日期格式
5locString培训地点简历中填写的培训地点
6certString培训证书简历中填写的培训证书
7descString培训描述简历中填写的培训描述
培训经历字段格式示例
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],每一个元素对应一段实践经历,定义如下:

序号字段类型含义说明
1nameString实践名简历中填写的实践名
2roleString角色简历中填写的实践角色
3start_dateString开始时间日期格式,如2023.01,具体格式参考日期格式
4end_dateString结束时间日期格式,如2023.03,具体格式参考日期格式
5descString实践描述简历中填写的实践描述
实践经历字段格式示例
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],每一个元素对应一个证书,定义如下:

序号字段类型含义说明
1langString语言类型枚举值,如英语,支持主流语言,具体枚举值定义参考语言证书字段枚举值
2certString语言证书名枚举值,如大学英语六级,支持主流语言的主流证书,具体枚举值定义参考语言证书字段枚举值
3scoreFloat分数485
4dateString取证时间日期格式,如2013.03,具体格式参考日期格式
语言证书字段格式示例
json
"lang_cert_list": [
    {
        "lang": "英语",
        "cert": "大学英语六级",
        "score": 485,
        "date": "2013.03"
    },
    ...
]

语言能力

语言能力字段名为lang_ability_list,类型为Array[Object],每一个元素对应一个语言能力,定义如下:

语言能力字段定义

序号字段类型含义说明
1langString语言枚举值,如英语,支持主流语言,具体枚举值定义参考语言能力字段支持语言枚举值
2abilityString能力水平枚举值,如商务会话,具体定义参考语言能力熟练程度枚举值
3listenString语言听力水平枚举值,具体定义参考语言能力听说读写水平枚举值
4speakString语言口语水平同上
5readString语言阅读水平同上
6writeString语言写作水平同上
语言能力字段格式示例
json
"lang_ability_list": [
    {
        "lang": "英语",
        "ability": "商务会话",
        "listen": "良好",
        "speak": "流利",
        "read": "优秀",
        "write": "精通"
    },
    ...
]

计算机证书

计算机证书字段名为computer_cert_list,类型为Array[Object],每一个元素对应一个计算机证书,定义如下:

序号字段类型含义说明
1nameString计算机证书名证书名命名符合如下规则:
未明确表示是全国还是省级证书时,为枚举值:计算机一级计算机二级计算机三级计算机四级
省级计算机证书,为以省份名打头的名称,如:浙江省计算机一级浙江省计算机二级浙江省计算机三级浙江省计算机四级
全国计算机等级证书,为枚举值:全国计算机一级全国计算机二级全国计算机三级全国计算机四级
2dateString取证时间日期格式,如2013.05,具体格式参考日期格式
计算机证书字段格式示例
json
"computer_cert_list": [
    {
        "name": "全国计算机二级",
        "date": "2013.05"
    },
    ...
]

证书

证书字段包含所有证书(含语言及计算机证书),字段名为cert_list,类型为Array[Object],每一个元素对应一个证书,定义如下:

序号字段类型含义说明
1nameString证书名教师资格证
2dateString取证时间日期格式,如2013.01,具体格式参考日期格式
证书字段格式示例
json
"cert_list": [
    {
        "name": "教师资格证",
        "date": "2013.01"
    },
    ...
]

技能关键词

技能关键词字段名为skill_list,类型为Array[Object],每一个元素对应一个技能词,定义如下:

序号字段类型含义说明
1skillString技能词Java
2levelString熟练程度枚举值,如精通,具体定义参考技能熟练程度枚举值
3timeString使用时长3年,具体计算逻辑参考其详情字段time字段定义
4time_detailString使用时长详情time字段的详情字段,具体参考技能使用时长详情字段定义
技能关键词字段格式示例
json
"skill_list": [
    {
        "skill": "Java",
        "level": "精通",
        "time": "3年",
        "time_detail": {
            "mention": "3 年",
            "years": 3.0,
            "time": "3年"
        }
    },
    ...
]

技能使用时长详情

技能使用时长详情字段名为time_detail,类型为Object,定义如下:

序号字段类型含义说明
1mentionString提及简历中描述技能使用时长的文本,如3 年
2yearsFloat使用年份3.0
3monthsFloat使用月份10.0
4timeString使用时长该字段与技能关键词字段的time字段始终保持一致,由已有字段生成,生成方式为:
yearsmonths均有值时,值为{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,定义如下:

序号字段类型含义说明
1file_nameString简历文件名请求中的文件名
2lang_typeString语言类型枚举值,如简体中文,具体定义参考简历语言类型枚举值
3sourceString简历来源枚举值,如拉勾,具体定义参考简历来源枚举值
4idString简历 ID如智联招聘来源的简历 ID
5update_timeString简历更新时间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,定义如下:

序号字段类型含义说明
1textString简历文本内容完整的简历文本内容
2basic_infoString基本信息区块文本内容典型区块名如基本信息
3job_intentionString求职意向区块文本内容典型区块名如求职意向
4career_profileString职业概况区块文本内容典型区块名如职业概况
5contactString联系方式区块文本内容典型区块名如联系方式
6educationString教育经历区块文本内容典型区块名如教育经历
7courseString课程信息区块文本内容典型区块名如主修课程
8highest_degreeString最高学历信息区块文本内容典型区块名如最高学历
9careerString工作经历区块文本内容典型区块名如工作经历
10internshipString实习经历区块文本内容典型区块名如实习经历
11projectString项目经历区块文本内容典型区块名如项目经历
12skillString专业技能区块文本内容典型区块名如专业技能
13campusString校园经历区块文本内容典型区块名如校内经历
14activityString活动经历区块文本内容典型区块名如社会活动
15practiceString实践经历区块文本内容典型区块名如社会实践
16self_evaluationString自我评价区块文本内容典型区块名如自我评价
17awardString所获奖励区块文本内容典型区块名如荣获奖励
18languageString语言能力区块文本内容典型区块名如语言能力
19contestString竞赛经历区块文本内容典型区块名如竞赛经历
20certificationString所获证书区块文本内容典型区块名如荣获证书
21trainingString培训经历区块文本内容典型区块名如培训经历
22hobbyString兴趣爱好区块文本内容典型区块名如兴趣爱好
23academicString学术经历区块文本内容典型区块名如学术经历
24worksString个人作品区块文本内容典型区块名如个人作品
25papersString个人论文区块文本内容典型区块名如论文成果
26socialString社交主页区块文本内容典型区块名如社交主页
27cover_letterString自荐信区块文本内容典型区块名如自荐信
28extra_infoString其他附加信息区块文本内容典型区块名如附加信息
简历内容字段格式示例
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}'

附录

返回状态码表

序号状态码含义
1200解析成功
210001用户 ID 或秘钥错误
310002无可用解析额度
410101请求参数错误
510102请求参数错误,无文件名
610103请求参数错误,无文件内容或文件内容为空
710104请求参数错误,解析模式(mode)参数设置错误
810105请求参数错误,是否提取头像(parse_avatar)参数设置错误
910106请求参数错误,SaaS 接口不支持极致解析模式(极致模式只在私有化部署时生效)
1010201文件内容 Base64 解码错误
1110202文件大小超出限制
1210301解析服务内部错误

文件格式支持

序号格式说明
1txt文本文件格式
2pdfPDF 文件格式
3docMicrosoft Word 97-2003 文件格式
4dotMicrosoft Word 97-2003 模版文件格式
5docxMicrosoft Word 文件格式
6dotxMicrosoft Word 模版文件格式
7pptMicrosoft PowerPoint 97-2003 文件格式
8potMicrosoft PowerPoint 97-2003 模版文件格式
9pptxMicrosoft PowerPoint 文件格式
10potxMicrosoft PowerPoint 模版文件格式
11ppsMicrosoft PowerPoint 97-2003 放映文件
12ppsxMicrosoft PowerPoint 放映文件格式
13xlsMicrosoft Excel 97-2003 文件格式
14xltMicrosoft Excel 97-2003 模版文件格式
15xlsxMicrosoft Excel 文件格式
16xltxMicrosoft Excel 模版文件格式
17wpsWPS 文字文件格式
18wptWPS 文字模版文件格式
19dpsWPS 演示文件格式
20dptWPS 演示模版文件格式
21etWPS 表格文件格式
22ettWPS 表格模版文件格式
23rtf富文本(Rich Text Format)文件格式
24htm, html网页文件格式
25mht, mhtml单一(聚合)网页文件格式
26xmlXML 文件格式
27emlEmail Message 邮件文件格式
28msgSaved Email Message 邮件文件格式
29mbxMicrosoft Outlook Express 邮件文件格式
30pngPNG 图片格式
31jpgJPG 图片格式
32jpegJPEG 图片格式
33bmpBMP 图片格式
34odtODF Text 文件格式
35ottODF Text 模版文件格式
36odpODF Presentation 文件格式
37otpODF Presentation 模版文件格式
38odsODF Spreadsheet 文件格式
39otsODF Spreadsheet 模版文件格式
40odgODF Drawing 文件格式
41otgODF Drawing 模版文件格式
42sxwOpenOffice XML 1.0 Text 文件格式
43stwOpenOffice XML 1.0 Text 模版文件格式
44sxiOpenOffice XML 1.0 Presentation 文件格式
45stiOpenOffice XML 1.0 Presentation 模版文件格式
46sxcOpenOffice XML 1.0 Spreadsheet 文件格式
47stcOpenOffice XML 1.0 Spreadsheet 模版文件格式
48sxdOpenOffice XML 1.0 Drawing 文件格式
49stdOpenOffice XML 1.0 Drawing 模版文件格式
50uotUniform Office Format 1/2 Text 文件格式
51uopUniform Office Format 1/2 Presentation 文件格式
52uosUniform Office Format 1/2 Spreadsheeet 文件格式
53slkSYLK 文件格式
54epubElectronic Publication 文件格式
55wk3Lotus1-2-3 Version 3 文件格式
56wk4Lotus1-2-3 Version 4 文件格式
57wksLotus 1-2-3 文件格式
58wpdWordPerfect Document 文件格式
59samAmi Pro 文件格式
60qpwQuattro Pro 文件格式

日期格式

由于解析结果中日期类型的字段较多,我们定义了统一的日期格式,如下:

序号日期格式说明
1至今至今是解析器中定义的一个特殊日期表示,可能会出现在某个经历的结束时间字段中。
解析器中所有非至今的时间字段,均满足下一条规则
2yyyy.MM.dd我们采用可缺省方式表示日期,缺省规则:
缺省月份和日期:即只包含年份,如2024
缺省日期:即只包含年份月份,如2024.01
年份不可缺省:即返回的时间中一定会包含一个 4 位数表示的年份,如20242024.012024.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辅修
12211
13985
14MBA
15博士后
16在职
17双一流
18单证
19一本
20二本
21三本
22重点本科
23民办
24远程网络教育
25肄业
26在读

学校标签字段枚举值

ID枚举值
1双一流
2985
3211
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公共英语五级
20BEC商务英语初级
21BEC商务英语中级
22BEC商务英语高级
23雅思
24托福
25托业
26GRE
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智联招聘
5BOSS直聘
6猎聘
7牛客网