简历解析

ResumeSDK简历解析提供对输入的附件简历进行结构化处理的功能,共解析出10大主要功能模块,合计160多个字段信息。ResumeSDK的服务基于http+json格式的接口方式提供服务,可以同时支持各种不同开发语言的客户端调用。


服务模式

ResumeSDK提供SaaS模式和独立部署两种形式的服务模式:

  1. SaaS模式:服务部署在我司服务器上,客户通过远程API调用的方式使用服务,按调用次数或者包年模式收费。可通过以下2种方式进行使用:
  2. 1)直接和我们购买:单价便宜,可以按次、包月或者包年。需要签合同,有起充额度要求;
    2)通过云市场购买:单价稍贵,可以按次购买。不需签合同,起充额度要求低,随购随用;(阿里云接口地址腾讯云接口地址
  3. 独立部署:服务部署在客户自己的服务器上,客户自行运维和管控服务,无调用次数和期限的限制;

两种服务方式的接口仅涉及账户信息的地方有差异,简历结构化等其他字段信息均一致。以下以SaaS服务的接口格式做详细介绍。


注意事项

  1. 不定期新增字段:功能升级需要,我们会不定期在json结果中增加一些新的解析字段,因此在读取结果数据时,请注意对后续新增字段的兼容;
  2. 高级功能默认关闭:对于头像解析及实践经历解析等功能,由于会影响解析效率,因此默认是关闭状态,如有需要请参考请求接口文档进行开启;
  3. 对于图片等简历格式,如果需要更佳的解析效果,请将请求参数ocr_type置为1;

1、请求接口格式

按照如下方式和内容构造http请求:

  1. http请求方式:POST;
  2. http请求头字段Content Type:application/json;
  3. http请求内容:通过json格式打包如下字段信息:
    字段 类型 是否必填 描述
    uid int 必填字段 用户id(注:仅SaaS接口需要,独立部署版或者阿里云客户不需此字段)
    pwd string 必填字段 用户密码(注:仅SaaS接口需要,独立部署版或者阿里云客户不需此字段)
    file_name string 必填字段 简历文件名。请务必带上正确的文件后缀名,否则部分简历可能解析失败。
    file_cont string 必填字段 简历文件内容(以base64编码),其中:
    1)图片简历:经based64编码后大小建议不超过3M,分辨率建议600*800以上,支持jpg/jpeg/png/bmp/tif/gif格式;
    2)非图片简历:经based64编码后大小不超过10M(注:阿里云接口是不超过8M);
    need_avatar int 可选字段 是否需要解析头像,0为不需要,1为需要,默认为0
    need_social_exp int 可选字段 是否需要解析实践经历,0为不需要,1为需要,默认为0:
    1)若需要解析,则对“社会实践”及“在校活动”文本进行解析,解析结果放置在social_exp_objs字段中;
    ocr_type int 可选字段 ocr(图片解析所用到的文字识别)类型。(注:仅独立部署版需要,SaaS接口或者阿里云客户不需此字段)
    version int 可选字段 接口版本,当前取值为0和1,默认为0:
    1)version=0:仅当字段在简历中有出现,才会在json结果中返回;
    2)version=1:不管字段在简历中有无出现,均在json结果中返回,若无出现则该字段取值为空;

请求结构体示例:


    {
        "uid": 123456,
        "pwd": "abccba",
        "file_name": "resume_name.docx",
        "file_cont": "UFAFDA132fAFA...",
        "need_avatar": 0
    }
            

注1:其中uid和pwd为账号信息,需要和我们申请。如果通过阿里云接口服务进行接入(appcode认证方式),则不需uid和pwd,且返回接口无account信息。 注2:2022.04新增基于url的请求方式:只需将file_cont替换为file_url字段(存放简历文件所在的url)即可,其余字段不变。若url中包含文件后缀,可不设置file_name;若url中不包含后缀,则请设置file_name字段,带上正确的文件后缀。


2、返回接口总体格式

ResumeSDK以json格式返回解析结果,它的内容包括:

  1. "status",解析结果状态信息:
    字段 类型 描述
    code int 状态码,200表示正常,其余表示异常,具体参考错误状态码
    message string 状态信息描述
  2. "account",账户状态信息:
    字段 类型 描述
    uid int 用户id
    usage_limit int 用户的总调用量
    usage_remaining int 用户剩余的调用量,每成功调用一次减1,当值为0时不能再调用
  3. "result",简历解析结构体。包含140多个字段信息,具体参考简历解析结构体

返回结构体示例:


    {
        "status": {
            "code": 200,
            "message": "OK"
        },
        "account": {
            "uid": 123456,
            "usage_limit": 62500,
            "usage_remaining": 50000
        },
        "result": {
            ...
        },
    }
            

2.1.1 错误状态码

当错误状态码等于200时表示解析正常,为其他值时表示解析异常,不同的值代表不同的错误信息。

码值 含义
200 正常状态,表示解析成功
250 账号(uid)或密码(pwd)错误
251 账号剩余用量为0(需及时充值)
260 请求参数错误
261 简历内容为空
262 简历内容过长
263 不支持的简历文件格式
264 base64解码出错
265 图片文件过大,或者长宽大小超过限制
266 输入参数file_name缺少文件后缀名(请带上正确的文件后缀,如果是纯文本则为.txt)
267 输入的json结构体有误(即解码失败)
240 简历解析内部错误
241 文件解析内部错误
280 人岗匹配内部错误

3、简历解析结构体

简历解析结果均放在result字段下,共包含140多个字段信息,由以下主要部分组成:

  1. 基本信息;
  2. 期望职位;
  3. 教育经历;
  4. 工作经历;
  5. 项目经历;
  6. 培训经历;
  7. 技能列表等。

3.1 基本信息

基本信息包含解析结果的基础字段,作为result结构体下的一级字段存在。包含的字段如下:

3.1.1 基本信息——基础信息

基本信息包含解析结果的基础字段,作为result结构体下的一级字段存在。包含的字段如下:

字段 含义 类型 取值
name 姓名 string 人名,比如“姚明”
surname 姓氏 string 姓氏,比如“姚”
gender 性别 string 男、女、male、female
age 年龄 string 年龄,比如“25”
height 身高 string 180cm
weight 体重 string 75kg
marital_status 婚姻状态 string 已婚、未婚、已结婚、未结婚、保密
birthday 出生日期 string 比如:2019.10.01或者2019.10
hukou_address 户口地址 string 用户填写的地址,比如“上海市虹口区广粤路xx弄x号xxx室”
hukou_address_norm 户口地址(规范化) string 规范化到“区县”一级,比如“中国-上海市-虹口区”
hometown_address 籍贯地址 string 用户填写的地址,比如“上海市虹口区广粤路xx弄x号xxx室”
hometown_address_norm 籍贯地址(规范化) string 规范化到“区县”一级,比如“中国-上海市-虹口区”
id_card 身份证号 string 身份证号
race 民族 string 比如:汉、汉族
nationality 国籍 string 比如:中国、越南、美国
polit_status 政治面貌 string 比如:党员、团员、共青团员、共产党员、无党派人士、共产党党员
blood_type 血型 string 比如:A、A型、Rh阴性
star_sign 星座 string 比如:白羊、白羊座
languages 语言能力 string 英语、日语等,多个语言间用逗号分隔
english_level 英语水平 string 比如:大学英语6级、专业英语8级
computer_level 计算机水平 string 计算机水平
blog 博客/主页地址 string 博客/主页地址
apply_job 应聘职位 string 比如:java工程师、HR Manager
apply_cpy 应聘公司 string 比如:阿里巴巴、腾讯科技有限公司
work_year 工作年限(自填或从工作经历推断) string 4种取值:“8”、“3.5”、“10~15”、“应届生”
work_year_norm 工作年限(对work_year的规范化) string 4种取值对应的规范化:“8”、“3.5”、“10”、“0”
work_year_inf 工作年限(从工作经历里推断) string 2种取值:“8”、“3.5” (注:实习或兼职经历不计入工作年限)
work_start_time 参加工作时间(自填或从工作经历推断) string 比如:2019.10.01、2019.10
work_start_time_inf 参加工作时间(从工作经历推断) string 比如:2019.10.01、2019.10
work_position 当前职位 string 比如:java开发、产品总监
work_pos_type_p 当前职能类型 string 比如:软件工程师、项目经理
work_company 当前单位 string 单位名称
work_industry 所处行业 string 行业名称
work_status 在职状态 string 用户填写的内容
work_salary 当前薪资 string 取值类型:
“135000元/年”
“13500元/月”
“80000~120000元/年”
“8000~12000元/月”
work_salary_min 当前月薪(下限) string 比如:“8000”
work_salary_max 当前月薪(上限) string 比如:“12000”
work_location 工作地点 string 工作地点
work_location_norm 工作地点(规范化) string 同city_norm
work_job_nature 工作性质 string 全职、兼职、实习
has_oversea_edu 有否海外留学经历 string 0:否,1:是;默认为无
has_oversea_exp 有否海外工作经历 string 0:否,1:是;默认为无
grad_time 毕业时间 string 2019.10.01、2019.10
college 毕业学校 string 学校名称
college_type 毕业学校类型 string 取值0~7:
0:普通院校
1:985
2:211
3:港澳台院校
4:海外院校
5:中学
6:职业教育
7:培训机构
college_rank 毕业学校排名 string 取值1~1000
college_dept 毕业院系 string 院系名称
major 所学专业 string 专业名称
degree 学历 string 用户填写的值,比如:小学、初中、高中、中专、大专、本科、研究生、硕士、博士、博士后、mba等
recruit 是否统招 string 统招、自考、在职、成教、函授等

3.1.2 基本信息——联系方式

联系方式作为result结构体下的一级字段存在。包含的字段如下:

字段 含义 类型 取值
email 邮箱 string 联系邮箱
phone 电话号码 string 手机/电话号码
virtual_phone 虚拟号码 string 虚拟电话号码,当前支持智联、51job
virtual_phone_time 虚拟号码失效时间 string 虚拟电话号码失效时间,当前支持智联、51job
qq QQ号 string QQ号
weixin 微信号 string 微信号
postal_code 邮编 string 邮编
city 所在城市 string 城市名,比如“重庆”、“广东”、“华容县”
city_norm 所在城市(规范化) string 规范化的城市名,到“区县”一级:
中国-广东省
中国-湖南省-岳阳市
中国-湖南省-岳阳市-华容县
中国-吉林省-长春市-朝阳区
living_address 当前所在地 string 用户填写的地址,比如“上海市虹口区广粤路xx弄x号xxx室”
living_address_norm 当前所在地(规范化) string 规范化到“区县”一级,比如“中国-上海市-虹口区”

3.1.3 基本信息——期望工作

期望工作作为result结构体下的一级字段存在。包含的字段如下:

字段 含义 类型 取值
expect_job 期望工作 string 职位名称
expect_cpy 期望工作单位 string 单位名称
expect_salary 期望薪资 string 取值类型:
“135000元/年”
“13500元/月”
“80000~120000元/年”
“8000~12000元/月”
“面议”
expect_salary_min 期望薪资(下限) string 同work_salary_min
expect_salary_max 期望薪资(上限) string 同work_salary_max
expect_industry 期望行业 string 行业名称
expect_time 到岗时间 string 用户填写的内容
expect_jnature 期望工作性质 string 用户填写的内容
expect_jstatus 当前离职/在职状态 string 用户填写的内容
expect_jlocation 期望工作地址 string 用户填写的内容
expect_jlocation_norm 期望工作地址(规范化) string 同city_norm,多个地址以逗号分隔。

3.1.4 基本信息——简历信息

简历信息作为result结构体下的一级字段存在。包含的字段如下:

字段 含义 类型 取值
resume_type 简历类型 string 取值如下:
0:中文(简体)   10:中文(繁体)
1:英文
2:中英(前中后英)
3:英中(前英后中)
4:空
resume_source 简历来源 string 智联、智联卓聘、前程无忧、51精英、猎聘、boss直聘、拉勾
resume_id 简历id string 智联/51job等网站里的简历id
resume_name 简历文件名 string 输入的简历文件名
resume_parse_time 简历解析时间 string YYYY-MM-DD HH-MM-SS
resume_update_time 简历更新时间 string 更新时间
resume_integrity 简历完整度 string 取值0~100

3.1.5 基本信息——头像信息

头像信息作为result结构体下的一级字段存在。包含的字段如下(注:两个字段最多只有1个有结果):

字段 含义 类型 取值
avatar_url 个人头像图片url string 以url形式存在的个人头像,比如有些html简历,头像就是一个url链接。
avatar_data 个人头像图片数据 string 以图片形式嵌入在简历中的个人头像,解析后的结果为:”data:image/#ext;base64, #data”,
其中#ext为图片格式,#data为经base64编码的实际图片数据。

3.1.6 基本信息——文本内容

文本内容作为result结构体下的一级字段存在。包含的字段如下:

字段 含义 类型 取值
cont_basic_info 基本信息文本内容 string 文本内容
cont_expect_job 期望工作文本内容 string 文本内容
cont_education 教育经历文本内容 string 文本内容
cont_job_exp 工作经历文本内容 string 文本内容
cont_proj_exp 项目经历文本内容 string 文本内容
cont_internship 实习经历文本内容 string 文本内容
cont_social_exp 社会实践文本内容 string 文本内容
cont_campus_exp 在校活动文本内容 string 文本内容
cont_job_skill 个人技能文本内容 string 文本内容
cont_my_desc 自我评价文本内容 string 文本内容
cont_hobby 兴趣爱好文本内容 string 文本内容
cont_language 语言技能文本内容 string 文本内容
cont_certificate 所获证书文本内容 string 文本内容
cont_award 所获奖励文本内容 string 文本内容
cont_training 培训经历文本内容 string 文本内容
cont_course 所学课程文本内容 string 文本内容
cont_research 科研实践文本内容 string 文本内容
cont_my_project 个人作品文本内容 string 文本内容
cont_cover_letter 求职信文本内容 string 文本内容
cont_extra_info 附加信息文本内容 string 文本内容
raw_text 原始简历文本内容 string 文本内容

3.2 教育经历

教育经历存放于result结构体下的一级字段education_objs中,每一段教育经历包含的字段如下:

字段 含义 类型 取值
start_date 开始时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”
end_date 结束时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”、“至今”
edu_college 学校 string 学校名称
edu_college_type 学校类型 string 参考前面college_type字段
edu_college_rank 学校排名 string 取值1~1000
edu_college_dept 院系 string 院系名称
edu_major 专业 string 专业名称
edu_recruit 是否统招 string 参考前面recruit字段
edu_gpa gpa成绩 string 用户填写的内容
edu_degree 学历 string 用户填写的值,比如:小学、初中、高中、中专、大专、本科、研究生、硕士、博士、博士后、mba等
edu_degree_norm 学历(规范化) string 规范化的值:小学、初中、高中、中专、大专、本科、硕士研究生、博士研究生、博士后、mba
edu_content 教育描述 string 用户填写的内容

3.3 工作经历及实习经历

工作经历及实习经历存放于result结构体下的一级字段job_exp_objs中,其中实习经历通过job_nature="实习"进行标识。
每一段工作经历包含的字段如下:

字段 含义 类型 取值
start_date 开始时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”
end_date 结束时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”、“至今”
job_cpy 公司 string 公司名称
job_cpy_nature 公司性质 string 上市、民营、国企、央企、外企、外资、美资、港资等公司或企业
job_cpy_size 公司规模 string 用户填写的内容
job_cpy_desc 公司描述 string 用户填写的内容
job_industry 行业 string 行业名称
job_position 职位 string 职位名称
job_pos_type 职能类型(用户填写) string 简历中用户填写的职能类型
job_pos_type_p 职能类型(模型预测) string 算法模型预测的职能类型
job_dept 所在部门 string 部门名称
job_nature 工作性质 string 全职、兼职、实习
job_salary 工作薪资 string 用户填写的内容
job_staff 下属人数 string 用户填写的内容
job_report_to 汇报对象 string 用户填写的内容
job_location 工作地点 string 用户填写的内容
job_why_leave 离职原因 string 用户填写的内容
job_duration 持续时间 string 比如“1年3个月”、“3年”、“6个月”
job_capacity 工作能力 string 用户填写的内容
job_content 工作内容 string 用户填写的内容

3.4 社会及学校实践经历

社会及学校实践经历存放于result结构体下的一级字段social_exp_objs中(若要解析实践经历,需要在请求接口中增加参数need_social_exp=1)。
每一段实践经历包含的字段和工作经历的字段信息相同,具体字段如下:

字段 含义 类型 取值
start_date 开始时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”
end_date 结束时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”、“至今”
job_cpy 单位 string 单位名称或者活动组织名称,可以是某一个实体名称,也可以是某一项活动名称
job_cpy_nature 公司性质 string 上市、民营、国企、央企、外企、外资、美资、港资等公司或企业
job_cpy_size 公司规模 string 用户填写的内容
job_cpy_desc 公司描述 string 用户填写的内容
job_industry 行业 string 行业名称
job_position 职位 string 职位名称
job_dept 所在部门 string 部门名称
job_nature 工作性质 string 全职、兼职、实习
job_salary 工作薪资 string 用户填写的内容
job_staff 下属人数 string 用户填写的内容
job_report_to 汇报对象 string 用户填写的内容
job_location 工作地点 string 用户填写的内容
job_why_leave 离职原因 string 用户填写的内容
job_duration 持续时间 string 比如“1年3个月”、“3年”、“6个月”
job_capacity 工作能力 string 用户填写的内容
job_content 工作内容 string 用户填写的内容

3.5 项目经历

项目经历存放于result结构体下的一级字段proj_exp_objs中,每一段项目经历包含的字段如下:

字段 含义 类型 取值
start_date 开始时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”
end_date 结束时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”、“至今”
proj_name 项目名称 string 项目名称
proj_cpy 所在公司 string 公司名称
proj_position 担任职位 string 职位名称
proj_content 项目内容 string 项目内容
proj_resp 项目职责 string 项目职责

3.6 培训经历

培训经历存放于result结构体下的一级字段training_objs中,每一段培训经历包含的字段如下:

字段 含义 类型 取值
start_date 开始时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”
end_date 结束时间 string 日期,比如“2019.09.01”、“2019.09”、“2019”、“至今”
train_org 培训机构 string 机构名称
train_loc 培训地点 string 地点名称
train_cert 所获证书 string 证书名称
train_cont 培训内容 string 内容描述

3.7 技能列表

技能列表存放于result结构体下的一级字段skills_objs中,每一个技能包含的字段如下:

字段 含义 类型 取值
skills_name 技能名称 string 技能名词,比如“java开发”、“市场调研”等
skills_level 熟练程度 string 熟练程度
skills_time 技能使用时间 string 时长

3.8 语言技能

语言技能存放于result结构体下的一级字段lang_objs中,每一个语言技能包含的字段如下:

字段 含义 类型 取值
language_name 语言名称 string 语言名称,比如“英语”、“俄语”等
language_level 熟练程度 string 熟练程度
language_read_write 读写能力 string 比如“熟练”等
language_listen_speak 听说能力 string 比如“熟练”等

3.9 语言证书列表

语言证书列表存放于result结构体下的一级字段cert_objs中,每一个语言证书包含的字段如下:

字段 含义 类型 取值
langcert_lang 语言名称 string 语言名称,比如“英语”、“俄语”等
langcert_name 证书名称 string 证书名称
langcert_score 证书成绩 string 成绩,比如625,不同证书的成绩范围不同

3.10 所有证书列表

所有证书列表(包括语言证书、职业证书等)存放于result结构体下的一级字段all_cert_objs中,每一个证书包含的字段如下:

字段 含义 类型 取值
cert_name 证书名称 string 证书名称,比如“证券从业资格证书”、“计算机二级”等