文档介绍(Intro)
API endpoint
shell 正式环境:'https://api.mokahr.com/api-platform/v1' 测试环境:'https://api-staging-3.mokahr.com/api-platform/v1'
javascript 正式环境:'https://api.mokahr.com/api-platform/v1' 测试环境:'https://api-staging-3.mokahr.com/api-platform/v1'
Moka API的设计基于REST,使用标准的HTTP功能如HTTP方法、HTTP状态码以及HTTP basic auth等,以便于支持HTTP的服务可以便捷接入。所有的接口数据都通过JSON格式传输(包括错误信息),并使用Unicode UTF-8进行编码。当有字段值为空的时候,返回的结果为null
,若字段为数组型且为空的时候,返回的结果为空数组[]
。
为了提供更好的体验,Moka API在不断完善升级中。当更新中包含不向后兼容的接口时,我们会升级API版本,并保留旧的API正常运行。这意味着在接入Moka API时,你的代码需要能够处理一些如返回数据字段增加等向后兼容的变动。
Api接口老版本
Api接口老版本,老版本接口不再更新,不建议使用。
切换到Api接口老版本
考试/测评、背调、视频面试接入指南 (platform)
时间字段格式说明(Date)
当前版本API中时间类型的字段共有如下几种格式:
类型 | 格式 | 例子 | 例子的含义 |
---|---|---|---|
精确到年的日期 | yyyy | 2018 | 例如毕业年份 |
精确到月的日期 | yyyy-MM | 2018-09 | 例如毕业时间 |
精确到天的日期 | yyyy-MM-dd | 2018-09-27 | 例如到岗日期 |
精确到时、分、秒的日期 | yyyy-MM-ddTHH:mm:ss.sssZ | 2018-09-27T02:00:00.000Z | 例如面试开始时间 |
其中,YYYY-MM-DDTHH:mm:ss.sssZ的格式为ISO8601标准,具体含义可以参考这里
注意:由于历史原因,某些字段并没有严格按照以上规则设置格式。比如存在某些精确到天的日期也使用了yyyy-MM-ddTHH:mm:ss.sssZ的格式。因此开发者最好做到能同时识别这几种格式,并根据需要解析成想要的内容。
API开发指南(Guide)
ATS API标准集成方案
- Moka提供 《Moka ATS标准交付集成开发方案》 供开发者参考
鉴权验证说明(Basic Auth)
请求示例
$ curl https://api.mokahr.com/api-platform/v1/archiveReasons \
-u 'your_api_key:'
注:
1、请将'your_api_key'替换为你的API Key来进行测试
2、curl使用-u flag来传入basic auth的验证信息。由于password为空,username后面的冒号:
是必要的。
你需要使用Moka为你的机构生成的私密API Key来验证访问Moka API的请求。如有需要,请向你的CSM(客户成功经理)索取API Key。
Moka API的验证基于HTTP Basic Auth。发送请求时,需要将API Key作为basic auth的username提供,password不需要提供。测试时请确认发送的HTTP请求里有如下header:
Authorization: Basic <base64("username:password")>
所有的请求都必须通过HTTPS发送。
Oauth2鉴权说明(Oauth2)
如果您需要和 Moka 开放平台对接获取隐私数据(如申请、职位信息等),为保证数据的安全与隐私,您需要取得授权才可访问,即获取访问用户数据的授权令牌 accessToken。该流程采用国际通用的 OAuth2.0 标准协议作为用户身份验证与授权协议。 OAuth2.0协议规范
前期准备
您需要使用 Moka 为你的机构生成的私密 clientId 和 clientSecret,通过clientId 和 clientSecret 获取accessToken。 通过accessToken访问 Moka API 的请求。如有需要,请向你的 CSM(客户成功经理)索取 clientId 和 clientSecret。
获取访问凭证accessToken
调用接口令牌 accessToken 有效期为 2 小时。
1、当有效期大于等于 30 分钟时,调用获取 accessToken 接口返回老的 accessToken。
2、当有效期小于 30 分钟时,调用获取 accessToken 接口返回新的 accessToken。此时新老两个 accessToken 都有效。
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/auth/oauth2/getToken' \
--header 'Content-Type: application/json' \
--data-raw '
{
"clientID": "moka_Z1Y99DlokiOGXmw8",
"clientSecret": "ell2Wl2dwUQ7no75BAsLrwtUaPw8W0tAEoYXv13ibRoV",
"grantType": "client_credentials"
}'
响应样例
{
"code": 0,
"msg": "成功",
"data": {
"accessToken": "a-685ca366-45e8-4025-9825-9840280ecd39",
"expiresIn": 6824,
"tokenType": "Bearer"
}
}
错误响应样例
{
"code": 110020,
"msg": "unauthorized_client",
"data": {}
}
HTTP 请求
POST https://api.mokahr.com/api-platform/v1/auth/oauth2/getToken
Body参数
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
clientID | String | 是 | 应用唯一标识,联系CSM获取 |
clientSecret | String | 是 | 应用秘钥,联系CSM获取 |
grantType | String | 是 | 授权类型 ,值为client_credentials |
返回参数
字段 | 类型 | 描述 |
---|---|---|
code | integer | 0 :成功,其他:错误 |
msg | String | 错误信息 |
data | Object | |
data.accessToken | String | 接口访问凭证 |
data.tokenType | String | accessToken的类型目前只支持Bearer |
data.expiresIn | Number | accessToken过期时间,单位:秒 |
错误码
code | errorMessage | 错误描述 |
---|---|---|
110020 | unauthorized_client | clientID或者clienSecret无效,请联系CSM获取有效的clientID或者clienSecret |
调用业务接口
请求样例
curl --location --request PUT 'https://api.mokahr.com/api-platform/v2/departments' \
--header 'Authorization: Bearer <accessToken>' \
--header 'Content-Type: application/json' \
--data '{
"departments": [
{ "departmentCode": "ididid1", "name": "namenamename1", "parentCode": "ididid1", "sequence": 0 },
{ "departmentCode": "ididid2", "name": "namenamename2", "parentCode": "ididid2" },
{ "departmentCode": "ididid2", "name": "namenamename2", "parentCode": "ididid2", "type": 2 },
{ "departmentCode": "ididid3", "name": "namenamename3", "parentCode": "0"}
]
}'
调用业务接口时,需要在Header中增加Authorization参数,值为Bearer <accessToken>
。
以调用新增组织架构接口为例,请求示例如下:
主动推送说明(Webhooks)
什么是webhooks
Webhooks是当某种事件发生时,触发Moka主动推送数据的一种方式。当这些事件发生时,我们会发送一个HTTP POST请求到你设置的webhook endpoint URL。请求的body中会包含JSON格式的相关数据。由于webhook并不是访问Moka的API endpoint,所以并不需要API Key来进行HTTP basic auth的验证。 除了支持HTTP RESTful方式的接口,我们还支持WebService(SOAP)方式的接口。请参考下方说明。
如何设置webhooks
请提供给CSM一个公网可以访问的HTTPS的URL,作为接收webhook请求的地址。我们配置好后会提供给你一个签名密钥(signing key),用作验证,请妥善保存。 如果是WebService(SOAP)方式的接口,请提供给CSM一个可以获取WSDL的地址,并告知这是WebService(SOAP)的方式。
webhooks的安全保障(HTTP RESTful方式)
我们只支持HTTPS endpoint
由于Moka需要发送一些候选人信息到外部,其中可能包含敏感信息,我们要确保所有信息都是加密过的。虽然要求是HTTPS的endpoint,但是我们并不会去向CA验证证书的有效性,所以你可以提供self-signed证书。关于如何创建并使用self-signed证书。
签名验证
签名验证
```javascript import crypto from 'crypto';
/** * @description body签名 * @description 加密方式 HamcSha256 *
@description 加密结果为16进制 * @param {Object} body 接口参数 * @param
{String} signKey 加密使用的key */ function validateWebhook(body, signKey)
{ const signStr = JSON.stringify(body); console.log('sha256
signStr:', signStr);// sha256 signStr:
{"name":"test","email":"test@mokahr.com"} const sign =
crypto.createHmac('sha256', signKey).update(signStr).digest('hex');
console.log('sha256 sign:', sign);// sha256 sign:
7d6981ccf0d789e29e4f5940fe9a7e9385d8a211ad44ecaaba335fb14dd2a32d }
const body = { name: 'test', email: 'test@mokahr.com', } const
signKey = 'qwer';
validateWebhook(body, signKey); ```
我们通过对请求body签名的方式来确保请求来源的真实性(authentication,即请求来源于Moka)。签名生成的signature会被放置于请求url的query中随着请求内
容一起发送。请求URL如:
https://your-endpoint.com/moka?sign=d23da96c279366d66e2780d300d9b09d6b0ec09efbbe2c3fd84980d981e4b41a
验证方面,需要你用signing key作为密钥、请求body作为内容,通过HMAC-SHA256
来计算得出结果,并与请求URL中的signature进行比较。
数据加密
数据加密解密
如果您对数据的安全性要求更高,可以选择对传输的数据进行加密。我们的加密算法采用AES-256,16进制,加密模式为CBC。
我们只会对body中的data
字段进行加密,不包括id
,event
,triggeredAt
等字段。
如果需要数据加密,请联系CSM进行开通,并设置加密密钥。
加密密钥请妥善保存,如泄漏请及时联系我们进行处理。
接收webhooks(HTTP RESTful方式)
你需要配置你的服务器来接收Moka推送的webhook请求。请求方法为HTTP POST,内容为JSON格式。
每个事件都有一致的JSON结构,但是不同触发事件会有不同的data内容。JSON结构如下:
字段 | 类型 | 描述 |
---|---|---|
id | string | 唯一标识该请求的id |
event | string | 事件类型,如pushCandidate |
triggeredAt | timestamp | 触发时间 |
data | object | 实际数据。不同事件对应不同的结构和内容 |
目前提供的webhook事件如下:
事件类型 | 描述 |
---|---|
pushCandidate | 推送候选人信息。可应用场景如:待发送offer的候选人需要推送到OA/EHR系统中进行offer审批和发送,待入职候选人需要推送到EHR系统进行员工信息录入等等。 |
回复webhooks(HTTP RESTful方式)
成功接收并处理webhook请求后,返回2xx即可。Moka在接收到非2xx的结果时,会提示用户导入失败。 如果有错误信息,可以在body中返回,eg:{msg:'当前数据存在错误'}。
WebService(SOAP)方式
WebService方式的WebHooks与HTTP方式的类似,只是协议是基于SOAP的。要按照SOAP方式配置WebHooks,需要提供给CSM一个可以获取WSDL的地址。SOAP的方法名、参数、以及返回值需要与下面文档中描述的一致。 签名使用Bearer方式,可以参考 这里
SOAP方式的说明
除了使用HTTP RESTful方式的接口,也可以提供一个SOAP服务的接口,由Moka来发起调用。如果要使用SOAP的方式,需要把对应的WSDL地址提供给CSM。 SOAP方式的接口标准如下:
类型 | 描述 |
---|---|
方法名 | pushCandidate |
参数 | 候选人信息,数据类型为xml,字段的类型与json一致,请参考上面json部分的描述。 |
返回值 | true /false 表示成功或失败 |
跳转外部系统
如果OA/EHR想在MOKA中触发webhooks后想跳转到目标地址,只需要在 body的返回参数中加上redirectUrl参数即可。当MOKA收到类似的参数后会根据用户的设备去判断跳转PC端还是Mobile端。目前跳转只支持RESTful方式的webhooks。
字段 | 类型 | 描述 |
---|---|---|
redirectUrl | array | 外部链接 |
mobileUrl | string | 第三方系统移动端跳转外部系统临时链接,建议带token可直接登录 |
pcUrl | string | 第三方系统pc端跳转外部系统临时链接,建议带token可直接登录 |
返回样例
{
"redirectUrl": {
"mobileUrl": "https: //app.mokahr.com/m/interviews/356408095/intervi",
"pcUrl": "https://app.mokahr.com/m/interviews/356408095/intervi"
}
}
推送候选人信息
功能说明
推送候选人信息目前在Moka中是由""导入EHR"按钮点击触发,如下图:
REST方式的说明
推送数据样例:
{
"id": "f353e5ce-17e0-4783-bee4-4a6b734b20fe",
"event": "pushCandidate",
"triggeredAt": 1505296287,
"data": {
"applicationId": 12798,
"candidateId": 8030,
"moved_at": "2018-08-03T10:25:12.000Z",
"name": "邵旭冬",
"phone": "18600000000",
"email": "shaodong@example.com",
"gender": "男",
"created_at": "2018-08-03T10:25:12.000Z",
"birthYear": 1992,
"birthDate":"2020-03-17T00:00:00.000Z",
"nationality": "中国",
"experience": 7,
"ethnic": "汉族",
"forwardLocation": null,
"salary": "",
"aimSalary": null,
"certificateType": 1,
"citizenId": "410322199202152910",
"nativePlace": "北京市朝阳区",
"location": "北京",
"source": "其它渠道",
"sourceList": [
{
"name": "其它渠道",
"isBuiltin": true
}, {
"id": 4,
"name": "其它",
"isBuiltin": true
}
],
"sourceType": 1,
"academicDegree": "本科",
"lastSpeciality": "人力资源管理",
"married": "未婚",
"jobCommitment": "全职",
"hireMode": 1,
"finishedAt": "2019-08-23T16:00:00.000Z",
"resumeKey": "962bcac5-7671-4cbb-bbd7-376177703674.doc",
"stageName": "待入职",
"probation": null,
"lastCompany": null,
"operator": {
"name": "李明",
"email": "liming@example.com",
"phone": "18600000001",
"number": "A001"
},
"lastCompany": "郑州麦田伙伴科技有限公司",
"nativePlaceCode": 310107,
"nationalityCode": 3,
"genderCode": 0,
"academicDegreeCode": 7,
"ethnicCode": 2,
"job": {
"title": "黑龙江-资易通业务线-催收部-CEO",
"department": "运维部",
"departmentCode": "6758",
"parentDepartmentCode": "6836",
"departmentPath": "信息物流中心/运维部",
"competencyType": "产品类",
"jobId": "39d3d5c9-949e-40d4-8d4b-5cb247d327a8",
"jobDescription": "<p>职位表述职位表述</p>",
"customFields": [
{
"name": "职位-年月",
"value": "2019-01"
}
]
},
"jobManager": {
"name": "test",
"email": "11q1@qq.com",
"phone": "17611232222",
"employeeId": "01"
},
"officeweb365Url": "http://www.officeweb365Url.com",
"officeweb365PrintUrl": "http://www.officeweb365PrintUrl.com",
"resumePdfMeta": null,
"portraitUrl": "http://www.portraitUrl.com",
"resumeUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/962bcac5-7671-4cbb-bbd7-376177703674.doc?OSSAccessKeyId=LTAIoEXIQWCGUAZO&Expires=1540374892&Signature=M1KKiwjG240uTmqK4qSbmRAU+yI=",
"educationInfo": [
{
"startDate": "2011-09",
"endDate": "2015-06",
"now": false,
"school": "北京邮电大学",
"speciality": "土木工程",
"academicDegree": "本科"
}
],
"experienceInfo": [
{
"startDate": "2016-03",
"endDate": "2017-09",
"now": true,
"company": "北京有利科技有限公司",
"title": "高级Java工程师",
"summary": "工作职责XXX",
"reasonForLeaving": "离职原因XXX",
"underlingNumber": "5"
},
{
"startDate": "2015-05",
"endDate": "2016-03",
"now": false,
"company": "北京水果电商技术有限公司",
"title": "java工程师",
"summary": "工作职责XXX",
"reasonForLeaving": "离职原因XXX",
"underlingNumber": "5"
}
],
"customFields": [
{
"name": "身高",
"value": 175,
"section": "educationInfo",
"index": 0
},
{
"name": "联系人姓名",
"value": "张三",
"section": "紧急联系人",
"index": 0
},
{
"name": "联系人关系",
"value": "父亲",
"section": "紧急联系人",
"index": 0
},
{
"name": "联系人电话",
"value": "13012341234",
"section": "紧急联系人",
"index": 0
},
{
"name": "联系人邮箱",
"value": "zs@demo.com",
"section": "紧急联系人",
"index": 0
},
{
"name": "联系人姓名",
"value": "张小四",
"section": "紧急联系人",
"index": 1
},
{
"name": "联系人关系",
"value": "兄弟",
"section": "紧急联系人",
"index": 1
},
{
"name": "联系人电话",
"value": "130567585678",
"section": "紧急联系人",
"index": 1
},
{
"name": "联系人邮箱",
"value": "zxs@demo.com",
"section": "紧急联系人",
"index": 1
},
{
"name": "预计到岗日期",
"value": "2018-4-23T09:10:26.000Z",
"now": false,
"section": "basicInfo",
"index": 1
},
{
"name": "实习期",
"value": {
"startDate": "2004-01",
"endDate": "2005-01"
},
"now": true,
"section": "basicInfo",
"index": 1
}
],
"interviewers": [
{
"name": "李明",
"email": "liming@example.com",
"phone": "18600000001",
"round": 1,
"roundName": "初试",
"roundOtherName": {
"en-US": {
"name": "1st round"
}
},
"startTime": "2018-08-03T10:25:12.000Z",
"createdAt": "2018-08-03T10:20:12.000Z",
"locationCountry": "中国",
"locationCityId": 141129,
"locationAddress": "滨海镇小山村",
"resultName": "非常不满意",
"resultType": 0,
"feedback": "水平一般",
"feedbackTemplateResult": [
{
"type": 1,
"title": "题目1的标题",
"description": "题目1的描述",
"calcScoreType": "total",
"needReason": true,
"result": 9,
"scoreType": 1,
"subjects": [
{
"type": 1,
"title": "小题1的标题",
"description": "小题1的描述",
"result": 9,
"reason": "小题1的打分综述"
}
]
},
{
"type": 2,
"title": "题目2的标题",
"description": "题目2的描述",
"result": 1,
"subjects": [
{
"title": "小题1的标题",
"description": "小题1的描述",
"result": 1,
"options": ["选项1", "选项2"],
"reason": "小题1的打分综述"
}
]
},
{
"type": 3,
"title": "题目3的标题",
"description": "题目3的描述",
"subjects": [
{
"title": "小题1的标题",
"description": "小题1的描述",
"result": "技术很棒",
"reason": "小题1的打分综述"
}
]
}
]
},
{
"name": "王宏",
"email": "wanghong@example.com",
"phone": "18600000002",
"round": 2,
"roundName": "复试",
"roundOtherName": {
"en-US": {
"name": "2st round"
}
},
"startTime": "2018-08-03T10:25:12.000Z",
"createdAt": "2018-08-03T10:20:12.000Z",
"resultName": "满意",
"resultType": 1,
"feedback": "水平有限"
}
],
"interviewFeedbackUrl": "https://cdn.mokahr.com/e11d677-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q=",
"extendedInterviewers":[],
"extendedInterviewerFeedbackUrl":"",
"referrer": {
"name": "杨",
"email": "11111@mokahr.com",
"phone": "15001802222",
"number": "2019"
},
"headcountInfo": [
{
"id": 1,
"number": "A001",
"name": "紧急hc",
"status": "timeout"
}
],
"jobRanksInfo": [
{
"name": "初级",
"type": "类别1",
"level": 1
}
],
"offer": {
"approvalStatus": "APPROVED",
"salaryNumber": 8000,
"checkinDate": "2018-5-3",
"location": "北京市海淀区中关村方正国际大厦1001",
"creator": {
"name": "赵摩卡",
"email": "zhao@mokahr.com"
},
"finishedAt": "2018-4-23T09:10:26.000Z",
"customFields": [
{
"name": "职级",
"value": "P6"
}
],
"hcInfo": {
"id": 8,
"number": "005",
"name": "啦啦",
"status": "timeout"
},
"jobRankInfo": {
"level": 3,
"name": "总裁",
"type": null
},
"departmentName": "产品创新部",
"departmentCode": 30,
"parentDepartmentCode": 10,
"departmentPath": "产研部/产品创新部",
"offerLastSentAt": "2019-10-29T03:41:07.000Z"
},
"attachments": [
{
"name": "附件1",
"size": 1024,
"url": "https://cdn.mokahr.com/e11d677-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q=",
"type": "CANDIDATE_UPLOAD_ATTACHMENT",
"customFieldId": 1,
"customFieldName": "上传简历"
}
],
"offerAttachment": {
"url": "https://cdn.mokahr.com/1234567-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q="
},
"examReportLinks": [
{
"name": "考试结果链接",
"url": "https://t.cn/XXXXXX"
}
],
"examAttachments": [
{
"name": "考试结果",
"url": "https://cdn.mokahr.com/1234567-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q="
}
],
"projectInfo": [
{
"startDate": "2018-09",
"endDate": "2018-10",
"projectName": "测试项目",
"title": "工程师",
"projectDescript": "这是个测试的项目",
"responsibilities": "开发",
"now": false
}
],
"languageInfo": [
{
"language": "213",
"level": "一般",
"listenAndSpeak": "良好",
"readAndWrite": "熟练"
}
],
"ehrCustomFields": [
{
"name": "extendDepartmentId",
"value": 3
}
],
"ehrCandidateExternalLink": "https://cdn.mokahr.com/forward/candidate/info?access_token=93e0eb37-6a5c-4fe4-91db-0579a844fb51",
"label": [
{
"id": 76,
"label": "特别厉害"
},
{
"id": 62,
"label": "FisH"
}
],
"remarks": [
{
"creator": {
"name": "李国兴",
"phone": "18810380011",
"email": "guoxing123@trymoka.com",
"number": "1234"
},
"content": "这个候选人还不错@[李国兴](1) ",
"targets": [
{
"name": "李国兴",
"phone": "18810380011",
"email": "guoxing123@trymoka.com",
"number": "1234"
}
],
"is_private": 1,
"type": "人工填写",
"created_at": "2020-03-30T05:53:28.000Z"
}
],
"owners": {
"name": "张乔",
"phone": "15810253321",
"email": "zhangqiao@mokahr.com",
"employee_id": "220"
}
}
}
请求data
里的结构如下:
字段 | 类型 | 描述 |
---|---|---|
candidateId | integer | 候选人在Moka中的唯一id |
applicationId | integer | 候选人该申请在Moka中的唯一id |
name | string | 姓名 |
prefixPhone | string | 国家呼叫代码 |
phone | string | 电话 |
string | 邮箱 | |
gender | string | 性别 可选值: 男 女 |
created_at | string | 简历进入系统的时间 |
birthYear | integer | 出生年份,如1990 |
birthDate | string | 出生日期 |
ethnic | string | 民族 |
certificateType | integer | 证件类型 可选值: 1 :身份证2 :香港身份证3 :澳门身份证4 :台湾身份证5 :护照6 :其他证件 7 :港澳居民来往内地通行证8 :台湾居民来往内地通行证9 :外国人工作许可证10 :外国人居留许可证 |
citizenId | string | 证件号码 |
nationality | string | 国家/地区 |
nativePlace | string | 籍贯 |
experience | integer | 工作经验,0表示应届生,-1表示在校生,其他数字表示具体年限 |
portraitUrl | string | 候选人头像的图片地址,链接有效期为1小时 |
hireMode | integer | 招聘模式 可选值: 1 : 社招2 : 校招 |
finishedAt | string | 职位目标完成时间 |
industry | string | 所在行业 |
archived | boolean | 申请是否归档 |
archivedAt | string | 申请归档时间 |
archiveReasonId | number | 归档原因id |
archiveReasons | string | 归档原因 |
archiveReasonsDetails | string | 详细的归档原因 |
talentPoolsList | array | 候选人所属人才库信息 |
talentPoolsList[].talentPoolId | number | 人才库id |
talentPoolsList[].name | string | 人才库名称 |
talentPoolsList[].description | string | 人才库描述 |
source | string | 渠道,如拉勾 |
sourceList | Array | 渠道分级,数组按照一级渠道、二级渠道、三级渠道的顺序排列 |
sourceList[].id | integer | 渠道id(第一级渠道不存在id) |
sourceList[].name | string | 渠道名称 |
sourceList[].isBuiltin | boolean | 是否系统内置渠道 |
sourceType | integer | 来源 可选值: 1 :主动搜索,2 :主动投递,3 :人才推荐 |
location | string | 所在地,如北京 |
lastCompany | string | 最近公司 可选值: null :无最近公司xxx :任职公司名称 |
academicDegree | string | 学历,以下值之一:本科,硕士,博士,高中,大专,中专,初中及以下,MBA,其他 |
lastSpeciality | string | 最近毕业专业 |
married | string | 婚姻状态,以下值之一:'已婚', '未婚', '离异', '丧偶', 'CIVILUNION', 'COHABITATING', 'MARRIED', 'DIVORCED', 'ENGAGED', 'SEPARATED', 'SINGLE', 'WIDOWED' |
nativePlaceCode | integer | 籍贯编码(籍贯为空时为null,编码详情见附件) |
nationalityCode | integer | 国籍编码(国籍为空时为null,编码详情见附件) |
genderCode | integer | 性别编码(性别为空时为null,编码详情见附件) |
academicDegreeCode | integer | 学历编码(学历为空时为null,编码详情见附件) |
ethnicCode | integer | 民族编码(民族为空时为null,编码详情见附件) |
personal | string | 自我描述 |
salary | string | 当前工资 |
forwardLocation | string | 期望城市 |
aimSalary | string | 期望工资 |
personalInterests | string | 兴趣爱好 |
political | string | 政治面貌 |
educationInfo[] | array | 教育经历 |
educationInfo[].startDate | string | 学校开始时间,最多精确到月。如2010-09 , 2008 |
educationInfo[].endDate | string | 学校结束时间,最多精确到月。如2010-09 , 2008 |
educationInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
educationInfo[].school | string | 学校名称 |
educationInfo[].speciality | string | 专业名称 |
educationInfo[].academicDegree | string | 学历,以下值之一:本科,硕士,博士,高中,大专,中专,初中及以下,MBA,其他 |
experienceInfo[] | array | 工作经历 |
experienceInfo[].startDate | string | 工作开始时间,最多精确到月。如2010-09 , 2008 |
experienceInfo[].endDate | string | 工作结束时间,最多精确到月。如2010-09 , 2008 |
experienceInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
experienceInfo[].company | string | 公司名称 |
experienceInfo[].title | string | 职位名称 |
experienceInfo[].department | string | 部门 |
experienceInfo[].salary | string | 薪资 |
experienceInfo[].summary | string | 工作职责 |
experienceInfo[].reasonForLeaving | string | 离职原因 |
experienceInfo[].underlingNumber | string | 下属人数 |
experienceInfo[].type | string | 公司类型 |
experienceInfo[].location | string | 工作地点 |
experienceInfo[].size | string | 公司规模 |
awardInfo[] | array | 获奖经历 |
awardInfo[].awardDate | datetime | 获奖时间 |
awardInfo[].awardName | string | 获奖名称 |
resumeUrl | string | 简历下载链接,HTTP GET请求该URL即可下载简历原文件,此链接有时效性,过期时间为48小时,需要收到请求后尽快下载在服务器保存 |
job | object | 应聘职位信息 |
job.jobId | string | 职位ID |
job.title | string | 职位名称 |
job.department | string | 职位所在部门 |
job.departmentPath | string | 职位所在部门的完整路径,从上级到下级,以/ 分割 |
job.departmentCode | string | 部门code |
job.parentDepartmentCode | string | 父级部门code |
job.competencyType | string | 职能类型 |
job.jobDescription | string | 工作描述 |
job.customFields | array | 职位自定义字段 |
job.customFields[].name | string | 职位自定义字段名称 |
job.customFields[].value | string | 职位自定义字段值 |
interviewers[] | array | 参与候选人此次申请的面试官 |
interviewers[].name | string | 面试官姓名 |
interviewers[].email | string | 面试官邮箱 |
interviewers[].phone | string | 面试官电话 |
interviewers[].id | number | 面试id |
interviewers[].groupId | string | 面试组id |
interviewers[].interviewType | string | 面试类型。现场面试、电话面试、视频面试 |
interviewers[].attendStatus | string | 候选人是否接受面试 候选人未反馈 , 候选人未到场 , 候选人已拒绝 , 候选人已接受 |
interviewers[].cancelReason | string | 面试取消原因 |
interviewers[].participated | string | 面试反馈分类 面试未进行 , 已填写反馈 , 未填写反馈 |
interviewers[].status | string | 面试状态 可选值 已取消 , 未结束 , 已结束 |
interviewers[].round | integer | 面试轮次 可选值 1 : 初试2 : 复试3 : 终试 等 |
interviewers[].roundName | string | 面试轮次名称,初试 ,复试 ,终试 等 |
interviewers[].roundOtherName | object | 面试轮次其它语言的名称 |
interviewers[].startTime | string | 面试开始时间 |
interviewers[].createdAt | string | 面试创建时间 |
interviewers[].locationCountry | string | 面试地点(国家) |
interviewers[].locationCityId | number | 面试地点(城市id) |
interviewers[].locationAddress | string | 面试地点(详细地址) |
interviewers[].result Deprecated | integer | 面试结果 可选值: 1 :非常不满意2 :不满意3 ;满意4 :非常满意 |
interviewers[].resultName | string | 面试反馈结果 |
interviewers[].resultType | integer | 面试反馈结果类型 可选值: 0 : 不满意 1 : 满意 |
interviewers[].feedback | string | 面试反馈内容 |
interviewers[].feedbackTemplateResult | array | 面试评价表的信息 |
interviewers[].feedbackTemplateResult[].type | number | 题目类型 可选值: 1 :打分题2 :单选3 :描述4 :多选 |
interviewers[].feedbackTemplateResult[].title | string | 题目标题 |
interviewers[].feedbackTemplateResult[].description | string | 题目描述 |
interviewers[].feedbackTemplateResult[].result | number | 总分 |
interviewers[].feedbackTemplateResult[].calcScoreType | string | 可选值:avg : 计算平均分total : 计算总分 (只在type 为1时有效) |
interviewers[].feedbackTemplateResult[].scoreType | number | 可选值:5 表示5分制10 表示10分制(只在type 为1时有效) |
interviewers[].feedbackTemplateResult[].needReason | string | 是否需要打分综述(只在type 为1时有效) |
interviewers[].feedbackTemplateResult[].subjects | array | 题目下各个小题的信息 |
interviewers[].feedbackTemplateResult[].subjects[].type | number | 题目类型 可选值: 1 : 打分题, 2 : 单选题, 3 : 描述题, 4 : 多选题 |
interviewers[].feedbackTemplateResult[].subjects[].title | string | 小题标题 |
interviewers[].feedbackTemplateResult[].subjects[].description | string | 小题描述 |
interviewers[].feedbackTemplateResult[].subjects[].result | number | 小题结果:打分题为所选分数的数值;单选题为选项的索引值,从0开始;描述题为描述的字符串。题目type=2单选题,返回值为 "result": 0,题目type=4多选题 返回值为"result": [1,2] |
interviewers[].feedbackTemplateResult[].subjects[].reason | string | 打分综述 |
interviewers[].feedbackTemplateResult[].subjects[].options | string | 选项字符串数组(只在type 为2时有效) |
interviewFeedbackUrl | string | 面试反馈汇总文件(仅包含该申请在当前申请下产生的面试反馈数据),下载链接,HTTP GET请求该URL即可下载面试反馈汇总文件,此链接有时效性,过期时间为1小时,需要收到请求后尽快下载在服务器保存 |
extendedInterviewers[] | array | 参与候选人此次申请面试官的无面试反馈信息,具体字段参考interviewers |
extendedInterviewerFeedbackUrl | string | 面试反馈汇总(如果该申请是从其他岗位推荐产生的,面试反馈包含在其他岗位的申请所产生的面试反馈)文件下载链接,HTTP GET请求该URL即可下载面试反馈汇总文件,此链接有时效性,过期时间为48小时,需要收到请求后尽快下载在服务器保存 |
ehrCustomFields[] | array | CSM后台配置的ehr自定义导出字段集合 |
ehrCustomFields[].name | string | 自定义字段名 |
ehrCustomFields[].value | any | 自定义字段值 |
ehrCandidateExternalLink | string | 候选人详情的链接,可以直接在浏览器中打开查看,该链接有效期默认14天,最大可设置365天 |
idCardFrontList | array | 上传身份证照片(人像面) |
idCardBackList | string | 上传身份证照片(国徽面) |
idCardSignOrganization | string | 身份证签发机关 |
idCardValidity | string | 证件有效期 |
customAttachmentList | obj | 候选人标准简历的所有附件 |
customAttachmentList.customUpload+customId | ary | 候选人标准简历的附件的key由customUpload(固定字符串)+customId组成 |
customAttachmentList.customUpload+customId[].attachmentName | string | 附件名称 |
customAttachmentList.customUpload+customId[].attachmentSize | number | 附件大小(byte) |
customAttachmentList.customUpload+customId[].candidateId | number | 候选人id |
customAttachmentList.customUpload+customId[].customId | number | 自定义字段id |
customAttachmentList.customUpload+customId[].downloadUrl | string | 下载地址24小时失效 |
customAttachmentList.customUpload+customId[].createdAt | string | 附件创建时间(时间戳格式) |
referrer | object | 推荐人信息 |
referrer.name | string | 推荐人姓名 |
referrer.email | string | 推荐人邮箱 |
referrer.phone | string | 推荐人电话 |
referrer.number | string | 推荐人工号 可选值: : null :无工号xxx :工号 |
operator | object | 操作人信息 |
operator.name | string | 操作人姓名 |
operator.email | string | 操作人邮箱 |
operator.phone | string | 操作人电话 |
operator.number | string | 操作人工号 |
jobRanksInfo[].name | string | 职位级别名称 |
jobRanksInfo[].type | string | 职位级别类型 |
jobRanksInfo[].level | string | 职位级别等级 |
headcountInfo[].id | number | Headcount ID |
headcountInfo[].number | string | Headcount 编号 |
headcountInfo[].name | string | Headcount 名称 |
headcountInfo[].status | string | Headcount 状态 |
customFields[] | array | 候选人自定义字段,仅包含标准简历中设置的自定义字段 |
customFields[].name | string | 候选人自定义字段名称 |
customFields[].value | string | 候选人自定义字段值。对于是否题类型 可选值: 1 :是0 :否。 |
customFields[].now | boolean | 当自定义字段是时间段时存在该字段,标识结束时间是否为“至今”。结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
customFields[].section | string | 自定义字段所在的模块名称,模块可以是内置模块(如experienceInfo)或者自定义模块(如紧急联系人) |
customFields[].index | string | 对于experienceInfo、educationInfo或者自定义模块(如紧急联系人)等存在多条数据的模块,index 表示这个字段是第几条数据的自定义字段信息 |
customFields[].codes | string | 选择题自定义code(仅对有code的选择题生效) |
offer | object | offer信息,当未创建offer时,offer整体返回null |
offer.createdAt | string | offer创建时间。日期格式为:ISO8601 |
offer.status | string | offer状态 可选值: notCreated :未创建: pending : 未发送: sent : 待接受: accepted :已接收rejected :已拒绝 |
offer.approvalStatus | string | 审批状态 可选值: UNINITIATED :未发起INPROGRES : 审批中APPROVED : 已通过REJECTED : 已驳回RECALLED : 已撤回 |
offer.salaryNumber | number | 月薪标准 |
offer.checkinDate | string | 预计入职时间 |
offer.location | string | 入职地点 |
offer.creator | object | offer创建人信息 |
offer.creator.name | string | offer创建人姓名 |
offer.creator.email | string | offer创建人邮箱 |
offer.finishedAt | string | offer接受时间。日期格式为:ISO8601 |
offer.customFields | array | offer自定义字段 |
offer.customFields[].name | string | offer自定义字段名称 |
offer.customFields[].value | string | offer自定义字段值 |
offer.customFields[].codes | string | 选择题自定义code(仅对有code的选择题生效) |
offer.attachmentList | array | offer附件列表 |
offer.attachmentList[].name | string | offer附件名称 |
offer.attachmentList[].size | number | offer附件大小 |
offer.attachmentList[].downloadUrl | string | offer附件下载链接,48小时有效 |
offer.attachmentList[].attachmentType | number | offer附件类型 可选值: 0 :发送给候选人的附件 1 .发送给审批人的附件2 :offer附件 |
offer.hcInfo | object | offer选中的headCount信息 |
offer.hcInfo.id | number | offer选中的Headcount ID |
offer.hcInfo.number | string | offer选中的Headcount 编号 |
offer.hcInfo.name | string | offer选中的Headcount 名称 |
offer.hcInfo.status | string | offer选中的Headcount 状态 |
offer.jobRankInfo | object | offer选中的职位级别信息 |
offer.jobRankInfo.type | string | offer选中的职位级别 类型 |
offer.jobRankInfo.level | string | offer选中的职位等级 |
offer.jobRankInfo.name | string | offer选中的职位级别 名称 |
offer.departmentName | string | 入职部门名称 |
offer.departmentCode | number | 入职部门code |
offer.parentDepartmentCode | number | 入职部门上级部门code |
offer.departmentPath | string | 入职部门完整路径 |
offer.offerLastSentAt | string | 末次发送offer时间 |
offer.offerAttachmentDownloadUrl | string | offer生成的附件下载URL,有效期48个小时 |
attachments | array | 候选人的所有附件 |
attachments[].name | string | 候选人附件的文件名 |
attachments[].applyFormId | number | 登记表模板ID |
attachments[].size | integer | 候选人附件的文件大小 |
attachments[].url | string | 候选人附件的下载地址 |
attachments[].customFieldId | integer | 自定义附件字段ID |
attachments[].customFieldName | string | 自定义附件字段名称 |
attachments[].type | string | 候选人附件的类型 可选值: CANDIDATE_UPLOAD_ATTACHMENT 候选人上传UPLOAD_PORTRAIT 候选人头像HR_UPLOAD_ATTACHMENT HR手动上传HM_UPLOAD_ATTACHMENT 用人经历端手动上传INTERVIEW_ACCEPT 候选人接受面试生成的登记表附件INTERVIEW_SIGNIN 候选人面试签到生成的登记表附件OFFER_ACCEPT 候选人接受OFFER生成的登记表附件MERGE_APPLICATION_ATTACHMENT 候选人合并产生的附件INVITE_UPDATE_RESUME 邀请候选人更新简历生成的登记表 |
offerAttachment | object | 候选人offer相关附件 默认无此字段,如果需要请联系您的CMS, 获取候选人接口开关开启也不会有该字段 |
offerAttachment.url | string | 候选人offer相关附件下载地址 链接地址有效期为48小时 |
examReportLinks | array | 候选人考试/测评结果链接 |
examReportLinks[].name | string | 候选人考试/测评名 |
examReportLinks[].url | string | 候选人考试/测评结果链接 |
examReportLinks[].type | string | 代表:exam或者evaluation |
examReportLinks[].result | string | 候选人考试/测评结果的结果 |
examReportLinks[].detailResult | string | 候选人考试/测评的详细结果 |
examAttachments | array | 候选人考试/测评相关附件 |
examAttachments[].name | string | 候选人考试/测评相关附件文件名 |
examAttachments[].url | string | 候选人考试/测评相关附件下载地址 链接地址有效期为1小时 |
examAttachments[].result | string | 候选人考试/测评结果的结果 |
examAttachments[].detailResult | string | 候选人考试/测评详细结果 |
projectInfo | array | 项目经验 |
projectInfo[].startDate | string | 项目开始时间,最多精确到月。如2010-09 , 2008 |
projectInfo[].endDate | string | 项目结束时间,最多精确到月。如2010-09 , 2008 |
projectInfo[].projectName | string | 项目名称 |
projectInfo[].title | string | 担任> 职责 |
projectInfo[].projectDescript | string | 项目描述 |
projectInfo[].responsibilities | string | 项目中职责 |
projectInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
languageInfo | array | 语言能力 |
languageInfo[].language | string | 语言类型 |
languageInfo[].level | string | 掌握程度 |
languageInfo[].listenAndSpeak | string | 听说能力 |
languageInfo[].readAndWrite | string | 读写能力 |
stageName | string | 阶段名字 |
jobManager | object | 职位管理员 |
jobManager.name | string | 职位负责人名字 |
jobManager.phone | string | 职位负责人电话 |
jobManager.email | string | 职位负责人邮箱 |
jobManager.number | string | 职位负责人工号 |
jobManager.employeeId | string | 职位负责人工号(已废弃) |
jobAssistants | array | 职位协助人 |
jobAssistants[].name | string | 职位协助人名字 |
jobAssistants[].phone | string | 职位协助人电话 |
jobAssistants[].email | string | 职位协助人邮箱 |
jobAssistants[].employeeId | string | 职位协助人工号(已废弃) |
label | array | 候选人标签 |
label[].id | number | 标签id |
label[].label | string | 标签名称 |
remarks | array | 候选人备注 |
remarks[].creator | object | 备注的创建者信息 |
remarks[].creator.name | object | 备注的创建者名称 |
remarks[].creator.phone | object | 备注的创建者手机号吗 |
remarks[].creator.email | object | 备注的创建者邮箱 |
remarks[].creator.number | object | 备注的创建者工号 |
remarks[].content | string | 备注的内容 |
remarks[].targets | array | 备注的@的人员信息,格式同创建者信息 |
remarks[].is_private | number | 备注是不是私密,1:私密0:非私密 |
remarks[].type | string | 备注类型:人工填写 |
remarks[].created_at | string | 备注创建时间 |
owners | object | 候选人所有者 |
owners.name | string | 候选人所有者名字 |
owners.phone | string | 候选人所有者电话 |
owners.email | string | 候选人所有者邮箱 |
owners.employeeId | string | 候选人所有者工号 |
survey | array | 背调内容 |
survey[].name | string | 背调名称 |
survey[].date | string | 背调日期 |
survey[].result | string | 背调结果 |
survey[].surveyAttachmentsUrl | string | 背调报告链接 |
survey[].surveyAttachmentName | string | 背调附件名称 |
survey[].surveyAttachments[] | array | 背调多附件(新版的单附件和多附件都在这个附件集合,原来的单附件结果只做历史兼容使用) |
survey[].surveyAttachments[].surveyAttachmentsUrl | string | 背调报告链接 |
survey[].surveyAttachments[].surveyAttachmentName | string | 背调附件名称 |
practiceInfo[] | array | 实习经历 |
practiceInfo[].startDate | string | 实习开始时间 |
practiceInfo[].endDate | string | 实习结束时间 |
practiceInfo[].company | string | 公司名称 |
practiceInfo[].title | string | 职位名称 |
SOAP候选人信息参数样例:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<event>pushCandidate</event>
<id>f353e5ce-17e0-4783-bee4-4a6b734b20fe</id>
<triggeredAt>1505296287</triggeredAt>
<data>
<academicDegree>本科</academicDegree>
<applicationId>12798</applicationId>
<birthYear>1992</birthYear>
<candidateId>8030</candidateId>
<customFields>
<element>
<index>0</index>
<name>身高</name>
<section>educationInfo</section>
<value>175</value>
</element>
<element>
<index>0</index>
<name>联系人姓名</name>
<section>紧急联系人</section>
<value>张三</value>
</element>
<element>
<index>0</index>
<name>联系人关系</name>
<section>紧急联系人</section>
<value>父亲</value>
</element>
<element>
<index>0</index>
<name>联系人电话</name>
<section>紧急联系人</section>
<value>13012341234</value>
</element>
<element>
<index>0</index>
<name>联系人邮箱</name>
<section>紧急联系人</section>
<value>zs@demo.com</value>
</element>
<element>
<index>1</index>
<name>联系人姓名</name>
<section>紧急联系人</section>
<value>张小四</value>
</element>
<element>
<index>1</index>
<name>联系人关系</name>
<section>紧急联系人</section>
<value>兄弟</value>
</element>
<element>
<index>1</index>
<name>联系人电话</name>
<section>紧急联系人</section>
<value>130567585678</value>
</element>
<element>
<index>1</index>
<name>联系人邮箱</name>
<section>紧急联系人</section>
<value>zxs@demo.com</value>
</element>
</customFields>
<educationInfo>
<element>
<academicDegree>本科</academicDegree>
<endDate>2015-06</endDate>
<school>北京邮电大学</school>
<speciality>土木工程</speciality>
<startDate>2011-09</startDate>
</element>
</educationInfo>
<email>shaodong@example.com</email>
<experienceInfo>
<element>
<company>北京有利科技有限公司</company>
<endDate>2017-09</endDate>
<startDate>2016-03</startDate>
<title>高级Java工程师</title>
</element>
<element>
<company>北京水果电商技术有限公司</company>
<endDate>2016-03</endDate>
<startDate>2015-05</startDate>
<title>java工程师</title>
</element>
</experienceInfo>
<gender>男</gender>
<headcountInfo>
<element>
<id>1</id>
<number>A001</number>
</element>
</headcountInfo>
<interviewFeedbackUrl>https://cdn.mokahr.com/e11d677-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q%3D</interviewFeedbackUrl>
<interviewers>
<element>
<email>liming@example.com</email>
<feedback>水平一般</feedback>
<feedbackTemplateResult>
<element>
<calcScoreType>total</calcScoreType>
<description>题目1的描述</description>
<needReason>true</needReason>
<scoreType>5</scoreType>
<subjects>
<element>
<description>小题1的描述</description>
<result>10</result>
<title>小题1的标题</title>
</element>
</subjects>
<title>题目1的标题</title>
<type>1</type>
</element>
<element>
<description>题目2的描述</description>
<subjects>
<element>
<description>小题1的描述</description>
<options>
<element>选项1</element>
<element>选项2</element>
</options>
<result>1</result>
<title>小题1的标题</title>
</element>
</subjects>
<title>题目2的标题</title>
<type>2</type>
</element>
<element>
<description>题目3的描述</description>
<subjects>
<element>
<description>小题1的描述</description>
<result>技术很棒</result>
<title>小题1的标题</title>
</element>
</subjects>
<title>题目3的标题</title>
<type>3</type>
</element>
</feedbackTemplateResult>
<name>李明</name>
<phone>18600000001</phone>
<result>1</result>
<round>1</round>
<roundName>初试</roundName>
</element>
<element>
<email>wanghong@example.com</email>
<feedback>水平有限</feedback>
<name>王宏</name>
<phone>18600000002</phone>
<result>2</result>
<round>2</round>
<roundName>复试</roundName>
</element>
</interviewers>
<job>
<department>研发部</department>
<title>java工程师</title>
</job>
<jobRanksInfo>
<element>
<level>1</level>
<name>初级</name>
<type>类别1</type>
</element>
</jobRanksInfo>
<location>北京</location>
<married>未婚</married>
<name>邵旭冬</name>
<offer>
<checkinDate>2018-5-3</checkinDate>
<creator>
<email>zhao@mokahr.com</email>
<name>赵摩卡</name>
</creator>
<customFields>
<element>
<name>职级</name>
<value>P6</value>
</element>
</customFields>
<finishedAt>2018-4-23T09:10:26.000Z</finishedAt>
<location>北京市海淀区中关村方正国际大厦1001</location>
<lastCompany>郑州麦田伙伴科技有限公司</lastCompany>
<salaryNumber>8000</salaryNumber>
</offer>
<operator>
<email>liming@example.com</email>
<name>李明</name>
<phone>18600000001</phone>
<number>A001</number>
</operator>
<phone>18600000000</phone>
<referrer>
<email>11111@mokahr.com</email>
<name>杨</name>
<phone>18600000001</phone>
<number>2019</number>
</referrer>
<resumeUrl>https://cdn.mokahr.com/55142a64-ab10-4292-ac9e-93af856fa001.doc?OSSAccessKeyId=LTAIoEXIQWCGUAZO&Expires=1505300229&Signature=fiD81pNH8HTUnu1FvhsnjCvjK6Q%3D</resumeUrl>
<source>其他</source>
<sourceType>1</sourceType>
</data>
</root>
附件:
推送面试信息
推送添加面试信息目前在Moka中是由添加面试完成确认按钮点击时触发
推送数据样例:
{
"id":"f353e5ce-17e0-4783-bee4-4a6b734b20fe",
"event":"createInterviewsInfo",
"triggeredAt":1505296287,
"data":{
"applicationIds":[
200006263
],
"interviewType":3,
"createTime":1597391796747,
"creator":{
"id":"200000217",
"name":"张武杰",
"email":"z@mokahr.com",
"phone":"17610230001"
},
"interviews":[
{
"event_id":"12345612",
"applicationIds":[
200006263
],
"roomId":1,
"roomName":"会议室A",
"address":{
"id":1524,
"country":"中国",
"cityId":310109,
"address":"Xxx城市xx县xx小区"
},
"startTime":1597392000000,
"endTime":1597393800000,
"interviewerIds":[
200000217
],
"interviewee":[
{
"id":200006257,
"name":"zwj5",
"email":"z@mokahr.com",
"phone":"17610230000",
"jobId":"6c465f4b-e791-423f-a053-5e76e04e5f29",
"jobTitle":"java"
}
],
"interviewer":[
{
"id":200000217,
"name":"张武杰",
"email":"z@mokahr.com",
"phone":"17610230000"
}
]
}
]
}
}
请求data
里的结构如下:
字段 | 类型 | 描述 |
---|---|---|
id | array | 唯一id |
event | array | 事件类型 createInterviewsInfo:创建面试信息 updateInterviewsInfo:更新面试信息 deleteInterviewsInfo:删除面试信息 |
triggeredAt | array | 触发时间 |
data | object | 面试信息 |
data.applicationIds | array | 申请id |
data.interviewType | integer | 面试类型。1:现场面试 2:集体面试 3:电话面试 4:视频面试 5:叫号面试 |
data.createTime | integer | 时间戳 |
data.creator | object | 创建面试人信息 |
data.creator.id | string | 创建面试人id |
data.creator.name | string | 创建面试人姓名 |
data.creator.email | string | 创建面试人邮箱 |
data.creator.phone | string | 创建面试人电话 |
data.interviews | array | 面试信息 |
data.interviews[].event_id | array | 面试信息唯一id |
data.interviews[].applicationIds | array | 申请id |
data.interviews[].roundId | integer | 轮次id |
data.interviews[].roundName | string | 轮次姓名 |
data.interviews[].roomId | integer | 面试房间id |
data.interviews[].roomName | string | 面试房间名称 |
data.interviews[].address | object | 面试地点信息 |
data.interviews[].address.id | integer | 面试地点id |
data.interviews[].address.country | string | 面试地点 - 国家 |
data.interviews[].address.cityId | integer | 面试地点 - 城市id |
data.interviews[].address.address | string | 面试地点 - 具体地点 |
data.interviews[].startTime | integer | 面试开始时间 (时间戳) |
data.interviews[].endTime | integer | 面试结束时间 (时间戳) |
data.interviews[].interviewerIds | array | 面试官id |
data.interviews[].interviewee | array | 候选人信息 |
data.interviews[].interviewee[].id | integer | 候选人id |
data.interviews[].interviewee[].name | string | 候选人姓名 |
data.interviews[].interviewee[].email | string | 候选人邮箱 |
data.interviews[].interviewee[].phone | string | 候选人电话 |
data.interviews[].interviewee[].jobId | string | 候选人面试职位id |
data.interviews[].interviewee[].jobTitle | string | 候选人面试职位名称 |
data.interviews[].interviewee[].intervieweeUrl | string | 候选人链接 |
data.interviews[].interviewer | array | 面试官信息 |
data.interviews[].interviewer[].id | integer | 面试官id |
data.interviews[].interviewer[].name | string | 面试官姓名 |
data.interviews[].interviewer[].email | string | 面试官邮箱 |
data.interviews[].interviewer[].phone | string | 面试官电话 |
data.interviews[].interviewer[].interviewerUrl | string | 面试官链接 |
返回body的JSON数据如下
字段 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码,0:成功 非0代表失败 |
msg | String | 响应信息 |
data | Object | 返回数据 |
公共API
上传附件
上传附件接口
请求样例
$ https://api.mokahr.com/api-platform/v1/file/upload \
-u 'your_api_key:' \
-X POST \
-H 'Content-Type: multipart/form-data' \
-F 'upload_file=@/path/to/uploads/upload_file.txt'
返回样例
{
"data": {
"key": "xxx"
},
"code": 200,
"msg": ""
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/file/upload
请求body参数(multipart/form-data方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
upload_file | 是 | file | 上传文件 |
返回body的JSON数据如下
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
data | Object | 返回数据 |
data.key | String | 唯一key |
获取开关状态
获取开关状态接口
请求样例
$ https://api.mokahr.com/api-platform/v1/public/switchStatus \
-u 'your_api_key:' \
-u 'your-api-key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"type": "",
"belongOrgId": "",
"hireMode": 0
}'
返回样例
{
"data": {
"belongOrgId": "vipshophr-test",
"content": "false",
"hireMode": 0,
"orgId": "vipshophr-test",
"type": "send_offer_force_cc",
"version": "1.0"
},
"code": 0,
"msg": ""
}
HTTP请求
POST hhttps://api.mokahr.com/api-platform/v1/public/switchStatus
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
type | 是 | string | config type 目前只支持 send_offer_force_cc |
belongOrgId | 否 | string | 所属子公司id,必须是那些change_dept_id=0的公司id; 如果不传默认采用orgId |
hireMode | 否 | integer | 招聘模式(社招1 ,校招2) |
返回body的JSON数据如下
字段 | 类型 | 描述 |
---|---|---|
code | string | 0 :成功 非0代表错误 |
msg | string | 接口返回值说明 |
data | Object | 返回数据 |
data.type | String | 查询的类型 |
data.content | String | 返回内容 |
data.belongOrgId | String | 所属子公司id,必须是那些change_dept_id=0的公司id; 如果不传默认采用orgId |
data.hireMode | String | 招聘模式(社招1 ,校招2) |
data.orgId | String | 租户 id |
创建操作记录
创建操作记录接口
请求样例
$ curl https://api.mokahr.com/api-platform/history/create \
-u 'your_api_key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"email": "zhangshengnan@mokahr.com",
"type": "创建职位",
"data": "创建了职位 测试工程师2019_01_07_15_31_29"
}'
返回样例
{
"code": 200,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/history/create
请求body参数JSON数据如下
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
是 | string | 用户邮箱 | |
type | 是 | string | 操作类型 |
data | 是 | string | 操作详细信息 |
返回body的JSON数据如下
字段 | 类型 | 描述 |
---|---|---|
code | integer | 200 :成功 |
msg | string | 接口返回值说明 |
data | object |
招聘官网API
此部分API主要用于获取招聘官网中的职位信息,以及投递简历到一个职位。
获取官网列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/website/list \
-X GET
返回样例
{
"code": 200,
"msg": "success",
"data": [
{
"id": 29189,
"name": "系统默认社会招聘门户",
"type": "social",
"creator": {
"email": "系统"
}
},
{
"id": 29190,
"name": "系统默认校园招聘门户",
"type": "campus",
"creator": {
"email": "系统"
}
},
{
"id": 29191,
"name": "内部推荐",
"type": "recommend",
"creator": {
"email": "系统"
}
}
]
}
获取企业在招聘官网模块处所有创建的官网信息列表
HTTP请求
GET https://api.mokahr.com/api-platform/v1/website/list
请求参数无
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
data[].id | string | 官网id |
data[].name | string | 官网名称 |
data[].type | string | 官网类型 可选值: camp :校招 social :社招 recommend :内推(内推默认不区分社校招) recommend_campus :校招内推 recommend_social :社招内推 |
data[].creator | object | 创建人信息 |
data[].creator.id | number | 创建人在moka的用户id |
data[].creator.email | string | 创建人邮箱 |
获取职位列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/jobs/moka\?mode\=social \
-X GET
返回样例
{
"total": 10000,
"jobs": [
{
"id": "1234",
"title": "网页设计师",
"status": "open",
"description": "<div><b>我们是谁</b><div>",
"minSalary": 1000,
"maxSalary": 9000,
"minExperience": 3,
"maxExperience": 5,
"number": 10,
"commitment": "全职",
"education": "本科",
"closedAt": "2017-10-01T22:00:00.000Z",
"openedAt": "2017-09-01T21:00:00.000Z",
"prior": 1,
"hireMode": 1,
"mjCode": "MJ001",
"finishedAt": "2019-08-23T16:00:00.000Z",
"department": {
"id": 1,
"name": "技术部"
},
"locations": [
{
"id": 1,
"province": "广东",
"city": "深圳市",
"area": "福田区",
"country": "中国",
"address": "车公庙泰然大厦C座22楼"
}
],
"zhineng": {
"id": 1,
"name": "技术类"
},
"customFields": [
{
"id": 1,
"name": "薪资范围",
"value": "100-200",
"type": "string_info"
}
]
}
]
}
获取招聘官网上的职位列表
HTTP请求
GET https://api.mokahr.com/api-platform/v1/jobs/{orgId}
请求URL参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 每个企业客户对应的唯一id |
请求query参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
mode | 是 | string | 招聘模式 可选值: social :社招 campus :校招 |
keyword | 否 | string | 搜索关键字 |
limit | 否 | string | 分页用的每页条数,默认30 |
offset | 否 | string | 分页用的偏移量,所示索引从0开始 |
locationIds | 否 | array | 通过地址列表接口返回的地址id,比如[1,2,3] 详细参数见职位地址 |
zhinengId | 否 | number | 通过职能列表接口返回的地址id 详细参数见职位职能 |
siteId | 否 | number | 官网id |
commitment | 否 | number | 职位性质 可选值: 1 :全职 2 :兼职 3 :实习 4 :其他 |
updatedFromAt | 否 | string | 职位按更新时间筛选的起始时间,比如2020-06-01 |
updatedEndAt | 否 | string | 职位按更新时间筛选的截止时间,比如2020-07-01 |
departmentCodes | 否 | array | 职位所属部门编号列表 |
status | 否 | string | 职位状态 可选值: open :开启 closed :关闭 pause :暂停 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
total | integer | 职位总数量 |
jobs[] | array | 职位列表 |
jobs[].id | string | 职位id |
jobs[].title | string | 职位名称 |
jobs[].status | string | 职位状态 可选值: open :开启 closed :关闭 pause :暂停 |
jobs[].description | string | 职位描述 |
jobs[].mjCode | string | 职位编号 |
jobs[].minSalary | integer | 最低薪资,单位:千(K) |
jobs[].maxSalary | integer | 最高薪资,单位:千(K) |
jobs[].minExperience | integer | 最低工作经验 |
jobs[].maxExperience | integer | 最高工作经验 |
jobs[].number | integer | 招聘人数 |
jobs[].commitment | string | 职位性质 可选值: 全职 兼职 实习 其他 |
jobs[].education | string | 学历要求 |
jobs[].closedAt | string | 职位关闭时间。日期格式为:ISO8601 |
jobs[].openedAt | string | 开始招聘时间。日期格式为:ISO8601 |
jobs[].updatedAt | string | 职位更新时间。日期格式为:ISO8601 |
jobs[].prior | integer | 是否优先招聘,1 为优先招聘 |
jobs[].hireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
jobs[].finishedAt | string | 职位目标完成时间 |
jobs[].isRecommendation | boolean | 是否为内推职位 |
jobs[].department | object | 职位所在部门信息 |
jobs[].department.id | integer | 部门id |
jobs[].department.name | string | 部门名称 |
jobs[].locations | array | 职位工作地 |
jobs[].locations[].id | integer | 地址id |
jobs[].locations[].province | string | 省 |
jobs[].locations[].city | string | 市 |
jobs[].locations[].area | string | 区 |
jobs[].locations[].country | string | 国家 |
jobs[].locations[].address | string | 详细地址 |
jobs[].zhineng | object | 职位职能信息 |
jobs[].zhineng.id | integer | 职能id |
jobs[].zhineng.name | string | 职能名称 |
jobs[].customFields | array | 职位自定义字段列表 |
jobs[].customFields[].id | integer | 自定义字段id |
jobs[].customFields[].name | string | 自定义字段名称 |
jobs[].customFields[].type | string | 自定义字段类型 可选值: string_info bool_info |
jobs[].customFields[].value | string | 自定义字段的值 |
jobs[].jobManager | object | 职位负责人 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobManager.name | string | 职位负责人姓名 |
jobs[].jobManager.email | string | 职位负责人邮箱 |
jobs[].jobManager.phone | string | 职位负责人手机号 |
jobs[].jobManager.employee_id | string | 职位负责人工号 |
jobs[].jobHrAssistant | object[] | 职位协助人 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobHrAssistant[].name | string | 职位协助人姓名 |
jobs[].jobHrAssistant[].email | string | 职位协助人邮箱 |
jobs[].jobHrAssistant[].phone | string | 职位协助人手机号 |
jobs[].jobHrAssistant[].employee_id | string | 职位协助人工号 |
jobs[].jobHiringManager | object[] | 用人经理 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobHiringManager[].name | string | 用人经理姓名 |
jobs[].jobHiringManager[].email | string | 用人经理邮箱 |
jobs[].jobHiringManager[].phone | string | 用人经理手机号 |
jobs[].jobHiringManager[].employee_id | string | 用人经理工号 |
jobs[].jobInterviewer | object[] | 面试官 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobInterviewer[].name | string | 面试官姓名 |
jobs[].jobInterviewer[].email | string | 面试官邮箱 |
jobs[].jobInterviewer[].phone | string | 面试官手机号 |
jobs[].jobInterviewer[].employee_id | string | 面试官工号 |
Q&A
1、关于已关闭招聘的职位是否显示:职位在关闭的时候如果没勾选取消在官网显示,则还会官网显示,并且其中closedAt是关闭时间。
image.png
2、是否支持删除职位或者显示删除的职位:不支持,删除了就彻底没了,如果这个职位下有招聘过程中的候选人数据,则系统内无法删除。
获取单个职位信息
请求样例
curl --location --request GET
'https://api-staging-3.mokahr.com/api-platform/v1/jobs/orgid-test/b19c75f0-170'
返回样例
{
"id": "1234",
"title": "网页设计师",
"status": "open",
"description": "<div><b>我们是谁</b><div>",
"minSalary": 1000,
"maxSalary": 9000,
"minExperience": 3,
"maxExperience": 5,
"number": 10,
"commitment": "全职",
"education": "本科",
"closedAt": "2017-10-01T22:00:00.000Z",
"openedAt": "2017-09-01T21:00:00.000Z",
"updatedAt": "2017-09-01T21:00:00.000Z",
"hireMode": 1,
"finishedAt": "2019-08-23T16:00:00.000Z",
"department": {
"id": 1,
"name": "技术部"
},
"locations": [
{
"id": 1,
"country": "中国",
"address": "北京市海淀区海淀西大街"
}
],
"zhineng": {
"id": 1,
"name": "技术类"
},
"customFields": [
{
"id": 1,
"name": "薪资范围",
"value": "100-200",
"type": "string_info"
}
]
}
获取单个职位的所有信息。
HTTP请求
GET https://api.mokahr.com/api-platform/v1/jobs/{orgId}/{jobId}
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 每个公司客户对应的唯一id |
jobId | 是 | string | 职位id |
返回
字段 | 类型 | 描述 |
---|---|---|
id | string | 职位id |
title | string | 职位名称 |
status | string | 职位状态 可选值: open :开启 closed :关闭 pause :暂停 |
description | string | 职位描述 |
mjCode | string | 职位编号 |
minSalary | integer | 最低薪资,单位:千(K) |
maxSalary | integer | 最高薪资,单位:千(K) |
minExperience | integer | 最低工作经验 |
maxExperience | integer | 最高工作经验 |
number | integer | 招聘人数 |
commitment | string | 职位性质 可选值: 全职 兼职 实习 其他 |
education | string | 学历要求 |
closedAt | string | 职位关闭时间。日期格式为:ISO8601 |
openedAt | string | 开始招聘时间。日期格式为:ISO8601 |
updatedAt | string | 职位更新时间。日期格式为:ISO8601 |
hireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
finishedAt | string | 职位目标完成时间 |
isRecommendation | boolean | 是否为内推职位 |
department | object | 职位所在部门信息 |
department.id | integer | 部门id |
department.name | string | 部门名称 |
locations | array | 职位工作地 |
locations[].id | integer | 地址id |
locations[].province | string | 省 |
locations[].city | string | 市 |
locations[].area | string | 区 |
locations[].country | string | 国家 |
locations[].address | string | 详细地址 |
zhineng | object | 职位职能信息 |
zhineng.id | integer | 职能id |
zhineng.name | string | 职能名称 |
customFields | array | 职位自定义字段列表 |
customFields[].id | integer | 自定义字段id |
customFields[].name | string | 自定义字段名称 |
customFields[].type | string | 自定义字段类型 可选值: string_info bool_info |
customFields[].value | string | 自定义字段的值 |
jobManager | object | 职位负责人 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobManager.name | string | 职位负责人姓名 |
jobManager.email | string | 职位负责人邮箱 |
jobManager.phone | string | 职位负责人手机号 |
jobManager.employee_id | string | 职位负责人工号 |
jobHrAssistant | object[] | 职位协助人 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobHrAssistant[].name | string | 职位协助人姓名 |
jobHrAssistant[].email | string | 职位协助人邮箱 |
jobHrAssistant[].phone | string | 职位协助人手机号 |
jobHrAssistant[].employee_id | string | 职位协助人工号 |
jobHiringManager | object[] | 用人经理 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobHiringManager[].name | string | 用人经理姓名 |
jobHiringManager[].email | string | 用人经理邮箱 |
jobHiringManager[].phone | string | 用人经理手机号 |
jobHiringManager[].employee_id | string | 用人经理工号 |
jobInterviewer | object[] | 面试官 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobInterviewer[].name | string | 面试官姓名 |
jobInterviewer[].email | string | 面试官邮箱 |
jobInterviewer[].phone | string | 面试官手机号 |
jobInterviewer[].employee_id | string | 面试官工号 |
申请一个职位
请求样例(json方式)
$ curl https://api.mokahr.com/api-platform/v1/jobs/moka/1234/apply \
-u 'your-api-key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '
{
"basicInfo":
{
"name": "张三",
"age": 22,
"email": "zhangsan@mokahr.com",
"gender": "男",
"phone": "18612345678",
"lastCompany": "阿里巴巴",
"lastSpeciality": "计算机",
"academicDegree": "本科"
},
"educationInfo":
[
{
"school": "北京大学",
"startDate": "2014-09",
"endDate": "2017-06",
"speciality": "软件工程",
"academicDegree": "本科"
}
],
"experienceInfo":
[
{
"company": "百度",
"startDate": "2014-09",
"endDate": "2017-06",
"title": "初级工程师",
"summary": "负责产品功能实现"
}
],
"languageInfo": [
{
"language": "213",
"level": "一般",
"listenAndSpeak": "良好",
"readAndWrite": "熟练"
}
],
"projectInfo":
[
{
"projectName": "项目1",
"startDate": "2017-01",
"endDate": "2017-11",
"projectDescription": "项目功能描述",
"title": "后端工程师",
"responsibilities": "项目职责"
}
],
"practiceInfo":
[
{
"company": "腾讯",
"title": "实习工程师",
"startDate": "2017-01",
"endDate": "2017-11",
"summary": "负责简单的功能实现"
}
],
"jobIntention": {
"aimSalary": "7000-13000元/月",
"forwardLocation": "北京"
},
"selfDescription": {
"personal": "人经历丰富,在校担任过部长,主持人以及新生教官。"
},
"customFields": [
{
"id": 1,
"value": "aaa"
"index": 0,
},
{
"id": 2,
"value": "bbb"
}
],
"recommender": {
"email": "zhangsan@mokahr.com",
"name": "张三",
"phone": "18612345678",
"employeeId": "1"
}
}'
请求样例(multipart/form-data方式)
$ curl https://api.mokahr.com/api-platform/v1/jobs/moka/1234/apply \
-u 'your-api-key:' \
-X POST \
-H 'Content-Type: multipart/form-data' \
-F 'basicInfo={"name": "张三", "age": 20, "gender": "男", "phone": "18612345678"}' \
-F 'educationInfo=[{"school": "北京大学", "startDate": "2014-01", "endDate": "2017-01", "speciality": "软件工程"}]' \
-F 'experienceInfo=[{"company": "百度", "startDate": "2017-01", "endDate": "2017-01", "title": "工程师"}]' \
-F 'projectInfo=[{"projectName": "项目1", "startDate":"2017-01","endDate":"2017-11","title":"工程师"}]' \
-F 'practiceInfo=[{"company":"腾讯", "title":"实习工程师", "startDate":"2017-01", "endDate":"2017-11"}]' \
-F 'jobIntention={"aimSalary": "7000-13000/月", forwardLocation: "北京"}' \
-F 'selfDescription={personal: "人经历丰富,在校担任过部长,主持人以及新生教官。"}' \
-F 'customFields=[{"id": "1", "value": "aaa"}, {"id": "2", "value": "bbb"}]' \
-F 'recommender={"email": "zhangsan@mokahr.com","name": "张三","phone":"18612345678","employeeId":"1"}' \
-F 'resume=@/path/to/resume/张三.pdf' \
-F 'attachments=@/path/to/attachments/attach1.txt' \
-F 'attachments=@/path/to/attachments/attach2.txt'
返回新申请的信息
这个API支持两种请求格式,分别是multipart/form-data
方式和json
方式。
如果你需要上传简历或者附件文件,就必须使用multipart/form-data
方式。
使用multipart/form-data
方式上传的简历文件会经过我们的简历解析服务做处理。
此API需要验证身份信息,验证方式请参考请求验证/Auth
部分。
注意:该模块字段是否必填取决于系统内字段属性设置
返回样例(部分字段)
{
"id": 1,
"name": "张三",
"age": 20,
"gender": "男",
"educationInfo":
[
{
"school": "北京大学",
"startDate": "2014-09",
"endDate": "2017-06",
"speciality": "软件工程",
"academicDegree": "本科"
}
],
"experienceInfo":
[
{
"company": "百度",
"startDate": "2014-09",
"endDate": "2017-06",
"title": "初级工程师",
"summary": "负责产品功能实现"
}
],
"projectInfo":
[
{
"projectName": "项目1",
"startDate": "2017-01",
"endDate": "2017-11",
"projectDescription": "项目功能描述",
"title": "后端工程师",
"responsibilities": "项目职责"
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/jobs/{orgId}/{jobId}/apply
请求URL参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 每个公司客户对应的唯一id |
jobId | 是 | string | 职位id |
请求query参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
isRecommendation | 否 | integer | 是否是内推申请 可选值: 1 :是内推申请 不传参 :非内推申请当isRecommendation传入1的时候body中recommender必填 |
isCheckProtect | 否 | integer | 是否校验保护期 可选值: 1 :且isRecommendation=1 校验保护期 不传参 :不校验保护期 |
recommendationType | 否 | integer | 内推官网拆分后需要配合使用 可选值: 1 :社招内部推荐 2 :校招内部推荐 |
siteId | 否 | integer | 是否是指定官网渠道,如果不传是系统默认官网,如果传入了isRecommendation,则此参数无效 |
acquisitionMode | 否 | integer | 申请方式 可选值: 0 :未知 2 :后台导入 5 :人才推荐 8 :主动推荐 9 :主动申请 |
websiteSourceId | 否 | integer | 来源效果,siteId有效时生效 |
ownerEmail | 否 | string | 候选人所有者的邮箱,有效值为超管、管理员以及职位协助人和负责人 |
请求body(json方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
basicInfo | 是 | string | 基本信息,至少要有一个属性 |
basicInfo.name | 否 | string | 候选人姓名 |
basicInfo.age | 否 | integer | 候选人年龄 |
basicInfo.gender | 否 | string | 候选人性别 可选值 男 女 |
basicInfo.email | 否 | string | 候选人邮箱地址 |
basicInfo.phone | 否 | string | 候选人电话号码 |
basicInfo.lastCompany | 否 | string | 最近公司 |
basicInfo.lastSpeciality | 否 | string | 最近毕业专业 |
basicInfo.academicDegree | 否 | string | 最高学历 |
basicInfo.political | 否 | string | 政治面貌 |
educationInfo | 否 | array | 教育经历 |
educationInfo[].school | 否 | string | 学校名称 |
educationInfo[].startDate | 否 | string | 开始时间 |
educationInfo[].endDate | 否 | string | 结束时间 |
educationInfo[].speciality | 否 | string | 专业 |
educationInfo[].academicDegree | 否 | string | 学历 |
experienceInfo | 否 | array | 工作经验 |
experienceInfo[].company | 否 | string | 公司名称 |
experienceInfo[].startDate | 否 | string | 开始时间 |
experienceInfo[].endDate | 否 | string | 结束时间 |
experienceInfo[].title | 否 | string | 工作职位 |
experienceInfo[].summary | 否 | string | 工作职责 |
languageInfo | 否 | array | 语言能力 |
languageInfo[].language | 否 | string | 语言类型 |
languageInfo[].level | 否 | string | 掌握程度 |
languageInfo[].listenAndSpeak | 否 | string | 听说能力 |
languageInfo[].readAndWrite | 否 | string | 读写能力 |
projectInfo | 否 | array | 项目经验 |
projectInfo[].projectName | 否 | string | 项目名称 |
projectInfo[].startDate | 否 | string | 开始时间 |
projectInfo[].endDate | 否 | string | 结束时间 |
projectInfo[].title | 否 | string | 项目中担任的> 职责 |
projectInfo[].projectDescription | 否 | string | 项目描述 |
projectInfo[].responsibilities | 否 | string | 项目中的职责 |
practiceInfo | 否 | array | 实习经验 |
practiceInfo[].company | 否 | string | 公司名称 |
practiceInfo[].title | 否 | string | 职位名称 |
practiceInfo[].startDate | 否 | string | 开始时间 |
practiceInfo[].endDate | 否 | string | 结束时间 |
practiceInfo[].summary | 否 | string | 工作职责 |
jobIntention | 否 | object | 求职意向 |
jobIntention.aimSalary | 否 | string | 期望薪资,单位:千(K) |
jobIntention.forwardLocation | 否 | string | 期望城市 |
selfDescription | 否 | object | 自我描述 |
selfDescription.personal | 否 | object | 自我描述,简介 |
customFields[].id | 否 | integer | 自定义字段id |
customFields[].value | 否 | string | 自定义字段值 |
customFields[].index | 否 | number | 如果当前模块数据是一个数组且含有自定义字段,则该值必填且与数组下标一致(备注:支持自定义模块数据) |
recommender.name | 否 | string | 推荐人姓名 |
recommender.email | 否 | string | 推荐人邮箱 |
recommender.phone | 否 | string | 推荐人电话 |
recommender.employeeId | 否 | string | 推荐人工号 |
请求body(multipart/form-data方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
basicInfo | 是 | string | json格式的字符串,字段同json请求方式的basicInfo |
educationInfo | 否 | string | json格式的字符串,字段同json请求方式的educationInfo |
experienceInfo | 否 | string | json格式的字符串,字段同json请求方式的experienceInfo |
projectInfo | 否 | string | json格式的字符串,字段同json请求方式的projectInfo |
practiceInfo | 否 | string | json格式的字符串,字段同json请求方式的practiceInfo |
languageInfo | 否 | string | json格式的字符串,字段同json请求方式的languageInfo |
jobIntention | 否 | string | json格式的字符串,字段同json请求方式的jobIntention |
selfDescription | 否 | string | json格式的字符串,字段同json请求方式的selfDescription |
recommender | 否 | string | json格式的字符串,字段同json请求方式的recommender |
customFields | 否 | string | json格式的字符串,字段同json请求方式的customFields |
resume | 否 | file | 简历文件 |
attachments | 否 | file | 附件文件,最多支持10个 |
返回(部分字段)
字段 | 类型 | 描述 |
---|---|---|
id | integer | 申请id |
candidateId | integer | 候选人id |
orgId | integer | 租户id |
stageId | integer | 阶段id |
name | name | 候选人姓名 |
age | age | 候选人年龄 |
candidateId | long | 候选人ID |
gender | string | 候选人性别 |
countryCallingCode | string | 国家呼叫代码 |
skill | string | 技能 |
recommendReason | string | 推荐原因 |
educationInfo | array | 教育经历 |
educationInfo[].school | string | 学校名称 |
educationInfo[].startDate | string | 开始时间 |
educationInfo[].endDate | string | 结束时间 |
educationInfo[].speciality | string | 学习专业 |
educationInfo[].academicDegree | string | 学历 |
experienceInfo | array | 工作经验 |
experienceInfo[].company | string | 公司名称 |
experienceInfo[].startDate | string | 开始时间 |
experienceInfo[].endDate | string | 结束时间 |
experienceInfo[].title | string | 工作职位 |
experienceInfo[].summary | string | 工作职责 |
projectInfo | array | 项目经验 |
projectInfo[].projectName | string | 项目名称 |
projectInfo[].startDate | string | 开始时间 |
projectInfo[].endDate | string | 结束时间 |
projectInfo[].title | string | 项目中担任的> 职责 |
projectInfo[].projectDescription | string | 项目功能描述 |
projectInfo[].responsibilities | string | 项目中的职责 |
practiceInfo | array | 实习经验 |
获取申请状态
请求样例
curl --location --request GET 'https://api.mokahr.com/api-platform/v1/applications/33211111' \
--header 'Authorization: Basic aHRuYlJqcGhyRDhzNQ3dUw6'
返回样例
{
"candidateId": 201170308,
"stageName": "笔试",
"status": "in_progress",
"code": 0,
"msg": "成功",
"success": true
}
获取一个申请的状态,包括是否被拒绝,是否已入职,是否在流程中 ,以及当前阶段的名称等。
HTTP请求
GET https://api.mokahr.com/api-platform/v1/applications/{applicationId}
请求URL参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 申请的唯一id |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
status | string | 申请的状态 可选值: in_progress :在流程中 rejected :已拒绝 hired :已入职 |
stageName | string | 申请所在当前阶段的名称 |
candidateId | integer | 候选人在Moka中的唯一id |
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
success | string | true :成功 false :失败 已废弃,请勿用于业务逻辑判断,请使用code来判断调用结果 |
获取职位地址列表
请求样例
curl --location --request GET 'https://api.mokahr.com/api-platform/v1/jobs-groupedby-location/orgid-test?mode=social' \
--header 'Authorization: Basic aHRuYlJq*********3J6RWNLd3FWR0Q3dUw6'
返回样例
{
"jobs": [
{
"id": "北京市",
"label": "北京市",
"locationRows": [
{
"id": 445,
"cityId": 110000
},
{
"id": 446,
"cityId": 110105
}
],
"jobCount": 2
},
{
"id": "上海市",
"label": "上海市",
"locationRows": [
{
"id": 398,
"cityId": 310000
}
],
"jobCount": 1
},
{
"id": "其他",
"label": "其他",
"cityId": null,
"locationRows": [
{
"id": 377,
"cityId": null
}
],
"jobCount": 6
},
{
"id": "阿尔巴尼亚",
"label": "阿尔巴尼亚",
"cityId": null,
"locationRows": [
{
"id": 2061,
"cityId": null
}
],
"jobCount": 1
}
]
}
获取职位地址列表。
注意:可用于职位列表接口查询用的id是locationRows
里的id,因为同一个北京市下可能会有多个办公地址,用右边的接口举例,需要查询北京市下的职位,需要给职位接口传locationIds:[445, 446]
HTTP请求
GET https://api.mokahr.com/api-platform/v1/jobs-groupedby-location/{orgId}
请求URL参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 组织id |
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
mode | 是 | string | 招聘模式 social :社招 campus :校招 |
返回
返回body的JSON数据如下:
字段 | 字段类型 | 描述 |
---|---|---|
jobs | array | |
jobs.id | string | 省份id |
jobs.label | string | 省份名字 |
jobs.locationRows | object | |
jobs.locationRows.id | integer | 办公地点列表id |
jobs.locationRows.cityId | integer | 城市id |
jobs.labelCityId | string | 城市标签id |
jobs.jobCount | integer | 该地址下所有职位的总数 |
获取职位职能列表
请求样例
curl --location --request GET 'https://api.mokahr.com/api-platform/v1/jobs-groupedby-zhineng/orgid-test?mode=social&siteId=33232323' \
--header 'Authorization: Basic aHRuYlJqcGhyRDhzNWl********FWR0Q3dUw6'
返回样例
{
"jobs": [
{
"id": 2873,
"label": "技术类",
"jobCount": 64
}
]
}
获取职位职能列表。
注意:数组里的id是可以用过过滤职位列表接口里的;用右边的接口举例,需要查询技术类下的职位,需要给职位接口传zhinengId:2873
HTTP请求
GET https://api.mokahr.com/api-platform/v1/jobs-groupedby-zhineng/{orgId}
请求URL参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 组织id |
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
mode | 否 | string | 招聘模式 可选值: social :社招 campus :校招 |
siteId | 否 | number | 官网id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 职能id |
label | string | 职能名称 |
parentId | integer | 父级职能id |
jobCount | integer | 本级及所有下级职能的职位数量 |
官网职位申请页配置(无需登录)
请求样例
<iframe src="https://app.mokahr.com/apply/test/90#/job/2bc083cf-bf34-45ba-a1a8-d028ed039d2d?pure=1" />
纯净版官网申请表,去除了候选人申请页面的导航和其他moka元素,只包含申请表单与渠道导入简历部分,可通过iframe方式嵌入自研官网。
有pc端和移动端的区分。只需在原来的普通申请页面的url加上query pure=1
落地页
pc端
https://app.mokahr.com/apply/{orgId}/{siteId}#/job/{jobId}/apply?pure=1
移动端
https://app.mokahr.com/m/apply/{orgId}/{siteId}#/job/{jobId}/select?pure=1
请求URL参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 组织id |
siteId | 否 | integer | 开启了多官网后的多官网id, 没有可省略 比如其中一个多官网的链接是 https://app.mokahr.com/apply/test/56 ,siteId就是最后面那个56,这个链接可以在系统内官网管理的官网链接获取。 |
jobId | 是 | string | 职位id |
注意 校招职位需要将pathname的 apply
替换为 campus_apply
例:
pc端
https://app.mokahr.com/campus_apply/{orgId}/{siteId}#/job/{jobId}/apply?pure=1
移动端
https://app.mokahr.com/m/campus_apply/{orgId}/{siteId}#/job/{jobId}/select?pure=1
获取指定官网的来源效果信息
请求样例
curl --location --request GET 'https://api.mokahr.com/api-platform/v1/website/website-soure' \
--header 'Authorization: Basic aHRuYlJqcGhyRDhzNWl********FWR0Q3dUw6'
--header 'Content-Type: application/json' \
--data-raw '{
"siteId":1222
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"total": 560,
"version": "1.0",
"websiteSourceInfoDTOList": [
{
"id": 3,
"isPreach": true,
"name": "宣讲会1",
"shortUrl": "https://app.mokahr.com/su/aaaaa",
"version": "1.0"
},
{
"id": 5,
"isPreach": false,
"name": "官网的来源效果1",
"shortUrl": "https://app.mokahr.com/su/bbbbb",
"version": "1.0"
}
]
}
}
获取指定官网的来源效果信息。 注意:校招官网id可以查出该校招官网下的所有来源效果+宣讲会;社招官网id只能返回社招官网下的来源效果;不支持内推官网
HTTP请求
POST https://api.mokahr.com/api-platform/v1/website/website-soure
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
siteId | 是 | number | 官网id,只支持社招官网id 或 校招官网id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 错误码,非0表示失败 |
message | string | 错误描述 |
data | object | |
data.total | number | 总数据量 |
data.websiteSourceInfoDTOList | array | 来源效果信息 |
data.websiteSourceInfoDTOList[].id | number | 来源效果id |
data.websiteSourceInfoDTOList[].isPreach | boolean | 是否宣讲会,true:宣讲会,false:不是宣讲会 |
data.websiteSourceInfoDTOList[].name | string | 来源效果名称 |
data.websiteSourceInfoDTOList[].shortUrl | string | 短链接地址 |
企业信息API
获取企业地点列表
获取企业地点列表信息
请求样例
$ curl https://api.mokahr.com/api-platform/v1/locations \
-u 'your-api_key:' \
-X GET
返回样例
[
{
"id": 15,
"country": "中国",
"province": "上海市",
"city": null,
"area": null,
"address": "人民广场",
"map": {
"locPoint": {
"lng": 121.487899,
"lat": 31.249162
},
"center": {
"lng": 121.492498,
"lat": 31.245087
}
}
}
]
HTTP请求
GET https://api.mokahr.com/api-platform/v1/locations
请求参数
无
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 地点的id |
country | string | 国家 |
province | string | 省份 |
city | string | 城市 |
area | string | 地区 |
address | string | 具体地点 |
map | object | 地图相关信息 |
map.locpoint | object | 地图标记点坐标 |
map.locpoint.lng | number | 地图标记点经度,高德坐标系 |
map.locpoint.lat | number | 地图标记点纬度,高德坐标系 |
map.center | object | 地图切片中心点坐标 |
map.center.lng | number | 地图中心点经度,高德坐标系 |
map.center.lat | number | 地图中心点纬度,高德坐标系 |
新增公司地址(批量)
批量新增公司地址
通过addressCode新增公司地址
addressCode已存在:跳过并报错
addressCode不存在:新增
部门不支持向下级联
请求样例
$ curl --location --request POST 'https://api.mokahr.com/api-platform/locations/v2/batch_create_locations' \
--header 'Content-Type: application/json' \
--header 'Authorization: ' \
--data-raw '{
"locations": [
{
"addressCode": "114514",
"cityId": 110105,
"address": "测试address",
"lat": 22.627981,
"lng": 114.115447
}
]
}'
返回样例
{
"code":0,
"message":"",
"data":[{
"message":"",
"addressCode":"",
"addressId":"",
"succeed":true
}]
}
HTTP请求
POST https://api.mokahr.com/api-platform/locations/v2/batch_create_locations
请求body(json方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
locations | 是 | array | 公司地址信息 |
locations[].addressCode | 是 | string | 公司地址在外部系统的唯一id |
locations[].cityId | 是 | integer | 所在地区行政区代码 详情见 http://www.mokahr.com/docs/api/#district-code |
locations[].address | 否 | string | 详细地址 |
locations[].lat | 否 | double | 经度(高德地图系) |
locations[].lng | 否 | double | 纬度(高德地图系) |
locations[].departmentIds[] | 否 | array[integer] | Moka系统部门信息 部门在Moka的唯一id departmentId与departmentCode都传时,departmentId departmentId与departmentCode都不传时,默认为全部部门 |
locations[].departmentCodes[] | 否 | array[string] | 外部系统的部门信息 部门在外部系统的唯一id(需开启组织架构同步) departmentId与departmentCode都传时,departmentId departmentId与departmentCode都不传时,默认为全部部门 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 错误码,非0表示失败 |
message | string | 错误描述 |
data | array | |
data[].message | string | 错误描述 |
data[].addressCode | string | 公司地址在外部系统的唯一id |
data[].addressId | string | 公司地址在Moka的唯一id |
data[].succeed | boolean | 是否成功 可选值: true :成功false :失败 |
删除公司地址(批量)
批量删除公司地址
通过addressCode删除公司地址
addressCode已存在:删除
addressCode不存在:跳过,并报错
请求样例
$ curl --location --request POST 'https://api.mokahr.com/api-platform/locations/v2/batch_delete_locations' \
--header 'Content-Type: application/json' \
--header 'Authorization: ' \
--data-raw '{
"locations": [
{
"addressCode": "114514"
}
]
}'
返回样例
{
"code":0,
"message":"",
"data":[{
"message":"",
"addressCode":"",
"succeed":true
}]
}
HTTP请求
POST https://api.mokahr.com/api-platform/locations/v2/batch_delete_locations
请求body(json方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
locations | 是 | array | 公司地址信息 |
locations[].addressCode | 是 | string | 公司地址在外部系统的唯一id |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 错误码,非0表示失败 |
message | string | 错误描述 |
data | array | |
data[].message | string | 错误描述 |
data[].addressCode | string | 公司地址在外部系统的唯一id |
data[].succeed | boolean | 是否成功 可选值: true :成功false :失败 |
更新公司地址(批量)
批量更新公司地址
通过addressCode更新公司地址
addressCode已存在:更新
addressCode不存在:跳过,并报错
部门不支持级联
请求样例
$ curl --location --request POST 'https://api.mokahr.com/api-platform/locations/v2/batch_update_locations' \
--header 'Content-Type: application/json' \
--header 'Authorization: ' \
--data-raw '{
"locations": [
{
"addressCode": "114514",
"cityId": 110105,
"address": "测试address",
"lat": 22.627981,
"lng": 114.115447
}
]
}'
返回样例
{
"code":0,
"message":"",
"data":[{
"message":"",
"addressCode":"",
"addressId":"",
"succeed":true
}]
}
HTTP请求
POST https://api.mokahr.com/api-platform/locations/v2/batch_update_locations
请求body(json方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
locations | 是 | array | 公司地址信息 |
locations[].addressCode | 是 | string | 公司地址在外部系统的唯一id |
locations[].cityId | 是 | integer | 所在地区行政区代码 详情见 http://www.mokahr.com/docs/api/#district-code |
locations[].address | 否 | string | 详细地址 |
locations[].lat | 否 | double | 经度(高德地图系) |
locations[].lng | 否 | double | 维度(高德地图系) |
locations[].departmentIds[] | 否 | array[integer] | Moka系统部门信息 部门在Moka的唯一id departmentId与departmentCode都传时,departmentId departmentId与departmentCode都不传时,默认为全部部门 |
locations[].departmentCodes[] | 否 | array[string] | 外部系统的部门信息 部门在外部系统的唯一id(需开启组织架构同步) departmentId与departmentCode都传时,departmentId departmentId与departmentCode都不传时,默认为全部部门 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 错误码,非0表示失败 |
message | string | 错误描述 |
data | array | |
data[].message | string | 错误描述 |
data[].addressCode | string | 公司地址在外部系统的唯一id |
data[].succeed | boolean | 是否成功 可选值: true :成功false :失败 |
获取公司地址(批量)
批量获取公司地址
(1)V1名称更新:“获取企业地点列表”改为“获取公司地址”
(2)新增“获取公司地址”V2接口
通过addressType查询对应类型的公司地址
有则返回
无则跳过,并报错
请求样例
$ curl --location --request POST 'https://api.mokahr.com/api-platform/locations/v2/get_location_list' \
--header 'Content-Type: application/json' \
--header 'Authorization: ' \
--data-raw '{
"addressType": 0
}'
返回样例
{
"code":0,
"message":"",
"data":[{
"addressId":"",
"addressCode":"",
"country":"",
"province":"",
"city":"",
"district":"",
"address":"",
"map":{},
"departments":[
{
"departmentName":"",
"departmentId":"",
"departmentCode":""
}
]
}]
}
HTTP请求
POST https://api.mokahr.com/api-platform/locations/v2/get_location_list
请求body(json方式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
addressType | 是 | integer | 公司地址类型,必填 可选值: 0 :API同步创建的公司地址1 :系统内创建的公司地址2 :全部公司地址(API同步和系统内创建) |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 错误码,非0表示失败 |
message | string | 错误描述 |
data | array | |
data[].addressId | string | 公司地址在Moka的唯一id |
data[].addressCode | string | 公司地址在外部系统的唯一id 为空代表该地址是在Moka系统内创建 |
data[].country | string | 国家 |
data[].province | string | 省份 |
data[].city | string | 城市 |
data[].district | string | 县区 |
data[].address | string | 公司地址具体地点 |
data[].map | object | object |
data[].departments[].departmentName | string | 公司地址关联的部门名称 |
data[].departments[].departmentId | string | 部门在Moka的唯一id |
data[].departments[].departmentCode | string | 部门在外部系统的唯一id(需开启组织架构同步) |
门店API
获取门店列表
拉取门店列表
请求样例
$ curl 'https://api.mokahr.com/api-platform/v1/get_stores' \
-u 'your_api_key:' \
-X POST \
-d '{
"apiCodes": ["111111","22222"],
"pageNum": 1,
"pageSize": 20,
"disabled": 0
}'
请求返回数据样例:
{
"data": [
{
"id": 1,
"name": "门店1通恒大厦",
"lat": 39.980769,
"lng": 116.373172,
"locationId": 5,
"departmentId": 9,
"apiCode": "1111",
"createdAt": "2019-12-03T07:12:36.000Z",
"disabled": 0,
"country": "中国",
"cityId": 110108,
"address": "通恒大厦",
"mapJson": "{\"locPoint\":{\"lng\":116.373172,\"lat\":39.980769},\"center\":{\"lng\":116.373172,\"lat\":39.980769},\"zoom\":14}",
"jobNumber": 0
},
{
"id": 2,
"name": "门店2翠微",
"lat": 39.982824,
"lng": 116.372663,
"locationId": 6,
"departmentId": 0,
"apiCode": "",
"createdAt": "2019-12-03T07:12:36.000Z",
"disabled": 0,
"country": "中国",
"cityId": 110108,
"address": "海淀翠微",
"mapJson": "{\"locPoint\":{\"lng\":116.372663,\"lat\":39.982824},\"center\":{\"lng\":116.370759,\"lat\":39.983045},\"zoom\":16}",
"jobNumber": 0
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/get_stores
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
apiCodes | 否 | Array[string] | 客户存的店铺唯一码 |
pageNum | 否 | number | 页码,默认1 |
pageSize | 否 | number | 每页数量,默认20,最大20 |
disabled | 否 | number | 门店启停状态 可选值: 0 :启用的门店 1 :禁用的门店 |
返回json数据
data为门店数组,按照门店创建时间由早到晚排序。其中每一项的数据结构为:
字段 | 类型 | 描述 |
---|---|---|
data | array | |
id | number | 门店id,moka的门店唯一码 |
name | string | 门店名 |
lat | number | 门店坐标纬度,高德坐标系 |
lng | number | 门店坐标经度,高德坐标系 |
locationId | number | 地点id |
departmentId | number | 门店所关联的部门id |
cityId | string | 门店所属行政区码, 详情见 http://www.mokahr.com/docs/api/#district-code |
apiCode | string | 客户存的门店唯一码 |
address | string | 门店地址 |
disabled | number | 门店启停状态 可选值: 0 :启用的门店 1 :禁用的门店 |
createdAt | string | 门店创建时间,格式遵从ISO8601标准 |
jobNumber | number | 门店下的职位数量 |
mapJson | json | 已废弃 |
注意,字段若为空,则内容为空字符串
同步门店
Moka 系统中会根据请求的列表中每个门店信息对当前系统中的门店进行同步(新增,更新,停用,启用)。
HTTP 请求
PUT https://api.mokahr.com/api-platform/v1/stores
请求样例
$ curl 'https://api.mokahr.com/api-platform/v1/stores' \
-u 'your_api_key:' \
-X PUT \
-d '[
{
"apiCode": "111111",
"name": "北京海淀区门店",
"lat": 39.985043,
"lng": 116.293914,
"address": "北京海淀区花园路x号",
"cityId": 110108,
"departmentName": "北京海淀区门店组织"
},
{
"apiCode": "222222",
"name": "北京朝阳区门店",
"lat": 22.627981,
"lng": 114.115447,
"address": "北京市朝阳区麦子店街道枣营北里社区",
"cityId": 110105,
"departmentName": "北京朝阳区门店组织"
},
...
]'
操作成功:
{
"success": true,
"result": {
"new": 20,
"update": 10,
"disabled": 0
}
}
操作失败:
{
"success": false,
"errorMessage": "错误信息",
"errors": [
{}
]
}
未开启门店错误:
{
"success": false,
"errorMessage": "未开启门店功能"
}
validation错误:
{
"success": false,
"errorMessage": "Validation Failed",
"errors": [
{
"field": "apiCode",
"code": "duplicated",
"details": "123456"
},
{
"field": "name",
"code": "duplicated",
"details": "北京朝阳区门店1"
},
{
"field": "cityId",
"code": "invalid",
"details": {
"cityId": "999999",
"apiCode": "123456",
"name": "北京朝阳区门店1",
"lat": 22.627981,
"lng": 114.115447,
"address": "北京朝阳区",
"departmentName": "朝阳部门"
},
"document_url": "http://www.mokahr.com/docs/api/#stores"
},
{
"field": "name,cityId",
"code": "missing_field",
"details": {
"apiCode": "111111",
"lat": 24.775118681,
"lng": "115.49405445",
"address": "海淀区花园路4号"
}
}
]
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
apiCode | 是 | string | 门店的唯一id |
name | 是 | string | 门店名称 |
address | 是 | string | 门店地址 (包含省市区的地址) |
cityId | 否 | number | 门店所属行政区码,详情见 http://www.mokahr.com/docs/api/#district-code |
lat | 否 | number | 门店坐标纬度(高德地图系) |
lng | 否 | number | 门店坐标经度(高德地图系) |
relationDepartmentType | 否 | boolean | 可选值:true :根据部门code来匹配部门 false :根据部门名称来匹配部门 |
departmentCode | 否 | string | 部门code (relationDepartmentType为true的话,会使用departmentCode字段匹配部门) |
departmentName | 否 | string | 部门名称 (没有传relationDepartmentType,或者relationDepartmentType是false,然后同时传了departmentName,就用departmentName匹配) |
disabled | 否 | number | 门店启停状态 可选值: 0 :启用的门店 1 :禁用的门店 |
处理
我们会对数据field进行校验, 如果校验未通过, 则返回具体的错误信息:
进行校验的field:['name', 'apiCode', 'cityId', 'address']
可能的错误码:
code | 描述 |
---|---|
duplicated | 信息重复 |
invalid | 数据不正确,比如传入了不支持的cityId |
missing_field | 缺少该field,或有field值为空 |
调整门店权限
请求样例
$ curl 'https://api.mokahr.com/api-platform/v1/store/changeJobManagerOrAssistantByStore' \
-u 'your_api_key:' \
-X POST \
-d '{
"operation" : "add",
"dataType" : 1,
"userData" : "jinhaiyang@mokahr.com",
"managerType" : 30,
"apiCode":"10086",
"orgId" : "livingsimple"
}'
请求成功返回数据样例:
{
"code": 200,
"msg": "success",
"data": {}
}
请求失败返回数据样例:
{
"code": 12714002,
"msg": "错误信息:不支持的负责人类型"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/store/changeJobManagerOrAssistantByStore
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 否 | string | 公司id |
operation | 是 | string | 操作 add :授予一个用户该门店对应职位的权限 remove :移除该门店对应职位的指定用户权限 |
dataType | 是 | number | userData的类型 1 :邮箱 2 :手机号 3 :工号 |
userData | 是 | string | 用户标识,邮箱/手机号/工号 |
managerType | 否 | number | !!!注意:managerType和additionalRoles至少有一个是必填 负责人类型 30 :代表为门店下职位负责人 25 :代表为门店下职位协助人 |
additionalRoles | 否 | array | !!!注意:managerType和additionalRoles至少有一个是必填 附加角色类型 20 :代表用人经理 10 :代表面试官 |
apiCode | 是 | string | 门店的唯一id |
返回json数据
code为200
返回成功,其它失败
code错误码如下:
code | 中文描述 |
---|---|
12714000 | 不支持的操作类型 |
12714001 | 不支持的用户数据类型 |
12714002 | 不支持的负责人类型 |
12714003 | 用户信息重复,存在多个用户 |
12714004 | apicode重复,存在多个门店 |
12714005 | 用户角色权限不能低于HR |
12714006 | 找不到该门店 |
12714007 | 请开启门店与门店同步 |
12714008 | 找不到该用户 |
12714009 | 当前门店下没有职位可被操作 |
12714010 | 无法添加职位负责人为协助人 |
12714011 | 用户已禁用 |
12714012 | 不支持移除负责人权限 |
12714013 | 不支持集团化客户 |
12714014 | 不支持的附加角色类型:入参仅支持职位面试官、用人经理 |
12714015 | 附加角色类型超出两个:入参类型最多两个 |
12714016 | 附加角色类型重复,请检查additionalRoles参数:入参仅支持职位面试官、用人经理请勿重复 |
12714017 | 该用户角色需为面试官及以上:当将用户设置为面试官或用人经理时,用户需为面试官及以上 |
12714018 | 没有指定角色:负责人角色类型 和 附加角色类型至少选择一个 |
组织架构API
组织架构相关API
获取全量组织架构
可以获得全量组织架构信息
HTTP 请求
GET https://api.mokahr.com/api-platform/v1/departments
请求样例
$ curl 'https://api.mokahr.com/api-platform/v1/departments' \
-u 'your_api_key:' \
-X GET \
操作成功
{ "success": true,
"departments": [
{
"name": "大数据部",
"type": 2,
"departmentId": 353,
"departmentCode": "big_data"
},
{
"name": "新媒体营销团队",
"type": 1,
"departmentId": 363,
"parentCode": "big_data",
"departmentCode": "new_media_marketing"
}
]
}
操作失败
{
"success": false,
"errorMessage": "错误信息"
}
请求参数
无
返回字段
字段 | 类型 | 描述 |
---|---|---|
success | boolean | true :成功 false :失败 |
errorMessage | string | 错误信息 |
departments | array | 组织架构信息 |
departments.name | string | 部门名称 |
departments.departmentId | number | MOKA系统的部门id |
departments.departmentCode | string | 客户系统的部门id |
departments.parentCode | string | 部门的上级部门的唯一 id, 如为 null 则为一级部门 |
departments.deletedByApi | number | 是否删除 可选值: 0 : 没有删除1 :被标记为已删除 |
departments.type | number | 部门类型: 可选值: 1 :普通部门(默认)2 :门店部门 |
departments.parentId | number | MOKA系统的父部门id |
组织架构全量同步
Moka 系统中会根据请求的列表对当前系统中的部门进行同步(新增,更新,标记删除)。
同步以department_code为主键,与系统中部门department_code进行对比:
1、当前系统没有,同步时有:新增一个部门
2、当前系统有,同步时也有:更新已经存在的部门信息。如果同步时有,当前系统部门状态标识为删除,更新后,状态改为正常。
3、当前系统有,同步时没有时:部门打标已删除,需要手动进入 Moka 系统中将该部门合并到其他部门进行删除。
HTTP 请求
PUT https://api.mokahr.com/api-platform/v2/departments
请求样例
$ curl 'https://api.mokahr.com/api-platform/v2/departments' \
-u 'your_api-keys:' \
-X PUT \
-d '{
"departments": [
{ "departmentCode": "ididid1", "name": "namenamename1", "parentCode": "ididid1", "sequence": 0 },
{ "departmentCode": "ididid2", "name": "namenamename2", "parentCode": "ididid2" },
{ "departmentCode": "ididid2", "name": "namenamename2", "parentCode": "ididid2", "type": 2 },
{ "departmentCode": "ididid3", "name": "namenamename3", "parentCode": "0"}
]
}'
操作成功
{
"code": 0,
"msg": "success",
"data":{
"result": {
"new": 0,
"delete": 0,
"update": 0
}
}
}
操作失败
{
"code": -1,
"msg": "false",
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
departments | 是 | array | 部门数据 |
departments[].name | 是 | string | 部门名称 |
departments[].departmentCode | 是 | string | 客户系统的部门id |
departments[].parentCode | 是 | string | 部门的上级部门的唯一 id, 如为一级部门传“0” |
departments[].type | 否 | number | 部门类型:1 :普通部门(默认)2 : 门店部门 |
departments[].sequence | 否 | number | 指定部门排序,支持0至10000的两位小数,为空默认排在最后。按排序从小到大,创建时间从先到后排序 |
返回json字段
字段 | 类型 | 描述 |
---|---|---|
code | number | 200 : 成功。其他:错误 |
msg | string | 操作失败的错误原因 |
可能的错误信息
errorMessage | 描述 |
---|---|
部门 ID 重复 | 请求列表中有重复使用的 department_code |
部门重复 | 请求列表中有相同父级部门,名称的部门 |
父级部门未找到 | 部门的父级部门未在列表中找到 |
部门的父级部门不能直接(间接)为自身 | 部门的父级部门(的父级部门...)不能为自身 |
... |
新增组织架构
新增组织架构 注意:组织架构增量同步必须使用POST请求,如果使用PUT请求,为全量同步,请求中未提供的部门,部门将标记为已删除。
HTTP请求
POST https://api.mokahr.com/api-platform/v2/departments/sync/incremental
请求样例
$ curl 'https://api.mokahr.com/api-platform/v2/departments/sync/incremental' \
-u 'your_api-keys:' \
-X POST \
-d '{
"departments": [
{ "departmentCode": "ididid1", "name": "namenamename1", "parentCode": "ididid1", "sequence": 0 },
{ "departmentCode": "ididid2", "name": "namenamename2", "parentCode": "ididid2" },
{ "departmentCode": "ididid2", "name": "namenamename2", "parentCode": "ididid2", "type": 2 },
{ "departmentCode": "ididid3", "name": "namenamename3", "parentCode": "0"}
]
}'
操作成功
{
"code": 0,
"msg": "success",
}
操作失败
{
"code": -1,
"msg": "false",
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
departments | 是 | array | 部门数据 |
departments[].name | 是 | string | 部门名称 |
departments[].departmentCode | 是 | string | 客户系统的部门id |
departments[].parentCode | 是 | string | 部门的上级部门的唯一 id,如为一级部门传“0” |
departments[].type | 否 | number | 部门类型:1 :普通部门(默认)2 :门店部门 |
departments[].sequence | 否 | number | 指定部门排序,支持0至10000的两位小数,为空默认排在最后。按排序从小到大,创建时间从先到后排序 |
返回字段
字段 | 类型 | 描述 |
---|---|---|
code | number | 200: 成功。其他:错误 |
msg | string | 操作失败的错误原因 |
可能的错误信息
errorMessage | 描述 |
---|---|
当前有未处理完的组织架构更新,请稍后再试 | |
部门名称: XXX, 编号XXX的部门编号重复 | 请求列表中存在重复部门数据或者请求列表中存在于已同步至系统的部门中存在重复 |
父级部门未找到 | 部门的父级部门未在列表中找到 |
部门的父级部门不能直接(间接)为自身 | 部门的父级部门(的父级部门...)不能为自身 |
部门名称XXX,父编号XXX的部门名称已存在 | 某部门下存在相同名称的部门 |
... |
更新组织架构
对指定部门更新组织架构信息 注意: 以departmentCode为主键进行更新,如果需要更新departmentCode时,需要传入departmentId,将以departmentId为主键更新departmentCode。
HTTP请求
POST https://api.mokahr.com/api-platform/v2/departments
请求样例
curl 'https://api.mokahr.com/api-platform/v2/departments' \
-X POST \
-u 'your_api_keys' \
-d '{
"departments": [
{
"departmentCode": "ididid111123",
"name": "namenamename1221",
"parentCode": null,
"sequence": 0
},
{
"departmentCode": "ididid211123",
"name": "namenamename21_testhema",
"parentCode": "ididid31112"
},
{
"departmentCode": "ididid311123",
"name": "namenamename222test_hema",
"parentCode": "ididid111123",
"type": 2,
"departmentId": 387
},
{
"departmentCode": "ididid3",
"name": "namenamename3",
"parentCode": "0"
}
]
}'
操作成功
{
"code": 0,
"msg": "success",
}
操作失败
{
"code": -1,
"msg": "false",
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
departments | 是 | array | 部门数据 |
departments[].name | 是 | string | 部门名称 |
departments[].departmentCode | 是 | string | 客户系统的部门id |
departments[].parentCode | 是 | string | 部门的上级部门的唯一 id, 如为一级部门传“0” |
departments[].type | 否 | number | 部门类型:1 :普通部门(默认)2 :门店部门 |
departments[].departmentId | 否 | number | 部门在Moka系统中的id,此参数存在时,会优先匹配该参数的部门。 |
departments[].sequence | 否 | number | 指定部门排序,支持0至10000的两位小数,为空默认排在最后。按排序从小到大,创建时间从先到后排序 |
返回json字段
字段 | 类型 | 描述 |
---|---|---|
code | number | 200 : 成功。其他:错误 |
msg | string | 操作失败的错误原因 |
可能的错误信息
errorMessage | 描述 |
---|---|
当前有未处理完的组织架构更新,请稍后再试 | |
部门名称: XXX, 编号XXX的部门编号重复 | 请求列表中存在重复部门数据或者请求列表中存在于已同步至系统的部门中存在重复 |
父级部门未找到 | 部门的父级部门未在列表中找到 |
部门的父级部门不能直接(间接)为自身 | 部门的父级部门(的父级部门...)不能为自身 |
部门名称XXX,父编号XXX的部门名称已存在 | 某部门下存在相同名称的部门 |
... |
删除及合并组织架构
提供部门增加删除标识(已删除部门不合并到另一个部门)和删除部门(删除部门并将已删除部门合并到其他部门
1、部门改为删除状态:如果不传target_department_code,则该部门仅标记为“已删除”状态,实际上还需要在系统内操作删除;
2、删除部门:如果传入target_department_code,则部门数据被合并至target_department_code对应的部门,原部门数据被删除。
HTTP请求
DELETE https://api.mokahr.com/api-platform/v1/departments
请求样例
curl 'https://api.mokahr.com/api-platform/v1/departments' \
-u 'your_api_keys' \
-X DELETE \
-d '
{
"departments": [
{
"department_code": "EN0100321",
"target_department_code": "EN0100322"
},
{
"department_code": "EN0100323"
}
],
"email": "test@test.com"
}'
操作成功
{
"code": 0,
"msg": "成功",
"success": true,
"errorMessage": "",
"data": {}
}
操作失败
{
"code": 625011,
"msg": "department_code(3213232888)在系统中已存在",
"success": false,
"errorMessage": "department_code(323232888)在系统中已存在",
"data": {}
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
departments[] | 是 | array | 部门的信息 |
departments[].department_code | 是 | string | 客户系统的部门id |
departments[].target_department_code | 否 | string | 目标部门的唯一编号 |
是 | string | 已经在moka系统中注册过的邮箱 |
返回json字段
字段 | 类型 | 描述 |
---|---|---|
success | boolean | 操作是否成功 |
errorMessage | string | 操作失败的错误原因 |
可能的错误信息
errorMessage | 描述 |
---|---|
当前有未处理完的组织架构更新,请稍后再试 | |
父级部门未找到 | 删除或者合并部门之后某部门的父级部门未找到 |
部门的父级部门不能直接(间接)为自身 | 删除之后部门的父级部门(的父级部门...)不能为自身 |
部门名称XXX,父编号XXX的部门名称已存在 | 某部门下存在相同名称的部门 |
系统中不存在email为XXX的用户 | 无 |
department_code: XXX 在系统中不存在 | 无 |
职责API
职责相关API
职责同步
Moka 系统中会根据请求的列表对当前系统中的> 职责进行同步(新增,更新,标记删除)。每次最多同步200条。 同步以positionCode为主键,与系统中部门positionCode进行对比: 1、当前系统没有,同步时有:新增一个> 职责 2、当前系统有,同步时也有:更新已经存在的> 职责信息。如果同步时有,当前系统> 职责状态标识为删除,更新后,状态改为正常。 3、当前系统有,同步时没有时:部门打标已删除,需要手动进入 Moka 系统中将该部门合并到其他部门进行删除。
HTTP 请求
POST https://api.mokahr.com/api-platform/v1/positions/syncInfo
请求样例
$ curl 'https://api.mokahr.com/api-platform/v1/positions/syncInfo' \
-u 'your_api_key:' \
-X POST \
-d '{
"data": [
{
"name": "1234",
"positionCode": "s1234567890123456789012345678901234567890123456789",
"enable": true,
"departmentCodes":[411,"dd"],
"departmentIds": [411],
"allDepartments": true
},
{
"name": "1234567",
"positionCode": "s111",
"enable": true,
"departmentCodes":[411,"dd"],
"departmentIds":[411],
"allDepartments": false
}
]
}'
操作结果
{
"code": 200,
"msg": "success",
"data": {
"addCount": 0,
"errorList": [
{
"code": {
"explain": "> 职责名称已存在",
"name": "626005"
},
"data": {
"allDepartments": true,
"departmentCodes": [
"411",
"dd"
],
"departmentIds": [
411
],
"enable": true,
"name": "1234",
"positionCode": "s1234567890123456789012345678901234567890123456789"
}
},
{
"code": {
"explain": "> 职责名称已存在",
"name": "626005"
},
"data": {
"allDepartments": false,
"departmentCodes": [
"411",
"dd"
],
"departmentIds": [
411
],
"enable": true,
"name": "1234567",
"positionCode": "s111"
}
}
],
"updateCount": 0
}
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
data | 是 | array | > 职责数组 |
data[].name | 是 | string | > 职责名称 |
data[].positionCode | 是 | string | > 职责编码,> 职责唯一识别码,用于组织架构同步时,传入关联> 职责。 |
data[].enable | 是 | boolean | > 职责是否启用 可选值: true :启用false :停用 |
data[].departmentCodes | 否 | array | 关联部门code列表,选填,在组织架构中进行关联。匹配优先级低于departmentIds |
data[].departmentIds | 否 | array | 关联部门id列表,选填,在组织架构中进行关联;可以通过“获取全量组织架构”接口进行查询。匹配优先级大于departmentCodes |
data[].allDepartments | 否 | boolean | > 职责是否关联全部部门 可选值: true :该> 职责关联全部部门,departmentIds和departmentCodes不起作用false :false时,关联departmentIds或departmentCodes对应的部门。 |
返回字段
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回的code:200 正常,其他的都是错误 |
msg | string | 返回状态说明 |
data | array | 返回的数据 |
data[].addCount | number | 新增> 职责数量 |
data[].updateCount | number | 更新> 职责数量 |
data[].errorList | array | 同步失败的数据 |
data[].errorList[].positionCode | string | 同步失败的> 职责编码 |
data[].errorList[].name | string | 同步失败的> 职责名称 |
data[].errorList[].msg | string | 该> 职责同步失败的原因 |
部门绑定职责成员接口
为指定部门绑定职责以及该职位的成员
HTTP请求
POST https://api.mokahr.com/api-platform/v1/position/departmentUser
请求样例
curl 'https://api.mokahr.com/api-platform/v1/position/departmentUser' \
-u 'your_api_keys' \
-X DELETE \
-d '
{
"data": [
{
"departmentId": 410937821,
"departmentCode": "98291011",
"positionUsers": {
"Aa00cebb6d839465880cc8aba7086f02d": [
"375645587@qq.com"
]
},
"userUniqueType": "email"
}
]
}'
操作成功
{
"code": 200,
"msg": "success",
"data": {
"addCount": 0,
"errorList": [],
"updateCount": 1
}
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
data | 是 | array | |
data[].departmentId | 否 | number | 职责关联的部门id,部门id和部门apiCode必须填写一个,如果两个都传以部门id为准 |
data[].departmentCode | 否 | string | 职责关联客户系统的部门id,部门id和客户系统部门id必须填写一个,如果两个都传以部门id为准 |
data[].userUniqueType | 是 | string | 指定关联账号的唯一标记 可选择值: email :邮箱phone :手机号number :员工号 |
data[].positionUsers | 是 | object | 职位成员信息key :职责id,一个部门多个职责时,再此参数下支持传多个职责vale :根据userUniqueType类型,传入员工对应类型的信息 |
返回json字段
字段 | 类型 | 描述 |
---|---|---|
code | number | 200 :成功 非200代表错误 |
msg | string | 操作失败的错误原因或者成功提示 |
data | object | |
data.addCount | number | 添加成功的个数 |
data.updateCount | number | 更新成功的个数 |
data.errorList | array | 操作失败的账户和原因 |
部门绑定职务成员接口
为指定部门绑定职务以及该职位的成员
HTTP请求
POST https://api.mokahr.com/api-platform/v1/position/departmentUser
请求样例
curl 'https://api.mokahr.com/api-platform/v1/position/departmentUser' \
-u 'your_api_keys' \
-X DELETE \
-d '
{
"data": [
{
"departmentId": 410937821,
"departmentCode": "98291011",
"positionUsers": {
"Aa00cebb6d839465880cc8aba7086f02d": [
"375645587@qq.com"
]
},
"userUniqueType": "email"
}
]
}'
操作成功
{
"code": 200,
"msg": "success",
"data": {
"addCount": 0,
"errorList": [],
"updateCount": 1
}
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
data | 是 | arry | |
data[].departmentId | 否 | number | 职务关联的部门id,departmentId和departmentCode必须填写一个,如果两个都传以departmentId为准 |
data[].departmentCode | 否 | string | 职务关联客户系统的部门id,departmentId和departmentCode必须填写一个,如果两个都传以departmentId为准 |
data[].userUniqueType | 是 | string | 指定关联账号的唯一标记 可选择值: email :邮箱phone :手机号number :员工号 |
data[].positionUsers | 是 | object | 职务及成员信息key :必填,传入职务对应的positionCodevale :根据userUniqueType类型,传入成员信息。 |
返回json字段
字段 | 类型 | 描述 |
---|---|---|
code | number | 200 :成功 非200代表错误 |
msg | string | 操作失败的错误原因或者成功提示 |
data | object | |
data.addCount | number | 添加成功的个数 |
data.updateCount | number | 更新成功的个数 |
data.errorList | array | 操作失败的账户和原因 |
查询部门职责及对应绑定人员
通过该接口可查询部门绑定的职责及其对应的人员
请求样例
$ curl --location 'https://api.mokahr.com/api-platform/v1/dept_position_user/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Rk55eXA5MkxsTkQya1pQeEV0VU1wNlNheEJqWFJ2eXE6' \
--data '{
"departmentCode":["12348","12349"]
}'
HTTP请求
POST https://api.mokahr.com/api-platform/v1/dept_position_user/search
返回样例
{
"code": 0,
"codeType": 0,
"data": [
{
"departmentCode": "12348",
"positionCode": "A06cd633c55d2434597cb1b87075da89e",
"positionName": "职责2"
},
{
"departmentCode": "12348",
"positionCode": "A653b8b1d14b9422ea1b94353d86f2efd",
"positionName": "职责3"
},
{
"departmentCode": "12349",
"positionCode": "A06cd633c55d2434597cb1b87075da89e",
"positionName": "职责2",
"user": {
"email": "grttest15@mokahr.com",
"phone": "",
"userName": "grtTest",
"userNumber": "10000001"
}
},
{
"departmentCode": "12349",
"positionCode": "A653b8b1d14b9422ea1b94353d86f2efd",
"positionName": "职责3",
"user": {
"email": "grttest15@mokahr.com",
"phone": "",
"userName": "grtTest",
"userNumber": "10000001"
}
},
{
"departmentCode": "12349",
"positionCode": "Aec46c5605ee24d58b66cd12852cf6d6a",
"positionName": "新增测试",
"user": {
"email": "grttest15@mokahr.com",
"phone": "",
"userName": "grtTest",
"userNumber": "10000001"
}
},
{
"departmentCode": "12349",
"positionCode": "Aa8e819ce80d6426bb1e030627becd344",
"positionName": "新增测试职责",
"user": {
"email": "grttest15@mokahr.com",
"phone": "",
"userName": "grtTest",
"userNumber": "10000001"
}
}
],
"msg": "成功",
"success": true
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
departmentCode | 是 | array | 部门code,可传多个,最多一次传100个 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 请求相应错误码 |
message | string | 请求响应信息 |
data | array | |
data[].departmentCode | string | 部门Code |
data[].positionCode | string | 职责编码,有多个时返回多个,没绑定职责时返回null |
data[].positionName | string | 职责名称 |
data[].user | object | 每个职责对应的人员(用户邮箱/手机号/工号/名字),没有绑定用户时,返回null |
用户API
同步人事信息
Moka 系统中会根据请求的列表对当前系统中的人员进行同步(新增,更新,标记删除)。每次同步最多100条。 同步以用户的邮箱、工号、手机号任意一个为主键,与系统中用户的邮箱、工号、手机号任意一个进行对比: 1、当前系统没有,同步时有:新增一个用户 2、当前系统有,同步时也有:更新已经存在的用户信息。如果同步时有,当前系统职责状态标识为删除,更新后,状态改为正常。
HTTP 请求
POST https://api.mokahr.com/api-platform/v2/users/syncInfo
请求样例 (JSON)
请求样例z
$ curl https://api.mokahr.com/api-platform/v2/users/syncInfo
-u 'your-api-key:'
-X POST
-H 'Content-Type: application/json'
-d '{
"usersInfo": [
{
"email": "huohuohou2@mokahr.com",
"name": "liu大哥89",
"phone": "15101069886",
"number": "6661889",
"roleId": 60,
"departmentCode": [],
"superiorEmail": "",
"deactivated": 0,
"thirdPartyId": "",
"uniqueType": "number",
"autoActivated": 1,
"locale": "zh-CN"
}
]
}'
操作成功
{
"code": 200,
"msg": "success",
"data": {
"successCount": 1,
"errorList": []
}
}
操作失败
{
"code": -1,
"msg": "success",
"data": {
"successCount": 0,
"errorList": [
{
"data": {
"email": "huohuohou2@mokahr.com",
"name": "liu大哥89",
"phone": "15101069886",
"number": "6661889",
"roleId": 60,
"departmentCode": [],
"superiorEmail": "",
"deactivated": 0,
"thirdPartyId": "",
"uniqueType": "number",
"locale": "zh-CN"
},
"msg": "参数错误: roleId",
"code": -1
}
]
}
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
usersInfo | 是 | array | 用户信息数组 |
usersInfo[].email | 否/uniqueType为email时必填 | string | 邮箱 |
usersInfo[].name | 否 | string | 姓名 |
usersInfo[].phone | 否/uniqueType为phone时必填 | string | 电话 |
usersInfo[].number | 否/uniqueType为number时必填 | string | 工号 |
usersInfo[].roleId | 否/首次创建用户必填 | int | 自定义角色id |
usersInfo[].departmentCode | 是 | array | 部门编号列表,通过组织架构同步进来的departmentCode,如果传空数组,则判断为所有部门。 |
usersInfo[].superiorEmail | 否 | string | 上级邮箱,传空字符串会清空moka系统中的汇报关系,可以通过设置updateSuperiorEmail 参数,选择是否更新汇报关系 |
usersInfo[].deactivated | 是 | int | 是否禁用/初次创建用户传1,则用户不会创建成功 0-不禁用 1-禁用 |
usersInfo[].thirdPartyId | 否 | string | 功能性字段 用作单点登录 没有传空字符串 |
usersInfo[].uniqueType | 是 | string | email或者number或者phone,判断此次传输时用来判断账号唯一性的标识 |
usersInfo[].updateDepartment | 否 | boolean | !!!注意:不传默认是true 是否更新部门 true :更新false :不更新 |
usersInfo[].updateSuperiorEmail | 否 | boolean | 是否更新上级汇报人,true更新false不更新 |
usersInfo[].autoActivated | 否 | int | 0-不自动激活,1-自动激活,传空字符串默认为0 |
usersInfo[].locale | 否 | string | 用户语言:zh-CN为中文,不传默认为中文;en-US为English |
usersInfo[].timezone | 否 | string | 用户时区:传英文缩写 eg: 中国时间 传 : Asia/Shanghai |
返回json
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 响应码,非200代表失败 |
msg | string | 响应信息 |
data | object | 返回数据 |
data.successCount | number | 同步成功数据数量。例:"successCount": 1, // 成功了一条数据 |
data.errorList | Array | 同步失败的数据。 |
data.errorList[].code | int | 响应码 |
data.errorList[].msg | string | 该条数据失败的原因 |
data.errorList[].data | object | 数据信息 |
data.errorList[].data.email | string | 邮箱 |
data.errorList[].data.name | string | 姓名 |
data.errorList[].data.phone | string | 电话 |
data.errorList[].data.number | string | 工号 |
data.errorList[].data.roleId | int | 自定义角色id |
data.errorList[].data.locale | string | 用户语言: zh-CN为中文,不传默认为中文 en-US为English |
data.errorList[].data.departmentCode | array | 部门编号列表,通过组织架构同步进来的departmentCode,如果传空数组,则判断为所有部门。 |
data.errorList[].data.superiorEmail | string | 上级邮箱 |
data.errorList[].data.deactivated | int | 是否禁用/初次创建用户传1,则用户不会创建成功 0-不禁用 1-禁用 |
data.errorList[].data.thirdPartyId | string | 功能性字段 用作单点登录 没有传空字符串 |
data.errorList[].data.uniqueType | string | email或者number或者phone,判断此次传输时用来判断账号唯一性的标识 |
获取人事信息
HTTP 请求
POST https://api.mokahr.com/api-platform/v1/users/list
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/users/list' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"deactivated": 0,
"limit": "20",
"order": "asc"
}'
返回示例
{
"code": 200,
"message": "success",
"data": [
{
"userId": 200000188,
"email": "test2@sdicfund.com",
"name": "马田",
"phone": "10065761890",
"role": 50,
"roleId": 200000145,
"deactivated": 0,
"thirdPartyId": "",
"locale": "zh-CN",
"department": []
},
{
"userId": 200000307,
"email": "1581904186@qq.com",
"name": "耿凯3",
"phone": "18732837638",
"role": 30,
"roleId": 200000143,
"superiorEmail": "test@sdicfund.com",
"deactivated": 0,
"thirdPartyId": "",
"locale": "zh-CN",
"department": []
}
],
"next": "200000317"
}
请求query参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
next | 否 | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next字段,下次请求只需要把这个next参数加到query中就可以了。如果响应中没有next字段,表示没有更多的数据了 |
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
roleId | 否 | integer | 角色id |
否 | string | 邮箱 | |
phone | 否 | string | 电话 |
number | 否 | string | 工号 |
deactivated | 否 | integer | 是否被禁用 可选值: 0 :可用 1 :禁用 |
departmentIdType | 否 | string | 此次调用中使用的部门ID类型。可选值: DEPARTMENT_ID (默认值):moka部门id DEPARTMENT_CODE :三方系统部门id |
departmentId | 否 | string | 用户所属/负责部门id |
locale | 否 | string | 用户语言 可选值: zh-CN :为中文 en-US :英文默认为中文 |
limit | 否 | string | 分页用的每页条数,默认100,最大500 |
order | 否 | string | 拉取数据的排序方式, 排序key为用户创建时间.可选值为:DESC 按照从新到旧的顺序拉取,此为默认值DESC。按照从旧到新的数据拉取。注意:当排序方式为ASC 时,无论是否有更多数据,返回body中都会包含next(可用作增量拉取) |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 200 :成功 非200代表失败 |
message | string | 提示信息 |
next | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next字段,下次请求只需要把这个next参数加到query中就可以了。如果响应中没有next字段,表示没有更多的数据了 |
data[].userId | string | 用户id |
data[].email | string | 邮箱 |
data[].name | string | 姓名 |
data[].phone | string | 电话 |
data[].number | stirng | 工号 |
data[].role | interger | 角色 0 :内推人 5 :前台 10 :面试官 20 :用人经理 25 :高级用人经理 30 :HR 40 :管理员 50 :超管 |
data[].roleId | interger | 自定义角色id |
data[].superiorEmail | stirng | 上级邮箱 |
data[].deactivated | stirng | 是否被禁用 可选值: 0 :可用 1 :禁用 |
data[].isPending | boolean | 功能性字段,用作单点登录,没有传空字符串 |
data[].thirdPartyId | stirng | 功能性字段,用作单点登录,没有返回空字符串 |
data[].locale | string | 用户语言 可选值: zh-CN :为中文 en-US :英文默认为中文 |
data[].department | array | 用户所属/负责部门 |
data[].department[].departmentCode | string | 三方部门id |
data[].department[].departmentId | string | moka部门id |
data[].department[].name | string | 部门名称 |
查询角色信息
返回值为该客户下所有用户角色
请求样例
$ curl https://api.mokahr.com/api-platform/v1/users/roles?type=all \
-u 'your_api_key:' \
-X GET \
返回样例
{
"success": true,
"data": [
{
"id": 44,
"name": "面试官",
"role": 10,
"description": "可筛选简历、填写面试反馈"
},
{
"id": 45,
"name": "用人经理",
"role": 20,
"description": "可筛选简历、填写面试反馈,查看所有的面试反馈"
},
{
"id": 46,
"name": "HR",
"role": 30,
"description": "可查看部分职位的候选人信息及部分报表"
},
{
"id": 47,
"name": "管理员",
"role": 40,
"description": "可以创建并管理HR、用人部门经理、面试官帐号,拥有所属HR的全部权限"
},
{
"id": 48,
"name": "超级管理员",
"role": 50,
"description": "拥有所有权限,可以查看所有候选人信息"
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/users/roles?type=all
请求url参数
字段 | 类型 | 描述 |
---|---|---|
type | string | 查询类型 可选值: all :全部 custom :自定义 builtin :内建 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 角色id |
name | string | 角色名称 |
role | integer | 角色值 |
description | string | 描述 |
新增用户组信息
支持新增用户组基本信息,用户组成员非必填。
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/userGroup/add' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"userGroupName": "用户组1",
"members": [
{
"uniqueType":"email",
"email":"aaa@aaa.com"
}
]
}'
返回示例
{
"code": 0,
"msg": "success",
"data": {
"userGroupId": 46
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/userGroup/add
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
userGroupName | 是 | string | 用户组名称(名称不可重复) |
member | 否 | array | 新增用户成员信息 用户组成员最多1000人 用户成员的角色必须为面试官及以上,如果用户成员中存在不满足的用户则全部失败。 |
member[].uniqueType | 是 | string | 用户信息的唯一标识 可选值: email:邮箱 phone:手机 number:工号 |
member[].email | 否/uniqueType为email时必填 | string | 用户的邮箱 |
member[].phone | 否/uniqueType为phone时必填 | string | 用户的手机号 |
member[].number | 否/uniqueType为number时必填 | string | 用户的工号 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
data | Object | 返回信息 |
data.userGroupId | integer | 用户组id |
更新用户组信息
支持修改用户组基本信用户组请求参数未传时,则用户组信息不更新。用户组请求参数传空时,信息更新为空。
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/user_group/update' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"userGroupId": 1,
"userGroupName": "用户组1",
"activate": true
}'
返回示例
{
"code": 200,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/user_group/update
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
userGroupId | 是 | integer | 用户组id |
userGroupName | 否 | string | 用户组名称 |
activate | 否 | boolean | 用户组状态 true:启用 false 启用 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
根据条件查询用户组列表
获取用户组列表
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/userGroup/queryUserGroupList' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
}'
返回示例
{
"code": 0,
"msg": "success",
"data": [
{
"groupId": 26,
"userGroupName": "TI面试官组",
"activate": true
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/userGroup/queryUserGroupList
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
userGroupIds | 否 | array | 用户组id integer |
onlyValid | 否 | boolean | 是否需要查询有效的用户组, true-有效的 false-全部用户组(默认false) |
groupName | 否 | string | 用户组名称 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
data | Array | 返回信息 |
data[].groupId | 是 | integer |
data[].userGroupName | 是 | string |
data[].activate | 是 | boolean |
添加用户组成员信息
支持添加用户组人员。用户组成员的角色类型是面试官及以上,如果传入的用户组成员中包含面试官以下角色,用户组成员添加失败。
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/userGroup/addMember' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"userGroupId": 1,
"members": [
{
"uniqueType":"email",
"email":"aaa@aaa.com"
},
{
"uniqueType":"phone",
"email":"12422222222"
},
{
"uniqueType":"number",
"email":"12123"
}
]
}'
返回示例
{
"code": 0,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/userGroup/addMember
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
userGroupId | 是 | integer | 用户组id |
member | 否 | array | 新增用户成员信息 用户组成员最多1000人 用户成员的角色必须为面试官及以上,如果用户成员中存在不满足的用户则全部失败。 |
member[].uniqueType | 是 | string | 用户信息的唯一标识 可选值: email:邮箱 phone:手机 number:工号 |
member[].email | 否/uniqueType为email时必填 | string | 用户的邮箱 |
member[].phone | 否/uniqueType为phone时必填 | string | 用户的手机号 |
member[].number | 否/uniqueType为number时必填 | string | 用户的工号 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
data | Object | 返回信息,失败时有数据 |
data.errorList | array | 错误详细信息 |
更新用户组成员信息
支持修改用户组更新用户组的人员,用户组请求参数传空时,清空用户成员。用户组的成员信息需要同步全部成员,不支持局部成员修改,用户组成员的角色类型是面试官及以上,如果传入的用户组成员中包含面试官以下角色,用户组成员更新失败。
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/user_group/update_member' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"userGroupId": 1,
"members": [
{
"uniqueType":"email",
"email":"aaa@aaa.com"
},
{
"uniqueType":"phone",
"email":"12422222222"
},
{
"uniqueType":"number",
"email":"12123"
}
]
}'
返回示例
{
"code": 200,
"msg": "success",
"data": {
"errorList":[
{
"uniqueType":"email",
"email":"aaa@aaa.com"
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/user_group/update_member
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
userGroupId | 是 | integer | 用户组id |
member | 否 | array | 要更新的用户成员信息 用户组成员最多1000人 用户成员的角色必须为面试官及以上,如果用户成员中存在不满足的用户则全部失败。 |
member[].uniqueType | 是 | string | 用户信息的唯一标识 可选值: email:邮箱 phone:手机 number:工号 |
member[].email | 否/uniqueType为email时必填 | string | 用户的邮箱 |
member[].phone | 否/uniqueType为phone时必填 | string | 用户的手机号 |
member[].number | 否/uniqueType为number时必填 | string | 用户的工号 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
data | Object | 返回信息,失败时有数据 |
data.errorList | array | 错误详细信息 |
删除用户组成员信息
删除用户组成员信息。用户组的成员信息同新增修改接口
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/userGroup/deleteMember' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"userGroupId": 1,
"members": [
{
"uniqueType":"email",
"email":"aaa@aaa.com"
},
{
"uniqueType":"phone",
"email":"12422222222"
},
{
"uniqueType":"number",
"email":"12123"
}
]
}'
返回示例
{
"code": 0,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/userGroup/deleteMember
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
userGroupId | 是 | integer | 用户组id |
member | 否 | array | 要删除的用户成员信息 如果用户成员前置校验中存在不满足的用户则全部失败 用户不在用户组内,不处理,删除在用户组内的用户。 |
member[].uniqueType | 是 | string | 用户信息的唯一标识 可选值: email:邮箱 phone:手机 number:工号 |
member[].email | 否/uniqueType为email时必填 | string | 用户的邮箱 |
member[].phone | 否/uniqueType为phone时必填 | string | 用户的手机号 |
member[].number | 否/uniqueType为number时必填 | string | 用户的工号 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
data | Object | 返回信息,失败时有数据 |
data.errorList | array | 错误详细信息 |
获取用户组成员信息
获取用户组成员信息。通过用户组id集合获取用户组成员信息
请求样例 (JSON)
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/userGroup/listByGroupIds' \
--header 'Authorization: Basic Mm11UnVBQk******zY6' \
--header 'Content-Type: application/json' \
--data-raw '{
"ids": [
"20"
]
}'
返回示例
{
"code": 0,
"msg": "success",
"data": [
{
"groupId": 26,
"groupName": "TI面试官组",
"activate": true,
"userList": [
{
"email": "majingjing002@chacuo.net",
"id": 1000016465,
"name": "马晶晶002",
"phone": "17600785675",
"role": 40
},
{
"email": "shuobin_dingding@126.com",
"id": 1000016344,
"name": "shuobin_dingding@126.com",
"phone": "13311511532",
"role": 40
},
{
"email": "shuobin_lark@126.com",
"id": 1000016345,
"name": "shuobin_lark@126.com",
"phone": "",
"role": 30
}
]
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/userGroup/listByGroupIds
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
ids | 是 | array | 用户组id integer |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
data | Array | 返回信息 |
data[].groupId | 是 | integer |
data[].groupName | 是 | string |
data[].activate | 是 | boolean |
data[].userList | 否 | array |
data[].userList[].id | 是 | integer |
data[].userList[].email | 否 | string |
data[].userList[].phone | 否 | string |
data[].userList[].name | 否 | string |
data[].userList[].role | 否 | integer |
招聘需求 API
此部分API主要用于获取当前Headcount数据,以及批量导入headcount,写入接口请求频率限制1分钟30次。
各个变量的取值范围
status HC 状态
值 | 描述 |
---|---|
draft | 草稿 |
unstart | 未进行(默认值) |
ongoing | 进行中 |
complete | 已完成 |
suspend | 已暂停 |
canceled | 已取消 |
timeout | 已超期 |
type 需求类型
值 | 描述 |
---|---|
planned | 计划内(默认值) |
unplanned | 计划外 |
commitment 职位性质
值 | 描述 |
---|---|
parttime | 兼职 |
fulltime | 全职(默认值) |
intern | 实习 |
other | 其它 |
hiremode 招聘模式
值 | 描述 |
---|---|
1 | 社招 |
2 | 校招 |
新建 招聘需求
同步信息内包含组织架构、职位id信息需要到相关接口单独获取
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcount/\?currentHireMode\=1 \
-u 'your-api-key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '
{
"number": "hc_automan",
"jobName": "hcName",
"needNumber": 1,
"startDate": "2017-10-12T00:00:00.000Z",
"education": "本科",
"departmentCode": "8",
"maxSalary": 2,
"minSalary": 1,
"jobPriorityId": 1,
"locationId": 1,
"jobRankIds": [1,3],
"customData": {
"1": "test",
"2": 123,
"3":["1723553256175","1723553256176"]
}
}
'
返回样例
{
"headcount": {
"id": 1,
"number": "hc-automan",
"jobName": "hcname",
"type": "planned",
"needNumber": 10,
"departmentId": 1,
"commitment": "fulltime",
"ownerId": 1,
"managerIds": [2],
"description": null,
"status": "unstart",
"creatorId": 7,
"hireMode": 1,
"orgId": "livingsimple",
"createdAt": "2018-01-09T10:37:32.000Z",
"updatedAt": "2018-01-09T10:37:32.000Z",
"startDate": "2017-10-12",
"completeDate": null,
"connectedJobIds": [],
"connectedJobs": [],
"usedNumber": 0,
"remainNumber": 5,
"ownerEmail": "hr@test.moka",
"managerEmails": ["hr@trymoka.com"],
"managerEmployeeIds": ["0018"],
"departmentCode": "7",
"customData": {
"3": [
{
"localeValues": [
{
"locale": "zh-CN",
"value": "value1"
},{
"locale": "en-US",
"value": "valueA"
}
],
"optionId": "1723553256175"
},
{
"localeValues": [
{
"locale": "zh-CN",
"value": "value2"
},{
"locale": "en-US",
"value": "valueB"
}
],
"optionId": "1723553256176"
}
],
"2": "test",
"1": 123
},
"addressInfo": [
{
"id": 1,
"country": "中国",
"province": "北京市",
"area": "海淀区",
"address": "北京市海淀区海淀西大街"
}
],
"jobPriority": [
{
"id": 14,
"name": "123",
"isBuiltin": 0
}
],
"jobRanks": [
{
"id": 1,
"name": "新人",
"type": "p5",
"level": 1,
"hcId": 8
},
{
"id": 3,
"name": "总裁",
"type": null,
"level": 3,
"hcId": 8
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/headcount
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
请求body
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
number | 是 | string | 招聘需求编号,编号全局唯一,且不可修改 |
jobName | 是 | string | 招聘需求名称 |
type | 否 | string | 需求类型 |
needNumber | 是 | integer | 需求人数 |
departmentCode | 否 | string | 部门code,组织架构同步接口传的department_code |
commitment | 否 | string | 职位属性 |
ownerEmail | 否 | string | 汇报对象邮箱 |
ownerEmployeeId | 否 | string | 汇报对象工号 |
managerEmails | 否 | array | 负责人邮箱:需要有权限的人员邮箱,如hr或超管 |
managerEmployeeIds | 否 | array | 负责人工号:需要有权限的人员工号,如hr或超管 |
description | 否 | string | 需求描述,html字符串: |
status | 否 | string | 进行状态 |
creatorEmail | 否 | String | 招聘需求创建者email,只在创建时可添加,编辑时无法修改,系统内不显示 |
startDate | 否 | string | 招聘需求开始时间。日期格式为:ISO8601 |
completeDate | 否 | string | 目标完成时间。日期格式为:ISO8601 |
connectedJobIds | 否 | array | 关联职位的id |
customData | 否 | object | 自定义字段,键值对形式,key为自定义字段id,value为自定义字段值。如果是多选字段,value为选项id数组。2024年11月18日之前创建的社招自定义字段,它的id可以用来创建/编辑校招招聘需求的自定义字段(数据库中存的是校招真实id)。虽然有校社招字段id映射关系,还是尽量使用真正模式的字段id,来新建和编辑自定义字段内容。返回结果里的id,始终都是真正模式的id. |
locationId | 否 | integer | 地点id |
jobPriorityId | 否 | integer | 职位优先级id |
jobRankIds | 否 | array | 职位级别id |
education | 否 | string | 学历要求 取值范围 不限 高中以下 中专 中技 大专 本科 硕士 博士 |
sharedUserEmails | 否 | array | 需求共享人邮箱。需求负责人、需求共享人、需求创建人不能为同一个人 |
sharedUserEmployeeIds | 否 | array | 需求共享人工号 |
zhinengId | 否 | integer | 职能ID |
minSalary | 否 | integer | 最低薪资 |
maxSalary | 否 | integer | 最高薪资 |
salaryUnit | 否 | integer | 薪资单位 可选值: 0:k/月 1:元/月 2:元/周 3:元/天 4:元/小时 5:元/次 |
payPeriod | 否 | integer | 发薪月数 最小值:12 最大值:24 |
paymentMethod | 否 | integer | 发薪方式 可选值: 0:日结 1:周结 2:月结 3:完工结 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | hc的id |
number | string | hc编号 |
jobName | string | hc名称 |
type | string | 需求类型 |
needNumber | integer | 需求人数 |
departmentId | integer | 部门id |
commitment | string | 职位属性 可选值: 全职 兼职 实习 其他 |
ownerId | integer | 汇报对象id |
ownerEmail | integer | 汇报对象Email |
ownerEmployeeId | integer | 汇报对象工号 |
managerIds | array | 负责人id数组 |
managerEmails | array | 负责人邮箱数组 |
managerEmployeeIds | array | 负责人工号数组 |
description | string | 需求描述 |
status | string | 进行状态 |
creatorId | integer | hc创建者id |
creatorEmail | String | hc创建者Email |
hireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
orgId | string | 公司id |
createAt | string | 创建时间。日期格式为:ISO8601 |
updateAt | string | 更新时间。日期格式为:ISO8601 |
startDate | string | 开始时间。日期格式为:ISO8601 |
completeDate | string | 结束时间。日期格式为:ISO8601 |
connectedJobIds | array | 关联职位的id |
connectedJobs | array | 关联职位的详情 |
usedNumber | integer | 已使用人数 |
remainNumber | integer | 剩余人数 |
customData | object | 自定义字段 |
departmentCode | string | 部门同步时使用的code |
addressInfo | array | 地点信息 |
jobPriority | array | 职位优先级信息 |
jobRanks | array | 职位级别 |
education | string | 学历要求 |
sharedUserEmails | array | 需求共享人邮箱 |
sharedUserEmployeeIds | array | 需求共享人工号 |
zhineng | object | 职能信息 |
zhineng.id | integer | 职能ID |
zhineng.name | string | 职能名称 |
minSalary | integer | 最低薪资 |
maxSalary | integer | 最高薪资 |
salaryUnit | integer | 薪资单位 |
payPeriod | integer | 发薪月数 |
paymentMethod | integer | 发薪方式 |
更新 招聘需求
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcount/1 \
-u 'your-api-key:' \
-X PUT \
-H 'content-type: application/json' \
-d '
{
"jobName": "hcName",
"needNumber": 10,
"customData": {
"1": "test",
"2": 123,
"3":["1723553256175","1723553256176"]
},
"startDate": "2017-10-12T00:00:00.000Z"
}
'
返回样例
{
"headcount": {
"id": 1,
"number": "hc-automan",
"jobName": "hcname",
"type": "planned",
"needNumber": 10,
"departmentId": 1,
"commitment": "fulltime",
"ownerId": 1,
"managerIds": [2],
"managerEmails": ["hr@trymoka.com"],
"managerEmployeeIds": ["0019"],
"description": null,
"status": "unstart",
"creatorId": 7,
"hireMode": 1,
"orgId": "livingsimple",
"createdAt": "2018-01-09T10:37:32.000Z",
"updatedAt": "2018-01-09T10:37:32.000Z",
"startDate": "2017-10-12",
"completeDate": null,
"connectedJobIds": [],
"connectedJobs": [],
"usedNumber": 0,
"remainNumber": 5,
"education": "本科",
"customData": {
"3": [
{
"localeValues": [
{
"locale": "zh-CN",
"value": "value1"
},{
"locale": "en-US",
"value": "valueA"
}
],
"optionId": "1723553256175"
},
{
"localeValues": [
{
"locale": "zh-CN",
"value": "value2"
},{
"locale": "en-US",
"value": "valueB"
}
],
"optionId": "1723553256176"
}
],
"2": "test value1",
"1": "test value2"
}
}
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/headcount/{hcId}
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
hcId | integer | 目标hc id |
请求body
字段 | 类型 | 描述 |
---|---|---|
jobName | string | hc名称 |
type | string | 需求类型 |
needNumber | integer | 需求人数 |
departmentCode | string | 部门code,组织架构同步接口传的department_code |
commitment | string | 职位属性 |
ownerEmail | integer | 汇报对象Email |
managerEmails | array | 负责人邮箱 |
managerEmployeeIds | array | 负责人工号 |
description | string | 需求描述,html字符串 |
status | string | 进行状态 |
creatorId | integer | hc创建者id |
startData | string | 开始时间 |
completeDate | string | 结束时间 |
connectedJobIds | array | 关联职位的id |
customData | object | 自定义字段,键值对形式,key为自定义字段id,value为自定义字段值。如果是多选字段,value为选项id数组。2024年11月18日之前创建的社招自定义字段,它的id可以用来创建/编辑校招招聘需求的自定义字段(数据库中存的是校招真实id)。虽然有校社招字段id映射关系,还是尽量使用真正模式的字段id,来新建和编辑自定义字段内容。返回结果里的id,始终都是真正模式的id. |
locationId | integer | 地点id |
jobPriorityId | integer | 职位优先级id |
jobRankIds | array | 职位级别id |
education | string | 学历要求,取值范围:不限, 高中以下, 中专, 中技, 大专, 本科, 硕士, 博士 |
realCompleteDate | string | 实际完成时间。当更新需求状态为“已完成”时,该字段生效;不传值默认使用更新时间 |
sharedUserEmails | array | 需求共享人邮箱。需求负责人、需求共享人、需求创建人不能为同一个人 |
sharedUserEmployeeIds | array | 需求共享人工号 |
zhinengId | integer | 职能ID |
minSalary | integer | 最低薪资 |
maxSalary | integer | 最高薪资 |
salaryUnit | integer | 薪资单位 可选值: 0:k/月 1:元/月 2:元/周 3:元/天 4:元/小时 5:元/次 |
payPeriod | integer | 发薪月数 最小值:12 最大值:24 |
paymentMethod | integer | 发薪方式 可选值: 0:日结 1:周结 2:月结 3:完工结 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | hc的id |
number | string | hc编号 |
jobName | string | hc名称 |
type | string | 需求类型 |
needNumber | integer | 需求人数 |
departmentId | integer | 部门id |
commitment | string | 职位属性 可选值: 全职 兼职 实习 其他 |
ownerId | integer | 汇报对象id |
ownerEmail | integer | 汇报对象Email |
ownerEmployeeId | integer | 汇报对象工号 |
managerIds | array | 负责人id数组 |
managerEmails | array | 负责人邮箱数组 |
managerEmployeeIds | array | 负责人工号数组 |
description | string | 需求描述 |
status | string | 进行状态 |
creatorId | integer | hc创建者id |
hireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
orgId | string | 公司id |
createAt | string | 创建时间。日期格式为:ISO8601 |
updateAt | string | 更新时间。日期格式为:ISO8601 |
startData | string | 开始时间。日期格式为:ISO8601 |
completeDate | string | 结束时间。日期格式为:ISO8601 |
connectedJobIds | array | 关联职位的id |
connectedJobs | array | 关联职位的详情 |
usedNumber | integer | 已使用人数 |
remainNumber | integer | 剩余人数 |
customData | object | 自定义字段 |
departmentCode | string | 部门同步时使用的code |
addressInfo | array | 地点信息 |
jobPriority | array | 职位优先级信息 |
jobRanks | array | 职位级别 |
education | string | 学历要求 |
realCompleteDate | string | 实际完成时间。当更新需求状态为“已完成”时,该字段生效;不传值默认使用更新时间 |
sharedUserEmails | array | 需求共享人邮箱 |
sharedUserEmployeeIds | array | 需求共享人工号 |
zhineng | object | 职能信息 |
zhineng.id | integer | 职能ID |
zhineng.name | integer | 职能名称 |
minSalary | integer | 最低薪资 |
maxSalary | integer | 最高薪资 |
salaryUnit | integer | 薪资单位 |
payPeriod | integer | 发薪月数 |
paymentMethod | integer | 发薪方式 |
删除 招聘需求
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcount/1\ \
-u 'your-api_key:' \
-X DELETE
返回样例
ok
HTTP请求
DELETE https://api.mokahr.com/api-platform/v1/headcount/{hcId}
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
hcId | integer | 目标hc id |
获取hc基本信息列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcount/minimal_headcounts\?currentHireMode\=1 \
-u 'your_api_key:' \
-X GET
返回样例
{
"headcounts": [
{
"id": 1,
"number": "AoTeMan001",
"status": "unstart",
"jobName": "野生奥特曼",
"needNumber": 5,
"departmentId": 1,
"ownerId": 1,
"orgId": "livingsimple"
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/headcount/minimal_headcounts
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
headcounts | array | |
id | integer | hc的id |
number | string | hc编号 |
status | string | 进行状态 |
jobName | string | hc名称 |
needNumber | integer | 需求人数 |
departmentId | integer | 部门id |
departmentCode | string | 部门同步时使用的code |
ownerId | integer | 汇报对象id |
orgId | string | 公司id |
获取指定招聘需求详情
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcount/10 \
-u 'your-api_key:' \
-X GET
返回样例
{
"headcount": {
"id": 1,
"number": "AoTeMan001",
"jobName": "野生奥特曼",
"type": "planned",
"needNumber": 5,
"departmentId": 1,
"departmentCode": "7",
"commitment": "fulltime",
"ownerId": 1,
"managerIds": [2],
"description": null,
"status": "unstart",
"creatorId": 7,
"hireMode": 1,
"orgId": "livingsimple",
"createdAt": "2018-01-09T10:37:32.000Z",
"updatedAt": "2018-01-09T10:37:32.000Z",
"startDate": null,
"completeDate": null,
"connectedJobIds": [],
"connectedJobs": [],
"usedNumber": 0,
"remainNumber": 5,
"customData": {
"1": "123",
"2": "222"
},
"ownerEmail": "hr@test.moka",
"managerEmails": ["guoxing123@trymoka.com"],
"managerEmployeeIds": ["0019"],
"departmentCode": "7",
"addressInfo": [
{
"id": 1,
"country": "中国",
"province": "北京市",
"area": "海淀区",
"address": "北京市海淀区海淀西大街"
}
],
"jobPriority": [
{
"id": 14,
"name": "123",
"isBuiltin": 0
}
],
"jobRanks": [
{
"id": 1,
"name": "新人",
"type": "p5",
"level": 1,
"hcId": 8
},
{
"id": 3,
"name": "总裁",
"type": null,
"level": 3,
"hcId": 8
}
]
}
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/headcount/{hcId}
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
hcId | integer | hc的id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | hc的id |
number | string | hc编号 |
jobName | string | hc名称 |
type | string | 需求类型 |
needNumber | integer | 需求人数 |
departmentId | integer | 部门id |
commitment | string | 职位属性 可选值: 全职 兼职 实习 其他 |
ownerId | integer | 汇报对象id |
ownerEmail | string | 汇报对象邮箱 |
ownerEmployeeId | string | 汇报对象工号 |
managerIds | array | 负责人id数组 |
managerEmails | array | 负责人邮箱数组 |
managerEmployeeIds | array | 负责人工号数组 |
description | string | 需求描述 |
status | string | 进行状态 |
creatorId | integer | hc创建者id |
creatorEmail | String | hc创建者email |
hireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
orgId | string | 公司id |
createdAt | string | 创建时间 |
updatedAt | string | 更新时间 |
startDate | string | 开始时间 "2022-03-11" |
completeDate | string | 结束时间 |
connectedJobIds | array | 关联职位的id |
connectedJobs | array | 关联职位的详情 |
usedNumber | integer | 已使用人数(同在职人数),关联了对应招聘需求,且状态为已入职的候选人数,候选人入职后又离职,则已使用数会对应扣减。建议使用“在职人数”,与系统招聘需求模块保持一致。 |
remainNumber | integer | 剩余人数 剩余人数=需求人数-已使用人数 |
currentEnrolledNumber | integer | 在职人数,关联了对应招聘需求,且状态为已入 |
departureNumber | integer | 离职人数,关联了对应招聘需求,且状态为已离职的候选人数 |
customData | object | 自定义字段的值 |
departmentCode | string | 部门同步时使用的code |
addressInfo | array | 地点信息 |
jobPriority | array | 职位优先级信息 |
jobRanks | array | 职位级别 |
minSalary | integer | 最低薪资,单位:千(K) |
maxSalary | integer | 最高薪资,单位:千(K) |
education | string | 学历要求,取值范围:不限 高中以下 中专 中技 大专 本科 硕士 博士 |
allCount | integer | offer发放总数 |
sendCount | integer | 待接受offer总数 |
rejectedCount | integer | 已拒绝offer总数 |
pendingCheckin | integer | 待入职(offer发放且候选人接受且候选人状态为待入职) |
realCompleteDate | string | 需求实际完成时间 |
approvalStatus | integer | 招聘需求审批状态 0,未发起;1,审批中;3,已驳回;4,已撤回; |
isGlobal | integer | 是否同时使用社校招 |
sharedUserEmails | array | 共享人邮箱 |
sharedUserEmployeeIds | array | 共享人工号 |
获取指定状态的招聘需求列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcounts\?currentHireMode\=1\&status\=complete&pageNumber=1 \
-u 'your-api_key:' \
-X GET
返回样例
{
"headcount": {
"id": 1,
"number": "AoTeMan001",
"jobName": "野生奥特曼",
"type": "planned",
"needNumber": 5,
"departmentId": 1,
"commitment": "fulltime",
"ownerId": 1,
"description": null,
"managerIds": [2],
"managerEmails": ["hr@trymoka.com"],
"managerEmployeeIds": ["0018"],
"status": "complete",
"creatorId": 7,
"hireMode": 1,
"orgId": "livingsimple",
"createdAt": "2018-01-09T10:37:32.000Z",
"updatedAt": "2018-01-09T10:37:32.000Z",
"startDate": null,
"completeDate": null,
"connectedJobIds": [],
"connectedJobs": [],
"usedNumber": 0,
"remainNumber": 5,
"departmentCode": "7",
"addressInfo": [
{
"id": 1,
"country": "中国",
"province": "北京市",
"area": "海淀区",
"address": "北京市海淀区海淀西大街"
}
],
"jobPriority": [
{
"id": 1,
"name": "优先招聘",
"isBuiltin": 1
}
],
"jobRanks": [
{
"id": 1,
"name": "新人",
"type": "p5",
"level": 1,
"hcId": 8
},
{
"id": 3,
"name": "总裁",
"type": null,
"level": 3,
"hcId": 8
}
]
}
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/headcounts
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
status | string | 状态 |
pageNumber | intger | 页签,表示获取第几页的数据(每页返回20条数据) |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | hc的id |
number | string | hc编号 |
jobName | string | hc名称 |
type | string | 需求类型 |
needNumber | integer | 需求人数 |
departmentId | integer | 部门id |
commitment | string | 职位属性,可选值:全职 兼职 实习 其他 |
ownerId | integer | 汇报对象id |
managerIds | array | 负责人id数组 |
managerEmails | array | 负责人邮箱数组 |
managerEmployeeIds | array | 负责人工号数组 |
description | string | 需求描述 |
status | string | 进行状态 |
creatorId | integer | hc创建者id |
hireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
orgId | string | 公司id |
createAt | string | 创建时间。日期格式为:ISO8601 |
updateAt | string | 更新时间。日期格式为:ISO8601 |
startData | string | 开始时间。日期格式为:ISO8601 |
completeDate | string | 结束时间。日期格式为:ISO8601 |
connectedJobIds | array | 关联职位的id |
connectedJobs | array | 关联职位的详情 |
usedNumber | integer | 已使用人数(同在职人数),关联了对应招聘需求,且状态为已入职的候选人数,候选人入职后又离职,则已使用数会对应扣减。建议使用“在职人数”,与系统招聘需求模块保持一致。 |
remainNumber | integer | 剩余人数,剩余人数=需求人数-已使用人数 |
currentEnrolledNumber | integer | 在职人数,关联了对应招聘需求,且状态为已入职的候选人数,候选人入职后又离职,则在职人数会对应扣减 |
departureNumber | integer | 离职人数,关联了对应招聘需求,且状态为已离职的候选人数 |
departmentCode | string | 部门同步时使用的code |
addressInfo | array | 地点信息 |
jobPriority | array | 职位优先级信息 |
jobRanks | array | 职位级别 |
sharedUserEmails | array | 需求共享人邮箱数组 |
sharedUserEmployeeIds | array | 需求共享人工号数组 |
获取招聘需求数量
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headcount_status/count\?currentHireMode\=1 \
-u 'your-api_key:' \
-X GET
返回样例
{
"statusCount": {
"complete": 1,
"suspend": 1,
"unstart": 22
}
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/headcount_status/count
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
complete | integer | complete的数量,没有字段则为0 |
获取自定义字段列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/hc_fields \
-u 'your_api_key:' \
-X GET
返回样例
[
{
"id": 1,
"name": "需求类型",
"type": "select_info",
"detail": null,
"isRequired": 1,
"isVisible": 1,
"isBuiltin": 1
},
{
"id": 2,
"name": "select",
"type": "select_info",
"detail": [
"1",
"2"
],
"isRequired": 0,
"isVisible": 1,
"isBuiltin": 0
},
{
"id": 3,
"name": "test multi select info",
"type": "multi_select_info",
"multiDetail": [
{
"localeValues": [
{
"locale": "zh-CN",
"value": "value1"
},{
"locale": "en-US",
"value": "valueA"
}
],
"optionId": "1723553256175"
},
{
"localeValues": [
{
"locale": "zh-CN",
"value": "value2"
},{
"locale": "en-US",
"value": "valueB"
}
],
"optionId": "1723553256176"
}
],
"isApproval": 1,
"isBuiltin": 0,
"isRequired": 0,
"isVisible": 1
}
]
HTTP请求
GET https://api.mokahr.com/api-platform/v1/hc_fields
请求URL参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式,默认社招 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 字段id,用于新建和更新自定义字段 |
name | string | 字段显示的名字 |
type | string | 字段类型select_info : 选择类型 multi_select_info :多选类型 string_info : 字符串类型 date_info :日期类型 |
detail | array | select_info下,选择项的题 |
multiDetail | array | multi_select_info下,多选项的题 |
isRequired | integer | 必填 |
isVisible | integer | 是否显示 |
isBuiltin | integer | 是否系统内置 |
获取指定时间的招聘需求信息
请求样例
curl --location --request GET 'https://api.mokahr.com/api-platform/v1/data/headcounts?fromTime=2018-1-1&limit=100' \
--header 'Authorization: Basic aHRuYlJqcGhyRDh***FWR0Q3dUw6'
返回样例
{
"data": [
{
"id": 367824,
"orgId": "orgid-test",
"number": "545454156",
"startDate": "2022-03-24T16:00:00.000Z",
"completeDate": null,
"needNumber": 3232,
"description": "<p>荒天帝和火灵儿的招聘需求描述</p>",
"updatedAt": "2022-03-25T06:25:36.000Z",
"connectedJobIds": []
},
{
"id": 180790,
"orgId": "orgid-test",
"number": "001",
"startDate": null,
"completeDate": null,
"needNumber": 1,
"description": null,
"updatedAt": "2022-03-29T09:03:00.000Z",
"connectedJobIds": [
"6179489d-0a******8962db0f7",
"0cd0ed7d-1***********5-7d63a4117f63",
"6d**********9c3891d9c8"
]
}
],
"code": 0,
"msg": "success"
}
获取HeadCount信息
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/headcounts
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
fromTime | 是 | string | 数据的开始时间,fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。 |
next | 是 | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next 字段,下次请求只需要把这个next 参数加到query中就可以了。fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。如果响应中没有next 字段,表示没有更多的数据了 |
limit | 否 | string | 分页用的每页条数,默认100 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | HC唯一id |
number | string | HC编号 |
startDate | string | HC开始时间 |
completeDate | string | HC目标完成时间 |
needNumber | string | HC需求人数 |
description | strring | HC需求描述 |
updatedAt | string | 本条数据的最近更新时间 |
connectedJobIds | array | hc关联的职位id列表 |
查询招聘需求核销情况
请求样例
$ curl -X POST \
https://api.mokahr.com/api-platform/v1/headcounts/getHeadcountVerificationInfo \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{"id": 100001}'
返回样例
{
"data": {
"id": 1234567890,
"number": "A123456",
"needNumber": 5,
"jobName": "软件工程师",
"inProcessOfferApplicationIds": [
1001,
1002,
1003
],
"hireApplicationIds": [
2001,
2002
]
},
"code": 0,
"msg": "success"
}
获取招聘需求核销情况
HTTP请求
POST https://api.mokahr.com/api-platform/v1/headcounts/getHeadcountVerificationInfo
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
id | 是 | integer | HC唯一id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 招聘需求id |
number | string | 招聘需求编号 |
needNumber | integer | 招聘需求人数 |
jobName | string | 岗位名称 |
inProcessOfferApplicationIds | array | 流程中正在处理的 offer 申请 ID 列表 |
hireApplicationIds | array | 入职申请的 ID 列表 |
候选人API
此部分API主要用于获取系统中配置的候选人自定义模块以及自定义字段信息
获取候选人信息v2接口(不迭代)
HTTP请求
POST https://api.mokahr.com/api-platform/v2/data/ehrApplications
请求样例 (application/json)
$ curl https://api.mokahr.com/api-platform/v2/data/ehrApplications \
-u 'your_api_key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"applicationIds":[236718928]
}'
返回示例
{
"code": 200,
"msg": "success",
"data": [
{
"basicInfo": {
"prefixPhone": null,
"applicationId": 425436988,
"campusSiteId": 0,
"archived": false,
"invitationUpdateStatus": 0,
"movedAt": "2023-11-23T09:35:57.000Z",
"appliedAt": "2023-11-08T03:35:10.000Z",
"sourceId": 410022886,
"createdAt": "2023-11-08T03:35:11.000Z",
"updatedAt": "2023-11-23T09:37:12.000Z",
"resumeKey": "staging002/c68b85a9-750e-478f-af13-f8cd10908ae0.txt",
"resumeUrl": "https://moka-test-oss.mokahr.com/staging002/2586.txt",
"standardResumeUrl": "https://moka-test-oss.mokahr.com/staging002/timestamp=1704434786908",
"sourceName": "拉勾",
"ehrCandidateExternalLink": "https://staging-2.mokahr.com/forward/6558d3344a8f6f05a04e044b3872e299870e8fe52",
"pipelineId": 410006067,
"stageId": 410012144,
"aimWorkCity": null,
"archivedAt": null,
"archiveReasonId": null,
"archiveReasonsDetails": null,
"probation": null,
"headcountId": null,
"headcountNumber": null,
"headcountName": null,
"idCardFrontList": null,
"idCardBackList": null,
"realHiredDate": null,
"archiveReasons": null,
"talentPoolsList": null,
"hireMode": 1,
"pipeline": {
"name": "默认招聘流程",
"id": 410006067
},
"stage": {
"name": "待入职",
"id": 410012144,
"type": 102
},
"operationRecord": null,
"sourceList": [
{
"name": "招聘网站",
"isBuiltin": 1,
"id": null
},
{
"id": 410022886,
"name": "拉勾",
"isBuiltin": 1
},
{
"id": null,
"name": null,
"isBuiltin": null
}
],
"attachments": null,
"remarks": [],
"referrer": null,
"owner": {
"name": "xxx",
"phone": "10000000000",
"email": "xxx@mokahr.com",
"number": "0099",
"employeeId": "0099"
},
"assignments": [
{
"assigneeId": 410224017,
"assignerId": 410246054,
"sentAt": 1700640945000,
"result": null
}
],
"operator": null,
"birthYear": 1998,
"candidateId": 425830771,
"sourceType": 2,
"personalUrl": "",
"name": "xxx",
"phone": "10000000000",
"email": "xxx@mokahr.com",
"gender": "男",
"ethnic": "",
"certificateType": 1,
"citizenId": "",
"nationality": "",
"nativePlace": "北京市",
"experience": 9,
"location": "北京市",
"lastCompany": "xxxxxxx股份有限公司",
"academicDegree": "硕士",
"lastSpeciality": "会计学",
"married": "未婚",
"nativePlaceCode": 110000,
"genderCode": 0,
"academicDegreeCode": 5,
"industry": "",
"forwardIndustry": "",
"lastUpdate": "",
"startFrom": "",
"skill": "",
"awards": "",
"lastWorkedJobTitle": "网络运营管理",
"graduateDate": "2010-06-01T00:00:00.000Z",
"salary": "360000元/年",
"aimSalary": "",
"forwardLocation": "",
"personal": "本人性格开朗,稳重,有活力,待人热情,真诚。有很强的专业的职业道德,专业基础知识扎实。工作认真负责,主动承担责任,积极与周围工作环境建立良好的工作关系,并具有一定的资源协调能力。与同事,其它部门各极配合,有较强的组织能力,实际动手能力和团体协作精神。能迅速的适应各种环境,并融合其中",
"idCardSignOrganization": "",
"idCardValidity": "",
"address": "",
"lastSchool": "xxxx大学",
"blacklistTags": null,
"blacklistDetail": null,
"birthDate": null,
"portraitUrl": null,
"nationalityCode": null,
"ethnicCode": null,
"personalInterests": null,
"customAttachmentList": null,
"political": null,
"customFields": null,
"label": [
{
"id": 4,
"label": "行业专注",
"type": 1
},
{
"id": 1,
"label": "名企背景",
"type": 1
},
{
"id": 410026147,
"label": "双一流大学",
"type": 1
},
{
"id": 410038563,
"label": "硕士",
"type": 1
}
],
"educationInfo": [
{
"id": "421785704",
"startDate": "2004-09",
"endDate": "2008-06",
"now": false,
"school": "xxxx大学",
"speciality": "会计学",
"academicDegree": "本科"
},
{
"id": "421785705",
"startDate": "2008-09",
"endDate": "2010-06",
"now": false,
"school": "xxxx大学",
"speciality": "会计学",
"academicDegree": "硕士"
}
],
"experienceInfo": [
{
"id": "587014203",
"startDate": "2017-06",
"endDate": "2020-04",
"now": false,
"company": "xxxxxx股份有限公司",
"title": "网络运营管理",
"location": "",
"industry": "",
"leader": "",
"department": "",
"salary": "360000元/年",
"summary": "工作描述:1,员工关系:负责公司员工入离职办理,档案维护等\n2,招聘:负责xx公司社招及实习生招聘及面试\n3,行政:协助行政Leader进行行政工作",
"reasonForLeaving": "",
"underlingNumber": "",
"type": "",
"size": ""
},
{
"id": "587014204",
"startDate": "2010-07",
"endDate": "2017-05",
"now": false,
"company": "xxxx有限公司深圳第一分公司",
"title": "校长/副校长",
"location": "",
"industry": "",
"leader": "",
"department": "",
"salary": "180000元/年",
"summary": "工作描述\n运营:实习生团队管理,包括离职面谈,日常答疑等;协助更新官方头条号,抖音账号\n实习生招聘:四川LA团队实习生招聘,每月平均入职15名实习生\n社会招聘:四川LA团队重点岗位招聘Mapping,期间3位候选人走到面试后期\n文化活动:协助leader策划团队活动,包括转正答辩,生日会,挑战赛等\n其他:定期更新招聘周报,招聘月报,招聘计划,招聘漏斗,招聘渠道;独立负责短期招聘项目,管培生培养项目",
"reasonForLeaving": "",
"underlingNumber": "",
"type": "",
"size": ""
}
],
"awardInfo": null,
"projectInfo": null,
"languageInfo": null,
"practiceInfo": null,
"interestSource": null
},
"jobInfo": {
"id": "e3b15530-b938-41ec-ab7d-5c569613bbd5",
"headcountInfo": [],
"mjCode": "MJ002910",
"jobRanksInfo": [],
"hireMode": 1,
"title": "消息1108",
"commitment": "全职",
"number": null,
"status": "open",
"attributeId": null,
"attributeName": null,
"label": null,
"category": null,
"jobDescription": "<p><strong>工作内容:</strong></p><p>1. 负责项目计划的制定和执行,保证项目按时、按质、按量完成。</p><p>2. 策划和组织项目中的各项工作,包括制定项目方案、分析数据、编写报告、组织调研、协调各方资源等。</p><p>3. 负责项目的质量控制,协调项目各阶段的验收工作。</p><p>4. 报告工作进展情况,及时向领导汇报项目的风险、问题和进度。</p><p><strong>任职要求:</strong></p><p>1. 本科及以上学历,专业不限。</p><p>2. 3年以上相关工作经验,有管理咨询、项目管理经验优先。</p><p>3. 熟练掌握项目管理方法和工具,熟悉项目的规划、执行、监控和控制等阶段。</p><p>4. 具备优秀的方案撰写和报告表达能力,能够清晰明确地表达深入的分析和建议。</p><p>5. 具备团队合作能力,良好的沟通能力和组织协调能力,能够有效地协调团队成员工作。 </p><p>6. 熟悉office办公软件,如Word、Excel、PPT等。</p><p>7. 熟悉统计分析软件如SPSS等,熟悉数据分析方法和技巧。</p><p>8. 必须具备优秀的英语读写能力,能够独立完成英文报告和资料翻译。</p>",
"openedAt": "2023-11-07T16:00:00.000Z",
"campusSiteIds": [],
"campusSites": [],
"finishedAt": null,
"department": {
"info": {
"departmentName": "更新",
"departmentCode": "98991",
"departmentPath": "更新",
"id": "411075469"
},
"name": "更新",
"parentId": null
},
"stores": [],
"customFields": [
{
"name": "测试选择题",
"value": ""
},
{
"name": "故意放核桃仁的",
"value": ""
}
],
"jobManager": {
"name": "xxx",
"phone": "10000000000",
"number": "0099",
"email": "xxx@mokahr.com",
"employeeId": "0099"
},
"jobAssistants": [],
"jobHiringManagers": [],
"jobInterviewers": []
},
"offerInfo": null,
"interviewInfo": null,
"shigongInfo": null,
"examInfo": {
"applicationId": 425436988,
"candidateId": 425830771,
"exams": [],
"jobId": "e3b15530-b938-41ec-ab7d-5c569613bbd5",
"surveys": [
{
"name": "mock套餐004",
"date": "2023-11-23T09:29:03.000Z",
"source": "开放平台三方",
"jobId": "e3b15530-b938-41ec-ab7d-5c569613bbd5",
"applicationId": 425436988,
"attachments": null,
"result": null,
"attachmentName": null,
"attachmentUrl": null,
"comment": null
}
]
},
"customstyleAttachments": null,
"activities": [
{
"applicationId": 425436988,
"operator": {
"name": "xxx",
"email": "xxx@mokahr.com",
"phone": "10000000000",
"number": "0099",
"employeeId": "0099"
},
"createdAt": "2023-11-08T03:35:11.000Z",
"source": "拉勾",
"type": "ADD_CANDIDATE",
"toStageId": null,
"toStageName": null,
"fromStageId": null,
"fromStageName": null
},
{
"applicationId": 425436988,
"operator": {
"name": "xxxx@163.com",
"email": "xxxxx@163.com",
"phone": "10000000000",
"employeeId": "",
"number": null
},
"createdAt": "2023-11-22T08:15:35.000Z",
"toStageId": 410012141,
"toStageName": "用人部门筛选",
"fromStageId": 410012140,
"fromStageName": "初筛",
"type": "MOVE_STAGE",
"source": null
},
{
"applicationId": 425436988,
"operator": {
"name": "xxx",
"email": "xxx@mokahr.com",
"phone": "10000000000",
"number": "0099",
"employeeId": "0099"
},
"createdAt": "2023-11-23T09:28:46.000Z",
"toStageId": 410012143,
"toStageName": "沟通offer",
"fromStageId": 410012141,
"fromStageName": "用人部门筛选",
"type": "MOVE_STAGE",
"source": null
},
{
"applicationId": 425436988,
"operator": {
"name": "xxx",
"email": "xxx@mokahr.com",
"phone": "10000000000",
"number": "0099",
"employeeId": "0099"
},
"createdAt": "2023-11-23T09:35:57.000Z",
"toStageId": 410012144,
"toStageName": "待入职",
"fromStageId": 410012143,
"fromStageName": "沟通offer",
"type": "MOVE_STAGE",
"source": null
}
]
}
]
}
请求body参数(application/json)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
否 | string | 候选人 | |
applicationIds | 否 | array[integer] | 申请id |
invitationUpdateStatus | 否 | integer | 邀请更新状态 |
limit | 否 | integer | 分页用的每页条数,默认20,最大20 |
next | 否 | string | 分页参数, 只传这一个就可以 |
phone | 否 | string | 候选人手机号 |
offerAttachment | 否 | boolean | 只有为true的时候才返回offer附件下载链接,一个小时有效。 |
applicationForm | 否 | boolean | 只有为true的时候才返回候选人自定义样式登记表 |
pipelineIds | 否 | array[integer] | 流程ids |
stageIds | 否 | array[integer] | 阶段ids |
updateAtStartTime | 否 | string | 更新开始时间,传入北京时间,格式为YYYY-MM-DDTHH:mm:ss.sssZ |
updateAtEndTime | 否 | string | 更新结束时间,传入北京时间,格式为YYYY-MM-DDTHH:mm:ss.sssZ |
needAttachment | 否 | boolean | 是否返回附件 不传默认true,true返回附件,false 不返回附件 |
archived | 否 | boolean | 申请是否归档.true/false(true已归档,false未归档) |
hireMode | 否 | integer | 招聘模式.1/2(1社招,2校招,传其他视为没传) |
applicationCreateStartTime | 否 | long | 数据创建开始时间(时间戳格式,指申请首次被保存至数据库的时间) |
applicationCreateEndTime | 否 | long | 数据创建结束时间(时间戳格式,指申请首次被保存至数据库的时间) |
applicationAppliedAtStartTime | 否 | long | 申请创建开始时间(时间戳格式,指系统展示的申请日期) |
applicationAppliedAtEndTime | 否 | long | 申请创建结束时间(时间戳格式,指系统展示的申请日期) |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回码:非200代表错误 |
msg | string | 报错信息 |
next | string | 如果返回则下次请求带上则自动分页 |
data | array | 返回数据详细信息 |
data[].basicInfo | Object | 候选人申请信息 |
data[].basicInfo.prefixPhone | string | 国家呼叫代码 |
data[].basicInfo.applicationId | long | 申请ID |
data[].basicInfo.campusSiteId | number | 申请的校招站点Id,hireMode=2时存在 |
data[].basicInfo.archived | boolean | 申请是否归档 |
data[].basicInfo.invitationUpdateStatus | integer | 邀请更新状态 可选值: 0:未邀请 1:未更新 2:已更新 |
data[].basicInfo.movedAt | string | 阶段移动时间 |
data[].basicInfo.appliedAt | string | 申请投递时间 |
data[].basicInfo.sourceId | long | 申请的渠道id |
data[].basicInfo.createdAt | string | 候选人申请创建时间 |
data[].basicInfo.updatedAt | string | 候选人申请更新时间 |
data[].basicInfo.resumeKey | string | 原始简历的 key |
data[].basicInfo.resumeUrl | string | 原始简历下载链接 |
data[].basicInfo.standardResumeUrl | string | 标准简历下载链接 |
data[].basicInfo.sourceName | string | 资源来源 |
data[].basicInfo.ehrCandidateExternalLink | string | 候选人详情的链接,可以直接在浏览器中打开查看,该链接有效期默认14天 |
data[].basicInfo.pipelineId | long | 申请所在的招聘流程id |
data[].basicInfo.stageId | long | 申请所在的阶段id |
data[].basicInfo.aimWorkCity | string | 候选人意向工作城市 |
data[].basicInfo.archivedAt | string | 申请归档时间 |
data[].basicInfo.archiveReasonId | integer | 归档原因ID |
data[].basicInfo.archiveReasonsDetails | string | 归档原因详细 |
data[].basicInfo.probation | integer | 试用期 |
data[].basicInfo.headcountId | integer | 入职HC ID |
data[].basicInfo.headcountNumber | string | 入职HC编号 |
data[].basicInfo.headcountName | string | 入职HC名称 |
data[].basicInfo.idCardFrontList | string | 上传身份证照片(人像面) |
data[].basicInfo.idCardBackList | string | 上传身份证照片(国徽面) |
data[].basicInfo.realHiredDate | string | 入职时间 |
data[].basicInfo.archiveReasons | object | 归档原因 |
data[].basicInfo.archiveReasons.type | integer | 归档原因类型 |
data[].basicInfo.archiveReasons.name | string | 归档名称 |
data[].basicInfo.talentPoolsList[] | array | 候选人所属人才库信息 |
data[].basicInfo.talentPoolsList[].talentPoolId | long | 人才库id |
data[].basicInfo.talentPoolsList[].name | string | 人才库名称 |
data[].basicInfo.talentPoolsList[].description | string | 详细描述 |
data[].basicInfo.talentPoolsList[].latestArchivedAt | long | 最后归档时间 |
data[].basicInfo.hireMode | integer | 招聘模式 1:为社招,2:为校招 |
data[].basicInfo.pipeline | object | 申请所属流程 |
data[].basicInfo.pipeline.id | long | 申请流程所属ID |
data[].basicInfo.pipeline.name | string | 招聘流程名称 |
data[].basicInfo.stage | object | 阶段 |
data[].basicInfo.stage.id | long | 业务id |
data[].basicInfo.stage.name | string | 阶段名称 |
data[].basicInfo.stage.type | integer | 阶段类型 |
data[].basicInfo.sourceList[] | array | 渠道分级,数组按照一级渠道、二级渠道、三级渠道的顺序排列 |
data[].basicInfo.sourceList[].id | long | 渠道ID |
data[].basicInfo.sourceList[].name | string | 渠道名称 |
data[].basicInfo.sourceList[].isBuiltin | integer | 是否内置 |
data[].basicInfo.attachments[] | array | 候选人的所有附件 |
data[].basicInfo.attachments[].applicationId | long | 申请id |
data[].basicInfo.attachments[].jobId | string | 申请职位id |
data[].basicInfo.attachments[].name | string | 名字 |
data[].basicInfo.attachments[].size | integer | 大小 |
data[].basicInfo.attachments[].type | string | 类型 |
data[].basicInfo.attachments[].customFieldId | long | 自定义字段ID |
data[].basicInfo.attachments[].customFieldName | string | 自定义字段名字 |
data[].basicInfo.attachments[].url | string | 地址 |
data[].basicInfo.attachments[].createTime | date | 创建时间 |
data[].basicInfo.attachments[].applyFormId | long | 申请表id |
data[].basicInfo.remarks[] | array | 候选人备注 |
data[].basicInfo.remarks[].creator | object | 创建人的数据 |
data[].basicInfo.remarks[].creator.name | string | 备注的创建者名称 |
data[].basicInfo.remarks[].creator.phone | string | 备注的创建者手机号吗 |
data[].basicInfo.remarks[].creator.email | string | 备注的创建者邮箱 |
data[].basicInfo.remarks[].creator.number | string | 备注的创建者工号 |
data[].basicInfo.remarks[].targets | array | 被@的人的id数组集合 |
data[].basicInfo.remarks[].content | string | 备注内容 comments表content字段 |
data[].basicInfo.remarks[].isPrivate | boolean | 是否私密备注 |
data[].basicInfo.remarks[].type | string | 备注类型,可选值为,"系统生成" 或者 "人工填写" |
data[].basicInfo.remarks[].createdAt | date | 创建时间 |
data[].basicInfo.remarks[].isCommunication | integer | comment是否属于电话沟通的内容 |
data[].basicInfo.referrer | object | 推荐人信息 |
data[].basicInfo.referrer.name | string | 推荐人姓名 |
data[].basicInfo.referrer.email | string | 推荐人邮箱 |
data[].basicInfo.referrer.phone | string | 推荐人电话 |
data[].basicInfo.referrer.number | string | 推荐人工号,null:无工号,xxx工号 |
data[].basicInfo.referrer.employeeId | string | 推荐人工号2 |
data[].basicInfo.owner | object | 候选人所有者 |
data[].basicInfo.owner.name | string | 候选人所有者名字 |
data[].basicInfo.owner.phone | string | 候选人所有者电话 |
data[].basicInfo.owner.email | string | 候选人所有者邮箱 |
data[].basicInfo.owner.number | string | 候选人所有者工号 |
data[].basicInfo.owner.employeeId | string | 候选人所有者工号2 |
data[].basicInfo.assignments[] | array | 推荐人信息 |
data[].basicInfo.assignments[].assigneeId | Long | 被推荐人 |
data[].basicInfo.assignments[].assignerId | Long | 推荐人 |
data[].basicInfo.assignments[].result | string | 推荐结果 |
data[].basicInfo.assignments[].sentAt | date | 向被转发人发送通知的时间 |
data[].basicInfo.birthYear | string | 出生年份 |
data[].basicInfo.candidateId | integer | 候选人在Moka中的唯一id |
data[].basicInfo.sourceType | integer | 来源 1:代表主动搜索 2:代表主动投递 3:代表人才推荐 |
data[].basicInfo.personalUrl | string | 个人链接 |
data[].basicInfo.name | string | 名字 |
data[].basicInfo.phone | string | 手机号 |
data[].basicInfo.email | string | 邮箱 |
data[].basicInfo.age | string | 年龄 |
data[].basicInfo.gender | string | 性别,以下值之一:男,女 |
data[].basicInfo.ethnic | string | 民族 |
data[].basicInfo.certificateType | integer | 证件类型 可选值: 1:身份证 2:香港身份证 3:澳门身份证 4:台湾身份证 5:护照 6:其他证件 7:港澳居民来往内地通行证 8:台湾居民来往内地通行证 9:外国人工作许可证 10:外国人居留许可证 |
data[].basicInfo.citizenId | string | 证件号码 |
data[].basicInfo.nationality | string | 国家/地区 |
data[].basicInfo.nativePlace | string | 籍贯 |
data[].basicInfo.experience | integer | 工作经验可选值: 0:应届生 -1:在校生 其他数字:表示具体年限 |
data[].basicInfo.location | string | 所在地,如北京 |
data[].basicInfo.lastCompany | string | 最近公司,以下值之一:null无最近公司,xxx任职公司名称 |
data[].basicInfo.academicDegree | string | 最高学历,以下值之一:本科,硕士,博士,高中,大专,中专,初中及以下,MBA,其他 |
data[].basicInfo.lastSpeciality | string | 最近毕业专业 |
data[].basicInfo.married | string | 婚姻状态 可选值:'已婚' '未婚' '离异' '丧偶' 'CIVILUNION' 'COHABITATING' 'MARRIED' 'DIVORCED' 'ENGAGED' 'SEPARATED' 'SINGLE' 'WIDOWED' |
data[].basicInfo.nativePlaceCode | integer | 籍贯编码(籍贯为空时为null,编码详情见附件) |
data[].basicInfo.genderCode | integer | 性别编码(性别为空时为null,编码详情见附件) |
data[].basicInfo.academicDegreeCode | integer | 学历编码(学历为空时为null,编码详情见附件) |
data[].basicInfo.industry | string | 所在行业 |
data[].basicInfo.forwardIndustry | string | 期望行业 |
data[].basicInfo.lastUpdate | string | 简历更新时间 |
data[].basicInfo.startFrom | string | 到岗时间 |
data[].basicInfo.skill | string | 技能 |
data[].basicInfo.awards | string | 获奖经历 |
data[].basicInfo.lastWorkedJobTitle | string | 目前职位 |
data[].basicInfo.graduateDate | string | 毕业时间 |
data[].basicInfo.salary | string | 当前薪资 |
data[].basicInfo.aimSalary | string | 期望薪资 |
data[].basicInfo.forwardLocation | string | 期望城市 |
data[].basicInfo.personal | string | 自我描述 |
data[].basicInfo.idCardSignOrganization | string | 身份证签发机关 |
data[].basicInfo.idCardValidity | string | 证件有效期 |
data[].basicInfo.address | string | 户籍地址 |
data[].basicInfo.lastSchool | string | 学校名称 |
data[].basicInfo.blacklistTags | string | 黑名单标签(只有黑名单库才有) |
data[].basicInfo.blacklistDetail | string | 黑名单原因(只有黑名单库才有) |
data[].basicInfo.birthDate | string | 出生日期 |
data[].basicInfo.portraitUrl | string | 候选人头像的图片地址,链接有效期为1小时 |
data[].basicInfo.nationalityCode | integer | 国籍编码(国籍为空时为null,编码详情见附件) |
data[].basicInfo.ethnicCode | integer | 民族编码(民族为空时为null,编码详情见附件) |
data[].basicInfo.personalInterests | string | 兴趣爱好 |
data[].basicInfo.customAttachmentList | object | 候选人标准简历的所有附件 |
data[].basicInfo.customAttachmentList.customUpload+customId | array | 候选人标准简历的附件的key由customUpload(固定字符串)+customId组成 |
data[].basicInfo.customAttachmentList.customUpload+customId[].attachmentName | string | 附件名称 |
data[].basicInfo.customAttachmentList.customUpload+customId[].attachmentSize | number | 附件大小(byte) |
data[].basicInfo.customAttachmentList.customUpload+customId[].candidateId | number | 候选人id |
data[].basicInfo.customAttachmentList.customUpload+customId[].customId | number | 自定义字段id |
data[].basicInfo.customAttachmentList.customUpload+customId[].downloadUrl | string | 下载地址24小时失效 |
data[].basicInfo.customAttachmentList.customUpload+customId[].createdAt | string | 附件创建时间(时间戳格式) |
data[].basicInfo.political | string | 政治面貌 |
data[].basicInfo.customFields[] | array | 自定义字段 |
data[].basicInfo.customFields[].customFieldId | long | 自定义字段id |
data[].basicInfo.customFields[].name | string | 自定义字段名称 |
data[].basicInfo.customFields[].type | string | 自定义字段类型 |
data[].basicInfo.customFields[].builtinInfoId | long | 内置信息id |
data[].basicInfo.customFields[].code | string | 选择题编码 |
data[].basicInfo.customFields[].value | Boolean或String | 自定义字段值,这个根据字段类型返回不同类型的值 |
data[].basicInfo.customFields[].now | String | 当自定义字段是时间段时存在该字段,标识结束时间是否为“至今”。结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
data[].basicInfo.customFields[].section | String | 字段归属,声明是以下哪个父级下的自定义字段: basicInfo 个人信息 jobIntention 求职意向 experienceInfo 工作经历 educationInfo 教育背景 practiceInfo 实习经历projectInfo 项目经验 languageInfo 语言能力 selfDescription 自我描述 awardInfo 获奖经历 |
data[].basicInfo.customFields[].index | number | 索引,对于experienceInfo、educationInfo或者自定义模块(如紧急联系人)等存在多条数据的模块,index表示这个字段是第几条数据的自定义字段信息 |
data[].basicInfo.customFields[].codes | array | 选择题选项值编码 |
data[].basicInfo.label[] | array | 候选人标签 |
data[].basicInfo.label[].id | integer | 标签id |
data[].basicInfo.label[].label | string | 标签名称 |
data[].basicInfo.label[].type | number | 标签类型 可选值: 1:智能标签 2:手工标签 |
data[].basicInfo.educationInfo[] | array | 教育经历 |
data[].basicInfo.educationInfo[].id | string | 教育经历id |
data[].basicInfo.educationInfo[].startDate | string | 学校开始时间,最多精确到月。如2010-09, 2008 |
data[].basicInfo.educationInfo[].endDate | string | 学校结束时间,最多精确到月。如2010-09, 2008 |
data[].basicInfo.educationInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
data[].basicInfo.educationInfo[].school | string | 学校名称 |
data[].basicInfo.educationInfo[].speciality | string | 专业名称 |
data[].basicInfo.educationInfo[].academicDegree | string | 学历,以下值之一:本科,硕士,博士,高中,大专,中专,初中及以下,MBA,其他 |
data[].basicInfo.experienceInfo[] | array | 工作经历 |
data[].basicInfo.experienceInfo[].id | string | 工作经历id |
data[].basicInfo.experienceInfo[].startDate | string | 工作开始时间,最多精确到月。如2010-09, 2008 |
data[].basicInfo.experienceInfo[].endDate | string | 工作结束时间,最多精确到月。如2010-09, 2008 |
data[].basicInfo.experienceInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
data[].basicInfo.experienceInfo[].company | string | 公司名称 |
data[].basicInfo.experienceInfo[].title | string | 职位名称 |
data[].basicInfo.experienceInfo[].location | string | 工作地点 |
data[].basicInfo.experienceInfo[].industry | string | 所在行业 |
data[].basicInfo.experienceInfo[].leader | string | 汇报对象 |
data[].basicInfo.experienceInfo[].department | string | 所在部门 |
data[].basicInfo.experienceInfo[].salary | string | 薪资 |
data[].basicInfo.experienceInfo[].summary | string | 工作职责 |
data[].basicInfo.experienceInfo[].reasonForLeaving | string | 离职原因 |
data[].basicInfo.experienceInfo[].underlingNumber | string | 下属人数 |
data[].basicInfo.experienceInfo[].type | string | 公司性质 |
data[].basicInfo.experienceInfo[].size | string | 公司规模 |
data[].basicInfo.awardInfo[] | array | 获奖经历 |
data[].basicInfo.awardInfo[].id | string | 获奖经历id |
data[].basicInfo.awardInfo[].awardDate | string | 获奖时间 |
data[].basicInfo.awardInfo[].awardName | string | 获奖名称 |
data[].basicInfo.projectInfo[] | array | 项目经验 |
data[].basicInfo.projectInfo[].id | string | 项目经验id |
data[].basicInfo.projectInfo[].startDate | string | 项目开始时间,最多精确到月。如2010-09, 2008 |
data[].basicInfo.projectInfo[].endDate | string | 项目结束时间,最多精确到月。如2010-09, 2008 |
data[].basicInfo.projectInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
data[].basicInfo.projectInfo[].projectName | string | 项目名称 |
data[].basicInfo.projectInfo[].title | string | 担任> 职责 |
data[].basicInfo.projectInfo[].projectDescription | string | 项目描述 |
data[].basicInfo.projectInfo[].responsibilities | string | 项目中职责 |
data[].basicInfo.languageInfo[] | array | 语言能力 |
data[].basicInfo.languageInfo[].id | string | 语言能力id |
data[].basicInfo.languageInfo[].language | string | 语言类型 |
data[].basicInfo.languageInfo[].level | string | 掌握程度 |
data[].basicInfo.languageInfo[].listenAndSpeak | string | 听说能力 |
data[].basicInfo.languageInfo[].readAndWrite | string | 读写能力 |
data[].basicInfo.practiceInfo[] | array | 实习经历 |
data[].basicInfo.practiceInfo[].id | string | 实习经历id |
data[].basicInfo.practiceInfo[].startDate | string | 实习开始时间 |
data[].basicInfo.practiceInfo[].endDate | string | 实习结束时间 |
data[].basicInfo.practiceInfo[].company | string | 公司名称 |
data[].basicInfo.practiceInfo[].title | string | 职位名称 |
data[].basicInfo.practiceInfo[].location | string | 工作地点 |
data[].basicInfo.practiceInfo[].industry | string | 所在行业 |
data[].basicInfo.practiceInfo[].leader | string | 汇报对象 |
data[].basicInfo.practiceInfo[].department | string | 所在部门 |
data[].basicInfo.practiceInfo[].salary | string | 薪资 |
data[].basicInfo.practiceInfo[].summary | string | 工作职责 |
data[].basicInfo.practiceInfo[].type | string | 公司性质 |
data[].basicInfo.practiceInfo[].size | string | 公司规模 |
data[].basicInfo.interestSource[] | array | 利益所属渠道信息。返回数据根据渠道,分级展示,部分渠道没有第三级 |
data[].basicInfo.interestSource[].id | Ingeger | id |
data[].basicInfo.interestSource[].name | string | 名称 |
data[].basicInfo.interestSource[].email | string | 邮箱 |
data[].jobInfo | object | 应聘职位信息 |
data[].jobInfo.id | string | 职位ID |
data[].jobInfo.headcountInfo[] | array | 职位关联的HC信息 |
data[].jobInfo.headcountInfo[].id | number | Headcount ID |
data[].jobInfo.headcountInfo[].jobId | string | 职位id |
data[].jobInfo.headcountInfo[].name | string | Headcount 名称 |
data[].jobInfo.headcountInfo[].number | string | Headcount 编号 |
data[].jobInfo.headcountInfo[].needNumber | integer | HC 需求数量 |
data[].jobInfo.headcountInfo[].status | string | Headcount 状态 |
data[].jobInfo.headcountInfo[].customFields[] | array | HC自定义字段 |
data[].jobInfo.headcountInfo[].customFields[].name | string | HC自定义字段名称 |
data[].jobInfo.headcountInfo[].customFields[].value | string | HC自定义字段值 |
data[].jobInfo.mjCode | string | 职位编号,发布到外部系统保持一致。 |
data[].jobInfo.jobRanksInfo[] | array | 职位级别 |
data[].jobInfo.jobRanksInfo[].name | string | 职位级别名称 |
data[].jobInfo.jobRanksInfo[].level | number | 职位级别等级 |
data[].jobInfo.hireMode | integer | 招聘模式 可选值: 1:社招 2:校招 |
data[].jobInfo.title | string | 职位名称 |
data[].jobInfo.commitment | string | 职位性质 可选值: 全职 兼职 实习 其它 |
data[].jobInfo.number | number | 招聘人数 |
data[].jobInfo.status | string | 职位状态 可选值 open:开启 closed:关闭 |
data[].jobInfo.attributeId | long | 职位优先级Id |
data[].jobInfo.attributeName | string | 职位优先级名称 |
data[].jobInfo.label | string | 职位标签 |
data[].jobInfo.category | string | 职位类别 |
data[].jobInfo.jobDescription | string | 工作描述 |
data[].jobInfo.openedAt | string | 开启时间 |
data[].jobInfo.campusSiteIds[] | array | 校招站点id |
data[].jobInfo.campusSites[] | array | 校招站点 |
data[].jobInfo.campusSites[].id | integer | 校招站点ID |
data[].jobInfo.campusSites[].name | string | 校招地点名字 |
data[].jobInfo.campusSites[].cityId | integer | 校招城市id |
data[].jobInfo.finishedAt | string | 目标完成时间 |
data[].jobInfo.department | object | 职位所在部门 |
data[].jobInfo.department.info | object | 部门详细信息 |
data[].jobInfo.department.info.departmentName | string | 部门名称 |
data[].jobInfo.department.info.departmentCode | string | 部门编码,部门在客户系统中的id |
data[].jobInfo.department.info.departmentPath | string | 职位所在部门的完整路径,从上级到下级,以/分割 |
data[].jobInfo.department.info.parentAPICode | string | 职位所在部门的完整路径,从上级到下级,以/分割 |
data[].jobInfo.department.info.id | string | 部门ID,部门在Moka系统中的id |
data[].jobInfo.department.name | string | 父部门名称 |
data[].jobInfo.department.parentId | string | 父部门ID,部门在Moka系统中的id |
data[].jobInfo.stores[] | array | 所属门店 |
data[].jobInfo.stores[].id | long | 所属门店id |
data[].jobInfo.stores[].name | string | 所属门店名称 |
data[].jobInfo.stores[].jobId | string | 所属门店职位id |
data[].jobInfo.stores[].departmentId | long | 所属门店部门id |
data[].jobInfo.customFields[] | array | job自定义字段 |
data[].jobInfo.customFields[].name | string | job自定义字段名称 |
data[].jobInfo.customFields[].value | string | job自定义字段值 |
data[].jobInfo.jobManager | object | 职位负责人 |
data[].jobInfo.jobManager.name | string | 职位负责人姓名 |
data[].jobInfo.jobManager.phone | string | 职位负责人电话 |
data[].jobInfo.jobManager.number | string | 职位负责人工号 |
data[].jobInfo.jobManager.email | string | 职位负责人邮箱 |
data[].jobInfo.jobManager.employeeId | string | 职位负责人工号2 |
data[].jobInfo.jobAssistants[] | array | 职位协助人 |
data[].jobInfo.jobAssistants[].name | string | 职位协助人名字 |
data[].jobInfo.jobAssistants[].email | string | 职位协助人邮箱 |
data[].jobInfo.jobAssistants[].phone | string | 职位协助人手机号 |
data[].jobInfo.jobAssistants[].employeeId | string | 职位协助人工号 |
data[].jobInfo.jobAssistants[].number | string | 职位协助人编号 |
data[].jobInfo.jobHiringManagers[] | array | 职位管理员信息 |
data[].jobInfo.jobHiringManagers[].name | string | 职位管理员名字 |
data[].jobInfo.jobHiringManagers[].email | string | 职位管理员邮箱 |
data[].jobInfo.jobHiringManagers[].phone | string | 职位管理员手机号 |
data[].jobInfo.jobHiringManagers[].employeeId | string | 职位管理员工号 |
data[].jobInfo.jobHiringManagers[].number | string | 职位管理员编号 |
data[].jobInfo.jobInterviewers[] | array | 职位面试官信息 |
data[].jobInfo.jobInterviewers[].id | long | 面试官id |
data[].jobInfo.jobInterviewers[].name | string | 面试官名字 |
data[].jobInfo.jobInterviewers[].number | string | 面试官编号 |
data[].offerInfo | object | offer信息 |
data[].offerInfo.applicationId | integer | 申请id |
data[].offerInfo.approvalStatus | string | 审批状态 可选值: UNINITIATED: 未发起 INPROGRESS: 审批中 APPROVED: 已通过 REJECTED: 已驳回 RECALLED: 已撤回 |
data[].offerInfo.checkinDate | string | 预计入职时间 |
data[].offerInfo.status | string | 可选值: pending : 未发送 sent: 待接受 accepted : 已接收 rejected: 已拒绝 |
data[].offerInfo.salaryType | integer | 薪资类型 可选值 1: 时薪 2:日薪 3:月薪 4:年薪 |
data[].offerInfo.salaryNumber | string | 薪资数值 |
data[].offerInfo.locationString | string | 入职地点 |
data[].offerInfo.dutyLevelName | string | 职务级别名称 |
data[].offerInfo.createdAt | string | offer创建时间 |
data[].offerInfo.finishedAt | string | offer接受时间 |
data[].offerInfo.jobRankType | string | 职级类型 |
data[].offerInfo.jobRankLevel | number | 职级等级 |
data[].offerInfo.jobRankName | string | 职级名称 |
data[].offerInfo.offerAttachmentUrl | string | offer附件下载地址 |
data[].offerInfo.creator | object | offer创建人信息 |
data[].offerInfo.creator.name | string | offer创建人姓名 |
data[].offerInfo.creator.email | string | offer创建人邮箱 |
data[].offerInfo.creator.phone | string | offer创建人手机号 |
data[].offerInfo.creator.number | string | offer创建人工号 |
data[].offerInfo.creator.employeeId | string | offer创建人工号2 |
data[].offerInfo.offerHistoryList | array | offer发送记录 |
data[].offerInfo.offerHistoryList[].sentAt | string | offer发送时间 |
data[].offerInfo.offerHistoryList[].sentUser | object | offer发送人信息 |
data[].offerInfo.offerHistoryList[].sentUser.id | integer | offer发送人id |
data[].offerInfo.offerHistoryList[].sentUser.name | string | offer发送人姓名 |
data[].offerInfo.offerHistoryList[].sentUser.email | string | offer发送人邮箱 |
data[].offerInfo.offerHistoryList[].sentUser.phone | string | offer发送人手机号 |
data[].offerInfo.offerHistoryList[].sentUser.employeeId | string | offer发送人工号2 |
data[].offerInfo.offerHistoryList[].status | string | 已接收: accepted已拒绝: rejected |
data[].offerInfo.offerHistoryList[].operationType | integer | 操作类型 可选值: 1:候选人 2:HR手动标记 3:API标记 |
data[].offerInfo.hcInfo | object | offer选中的headCount信息 |
data[].offerInfo.hcInfo.id | integer | offer选中的Headcount ID |
data[].offerInfo.hcInfo.number | string | offer选中的Headcount 编号 |
data[].offerInfo.hcInfo.name | string | offer选中的Headcount 名称 |
data[].offerInfo.hcInfo.status | string | offer选中的Headcount 状态 |
data[].offerInfo.hcInfo.department | string | offer选中的Headcount 部门 |
data[].offerInfo.hcInfo.manager | string | offer选中的Headcount 负责人 |
data[].offerInfo.department | object | 入职部门信息 |
data[].offerInfo.department.id | string | 入职部门id |
data[].offerInfo.department.departmentName | string | 入职部门名称 |
data[].offerInfo.department.departmentCode | string | 入职部门编码 |
data[].offerInfo.department.departmentPath | string | 入职部门完整路径 |
data[].offerInfo.department.parentAPICode | string | 父部门code |
data[].offerInfo.customFields | array | offer自定义字段 |
data[].offerInfo.customFields[].id | integer | offer自定义字段id |
data[].offerInfo.customFields[].name | string | offer自定义字段名称 |
data[].offerInfo.customFields[].value | string | offer自定义字段值 |
data[].offerInfo.customFields[].codes | string | 选择题自定义code(仅对有code的选择题生效) |
data[].offerInfo.attachmentList[] | array | offer附件列表 |
data[].offerInfo.attachmentList[].name | string | offer附件名称 |
data[].offerInfo.attachmentList[].size | number | offer附件大小 |
data[].offerInfo.attachmentList[].downloadUrl | string | offer附件下载链接,一个小时有效 |
data[].offerInfo.attachmentList[].attachmentType | number | offer附件类型 可选值: 0:发送给候选人的附件 1:发送给审批人的附件 2:offer附件 |
data[].interviewInfo[] | array | 面试信息 |
data[].interviewInfo[].applicationId | number | 申请id |
data[].interviewInfo[].groupInterviewId | number | 面试id |
data[].interviewInfo[].groupId | string | 面试组id |
data[].interviewInfo[].noInterview | boolean | 是否无面试面试反馈 |
data[].interviewInfo[].status | string | 面试状态:已取消, 未结束, 已结束 |
data[].interviewInfo[].candidateAttendStatus | string | 候选人面试状态 -> 候选人未反馈, 候选人未到场, 候选人已拒绝, 候选人已接受 |
data[].interviewInfo[].signInStatus | string | 面试签到状态:已签到、未签到 |
data[].interviewInfo[].jobType | string | 视频面试套餐类型eg:'技术型','非技术型'等 |
data[].interviewInfo[].interviewType | string | 面试类型:现场面试、电话面试、视频面试 |
data[].interviewInfo[].locationId | integer | 面试地点ID |
data[].interviewInfo[].locationCountry | string | 面试地点-国家 |
data[].interviewInfo[].locationAddress | string | 面试地点-详细地址 |
data[].interviewInfo[].locationCityId | integer | 面试地点-城市ID |
data[].interviewInfo[].meetingRoomId | integer | 会议室ID |
data[].interviewInfo[].meetingRoomName | string | 会议室名称 |
data[].interviewInfo[].roundId | integer | 面试轮次ID |
data[].interviewInfo[].roundName | string | 面试轮次名称 |
data[].interviewInfo[].roundEnglishName | string | 轮次英文名称 |
data[].interviewInfo[].createAt | string | 面试创建时间 |
data[].interviewInfo[].startTime | string | 面试开始时间 |
data[].interviewInfo[].duration | integer | 面试时长 |
data[].interviewInfo[].interviewArranger | object | 面试负责人 |
data[].interviewInfo[].interviewArranger.name | string | 面试负责人姓名 |
data[].interviewInfo[].interviewArranger.email | string | 面试负责人邮箱 |
data[].interviewInfo[].interviewArranger.phone | string | 面试负责人手机号 |
data[].interviewInfo[].interviewArranger.number | string | 面试负责人工号 |
data[].interviewInfo[].interviewArranger.employeeId | string | 面试负责人工号2 |
data[].interviewInfo[].satisfactionRecord | object | 面试满意度相关信息 |
data[].interviewInfo[].satisfactionRecord.sendTime | string | 面试满意度评价表发送时间 |
data[].interviewInfo[].satisfactionRecord.isAnonymous | Boolean | 是否匿名评价 |
data[].interviewInfo[].satisfactionRecord.content | string | 评价内容 |
data[].interviewInfo[].satisfactionRecord.satisfactionDimensions | array | 维度数组(面试过程 |
data[].interviewInfo[].satisfactionRecord.satisfactionDimensions[].name | string | 维度名称 |
data[].interviewInfo[].satisfactionRecord.satisfactionDimensions[].value | string | 维度对应值 |
data[].interviewInfo[].interviewerFeedbacks | array | 面试官反馈列表 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackId | string | 面试反馈 id |
data[].interviewInfo[].interviewerFeedbacks[].applicationId | string | 候选人 id |
data[].interviewInfo[].interviewerFeedbacks[].interviewer | object | 面试官信息 |
data[].interviewInfo[].interviewerFeedbacks[].interviewer.id | string | 面试官 id |
data[].interviewInfo[].interviewerFeedbacks[].interviewer.name | string | 面试官姓名 |
data[].interviewInfo[].interviewerFeedbacks[].interviewer.email | string | 面试官邮箱 |
data[].interviewInfo[].interviewerFeedbacks[].interviewer.phone | string | 面试官手机号 |
data[].interviewInfo[].interviewerFeedbacks[].interviewer.employeeId | string | 面试官工号2 |
data[].interviewInfo[].interviewerFeedbacks[].interviewer.number | string | 面试官工号 |
data[].interviewInfo[].interviewerFeedbacks[].resultName | string | 面试反馈结果 |
data[].interviewInfo[].interviewerFeedbacks[].resultType | integer | 面试反馈结果类型 0: 不满意 1: 满意 |
data[].interviewInfo[].interviewerFeedbacks[].feedback | string | 面试反馈内容 |
data[].interviewInfo[].interviewerFeedbacks[].participated | string | 面试反馈分类 面试未进行 , 已填写反馈 , 未填写反馈 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTime | string | 面试反馈时间 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult | array | 面试评价表的信息 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].name | string | 模块标题 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].description | string | 模块描述 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].score | string | 模块分数 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].calcScoreType | string | avg: 计算平均分, total: 计算总分 (只在type为1时有效) |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects | array | 模块下个小题的信息 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].type | integer | 题目类型 可选值: 1:打分题 2: 单选题 3: 描述题 4: 多选题 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].title | string | 小题标题 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].description | string | 小题描述 |
data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].result | integer | 小题结果:打分题为所选分数的数值;单选题为选项的索引值,从0开始;描述题为描述的字符串;多选题为索引值数组. type=2单选题,返回值为 "result": 0,题目type=4多选题 返回值为"result": [1,2] |
data[].interviewInfo[].interviewFeedbackUrl | string | 面试反馈汇总文件(仅包含候选人在该申请下所产生的面试反馈)下载链接,HTTP GET请求该URL即可下载面试反馈汇总文件,此链接有时效性,过期时间为1小时,需要收到请求后尽快下载在服务器保存 |
data[].interviewInfo[].stageId | integer | 阶段 id |
data[].interviewInfo[].cancelReason | string | 取消原因 |
data[].shigongInfo | object | 试工信息 |
data[].shigongInfo.applicationId | integer | 申请id |
data[].shigongInfo.shigongs[] | array | 试工信息 |
data[].shigongInfo.shigongs[].startTime | string | 试工开始时间 |
data[].shigongInfo.shigongs[].endTime | string | 试工结束时间 |
data[].shigongInfo.shigongs[].location | string | 试工地点 |
data[].shigongInfo.shigongs[].manager | object | 试工负责人信息 |
data[].shigongInfo.shigongs[].manager.name | string | 试工负责人姓名 |
data[].shigongInfo.shigongs[].manager.email | string | 试工负责人邮箱 |
data[].shigongInfo.shigongs[].manager.phone | string | 试工负责人手机号 |
data[].shigongInfo.shigongs[].manager.number | string | 试工负责人工号 |
data[].shigongInfo.shigongs[].manager.employeeId | string | 试工负责人工号2 |
data[].shigongInfo.shigongs[].shigongStatus | string | 试工状态 未安排 待反馈 反馈满意 反馈不满意 |
data[].shigongInfo.shigongs[].feedback | string | 试工反馈信息 |
data[].shigongInfo.shigongs[].protocolStatus | string | 试工协议状态 |
data[].shigongInfo.shigongs[].signStatus | string | 签到状态 |
data[].examInfo | object | 考试信息 |
data[].examInfo.applicationId | integer | 申请id |
data[].examInfo.candidateId | long | 候选人id |
data[].examInfo.exams[] | array | 考试测评信息 |
data[].examInfo.exams[].name | string | 考试测评名称 |
data[].examInfo.exams[].createTime | string | 考试发起时间 |
data[].examInfo.exams[].type | string | 考试测评类型 exam evaluation |
data[].examInfo.exams[].source | string | 考试测评服务商 |
data[].examInfo.exams[].result | String | 考试测评结果 |
data[].examInfo.exams[].detailResult | string | 考试测评详细结果 |
data[].examInfo.exams[].comment | string | 测评备注 |
data[].examInfo.exams[].examAttachments | array | 考试测评附件 |
data[].examInfo.exams[].examAttachments[].attachmentName | string | 考试测评附件名称 |
data[].examInfo.exams[].examAttachments[].attachmentUrl | string | 考试测评附件链接 |
data[].examInfo.exams[].examAttachments[].jobId | string | 发起考试测评的职位id |
data[].examInfo.exams[].examAttachments[].applicationId | string | 发起考试测评的申请ID |
data[].examInfo.exams[].examAttachments[].result | string | 考试测评结果 |
data[].examInfo.exams[].examAttachments[].detailResult | string | 考试测评详细结果 |
data[].examInfo.exams[].reportLinks | array | 考试测评报告链接 |
data[].examInfo.exams[].reportLinks[].applicationId | string | 发起考试测评的申请ID |
data[].examInfo.exams[].reportLinks[].jobId | string | 发起考试测评的职位id |
data[].examInfo.exams[].reportLinks[].name | string | 考试测评名称 |
data[].examInfo.exams[].reportLinks[].reportLink | string | 考试测评报告链接 |
data[].examInfo.exams[].reportLinks[].result | string | 考试测评结果 |
data[].examInfo.exams[].reportLinks[].detailResult | string | 考试测评详细结果 |
data[].examInfo.exams[].reportLinks[].type | string | 考试测评类型 exam或者evaluation |
data[].examInfo.jobId | string | 职位ID |
data[].examInfo.surveys[] | array | 背调信息 |
data[].examInfo.surveys[].name | string | 背调名称 |
data[].examInfo.surveys[].date | string | 背调日期 |
data[].examInfo.surveys[].source | string | 背调服务商 |
data[].examInfo.surveys[].result | string | 背调结果 |
data[].examInfo.surveys[].attachmentUrl | string | 背调报告链接 |
data[].examInfo.surveys[].comment | string | 背调备注 |
data[].examInfo.surveys[].attachmentName | string | 背调附件名 |
data[].examInfo.surveys[].attachments[] | array | 背调多附件(新版的单附件和多附件都在这个附件集合,原来的单附件结果只做历史兼容使用) |
data[].examInfo.surveys[].attachments[].url | string | 背调报告链接 |
data[].examInfo.surveys[].attachments[].attachmentName | string | 附件名称 |
data[].customstyleAttachments | object | 自定义应聘登记表 |
data[].customstyleAttachments.type | string | 附件类型固定doc |
data[].customstyleAttachments.createTime | string | 时间字符串 |
data[].customstyleAttachments.customFieldName | string | 自定义附件名称 |
data[].customstyleAttachments.url | string | 附件下载地址 |
data[].activities[] | array | 事件 |
data[].activities[].applicationId | integer | 申请id |
data[].activities[].operator | objet | 操作人信息 |
data[].activities[].operator.name | string | 操作人姓名 |
data[].activities[].operator.email | string | 操作人信息邮箱 |
data[].activities[].operator.phone | string | 操作人信息手机号 |
data[].activities[].operator.number | string | 操作人工号1 |
data[].activities[].operator.employeeId | string | 操作人工号2 |
data[].activities[].createAt | string | 事件发生时间 |
data[].activities[].toStageId | integer | 移动后阶段id |
data[].activities[].toStageName | string | 移动后阶段名称 |
data[].activities[].fromStageId | integer | 移动前阶段id |
data[].activities[].fromStageName | string | 移动前阶段名称 |
data[].activities[].type | string | 日志类型 可选值: ADD_CANDIDATE: 添加候选人 MOVE_STAGE: 移动阶段 |
data[].activities[].source | string | 申请来源 |
获取全部阶段下的候选人信息
本接口只返回基础信息,不会返回附件链接。
请求样例
$ curl https://api.mokahr.com/api-platform/v1/data/moved_applications
返回样例
[
{
"applicationId": 23191,
"candidateId": 12552,
"moved_at": "2019-01-25T10:25:36.000Z",
"name": "曹大帅",
"phone": "15013186607",
"email": "1170616425@qq.com",
"gender": "男",
"birthYear": 1991,
"birthDate": "2020-03-17T00:00:00.000Z",
"nationality": null,
"experience": 2,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": "湖北-武汉",
"source": "智联",
"sourceType": 2,
"academicDegree": "硕士",
"lastSpeciality": "人力资源管理",
"married": "未婚",
"jobCommitment": "全职",
"hireMode": 1,
"departmentCode": null,
"parentDepartmentCode": null,
"resumeKey": "1f0f3d5f-17d4-4e21-a135-a8dbb8648297.html",
"stageName": "用人部门筛选",
"stageType": 200,
"nativePlaceCode": null,
"nationalityCode": null,
"genderCode": 0,
"academicDegreeCode": 5,
"ethnicCode": null,
"job": {
"title": "5432154321543215432154321v543215432154321",
"department": null,
"departmentCode": null,
"parentDepartmentCode": null,
"competencyType": null,
"jobId": "ea932057-2637-4408-98a2-a3366b4ade14"
},
"jobManager": {
"name": "Moka小助手",
"email": "why947608878@163.com",
"phone": "18610778251",
"employeeId": "01"
},
"resumeUrl": "",
"educationInfo": [
{
"id": 35764,
"startDate": "2014-09",
"endDate": "2017-06",
"school": "长江大学",
"speciality": "农业经济管理",
"academicDegree": "硕士",
"startTime": 1409500800,
"endTime": 1496246400,
"now": false
},
{
"id": 35765,
"startDate": "2010-09",
"endDate": "2014-06",
"school": "长江大学",
"speciality": "人力资源管理",
"academicDegree": "本科",
"startTime": 1283270400,
"endTime": 1401552000,
"now": false
}
],
"experienceInfo": [],
"awardInfo": [],
"customFields": [],
"referrer": null,
"headcountInfo": [],
"jobRanksInfo": [],
"offer": null,
"projectInfo": [
{
"startDate": "2014-06",
"endDate": "2014-09",
"projectName": "土地流转确权工作",
"title": "",
"projectDescript": "1.了解荆州市农村人口占全市的比例。\r\n2.了解荆州市农村土地流转的面积。\r\n3.了解荆州市土地流转的模式。\r\n4.了解荆州市农村农户进行土体流转出现的问题和法律纠纷。\r\n5.整理相关文献资料,利用搜集到的土地流转资料撰写论文,总结分析出农户土地流转出现的问题,并找到其应对的措施。",
"responsibilities": "深入到农村基层,通过与农户的交谈和问卷调研方式,了解荆州市农村土地的流转情况,土地流转的面积、模式,考察荆州市农村居民土地流转出现的问题,以及它们的解决方式,另外考察当地政府对土地流转的支持力度。",
"startTime": 1401552000,
"endTime": 1409500800,
"now": false
}
],
"languageInfo": [],
"invitationUpdateStatus": 1
},
{
"applicationId": 44803,
"candidateId": 34339,
"moved_at": "2019-01-16T07:56:44.000Z",
"name": "张五",
"phone": "15811077349",
"email": "sgurr@163.com",
"gender": "男",
"birthYear": 1989,
"nationality": null,
"experience": null,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": null,
"source": "智联",
"sourceType": 1,
"academicDegree": "本科",
"lastSpeciality": "人力资源管理",
"married": null,
"jobCommitment": "全职",
"hireMode": 1,
"departmentCode": "1",
"parentDepartmentCode": null,
"resumeKey": null,
"stageName": "新增offer型阶段",
"stageType": "101",
"nativePlaceCode": null,
"nationalityCode": null,
"genderCode": 0,
"academicDegreeCode": 4,
"ethnicCode": null,
"job": {
"title": "qa",
"department": "马蜂窝",
"departmentCode": "1",
"parentDepartmentCode": null,
"competencyType": null,
"departmentPath": "马蜂窝",
"jobId": "ea932057-2637-4408-98a2-a3366b4ade14"
},
"jobManager": {
"name": "安涛",
"email": "antao@mokahr.com",
"phone": "15201314595",
"employeeId": "01"
},
"resumeUrl": "",
"educationInfo": [
{
"id": 37153,
"startDate": "",
"endDate": "",
"school": "收到回复看吧",
"speciality": "哈是的",
"academicDegree": "本科",
"startTime": null,
"endTime": null,
"now": false
}
],
"experienceInfo": [],
"awardInfo": [],
"customFields": [
{
"codes": "",
"name": "民族自定义",
"value": "维吾尔族",
"section": "basicInfo"
}
],
"referrer": null,
"headcountInfo": [
{
"id": 5,
"number": "3",
"name": "测试HC更新1"
}
],
"jobRanksInfo": [],
"offer": null,
"projectInfo": [],
"languageInfo": [],
"invitationUpdateStatus": 1
}
]
该接口将返回指定条件中所有阶段内的全部候选人信息
首次调用时,会返回指定阶段中所有候选人信息,然后标记候选人,标记后在候选人移动前将不能通过该接口获取到数据
后续如果该阶段中候选人移动,则可以重新获取到数据,每次最多返回100条数据
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/moved_applications
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
stage | 否 | string | 申请归档前阶段名all :所有阶段preliminary_filter :初筛 offer :offer类型的阶段 pending_checkin :待入职阶段 filter :筛选型阶段interview :面试型阶段 exam :测试型阶段 none :无类型阶段 shigong :试工型阶段 |
fromTime | 否 | string | 数据的开始时间 如2018-1-1 |
返回
字段 | 类型 | 描述 |
---|---|---|
candidateId | integer | 候选人在Moka中的唯一id |
applicationId | integer | 候选人该申请在Moka中的唯一id |
name | string | 姓名 |
phone | string | 电话 |
string | 邮箱 | |
gender | string | 性别,以下值之一:男 ,女 |
birthYear | integer | 出生年份,如1990 |
birthDate | string | 出生日期 |
ethnic | string | 民族 |
certificateType | integer | 证件类型 可选值: 1 :身份证2 :香港身份证3 :澳门身份证4 :台湾身份证5 :护照6 :其他证件 7 :港澳居民来往内地通行证8 :台湾居民来往内地通行证9 :外国人工作许可证10 :外国人居留许可证 |
citizenId | string | 证件号码 |
nationality | string | 国籍 |
nativePlace | string | 籍贯 |
hireMode | integer | 招聘模式 可选值: 1 : 社招2 : 校招 |
source | string | 渠道,如拉勾 |
sourceType | integer | 来源 可选值: 1 :主动搜索,2 :主动投递,3 :人才推荐 |
stageName | string | 所在阶段名称 |
stageType | number | 所在阶段类型 可选值: 100 :初筛101 :Offer型102 :待入职200 :筛选型201 :面试型202 : 测试型205 :无类型206 :试工型 |
location | string | 所在地,如北京 |
academicDegree | string | 最高学历 可选值: 本科 ,硕士 ,博士 ,高中 ,大专 ,中专 ,MBA ,其他 |
married | string | 婚姻状态 可选值 '已婚', '未婚', '离异', '丧偶', 'CIVILUNION', 'COHABITATING', 'MARRIED', 'DIVORCED', 'ENGAGED', 'SEPARATED', 'SINGLE', 'WIDOWED' |
nativePlaceCode | integer | 籍贯编码(籍贯为空时为null,编码详情见附件) |
nationalityCode | integer | 国籍编码(国籍为空时为null,编码详情见附件) |
genderCode | integer | 性别编码(性别为空时为null,编码详情见附件) |
academicDegreeCode | integer | 学历编码(学历为空时为null,编码详情见附件) |
ethnicCode | integer | 民族编码(民族为空时为null,编码详情见附件) |
educationInfo[] | array | 教育经历 |
educationInfo[].startDate | string | 学校开始时间,最多精确到月。如2010-09 , 2008 |
educationInfo[].endDate | string | 学校结束时间,最多精确到月。如2010-09 , 2008 |
educationInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
educationInfo[].school | string | 学校名称 |
educationInfo[].speciality | string | 专业 |
educationInfo[].academicDegree | string | 学历 可选值: 本科 ,硕士 ,博士 ,高中 ,大专 ,中专 ,MBA ,其他 |
experienceInfo[] | array | 工作经历 |
experienceInfo[].startDate | string | 工作开始时间,最多精确到月。如2010-09 , 2008 |
experienceInfo[].endDate | string | 工作结束时间,最多精确到月。如2010-09 , 2008 |
experienceInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
experienceInfo[].company | string | 公司名称 |
experienceInfo[].title | string | 职位名称 |
experienceInfo[].summary | string | 工作职责 |
experienceInfo[].reasonForLeaving | string | 离职原因 |
experienceInfo[].underlingNumber | string | 下属人数 |
awardInfo[] | array | 获奖经历 |
awardInfo[].awardDate | datetime | 获奖时间 |
awardInfo[].awardName | string | 获奖名称 |
job | object | 应聘职位信息 |
job.title | string | 职位名称 |
job.department | string | 职位所在部门 |
job.departmentPath | string | 职位所在部门的完整路径,从上级到下级,以/ 分割 |
job.departmentCode | string | 部门code |
job.parentDepartmentCode | string | 父级部门code |
job.competencyType | string | 职能类型 |
job.customFields | array | job自定义字段 |
job.customFields[].name | string | job自定义字段名称 |
job.customFields[].value | string | job自定义字段值 |
ehrCustomFields[] | array | ehr自定义导出字段集合 |
referrer | object | 推荐人信息 |
referrer.name | string | 推荐人姓名 |
referrer.email | string | 推荐人邮箱 |
referrer.phone | string | 推荐人电话 |
jobRanksInfo[].name | string | 职位级别名称 |
jobRanksInfo[].type | string | 职位级别类型 |
jobRanksInfo[].level | string | 职位级别等级 |
headcountInfo[].id | number | Headcount ID |
headcountInfo[].number | string | Headcount 编号 |
headcountInfo[].name | string | Headcount 名称 |
customFields[] | array | 候选人自定义字段,仅包含标准简历中设置的自定义字段 |
customFields[].name | string | 自定义字段名称 |
customFields[].value | string | 自定义字段值。对于是否题类型 可选值: 1 :是0 :否。 |
customFields[].now | boolean | 当自定义字段是时间段时存在该字段,标识结束时间是否为“至今”。结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
customFields[].section | string | 自定义字段所在的模块名称,模块可以是内置模块(如experienceInfo)或者自定义模块(如紧急联系人) |
customFields[].index | string | 对于experienceInfo、educationInfo或者自定义模块(如紧急联系人)等存在多条数据的模块,index 表示这个字段是第几条数据的自定义字段信息 |
customFields[].codes | string | 选择题自定义code(仅对有code的选择题生效) |
offer | object | offer信息 |
offer.salaryNumber | number | 薪资待遇 |
offer.checkinDate | string | 入职日期 |
offer.location | string | 入职后工作地 |
offer.creator | object | offer创建人信息 |
offer.creator.name | string | offer创建人姓名 |
offer.creator.email | string | offer创建人邮箱 |
offer.finishedAt | string | offer接受时间。日期格式为:ISO8601 |
offer.customFields | array | offer自定义字段 |
offer.customFields[].name | string | offer自定义字段名称 |
offer.customFields[].value | string | offer自定义字段值 |
offer.departmentName | string | 入职部门名称 |
offer.departmentCode | number | 入职部门code |
offer.parentDepartmentCode | number | 入职部门上级部门code |
offer.departmentPath | string | 入职部门完整路径 |
offer.offerLastSentAt | string | 末次发送offer时间 |
projectInfo | array | 项目经验 |
projectInfo[].startDate | string | 项目开始时间,最多精确到月。如2010-09 , 2008 |
projectInfo[].endDate | string | 项目结束时间,最多精确到月。如2010-09 , 2008 |
projectInfo[].projectName | string | 项目名称 |
projectInfo[].title | string | 担任> 职责 |
projectInfo[].projectDescript | string | 项目描述 |
projectInfo[].responsibilities | string | 项目中职责 |
projectInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
languageInfo | array | 语言能力 |
languageInfo[].language | string | 语言类型 |
languageInfo[].level | string | 掌握程度 |
languageInfo[].listenAndSpeak | string | 听说能力 |
languageInfo[].readAndWrite | string | 读写能力 |
invitationUpdateStatus | integer | 邀请更新状态 可选值: 0 :未邀请 1 :未更新 2 :已更新 |
获取全部阶段下的候选人信息(分页)
请求样例
$ curl https://api.mokahr.com/api-platform/v1/data/movedApplications
返回样例
{
"next":"2019-01-16T07:56:44.000Z_44803",
"data":[
{
"applicationId": 23191,
"candidateId": 12552,
"moved_at": "2019-01-25T10:25:36.000Z",
"name": "曹大帅",
"phone": "15013186607",
"email": "1170616425@qq.com",
"gender": "男",
"birthYear": 1991,
"nationality": null,
"experience": 2,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": "湖北-武汉",
"source": "智联",
"sourceType": 2,
"academicDegree": "硕士",
"lastSpeciality": "人力资源管理",
"married": "未婚",
"jobCommitment": "全职",
"hireMode": 1,
"departmentCode": null,
"parentDepartmentCode": null,
"resumeKey": "1f0f3d5f-17d4-4e21-a135-a8dbb8648297.html",
"stageName": "用人部门筛选",
"stageType": 200,
"nativePlaceCode": null,
"nationalityCode": null,
"genderCode": 0,
"academicDegreeCode": 5,
"ethnicCode": null,
"job": {
"title": "5432154321543215432154321v543215432154321",
"department": null,
"departmentCode": null,
"parentDepartmentCode": null,
"competencyType": null,
"jobId": "ea932057-2637-4408-98a2-a3366b4ade14"
},
"jobManager": {
"name": "Moka小助手",
"email": "why947608878@163.com",
"phone": "18610778251",
"employeeId": "01"
},
"resumeUrl": "",
"educationInfo": [
{
"id": 35764,
"startDate": "2014-09",
"endDate": "2017-06",
"school": "长江大学",
"speciality": "农业经济管理",
"academicDegree": "硕士",
"startTime": 1409500800,
"endTime": 1496246400,
"now": false
},
{
"id": 35765,
"startDate": "2010-09",
"endDate": "2014-06",
"school": "长江大学",
"speciality": "人力资源管理",
"academicDegree": "本科",
"startTime": 1283270400,
"endTime": 1401552000,
"now": false
}
],
"experienceInfo": [],
"awardInfo": [],
"customFields": [],
"referrer": null,
"headcountInfo": [],
"jobRanksInfo": [],
"offer": null,
"projectInfo": [
{
"startDate": "2014-06",
"endDate": "2014-09",
"projectName": "土地流转确权工作",
"title": "",
"projectDescript": "1.了解荆州市农村人口占全市的比例。\r\n2.了解荆州市农村土地流转的面积。\r\n3.了解荆州市土地流转的模式。\r\n4.了解荆州市农村农户进行土体流转出现的问题和法律纠纷。\r\n5.整理相关文献资料,利用搜集到的土地流转资料撰写论文,总结分析出农户土地流转出现的问题,并找到其应对的措施。",
"responsibilities": "深入到农村基层,通过与农户的交谈和问卷调研方式,了解荆州市农村土地的流转情况,土地流转的面积、模式,考察荆州市农村居民土地流转出现的问题,以及它们的解决方式,另外考察当地政府对土地流转的支持力度。",
"startTime": 1401552000,
"endTime": 1409500800,
"now": false
}
],
"languageInfo": []
},
{
"applicationId": 44803,
"candidateId": 34339,
"moved_at": "2019-01-16T07:56:44.000Z",
"name": "张五",
"phone": "15811077349",
"email": "sgurr@163.com",
"gender": "男",
"birthYear": 1989,
"nationality": null,
"experience": null,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": null,
"source": "智联",
"sourceType": 1,
"academicDegree": "本科",
"lastSpeciality": "人力资源管理",
"married": null,
"jobCommitment": "全职",
"hireMode": 1,
"departmentCode": "1",
"parentDepartmentCode": null,
"resumeKey": null,
"stageName": "新增offer型阶段",
"stageType": "101",
"nativePlaceCode": null,
"nationalityCode": null,
"genderCode": 0,
"academicDegreeCode": 4,
"ethnicCode": null,
"job": {
"title": "qa",
"department": "马蜂窝",
"departmentCode": "1",
"parentDepartmentCode": null,
"competencyType": null,
"departmentPath": "马蜂窝",
"jobId": "ea932057-2637-4408-98a2-a3366b4ade14",
"customFields": [
{
"name": "职位-年月",
"value": "2019-01"
}
]
},
"jobManager": {
"name": "安涛",
"email": "antao@mokahr.com",
"phone": "15201314595",
"employeeId": "01"
},
"resumeUrl": "",
"educationInfo": [
{
"id": 37153,
"startDate": "",
"endDate": "",
"school": "收到回复看吧",
"speciality": "哈是的",
"academicDegree": "本科",
"startTime": null,
"endTime": null,
"now": false
}
],
"experienceInfo": [],
"awardInfo": [],
"customFields": [
{
"codes": "",
"name": "民族自定义",
"value": "维吾尔族",
"section": "basicInfo"
}
],
"referrer": null,
"headcountInfo": [
{
"id": 5,
"number": "3",
"name": "测试HC更新1"
}
],
"jobRanksInfo": [],
"offer": null,
"projectInfo": [],
"languageInfo": []
}
]
}
该接口将返回指定条件中所有阶段内的全部候选人信息
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/movedApplications
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
stage | 否 | string | 申请归档前阶段名all :所有阶段preliminary_filter :初筛 offer :offer类型的阶段 pending_checkin :待入职阶段 filter :筛选型阶段interview :面试型阶段 exam :测试型阶段 none :无类型阶段 shigong :试工型阶段 |
fromTime | 是 | string | 数据的开始时间,fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。 如2018-1-1 ASC 由该时间往新数据查询 |
next | 是 | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next 字段,下次请求只需要把这个next 参数加到query中就可以了。fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。如果响应中没有next 字段,表示没有更多的数据了 |
reqType | 否 | string | all:全量,忽略标记,全部返回给调用方 update:更新和变量(默认),每次请求会将未标记的数据返回给调用方,并标记返回数据 |
limit | 否 | string | 分页用的每页条数,默认20,最大20 |
返回
字段 | 类型 | 描述 |
---|---|---|
candidateId | integer | 候选人在Moka中的唯一id |
applicationId | integer | 候选人该申请在Moka中的唯一id |
name | string | 姓名 |
phone | string | 电话 |
string | 邮箱 | |
gender | string | 性别,以下值之一:男 ,女 |
birthYear | integer | 出生年份,如1990 |
birthDate | string | 出生日期 |
ethnic | string | 民族 |
certificateType | integer | 证件类型 可选值: 1 :身份证2 :香港身份证3 :澳门身份证4 :台湾身份证5 :护照6 :其他证件 7 :港澳居民来往内地通行证8 :台湾居民来往内地通行证9 :外国人工作许可证10 :外国人居留许可证 |
citizenId | string | 证件号码 |
nationality | string | 国籍 |
nativePlace | string | 籍贯 |
hireMode | integer | 招聘模式 可选值 1 : 社招2 : 校招 |
source | string | 渠道,如拉勾 |
sourceType | integer | 来源 可选值: 1 :主动搜索,2 :主动投递,3 :人才推荐 |
stageName | string | 所在阶段名称 |
stageType | number | 所在阶段类型 可选值: 100 :初筛101 :Offer型102 :待入职200 :筛选型201 :面试型202 : 测试型205 :无类型206 :试工型 |
location | string | 所在地,如北京 |
academicDegree | string | 最高学历 可选值: 本科 ,硕士 ,博士 ,高中 ,大专 ,中专 ,MBA ,其他 |
married | string | 婚姻状态 可选值: '已婚', '未婚', '离异', '丧偶', 'CIVILUNION', 'COHABITATING', 'MARRIED', 'DIVORCED', 'ENGAGED', 'SEPARATED', 'SINGLE', 'WIDOWED' |
nativePlaceCode | integer | 籍贯编码(籍贯为空时为null,编码详情见附件) |
nationalityCode | integer | 国籍编码(国籍为空时为null,编码详情见附件) |
genderCode | integer | 性别编码(性别为空时为null,编码详情见附件) |
academicDegreeCode | integer | 学历编码(学历为空时为null,编码详情见附件) |
ethnicCode | integer | 民族编码(民族为空时为null,编码详情见附件) |
educationInfo[] | array | 教育经历 |
educationInfo[].startDate | string | 学校开始时间,最多精确到月。如2010-09 , 2008 |
educationInfo[].endDate | string | 学校结束时间,最多精确到月。如2010-09 , 2008 |
educationInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
educationInfo[].school | string | 学校名称 |
educationInfo[].speciality | string | 专业 |
educationInfo[].academicDegree | string | 学历 可选值: 本科 ,硕士 ,博士 ,高中 ,大专 ,中专 ,MBA ,其他 |
experienceInfo[] | array | 工作经历 |
experienceInfo[].startDate | string | 工作开始时间,最多精确到月。如2010-09 , 2008 |
experienceInfo[].endDate | string | 工作结束时间,最多精确到月。如2010-09 , 2008 |
experienceInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
experienceInfo[].company | string | 公司名称 |
experienceInfo[].title | string | 职位名称 |
experienceInfo[].summary | string | 工作职责 |
experienceInfo[].reasonForLeaving | string | 离职原因 |
experienceInfo[].underlingNumber | string | 下属人数 |
awardInfo[] | array | 获奖经历 |
awardInfo[].awardDate | datetime | 获奖时间 |
awardInfo[].awardName | string | 获奖名称 |
job | object | 应聘职位信息 |
job.title | string | 职位名称 |
job.department | string | 职位所在部门 |
job.departmentPath | string | 职位所在部门的完整路径,从上级到下级,以/ 分割 |
job.departmentCode | string | 部门code |
job.parentDepartmentCode | string | 父级部门code |
job.competencyType | string | 职能类型 |
job.customFields | array | job自定义字段 |
job.customFields[].name | string | job自定义字段名称 |
job.customFields[].value | string | job自定义字段值 |
ehrCustomFields[] | array | ehr自定义导出字段集合 |
idCardFrontList | array | 上传身份证照片(人像面) |
idCardBackList | string | 上传身份证照片(国徽面) |
idCardSignOrganization | string | 身份证签发机关 |
idCardValidity | string | 证件有效期 |
customAttachmentList | obj | 候选人标准简历的所有附件 |
customAttachmentList.customUpload+customId | array | 候选人标准简历的附件的key由customUpload(固定字符串)+customId组成 |
customAttachmentList.customUpload+customId[].attachmentName | string | 附件名称 |
customAttachmentList.customUpload+customId[].attachmentSize | number | 附件大小(byte) |
customAttachmentList.customUpload+customId[].candidateId | number | 候选人id |
customAttachmentList.customUpload+customId[].customId | number | 自定义字段id |
customAttachmentList.customUpload+customId[].downloadUrl | string | 下载地址24小时失效 |
customAttachmentList.customUpload+customId[].createdAt | string | 附件创建时间(时间戳格式) |
referrer | object | 推荐人信息 |
referrer.name | string | 推荐人姓名 |
referrer.email | string | 推荐人邮箱 |
referrer.phone | string | 推荐人电话 |
jobRanksInfo[].name | string | 职位级别名称 |
jobRanksInfo[].type | string | 职位级别类型 |
jobRanksInfo[].level | string | 职位级别等级 |
headcountInfo[].id | number | Headcount ID |
headcountInfo[].number | string | Headcount 编号 |
headcountInfo[].name | string | Headcount 名称 |
customFields[] | array | 候选人自定义字段,仅包含标准简历中设置的自定义字段 |
customFields[].name | string | 自定义字段名称 |
customFields[].value | string | 自定义字段值。对于是否题类型 可选值: 1 :是0 :否。 |
customFields[].now | boolean | |
customFields[].section | string | 自定义字段所在的模块名称,模块可以是内置模块(如experienceInfo)或者自定义模块(如紧急联系人) |
customFields[].index | string | 对于experienceInfo、educationInfo或者自定义模块(如紧急联系人)等存在多条数据的模块,index 表示这个字段是第几条数据的自定义字段信息 |
customFields[].codes | string | 选择题自定义code(仅对有code的选择题生效) |
offer | object | offer信息 |
offer.salaryNumber | number | 薪资待遇 |
offer.checkinDate | string | 入职日期 |
offer.location | string | 入职后工作地 |
offer.creator | object | offer创建人信息 |
offer.creator.name | string | offer创建人姓名 |
offer.creator.email | string | offer创建人邮箱 |
offer.finishedAt | string | offer接受时间。日期格式为:ISO8601 |
offer.customFields | array | offer自定义字段 |
offer.customFields[].name | string | offer自定义字段名称 |
offer.customFields[].value | string | offer自定义字段值 |
offer.departmentName | string | 入职部门名称 |
offer.departmentCode | number | 入职部门code |
offer.parentDepartmentCode | number | 入职部门上级部门code |
offer.departmentPath | string | 入职部门完整路径 |
offer.offerLastSentAt | string | 末次发送offer时间 |
projectInfo | array | 项目经验 |
projectInfo[].startDate | string | 项目开始时间,最多精确到月。如2010-09 , 2008 |
projectInfo[].endDate | string | 项目结束时间,最多精确到月。如2010-09 , 2008 |
projectInfo[].projectName | string | 项目名称 |
projectInfo[].title | string | 担任> 职责 |
projectInfo[].projectDescript | string | 项目描述 |
projectInfo[].responsibilities | string | 项目中职责 |
projectInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endDate的值将可能为任意值,直接忽略endDate即可 |
languageInfo | array | 语言能力 |
languageInfo[].language | string | 语言类型 |
languageInfo[].level | string | 掌握程度 |
languageInfo[].listenAndSpeak | string | 听说能力 |
languageInfo[].readAndWrite | string | 读写能力 |
invitationUpdateStatus | integer | 邀请更新状态 可选值: 0 :未邀请 1 :未更新2 :已更新 |
获取自定义模块
请求样例
$ curl https://api.mokahr.com/api-platform/v1/candidates/custom_blocks
返回样例
[
{
"id": 1,
"title": "自定义模块1"
},
{
"id": 2,
"title": "自定义模块2"
}
]
获取配置的自定义模块列表
HTTP请求
GET https://api.mokahr.com/api-platform/v1/candidates/custom_blocks
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 自定义模块id |
title | string | 自定义模块名称 |
获取自定义字段
请求样例
$ curl https://api.mokahr.com/api-platform/v1/candidates/custom_fields
返回样例
[
{
"id": 1,
"name": "自定义字段1",
"type": "string_info",
"relatedTo": "basicInfo"
},
{
"id": 2,
"name": "自定义字段2",
"type": "select_info",
"relatedTo": "1",
"detail": ["选项1", "选项2"]
}
]
获取配置的自定义字段列表
HTTP请求
GET https://api.mokahr.com/api-platform/v1/candidates/custom_fields
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 自定义字段id |
name | string | 自定义字段名称 |
type | string | 字段类型 select_info 选择类型 可选值: string_info 字符串类型 date_info 日期类型 |
detail | array | 如果type 是select_info ,这个字段表示选择项的列表。 |
relatedTo | string | 这个自定义字段所属的模块。 如果是数字,表示自定义模块的id。如果是其他字符串,表示内置模块的名称,如: basicInfo 个人信息 experienceInfo 工作经历 educationInfo 教育背景 |
更新候选人自定义字段
请求样例
curl --silent --location --request POST 'https://api.mokahr.com/api-platform/v1/candidate/customField/update' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"updateCustomFieldsReqDTOList": [
{
"candidateId": 326567157,
"orgId": "test",
"operatorEmail": "xxxx@qq.com",
"hireMode": 1,
"customIdAndDetailDTOList": [
{
"id": 124106,
"detail": "2022-11-01 00:00:00",
"type": "string_info"
}
]
},
{
"candidateId": 326563070,
"orgId": "test",
"operatorEmail": "xxxx@qq.com",
"hireMode": 1,
"customIdAndDetailDTOList": [
{
"id": 124106,
"detail": "单行文本",
"type": "string_info"
},
{
"id": 124107,
"detail": "1",
"type": "text_info"
}
]
}
]
}'
返回样例
{
"code": 0,
"msg": "success",
"data": null
}
每次修改的字段数量不超过300个
HTTP请求
post https://api.mokahr.com/api-platform/v1/candidate/customField/update
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
updateCustomFieldsReqDTOList | 是 | array | 更新数据 |
updateCustomFieldsReqDTOList[].orgId | 是 | string | 租户id |
updateCustomFieldsReqDTOList[].applicationId | 否 | integer | 申请ID 若传入 application id,优先判断操作人是否有申请权限,否则,根据传入 candidate id,判断操作人是否有候选人的所有申请权限 |
updateCustomFieldsReqDTOList[].candidateId | 是 | integer | 候选人id |
updateCustomFieldsReqDTOList[].hireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
updateCustomFieldsReqDTOList[].operatorEmail | 是 | string | 操作者邮箱 |
updateCustomFieldsReqDTOList[].jobTemplateId | 否 | long | 自定义招聘设置 若未传(留空),允许更新默认标准简历设置中启用的字段,若入参中字段未被启用,则不处理 若传具体自定义招聘设置 ID,允许更新自定义招聘设置中启用的字段,若入参中字段未被启用,则不处理 若传自定义招聘设置,请确保设置 ID 有效(0 或无效 ID 将被校验拦截) |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList | 是 | array | 更新的自定义字段集合 |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList[].id | 是 | integer | 自定义字段id |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList[].detail | 是 | string | 自定义字段修改后的值 |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList[].type | 是 | string | 自定义字段类型 如果type是date_info或者day_info,detail格式必须是"2022-11-01 00:00:00"这种类型。如果type是date_group_info,则detail格式为{\"startDate\":\"2015-01\",\"endDate\":\"2016-01\"}。 |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList[].attachmentId | 否 | string | 上传附件接口返回的id(通过公共API附件上传接口获取) 只有当type = custom_file_upload 才有值 如果传了 attachmentId detail 字段可不填,并且会优先 校验 attachmentId 来获取字段信息,如果客户传入 attachmentName 会以传入的attachmentName 为准,否则会校验 attachmentName 和 attachmentSize detail。 |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList[].attachmentName | 否 | string | 文件名称 只有当type = custom_file_upload 时才是必填项 其他type 非必填 |
updateCustomFieldsReqDTOList[].customIdAndDetailDTOList[].attachmentSize | 否 | Integer | 文件大小 只有当type = custom_file_upload 时才是必填项 其他type 非必填 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
获取候选人申请列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/data/applications
返回样例
{
"data": [
{
"id": 1,
"sourceName": "拉勾",
"headhunterCompany": "好猎头",
"stageName": "沟通Offer",
"jobId": "123",
"updatedAt": "2017-01-01 10:00:00"
}
],
"next": "8465195468"
}
获取候选人申请信息
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/applications
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
fromTime | 否 | string | 数据的开始时间,fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。 |
next | 否 | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next 字段,下次请求只需要把这个next 参数加到query中就可以了。fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。如果响应中没有next 字段,表示没有更多的数据了 |
limit | 否 | string | 分页用的每页条数,默认100 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 申请Id |
sourceName | string | 渠道名称 |
headhunterCompany | string | 猎头公司名称 |
stageName | string | 所在阶段名称 |
updatedAt | string | 本条数据的最近更新时间 |
jobId | string | 申请所在的职位id |
将申请移动到所在职位下的任一阶段
将申请移动到所在职位下的任一阶段。
请求样例
$ curl http://api.mokahr.com/api-platform/v1/applications/move_application_stage?applicationId=96&stageId=4 \
-u 'your_api_key:' \
-X PUT \
返回样例
{
"code": 0,
"msg": "成功"
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/applications/move_application_stage?applicationId={applicationId}&stageId={stageId}
请求参数
字段 | 必填 | 描述 |
---|---|---|
applicationId | 是 | 申请id |
stageId | 是 | 要挪动到的阶段id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 0 :设置成功1 :失败 |
msg | string | 成功 |
拉黑候选人
拉黑候选人
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/blackCandidate' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic ZndyMDAzOg==' \
--data-raw '{
"detail": "不222满足",
"applicationIds": [
411250318
],
"talentPoolIds": [
200003266
],
"hireMode": 2,
"operatorEmail": "fwr003@163.com",
"tags": "态度恶劣"
}'
返回样例
{
"code": 0,
"msg": "成功"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/blackCandidate
请求参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | array[integer] | 候选人申请ids |
talentPoolIds | 是 | array[integer] | 人才库id |
businessUnitId | 否 | integer | bu的id |
detail | 否 | string | 拉黑详情 |
hireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
operatorEmail | 是 | string | 操作人邮箱 |
tags | 是 | string | 标签 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 0 :设置成功,1 :失败 |
msg | string | 成功 |
获取招聘流程列表
请求样例
$ curl https://api.mokahr.com/api-platform/v2/pipelines/getPipelinesList
-u 'your-api-key:'
返回样例
{
"code": 200,
"msg": "success",
"data": [
{
"id": "485",
"departmentIds": "[3427,15825,47702]",
"disabled": false,
"entryConditions": "{\"29083\":{\"match\":\"and\",\"conditions\":[{\"stageId\":9886,\"type\":17,\"status\":1}]}}",
"hireMode": 1,
"isOptimizedDeptIds": false,
"name": "默认招聘流程",
"stageIds": "[2601,43451,2602,49375,12983,14827,15794,10784,43651,40780,7164,14826,9276,9240,7278,3407,11049,5890,3385,7642,4008,2603,9886,29083,3460,2604,44665,5544,15360,2605]"
},
{
"id": "632",
"departmentIds": "[47702]",
"disabled": true,
"entryConditions": "",
"hireMode": 1,
"isOptimizedDeptIds": false,
"name": "产品招聘流程",
"stageIds": "[2601,15794,3459,2602,15698,2604,8396,3462,3385,2605]"
},
{
"id": "657",
"departmentIds": "[]",
"disabled": false,
"entryConditions": "",
"hireMode": 1,
"isOptimizedDeptIds": true,
"name": "商业产品部招聘流程",
"stageIds": "[2601,4009,43143,5890,3385,2603,2604,3479,15352,2605]"
},
{
"id": "3533",
"departmentIds": "[47702]",
"disabled": false,
"entryConditions": "",
"hireMode": 1,
"isOptimizedDeptIds": false,
"name": "报表统计招聘",
"stageIds": "[2601,3385,4009,4008,7164,9245,2604,6669,2605]"
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v2/pipelines/getPipelinesList
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200 正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false |
data | array or object | 如果是单条数据则返回object多条数据返回的是数组 |
data.id | integer | 流程Id |
data.entryConditions | string | 进入本阶段所需条件,默认',来自常量STAGE_ENTRY_CONDITIONS,json格式 |
data.departmentIds | string | 支持的部门 |
data.disabled | boolean | 是否禁用 |
data.hireMode | integer | 招聘类型 可选值: 1 社招2 校招 |
data.isOptimizedDeptIds | boolean | 是否优化的部门 |
data.stageIds | string | 阶段id列表 |
data.name | string | 流程名称 |
获取阶段信息列表
请求样例
$ curl https://api.mokahr.com/api-platform/v2/stage/getStagesList
-u 'your-api-key:'
返回样例
{
"code": 200,
"msg": "success",
"data": [
{
"entryConditions": "[]",
"disabled": false,
"operationIds": "[14,1,13,2,11,17]",
"name": "初筛",
"type": 100
},
{
"entryConditions": "[]",
"disabled": false,
"operationIds": "[2,14,11,17]",
"name": "用人部门筛选",
"type": 200
},
{
"entryConditions": "[]",
"disabled": false,
"operationIds": "[3,2,9,14,11]",
"name": "面试",
"type": 201
},
{
"entryConditions": "[]",
"disabled": false,
"operationIds": "[11,14,6,8,7]",
"name": "沟通offer",
"type": 101
},
{
"entryConditions": "[]",
"disabled": false,
"operationIds": "[10,11,6,15,14,8]",
"name": "待入职",
"type": 102
},
{
"entryConditions": "[]",
"disabled": true,
"operationIds": "[14,11,5]",
"name": "笔试阶段",
"type": 202
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v2/stage/getStagesList
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200 正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | array or object | 如果是单条数据则返回object多条数据返回的是数组 |
data.id | integer | 阶段Id |
data.name | string | 阶段名称 |
data.entryConditions | string | 进入本阶段所需条件,默认',来自常量STAGE_ENTRY_CONDITIONS,json格式 |
data.operationIds | string | 阶段下哪些操作可用,一个操作对应一种状态类型,json格式 |
data.disabled | boolean | 是否禁用 |
data.type | number | 阶段类型 |
查询候选人相关申请
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/candidate/v1/getApplicationStates' \
--header 'Content-Type: application/json' \
--header 'Authorization: ' \
--data-raw '{
"candidateId": 201232883
}'
返回样例
{
"code": 0,
"msg": "success",
"data": [
{
"applicationId": 411269930,
"status": "rejected",
"stageName": "初筛",
"createdAt": 1662520322000
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/v1/getApplicationStates
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
candidateId | 是 | long | 候选人ID |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | array | 候选人申请信息 |
data[].applicationId | long | 候选人ID |
data[].status | string | 申请的状态 枚举值: in_progress : 在流程中rejected : 已拒绝hired : 已入职 |
data[].stageName | string | 申请所在当前阶段的名称 |
data[].createdAt | string | 申请创建时间(时间戳) |
移出黑名单
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/talentPool/blackList/remove' \
--header 'Content-Type: application/json' \
--data-raw '{
"hireMode": 2,
"candidateIds": [201252027],
"operatorEmail": "zongxinqi@mokahr.com"
}'
返回样例
{
"code": 0,
"msg": "success"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/talentPool/blackList/remove
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
candidateIds | 否,但是和applicationIds必须传一个,并且最大数量不超过200 | List |
候选人ID |
applicationIds | 否 | List |
申请ID |
hireMode | 是 | int | 招聘模式 1 社招 2 校招 |
operatorEmail | 是 | string | 操作人邮箱 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
获取用人部门评估结论
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/candidate/v1/get_handle_Result' \
--header 'Content-Type: application/json' \
--data-raw '{
"applicationIdList":[411274410],
"stageIdList":[123]
}'
返回样例
{
"code": 0,
"msg": "success",
"data":{
"applicationId":111,
"candidateId":2323,
"stageId":3232,
"email":"",
"stageType":100,
"name":"",
"handleResult":"reject",
"handleTime":""
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/v1/get_handle_Result
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIdList | 是 | List |
申请ID合和 |
stageIdList | 否 | List |
阶段id集合和 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data.applicationId | integer | 申请id |
data.candidateId | integer | 候选人id |
data.stageId | integer | 阶段id |
data.email | string | 被推荐人邮箱 |
data.stageType | integer | 阶段类型 100 = 初筛, 200 = 筛选 , 201 = 面试 |
data.name | string | 被推荐人姓名 |
data.handleResult | string | 反馈结果 reject = 拒绝, accept = 通过, noReply = 未反馈 |
data.handleTime | string | 指的是反馈时间yyyy-MM-dd HH:mm:ss |
data.assignerName | string | 推荐人姓名 |
data.assignerEmail | string | 推荐人邮箱 |
data.recommendedTime | long | 推荐时间 |
变更保护期
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/candidate/applications/update_protect_startTime' \
--header 'Content-Type: application/json' \
--data-raw '{
"applicationIds":[411274410],
"protectStartTime":"2023-01-01"
}'
返回样例
{
"code": 0,
"msg": "success",
"data": true
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/candidate/applications/update_protect_startTime
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | List |
申请ID集合 |
protectStartTime | 是 | string | 保护期开始时间(时间戳)该参数仅在Moka CSM后台“保护期时间按当前保护的申请计算”开关开启时有效 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data | boolean |
查询候选人相关申请下的阶段
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/candidate/v1/get_candidate_stage' \
--header 'Content-Type: application/json' \
--data-raw '{
"applicationIdList":[411274410]
}'
返回样例
{
"code": 0,
"msg": "success",
"data":{
"applicationId":111,
"candidateId":2323,
"stageId":3232,
"enteredAt":"",
"archivedAt":""
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/v1/get_candidate_stage
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIdList | 是 | List |
申请ID合和 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.applicationId | integer | 申请id |
data.candidateId | integer | 候选人id |
data.stageId | integer | 阶段id |
data.archivedAt | string | 申请归档时间 yyyy-MM-dd HH:mm:ss |
data.enteredAt | string | 进入阶段时间 yyyy-MM-dd HH:mm:ss |
获取符合条件的申请列表
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform//candidate/v1/application/list_by_pipeline' \
--header 'Content-Type: application/json' \
--data-raw '{
"pipelineId": 19,
"stageId": 56,
"jobId": "65280789-4e5a-45f0-8956-8148d4b4e55f",
"lockType": 2,
"customFieldParmList": [
{
"field": "526",
"fieldType": "number_info",
"from": "1",
"to": "6"
},
{
"field": "525",
"fieldType": "day_info",
"from": "2023-05-01",
"to": "2023-05-31"
},
{
"field": "524",
"fieldType": "date_info",
"from": "2023-05-01",
"to": "2023-05-17"
},
{
"field": "522",
"fieldType": "select_info",
"value": [
"1",
"2"
]
},
{
"field": "148",
"fieldType": "select_info",
"value": [
"是"
]
}
]
}'
返回样例
{
"code": 0,
"msg": "success",
"data":{
"hasMore":111,
"nextCursor":2323,
"stageId":3232,
"dataList":[
{
"candidateId":123,
"applicationList":[
{
"applicationId":123,
"jobId":"",
"jobTitle":"",
"lockType":0
}
]
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/v1/application/list_by_pipeline
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
pipelineId | 是 | long | 流程ID |
stageId | 否 | long | 阶段ID |
jobId | 否 | string | 职位ID |
lockType | 否 | integer | 锁类型,0-无锁;1-黄锁;2-灰锁 |
customFieldParmList | 否 | Object[] | 候选人自定义字段参数数组 |
customFieldParmList[].field | 是 | string | 自定义字段ID |
customFieldParmList[].value | 否 | string[] | 选中的自定义字段选项数组 |
customFieldParmList[].fieldType | 是 | string | 自定义字段类型。要与自定义字段ID对应的字段一致。仅支持 select_info:选择题 bool_info:是否题 date_info:时间选择(年/月) number_info: 数字 day_info:时间选择(年/月/日) |
customFieldParmList[].from | 否 | string | 范围查询时起始的值 |
customFieldParmList[].to | 否 | string | 范围查询时结束的值 |
nextCursor | 否 | string | 分页参数,第一页next不用填 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.hasMore | boolean | 下一页是否有返回值,枚举值:true和false |
data.nextCursor | string | 下一页分页标记 |
data.dataList | object[] | 查询到候选人及申请信息记录列表 |
data.dataList[].candidateId | long | 候选人ID |
data.dataList[].applicationList | object[] | 满足条件的候选人申请列表 |
data.dataList[].applicationList[].applicationId | long | 申请ID |
data.dataList[].applicationList[].jobId | string | 职位ID |
data.dataList[].applicationList[].jobTitle | string | 职位名称 |
data.dataList[].applicationList[].lockType | integer | 锁类型,0-无锁;1-黄锁;2-灰锁 |
恢复原状态
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/candidate/application/revert' \
--header 'Content-Type: application/json' \
--data-raw '{
"applicationId":411274410,
"operatorEmail":"lele@example.com"
}'
返回样例
{
"code": 0,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/application/revert
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 申请ID |
operatorEmail | 是 | string | 操作人邮箱 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object |
根据申请id批量获取候选人标签
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/candidate/getLabels' \
--header 'Content-Type: application/json' \
--data-raw '{
"applicationIds":[411274410,411274334]
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"labelInfoList": [
{
"applicationId": 411344001,
"candidateId": 201308769,
"labelInfoList": [
{
"id": 8,
"label": "空白经历",
"type": 1
},
{
"id": 1565,
"label": "手工标签",
"type": 2
}
]
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/getLabels
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | array[integer] | 候选人申请IDs,最大20 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.labelInfoList[].applicationId | integer | 申请id |
data.labelInfoList[].candidateId | integer | 候选人id |
data.labelInfoList[].labelInfoList[].id | integer | 标签id |
data.labelInfoList[].labelInfoList[].label | integer | 标签名称 |
data.labelInfoList[].labelInfoList[].type | integer | 标签类型 1智能标签 2 手工标签 |
查询简历筛选评价表
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/pipeline/assignment/get' \
--header 'Content-Type: application/json' \
--data-raw '{
"hireMode":1
}'
返回样例
{
"code": 0,
"msg": "success",
"data": [
{
"feedbackId": 1,
"feedbackResultList": [
{
"nameCn": "通过",
"nameEn": "Advance",
"resultId": 1,
"type": "accept"
},
{
"nameCn": "拒绝",
"nameEn": "Reject",
"resultId": 2,
"type": "reject"
},
{
"nameCn": "待定",
"nameEn": "Pending",
"resultId": 3,
"type": "decided"
}
],
"isDefault": true,
"nameCn": "默认筛选评价表",
"nameEn": "Default evaluation form",
"descCn":"desc",
"descEn":""
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/pipeline/assignment/get
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
hireMode | 是 | integer | 招聘模式 1 社招 2 校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object[] | |
data[].feedbackId | integer | 简历筛选评价表ID |
data[].nameCn | string | 评价表中文名称 |
data[].nameEn | string | 评价表英文名称(如有则返回) |
data[].descCn | string | 评价表中文描述(如有则返回) |
data[].descEn | string | 评价表英文描述(如有则返回) |
data[].isDefault | boolean | 默认筛选评价表标识 true:表示为默认筛选评价表 |
data[].feedbackResultList[] | object[] | 简历筛选评价选项 |
data[].feedbackResultList[].resultId | integer | 评价选项ID |
data[].feedbackResultList[].nameCn | string | 评价选项中文名称 |
data[].feedbackResultList[].nameEn | string | 评价选项英文名称 |
data[].feedbackResultList[].type | string | 评价选项类型 accept:正面评价 reject:负面评价 decided:中性评价 |
根据自定义字段id 更新选项值
请求样例
shell curl --location --request POST 'http://api.mokahr.com/api-platform/v2/candidate/customField/updateDetail' \ --header 'Authorization: ••••••' \ --header 'Content-Type: application/json' \ --data-raw '{ "type":2, "detailsList":[{ "id":410059485, "valueList":["88"], "codeList":["88"], "supplementaryLocaleList": {"en-US":["777"]} }] }'
返回样例
{
"code": 0,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/v2/candidate/customField/updateDetail
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
type | 是 | integer | 操作类型 1 新增 2 删除 |
detailsList | 是 | array | 需要操作的自定义字段选项值集合 目前只支持字段类型是选择题的字段做新增或者删除 |
detailsList[].id | 是 | integer | 自定义字段id |
detailsList[].codeList | 否 | array | 操作的自定义选项值对应的编码(如果是系统的自定义字段存在编码 是必填的) |
detailsList[].valueList | 是 | array | 操作的自定义选项值 |
detailsList[].supplementaryLocaleList | 否 | object | 自定义字段对应的多语言枚举值 格式如下 {"en-US":["1"]} |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object |
根据申请id,获取简历解析文本
请求样例
shell curl --location --request POST 'http://api.mokahr.com/api-platform/application/resumeContent/get' \ --header 'Authorization: ••••••' \ --header 'Content-Type: application/json' \ --data-raw '{ "applicationId":2 }'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"resumeKey": "7ce112hrrr-wrra5-4qf5-8qq4-1b633ww0768.pdf",
"resumeContent": "张三\n基本情况: 女 | 0岁 | 2015届毕业生 | 共青团员\n最高学历: 长沙理工大学 · 本科"
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/application/resumeContent/get
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 申请id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.resumeKey | string | 原始简历key |
data.resumeContent | string | 简历解析文本 |
写入候选人操作记录
请求样例
shell curl --location 'https://api.mokahr.com/api-platform/candidate/v1/create_activities' \ --header 'Authorization: ••••••' \ --header 'Content-Type: application/json' \ --data '{ "operatorId": 210000293, "applicationId": 411192145, "data": "中文内容", "supplementaryLocales": { "en-US": "english content" } }'
返回样例
{
"code": 0,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/candidate/v1/create_activities
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
operatorId | 否,操作人角色应该是HR及以上 | Long | 操作人ID |
applicationId | 否,但是和candidateId必须传一个,都有值默认走applicationId维度 | Long | 申请ID |
candidateId | 否 | Long | 候选人ID |
data | 是 | string | 中文内容 |
supplementaryLocales | 是 | object | 多语言的object 格式如下 {"en-US": "1"} |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:0正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object |
按申请Id单个获取候选人附件信息
请求样例
curl --location 'https://api.mokahr.com/api-platform/v3/attachments/get \
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"applicationId": 5567833
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"applicationId": 411342864,
"attachments4App": [],
"attachments4Ca": [],
"candidateId": 201307724,
"resumeUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/livingsimple/dd13ecdc-f835-43b4-9fc7-9ed191670bed.doc?Expires=1743267178&OSSAccessKeyId=LTAI5tKxT6DnN7A5m3fDkCMN&Signature=ED6JnRFJTIcw9%2F6HGRZGhfjEL1o%3D&response-content-disposition=attachmE6%2598%2586%25E4%25BB%259112123123%25E7%259A%2584%25E7%25AE%2580%25E5%258E%2586.doc",
"standardResumeUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/livingsimple/htmlToPdf-dealer-9f8bb1017c54450da1da5c780291f454.pdf?mlToPdf-dealer-9f8bb1017c54450da1da5c780291f454.pdf%22×tamp=1743151980240"
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v3/attachments/get
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 申请id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.candidateId | integer | 候选人Id |
data.applicationId | integer | 申请Id |
data.standardResumeUrl | string | 标准简历下载链接 |
data.resumeUrl | string | 原始简历下载链接 |
data.attachments4App[] | object[] | 申请附件列表 |
data.attachments4App[]. id | integer | 业务id |
data.attachments4App[]. name | integer | 候选人附件的文件名(带文件后缀) |
data.attachments4App[].applyFormId | integer | 登记表模板ID |
data.attachments4App[].size | integer | 候选人附件的文件大小 |
data.attachments4App[].createdAt | long | 附件上传或生成时间(时间戳格式) |
data.attachments4App[].url | string | 候选人附件的下载地址 |
data.attachments4App[].customFieldId | integer | 自定义附件字段ID |
data.attachments4App[].customFieldName | string | 自定义附件字段名称 |
data.attachments4App[].type | string | 候选人附件的类型: CANDIDATE_UPLOAD_ATTACHMENT: 候选人上传 UPLOAD_PORTRAIT: 候选人头像 HR_UPLOAD_ATTACHMENT: HR手动上传 HM_UPLOAD_ATTACHMENT: 用人经理端手动上传 INTERVIEW_ACCEPT: 候选人接受面试生成的登记表附件 INTERVIEW_SIGNIN: 候选人面试签到生成的登记表附件 OFFER_ACCEPT: 候选人接受OFFER生成的登记表附件 MERGE_APPLICATION_ATTACHMENT: 候选人合并产生的附件 INVITE_UPDATE_RESUME: 邀请候选人更新简历生成的登记表 ORIGINAL_RESUME: 原始简历附件 ID_CARD_FRONT: 身份证正面 ID_CARD_BACK: 身份证反面 |
data.attachments4Ca[] | object[] | 业务ID |
data.attachments4Ca[].id | integer | 业务ID |
data.attachments4Ca[].name | string | 候选人附件的文件名(带文件后缀) |
data.attachments4Ca[].applyFormId | integer | 登记表模板ID |
data.attachments4Ca[].size | integer | 候选人附件的文件大小 |
data.attachments4Ca[].createdAt | long | 附件上传或生成时间 |
data.attachments4Ca[].url | string | 候选人附件的下载地址 |
data.attachments4Ca[].customFieldId | integer | 自定义附件字段ID |
data.attachments4Ca[].customFieldName | string | 自定义附件字段名称 |
data.attachments4Ca[].type | string | 候选人附件的类型: CANDIDATE_UPLOAD_ATTACHMENT: 候选人上传 UPLOAD_PORTRAIT: 候选人头像 HR_UPLOAD_ATTACHMENT: HR手动上传 HM_UPLOAD_ATTACHMENT: 用人经理端手动上传 INTERVIEW_ACCEPT: 候选人接受面试生成的登记表附件 INTERVIEW_SIGNIN: 候选人面试签到生成的登记表附件 OFFER_ACCEPT: 候选人接受OFFER生成的登记表附件 MERGE_APPLICATION_ATTACHMENT: 候选人合并产生的附件 INVITE_UPDATE_RESUME: 邀请候选人更新简历生成的登记表 ORIGINAL_RESUME: 原始简历附件 ID_CARD_FRONT: 身份证正面 ID_CARD_BACK: 身份证反面 |
批量获取申请的ehr链接信息
请求样例
curl --location 'https://api.mokahr.com/api-platform/v3/ehrLinks/get \
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"applicationIds": [411348665]
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"ehrLinks": [
{
"applicationId": 411348665,
"ehrLink": "https://app.mokahr.com/forward/candidate/info?access_token=f788e21297cb43a0a3467c0261d051e5b9c84b0192994e118e27c1e33d6e0107"
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v3/ehrLinks/get
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | array[integer] | 申请id,最大长度20 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.ehrLinks[] | object[] | |
data.ehrLinks[].ehrLink | string | 候选人ehr链接 |
data.ehrLinks[].applicationId | integer | 候选人申请id |
根据邮箱、手机号、身份证号查询申请信息(最多返回一百条)
请求样例
curl --location 'https://api.mokahr.com/api-platform/v3/applications/list_by_contact_or_id \
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"emailList": ["123@qq.com"],
"phoneList": ["13211123113"],
"citizenIdList": ["338377211"]
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"applicationList": [
{
"applicationId": 411336681,
"appliedAt": 1709120057000,
"archiveReasons": {
"archiveReasonType": "SYSTEM",
"archivedAt": 1729962542000,
"id": 1226,
"name": "长时间未处理自动淘汰",
"type": 4
},
"archived": true,
"candidateBaseInfo": {
"activatedAt": 1722233308000,
"age": 0,
"archived": true,
"archivedAt": 1729962542000,
"birthDate": 1733025600000,
"candidateId": 201307334,
"citizen": {
"certificateType": 1,
"citizenId": null,
"idCardSignOrganization": "",
"idCardValidity": "[\"2025-03-05\",\"2025-03-21\"]"
},
"contactInfo": {
"countryCallingCode": "86",
"email": "123@mokahr.com",
"phone": "12345678909"
},
"createdAt": 1722412883000,
"experience": 4,
"gender": 2,
"graduateSchool": {
"academicDegree": 1,
"graduateDate": 1640995200000,
"lastSchool": "河北工业大学",
"lastSpeciality": "西方经济学"
},
"isBlacklist": false,
"name": "四大",
"nationality": ""
},
"createdAt": 1709120057000,
"hireMode": 2,
"job": {
"jobId": "23661249-be3f-47de-8d81-15fa4f894875",
"jobTitle": "职位名称"
},
"movedAt": 1729060403000,
"ownerInfo": {
"ownerId": null,
"ownerName": null
},
"pipeline": {
"name": "默认招聘流程",
"pipelineId": 37
},
"stage": {
"name": "面试",
"stageId": 58,
"stageType": 201
},
"updatedAt": 1743074331000
},
{
"applicationId": 411336911,
"appliedAt": 1709264021000,
"archiveReasons": {
"archiveReasonType": null,
"archivedAt": null,
"id": null,
"name": null,
"type": null
},
"archived": false,
"candidateBaseInfo": {
"activatedAt": 1722233308000,
"age": 0,
"archived": true,
"archivedAt": 1729962542000,
"birthDate": 1733025600000,
"candidateId": 201307334,
"citizen": {
"certificateType": 1,
"citizenId": null,
"idCardSignOrganization": "",
"idCardValidity": "[\"2025-03-05\",\"2025-03-21\"]"
},
"contactInfo": {
"countryCallingCode": "86",
"email": "123@mokahr.com",
"phone": "12345678909"
},
"createdAt": 1722412883000,
"experience": 4,
"gender": 2,
"graduateSchool": {
"academicDegree": 1,
"graduateDate": 1640995200000,
"lastSchool": "河北工业大学",
"lastSpeciality": "西方经济学"
},
"isBlacklist": false,
"name": "四大",
"nationality": ""
},
"createdAt": 1709264021000,
"hireMode": 2,
"job": {
"jobId": "7c8d36c9-3f63-4723-9c20-500a4ac83ea7",
"jobTitle": "职位测试1"
},
"movedAt": 1709264020000,
"ownerInfo": {
"ownerId": null,
"ownerName": null
},
"pipeline": {
"name": "测试",
"pipelineId": 200
},
"stage": {
"name": "初筛",
"stageId": 56,
"stageType": 100
},
"updatedAt": 1743074931000
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v3/applications/list_by_contact_or_id
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
emailList | 否 | array[string] | 候选人邮箱列表,最大长度20, 邮箱、手机号码、证件号码不允许全部为空 |
phoneList | 否 | array[string] | 候选人手机号列表,最大长度20, 邮箱、手机号码、证件号码不允许全部为空 |
citizenIdList | 否 | array[string] | 候选人证件号列表,最大长度20, 邮箱、手机号码、证件号码不允许全部为空 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.applicationList[] | object[] | 申请信息 |
data.applicationList[].applicationId | integer | 申请id |
data.applicationList[].candidateBaseInfo | object | 候选人基础信息 |
data.applicationList[].candidateBaseInfo.candidateId | integer | 候选人id |
data.applicationList[].candidateBaseInfo .name | string | 姓名 |
data.applicationList[].candidateBaseInfo.gender | integer | 性别 1 男 2 女 |
data.applicationList[].candidateBaseInfo.age | integer | 年龄 |
data.applicationList[].candidateBaseInfo.birthDate | long | 出生日期(时间戳格式) |
data.applicationList[].candidateBaseInfo.nationality | string | 国籍 |
data.applicationList[].candidateBaseInfo.experience | integer | 工作经验 |
data.applicationList[].candidateBaseInfo.createdAt | long | 创建时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.archived | boolean | 是否入库(有任一申请归档过) |
data.applicationList[].candidateBaseInfo.archivedAt | long | 归档日期(时间戳格式) |
data.applicationList[].candidateBaseInfo.activatedAt | long | 最后激活时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.isBlacklist | boolean | 是否在黑名单人才库 |
data.applicationList[].candidateBaseInfo.contactInfo | object | 联系方式 |
data.applicationList[].candidateBaseInfo.contactInfo.email | string | 邮箱 |
data.applicationList[].candidateBaseInfo.contactInfo.phone | string | 手机号 |
data.applicationList[].candidateBaseInfo.contactInfo.countryCallingCode | string | 国家呼叫代码 |
data.applicationList[].candidateBaseInfo.graduateSchool | object | 毕业院校信息 |
data.applicationList[].candidateBaseInfo.graduateSchool.lastSpeciality | string | 毕业专业 |
data.applicationList[].candidateBaseInfo.graduateSchool.lastSchool | string | 毕业学校 |
data.applicationList[].candidateBaseInfo.graduateSchool.graduateDate | long | 毕业时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.graduateSchool.academicDegree | integer | 学历/学位:1:其他, 2:初中及以下, 3:高中, 4:中专, 5:大专, 6:本科, 7:硕士, 8:MBA, 9:博士 |
data.applicationList[].candidateBaseInfo.citizen | object | 身份证信息 |
data.applicationList[].candidateBaseInfo.citizen.citizenId | string | 证件号码 |
data.applicationList[].candidateBaseInfo.citizen.certificateType | integer | 证件类型1:身份证,2:香港身份证,3:澳门身份证,4:台湾身份证,5:护照,6:其他证件 |
data.applicationList[].candidateBaseInfo.citizen.idCardSignOrganization | string | 签发机关 |
data.applicationList[].candidateBaseInfo.citizen.idCardValidity | string | 证件有效期 格式1:"[\"2025-03-05\",\"2025-03-21\"]" 格式2: "[\"2025-03-07\",\"长期\"]" |
data.applicationList[].job | object | 职位信息 |
data.applicationList[].job.jobId | string | 职位id |
data.applicationList[].job.jobTitle | string | 职位名称 |
data.applicationList[].pipeline | object | 流程信息 |
data.applicationList[].pipeline.pipelineId | integer | 流程Id |
data.applicationList[].pipeline. name | string | 流程名称 |
data.applicationList[].stage | object | 阶段信息 |
data.applicationList[].stage.stageId | integer | 阶段Id |
data.applicationList[].stage. name | string | 阶段名称 |
data.applicationList[].stage.stageType | integer | 阶段类型,100 初筛型、101 offer型、102 待入职、200 筛选型、201面试型、202 测试型、205 无类型、206试工类型 |
data.applicationList[].archived | boolean | 是否归档 |
data.applicationList[].archiveReasons | object | 归档原因信息 |
data.applicationList[].archiveReasons. id | integer | 归档原因Id |
data.applicationList[].archiveReasons.type | integer | 归档类型 1 被候选人拒绝 2 被我们拒绝 3 录用 4 系统原因 5 离职 |
data.applicationList[].archiveReasons.archiveReasonType | integer | 归档原因类型,REJECTED_BY_CANDIDATES:被候选人拒绝 REJECTED_BY_US:被我们拒绝 HIRED:录用 SYSTEM:系统原因 CHECKOUT:离职 |
data.applicationList[].archiveReasons. name | string | 归档原因名称 |
data.applicationList[].archiveReasons.archivedAt | long | 归档时间(时间戳格式) |
data.applicationList[].hireMode | integer | 招聘模式 1社招 2 校招 |
data.applicationList[].appliedAt | long | 申请时间(时间戳格式) |
data.applicationList[].createdAt | long | 创建阶段时间(时间戳格式) |
data.applicationList[].updatedAt | long | 更新时间(时间戳格式) |
data.applicationList[].movedAt | long | 移动阶段时间(时间戳格式) |
data.applicationList[].ownerInfo | object | 申请所有者 |
data.applicationList[].ownerInfo.ownerId | integer | 申请所有者Id |
data.applicationList[].ownerInfo.ownerName | string | 申请所有者名称 |
根据条件查询申请信息(分页)
请求样例
curl --location 'https://api.mokahr.com/api-platform/v3/applications/list_by_condition \
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"pipelineIds": [17,87],
"applicationCreateStartTime": 1722233308000,
"applicationCreateEndTime":1724911708000
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"applicationList": [
{
"applicationId": 411336681,
"appliedAt": 1709120057000,
"archiveReasons": {
"archiveReasonType": "SYSTEM",
"archivedAt": 1729962542000,
"id": 1226,
"name": "长时间未处理自动淘汰",
"type": 4
},
"archived": true,
"candidateBaseInfo": {
"activatedAt": 1722233308000,
"age": 0,
"archived": true,
"archivedAt": 1729962542000,
"birthDate": 1733025600000,
"candidateId": 201307334,
"citizen": {
"certificateType": 1,
"citizenId": null,
"idCardSignOrganization": "",
"idCardValidity": "[\"2025-03-05\",\"2025-03-21\"]"
},
"contactInfo": {
"countryCallingCode": "86",
"email": "123@mokahr.com",
"phone": "12345678909"
},
"createdAt": 1722412883000,
"experience": 4,
"gender": 2,
"graduateSchool": {
"academicDegree": 1,
"graduateDate": 1640995200000,
"lastSchool": "河北工业大学",
"lastSpeciality": "西方经济学"
},
"isBlacklist": false,
"name": "四大",
"nationality": ""
},
"createdAt": 1709120057000,
"hireMode": 2,
"job": {
"jobId": "23661249-be3f-47de-8d81-15fa4f894875",
"jobTitle": "职位名称"
},
"movedAt": 1729060403000,
"ownerInfo": {
"ownerId": null,
"ownerName": null
},
"pipeline": {
"name": "默认招聘流程",
"pipelineId": 37
},
"stage": {
"name": "面试",
"stageId": 58,
"stageType": 201
},
"updatedAt": 1743074331000
},
{
"applicationId": 411336911,
"appliedAt": 1709264021000,
"archiveReasons": {
"archiveReasonType": null,
"archivedAt": null,
"id": null,
"name": null,
"type": null
},
"archived": false,
"candidateBaseInfo": {
"activatedAt": 1722233308000,
"age": 0,
"archived": true,
"archivedAt": 1729962542000,
"birthDate": 1733025600000,
"candidateId": 201307334,
"citizen": {
"certificateType": 1,
"citizenId": null,
"idCardSignOrganization": "",
"idCardValidity": "[\"2025-03-05\",\"2025-03-21\"]"
},
"contactInfo": {
"countryCallingCode": "86",
"email": "123@mokahr.com",
"phone": "12345678909"
},
"createdAt": 1722412883000,
"experience": 4,
"gender": 2,
"graduateSchool": {
"academicDegree": 1,
"graduateDate": 1640995200000,
"lastSchool": "河北工业大学",
"lastSpeciality": "西方经济学"
},
"isBlacklist": false,
"name": "四大",
"nationality": ""
},
"createdAt": 1709264021000,
"hireMode": 2,
"job": {
"jobId": "7c8d36c9-3f63-4723-9c20-500a4ac83ea7",
"jobTitle": "职位测试1"
},
"movedAt": 1709264020000,
"ownerInfo": {
"ownerId": null,
"ownerName": null
},
"pipeline": {
"name": "测试",
"pipelineId": 200
},
"stage": {
"name": "初筛",
"stageId": 56,
"stageType": 100
},
"updatedAt": 1743074931000
}
],
"next":"eyJuZXh0SWQiOjQxMTM0NTA2MSwibmV4dFVwZGF0ZUF0Ijoi"
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v3/applications/list_by_condition
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 否 | array[integer] | 申请ids,最大长度20 |
candidateIds | 否 | array[integer] | 候选人ids,最大长度20 |
jobId | 否 | string | 职位id |
pipelineIds | 否 | array[integer] | 流程ids |
stageIds | 否 | array[integer] | 阶段ids |
hireMode | 否 | integer | 招聘模式.1/2(1社招,2校招,传其他视为没传) |
archived | 否 | boolean | 申请是否归档.true/false(true已归档,false未归档) |
invitationUpdateStatus | 否 | integer | 邀请更新状态,0:未邀请,1:未更新,2:已更新 |
updateAtStartTime | 否 | long | 更新开始时间(时间戳格式,最大时间范围3个月) |
updateAtEndTime | 否 | long | 更新结束时间(时间戳格式,最大时间范围3个月) |
applicationCreateStartTime | 否 | long | 数据创建开始时间(时间戳格式,指申请首次被保存至数据库的时间,最大时间范围3个月) |
applicationCreateEndTime | 否 | long | 数据创建结束时间(时间戳格式,指申请首次被保存至数据库的时间,最大时间范围3个月) |
applicationAppliedAtStartTime | 否 | long | 申请创建开始时间(时间戳格式,指系统展示的申请日期,最大时间范围3个月) |
applicationAppliedAtEndTime | 否 | long | 申请创建结束时间(时间戳格式,指系统展示的申请日期,最大时间范围3个月) |
limit | 否 | integer | 分页用的每页条数,默认20,最大20 |
next | 否 | string | 分页参数, 只传这一个就可以 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.next | string | 如果返回则下次请求带上则自动分页 |
data.applicationList[] | object[] | 申请信息 |
data.applicationList[].applicationId | integer | 申请id |
data.applicationList[].candidateBaseInfo | object | 候选人基础信息 |
data.applicationList[].candidateBaseInfo.candidateId | integer | 候选人id |
data.applicationList[].candidateBaseInfo .name | string | 姓名 |
data.applicationList[].candidateBaseInfo.gender | integer | 性别 1 男 2 女 |
data.applicationList[].candidateBaseInfo.age | integer | 年龄 |
data.applicationList[].candidateBaseInfo.birthDate | long | 出生日期(时间戳格式) |
data.applicationList[].candidateBaseInfo.nationality | string | 国籍 |
data.applicationList[].candidateBaseInfo.experience | integer | 工作经验 |
data.applicationList[].candidateBaseInfo.createdAt | long | 创建时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.archived | boolean | 是否入库(有任一申请归档过) |
data.applicationList[].candidateBaseInfo.archivedAt | long | 归档日期(时间戳格式) |
data.applicationList[].candidateBaseInfo.activatedAt | integer | 最后激活时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.isBlacklist | boolean | 是否在黑名单人才库 |
data.applicationList[].candidateBaseInfo.contactInfo | object | 联系方式 |
data.applicationList[].candidateBaseInfo.contactInfo.email | string | 邮箱 |
data.applicationList[].candidateBaseInfo.contactInfo.phone | string | 手机号 |
data.applicationList[].candidateBaseInfo.contactInfo.countryCallingCode | string | 国家呼叫代码 |
data.applicationList[].candidateBaseInfo.graduateSchool | object | 毕业院校信息 |
data.applicationList[].candidateBaseInfo.graduateSchool.lastSpeciality | string | 毕业专业 |
data.applicationList[].candidateBaseInfo.graduateSchool.lastSchool | string | 毕业学校 |
data.applicationList[].candidateBaseInfo.graduateSchool.graduateDate | integer | 毕业时间 |
data.applicationList[].candidateBaseInfo.graduateSchool.academicDegree | integer | 学历/学位:1:其他, 2:初中及以下, 3:高中, 4:中专, 5:大专, 6:本科, 7:硕士, 8:MBA, 9:博士 |
data.applicationList[].candidateBaseInfo.citizen | object | 身份证信息 |
data.applicationList[].candidateBaseInfo.citizen.citizenId | string | 证件号码 |
data.applicationList[].candidateBaseInfo.citizen.certificateType | integer | 证件类型1:身份证,2:香港身份证,3:澳门身份证,4:台湾身份证,5:护照,6:其他证件 |
data.applicationList[].candidateBaseInfo.citizen.idCardSignOrganization | string | 签发机关 |
data.applicationList[].candidateBaseInfo.citizen.idCardValidity | string | 证件有效期 格式:"[\"2025-03-05\",\"2025-03-21\"]" |
data.applicationList[].job | object | 职位信息 |
data.applicationList[].job.jobId | string | 职位id |
data.applicationList[].job.jobTitle | string | 职位名称 |
data.applicationList[].pipeline | object | 流程信息 |
data.applicationList[].pipeline.pipelineId | integer | 流程Id |
data.applicationList[].pipeline. name | string | 流程名称 |
data.applicationList[].stage | object | 阶段信息 |
data.applicationList[].stage.stageId | integer | 阶段Id |
data.applicationList[].stage. name | string | 阶段名称 |
data.applicationList[].stage.stageType | integer | 阶段类型,100 初筛型、101 offer型、102 待入职、200 筛选型、201面试型、202 测试型、205 无类型、206试工类型 |
data.applicationList[].archived | boolean | 是否归档 |
data.applicationList[].archiveReasons | object | 归档原因信息 |
data.applicationList[].archiveReasons. id | integer | 归档原因Id |
data.applicationList[].archiveReasons.type | integer | 归档类型 1 被候选人拒绝 2 被我们拒绝 3 录用 4 系统原因 5 离职 |
data.applicationList[].archiveReasons.archiveReasonType | integer | 归档原因类型,REJECTED_BY_CANDIDATES:被候选人拒绝 REJECTED_BY_US:被我们拒绝 HIRED:录用 SYSTEM:系统原因 CHECKOUT:离职 |
data.applicationList[].archiveReasons. name | string | 归档原因名称 |
data.applicationList[].archiveReasons.archivedAt | long | 归档时间(时间戳格式) |
data.applicationList[].hireMode | integer | 招聘模式 1社招 2 校招 |
data.applicationList[].appliedAt | long | 申请时间(时间戳格式) |
data.applicationList[].createdAt | long | 创建阶段时间(时间戳格式) |
data.applicationList[].updatedAt | long | 更新时间(时间戳格式) |
data.applicationList[].movedAt | long | 移动阶段时间(时间戳格式) |
data.applicationList[].ownerInfo | object | 申请所有者 |
data.applicationList[].ownerInfo.ownerId | integer | 申请所有者Id |
data.applicationList[].ownerInfo.ownerName | string | 申请所有者名称 |
根据申请Id批量获取候选人信息
请求样例
curl --location 'https://api.mokahr.com/api-platform/v3/data/getApplictaions\
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"applicationIds": [411348665]
}'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"applicationList": [
{
"aimWorkCity": null,
"applicationId": 411348665,
"appliedAt": 1744702215000,
"archiveReasons": {
"archiveReasonType": null,
"archivedAt": null,
"id": null,
"name": null,
"type": null
},
"archived": false,
"candidateBaseInfo": {
"activatedAt": null,
"age": 23,
"archived": true,
"archivedAt": 1740043077000,
"birthDate": 1004673600000,
"candidateId": 201308793,
"citizen": {
"certificateType": 1,
"citizenId": "513426200111024713",
"idCardSignOrganization": "",
"idCardValidity": ""
},
"contactInfo": {
"countryCallingCode": "86",
"email": "2911890697@qq.com",
"phone": "18228735128"
},
"createdAt": 1731651173000,
"experience": 1,
"gender": 1,
"graduateSchool": {
"academicDegree": 1,
"graduateDate": null,
"lastSchool": "清华大学",
"lastSpeciality": null
},
"isBlacklist": false,
"name": "乔峰",
"nationality": null
},
"candidateInfo": {
"additionalInfo": {
"personalInterests": null,
"personalUrl": null,
"skill": null
},
"awardInfo": [],
"birthYear": 2001,
"candidateId": 201308793,
"customFieldList": [
{
"builtinInfoId": null,
"candidateId": 201308793,
"customFieldId": 225230,
"index": 0,
"name": "自定义字段单选",
"now": null,
"section": "jobIntention",
"value": 110102
}
],
"educationInfo": [
{
"academicDegree": 1,
"endTime": null,
"id": 202305356,
"now": false,
"school": "清华大学",
"speciality": null,
"startTime": null
}
],
"ethnic": 58,
"experienceInfo": [],
"intentionInfo": {
"aimSalary": null,
"forwardIndustry": null,
"forwardLocation": "发"
},
"interestSource": [
{
"id": null,
"level": 1,
"name": "校招门户"
},
{
"id": 410239017,
"level": 2,
"name": "9999"
},
{
"id": 0,
"level": 3,
"name": "自然流量"
}
],
"languageInfo": [],
"nativePlace": null,
"political": null,
"portrait": null,
"portraitUrl": null,
"practiceInfo": [],
"projectInfo": [],
"salary": null,
"switchStatus": null
},
"checkinInfo": {
"correctedAt": null,
"headcountId": null,
"probation": null
},
"createdAt": 1744702215000,
"hireMode": 2,
"invitationUpdateStatus": 0,
"job": {
"jobId": "8ec55ea0-e437-4875-92b2-1fffaef946a8",
"jobTitle": "校招"
},
"lockInfo": {
"lockId": null,
"lockType": null,
"lockedAt": null
},
"movedAt": 1744702214000,
"ownerInfo": {
"ownerId": null,
"ownerName": null
},
"pipeline": {
"name": "默认招聘流程",
"pipelineId": 37
},
"sourceInfo": {
"category": "校招门户",
"recommendReason": null,
"recommenderId": null,
"sourceId": 410239017,
"sourceName": "9999",
"sourceType": 2
},
"stage": {
"name": "初筛",
"stageId": 56,
"stageType": 100
},
"updatedAt": 1744709040000
}
]
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v3/data/getApplictaions
请求参数(JSON格式)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | array[integer] | 申请id,最大长度20 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false或者对应的错误信息 |
data | object | |
data.applicationList[] | object[] | 申请信息 |
data.applicationList[].applicationId | integer | 申请id |
data.applicationList[].aimWorkCity | string | 意向工作城市 |
data.applicationList[].invitationUpdateStatus | integer | 邀请更新简历状态:0:未邀请,1:未更新,2:已更新 |
data.applicationList[].candidateBaseInfo | object | 候选人基础信息 |
data.applicationList[].candidateBaseInfo.candidateId | integer | 候选人id |
data.applicationList[].candidateBaseInfo .name | string | 姓名 |
data.applicationList[].candidateBaseInfo.gender | integer | 性别 1 男 2 女 |
data.applicationList[].candidateBaseInfo.age | integer | 年龄 |
data.applicationList[].candidateBaseInfo.birthDate | long | 出生日期(时间戳格式) |
data.applicationList[].candidateBaseInfo.nationality | string | 国籍 |
data.applicationList[].candidateBaseInfo.experience | integer | 工作经验 |
data.applicationList[].candidateBaseInfo.createdAt | long | 创建时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.archived | boolean | 是否入库(有任一申请归档过) |
data.applicationList[].candidateBaseInfo.archivedAt | long | 归档日期(时间戳格式) |
data.applicationList[].candidateBaseInfo.activatedAt | integer | 最后激活时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.isBlacklist | boolean | 是否在黑名单人才库 |
data.applicationList[].candidateBaseInfo.contactInfo | object | 联系方式 |
data.applicationList[].candidateBaseInfo.contactInfo.email | string | 邮箱 |
data.applicationList[].candidateBaseInfo.contactInfo.phone | string | 手机号 |
data.applicationList[].candidateBaseInfo.contactInfo.countryCallingCode | string | 国家呼叫代码 |
data.applicationList[].candidateBaseInfo.graduateSchool | object | 毕业院校信息 |
data.applicationList[].candidateBaseInfo.graduateSchool.lastSpeciality | string | 毕业专业 |
data.applicationList[].candidateBaseInfo.graduateSchool.lastSchool | string | 毕业学校 |
data.applicationList[].candidateBaseInfo.graduateSchool.graduateDate | long | 毕业时间(时间戳格式) |
data.applicationList[].candidateBaseInfo.graduateSchool.academicDegree | integer | 学历/学位:1:其他, 2:初中及以下, 3:高中, 4:中专, 5:大专, 6:本科, 7:硕士, 8:MBA, 9:博士 |
data.applicationList[].candidateBaseInfo.citizen | object | 身份证信息 |
data.applicationList[].candidateBaseInfo.citizen.citizenId | string | 证件号码 |
data.applicationList[].candidateBaseInfo.citizen.certificateType | integer | 证件类型1:身份证,2:香港身份证,3:澳门身份证,4:台湾身份证,5:护照,6:其他证件 |
data.applicationList[].candidateBaseInfo.citizen.idCardSignOrganization | string | 签发机关 |
data.applicationList[].candidateBaseInfo.citizen.idCardValidity | string | 证件有效期 格式:"[\"2025-03-05\",\"2025-03-21\"]" |
data.applicationList[].job | object | 职位信息 |
data.applicationList[].job.jobId | string | 职位id |
data.applicationList[].job.jobTitle | string | 职位名称 |
data.applicationList[].pipeline | object | 流程信息 |
data.applicationList[].pipeline.pipelineId | integer | 流程Id |
data.applicationList[].pipeline. name | string | 流程名称 |
data.applicationList[].stage | object | 阶段信息 |
data.applicationList[].stage.stageId | integer | 阶段Id |
data.applicationList[].stage. name | string | 阶段名称 |
data.applicationList[].stage.stageType | integer | 阶段类型,100 初筛型、101 offer型、102 待入职、200 筛选型、201面试型、202 测试型、205 无类型、206试工类型 |
data.applicationList[].archived | boolean | 是否归档 |
data.applicationList[].archiveReasons | object | 归档原因信息 |
data.applicationList[].archiveReasons. id | integer | 归档原因Id |
data.applicationList[].archiveReasons.type | integer | 归档类型 1 被候选人拒绝 2 被我们拒绝 3 录用 4 系统原因 5 离职 |
data.applicationList[].archiveReasons.archiveReasonType | integer | 归档原因类型,REJECTED_BY_CANDIDATES:被候选人拒绝 REJECTED_BY_US:被我们拒绝 HIRED:录用 SYSTEM:系统原因 CHECKOUT:离职 |
data.applicationList[].archiveReasons. name | string | 归档原因名称 |
data.applicationList[].archiveReasons.archivedAt | long | 归档时间(时间戳格式) |
data.applicationList[].hireMode | integer | 招聘模式 1社招 2 校招 |
data.applicationList[].appliedAt | long | 申请时间(时间戳格式) |
data.applicationList[].createdAt | long | 创建时间(时间戳格式) |
data.applicationList[].updatedAt | long | 更新时间(时间戳格式) |
data.applicationList[].movedAt | long | 移动阶段时间(时间戳格式) |
data.applicationList[].ownerInfo | object | 申请所有者 |
data.applicationList[].ownerInfo.ownerId | integer | 申请所有者Id |
data.applicationList[].ownerInfo.ownerName | string | 申请所有者名称 |
data.applicationList[].candidateInfo | object | 候选人详细信息 |
data.applicationList[].candidateInfo.candidateId | integer | 候选人Id |
data.applicationList[].candidateInfo.portrait | string | 头像(照片)key |
data.applicationList[].candidateInfo.portraitUrl | string | 头像(照片)下载地址,有过期时间,默认一天 |
data.applicationList[].candidateInfo.political | integer | 政治面貌 1 中共党员 2 中共预备党员 3 共青团员 4 民革党员 5 民盟盟员 6 民建会员 7 民进会员 8 农工党党员 9 致公党党员 10 九三学社社员 11 台盟盟员 12 无党派人士 13 群众 |
data.applicationList[].candidateInfo.birthYear | integer | 出生年份 |
data.applicationList[].candidateInfo.ethnic | integer | 民族 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:达斡尔族,57:布依族,58:未知 |
data.applicationList[].candidateInfo.nativePlace | integer | 候选人籍贯 格式为国家行政编码 行政区划代码 6位码 |
data.applicationList[].candidateInfo.salary | string | 薪资 |
data.applicationList[].candidateInfo.switchStatus | integer | 在职状态 1 在职 2离职 |
data.applicationList[].candidateInfo.additionalInfo | object | 候选人附加信息 |
data.applicationList[].candidateInfo.skill | string | 技能 |
data.applicationList[].candidateInfo.personalInterests | string | 兴趣爱好 |
data.applicationList[].candidateInfo.personalUrl | string | 个人链接 |
data.applicationList[].candidateInfo.educationInfo[] | object[] | 候选人教育经历 |
data.applicationList[].candidateInfo.educationInfo[]. id | integer | 教育经历id |
data.applicationList[].candidateInfo.educationInfo[].school | string | 学校 |
data.applicationList[].candidateInfo.educationInfo[].speciality | string | 专业 |
data.applicationList[].candidateInfo.educationInfo[].academicDegree | integer | 学历 1 其他 2 初中及以下 3 高中 4 中专 5 大专 6 本科 7 硕士 8 MBA 9 博士 |
data.applicationList[].candidateInfo.educationInfo[].startTime | long | 开始时间(时间戳格式) |
data.applicationList[].candidateInfo.educationInfo[].endTime | long | 结束时间(时间戳格式) |
data.applicationList[].candidateInfo.educationInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endTime的值将可能为任意值,直接忽略endTime即可 |
data.applicationList[].candidateInfo.experienceInfo[] | object[] | 候选人工作经历 |
data.applicationList[].candidateInfo.experienceInfo[]. id | integer | 工作经历id |
data.applicationList[].candidateInfo.experienceInfo[].company | string | 公司 |
data.applicationList[].candidateInfo.experienceInfo[].title | string | 任职职位名称 |
data.applicationList[].candidateInfo.experienceInfo[].summary | string | 工作职责 |
data.applicationList[].candidateInfo.experienceInfo[].location | string | 工作地点 |
data.applicationList[].candidateInfo.experienceInfo[].industry | string | 所在行业 |
data.applicationList[].candidateInfo.experienceInfo[].leader | string | 汇报对象 |
data.applicationList[].candidateInfo.experienceInfo[].size | string | 公司规模 |
data.applicationList[].candidateInfo.experienceInfo[].type | string | 公司性质 |
data.applicationList[].candidateInfo.experienceInfo[].department | string | 所在部门 |
data.applicationList[].candidateInfo.experienceInfo[].reasonForLeaving | string | 离职原因 |
data.applicationList[].candidateInfo.experienceInfo[].salary | string | 薪资 |
data.applicationList[].candidateInfo.experienceInfo[].underlingNumber | string | 下属人数 |
data.applicationList[].candidateInfo.experienceInfo[].startTime | long | 开始时间(时间戳格式) |
data.applicationList[].candidateInfo.experienceInfo[].endTime | long | 结束时间(时间戳格式) |
data.applicationList[].candidateInfo.experienceInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endTime的值将可能为任意值,直接忽略endTime即可 |
data.applicationList[].candidateInfo.awardInfo[] | object[] | 候选人获奖信息 |
data.applicationList[].candidateInfo.awardInfo[]. id | integer | 获奖经历id |
data.applicationList[].candidateInfo.awardInfo[]. awardDate | string | 获奖时间 |
data.applicationList[].candidateInfo.awardInfo[]. awardName | string | 奖项名称 |
data.applicationList[].candidateInfo.customFieldList[] | object[] | 候选人扩展信息 |
data.applicationList[].candidateInfo.customFieldList[].customFieldId | integer | 自定义字段id |
data.applicationList[].candidateInfo.customFieldList[].candidateId | integer | 候选人id |
data.applicationList[].candidateInfo.customFieldList[]. name | string | 自定义字段名称 |
data.applicationList[].candidateInfo.customFieldList[].value | object | 自定义字段值,这个根据字段类型返回不同类型的值 |
data.applicationList[].candidateInfo.customFieldList[].section | string | 字段归属模块,声明是以下哪个父级下的自定义字段: basicInfo 个人信息 jobIntention 求职意向 experienceInfo 工作经历 educationInfo 教育背景 practiceInfo 实习经历projectInfo 项目经验 languageInfo 语言能力 selfDescription 自我描述 awardInfo 获奖经历 |
data.applicationList[].candidateInfo.customFieldList[].now | boolean | 当自定义字段是时间段时存在该字段,标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endTime的值将可能为任意值,直接忽略endTime即可 |
data.applicationList[].candidateInfo.customFieldList[].index | integer | 索引,对于experienceInfo、educationInfo或者自定义模块(如紧急联系人)等存在多条数据的模块,index表示这个字段是第几条数据的自定义字段信息 |
data.applicationList[].candidateInfo.customFieldList[].builtinInfoId | integer | 定位自定义信息与所属模块,如某自定义信息对应具体哪段工作经历或哪段教育经历 |
data.applicationList[].candidateInfo.projectInfo[] | object[] | 候选人项目经历 |
data.applicationList[].candidateInfo.projectInfo[]. id | integer | 项目经历id |
data.applicationList[].candidateInfo.projectInfo[].candidateId | integer | 候选人id |
data.applicationList[].candidateInfo.projectInfo[].projectName | string | 项目名字 |
data.applicationList[].candidateInfo.projectInfo[].projectDescription | string | 项目描述 |
data.applicationList[].candidateInfo.projectInfo[].title | string | 担任职务 |
data.applicationList[].candidateInfo.projectInfo[].responsibilities | string | 项目中职责 |
data.applicationList[].candidateInfo.projectInfo[].startTime | long | 开始时间(时间戳格式) |
data.applicationList[].candidateInfo.projectInfo[].endTime | long | 结束时间(时间戳格式) |
data.applicationList[].candidateInfo.projectInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endTime的值将可能为任意值,直接忽略endTime即可 |
data.applicationList[].candidateInfo.languageInfo | object[] | 候选人语言信息 |
data.applicationList[].candidateInfo.languageInfo[]. id | integer | 语言信息id |
data.applicationList[].candidateInfo.languageInfo[].language | string | 语言类型 |
data.applicationList[].candidateInfo.languageInfo[].level | string | 掌握程度 |
data.applicationList[].candidateInfo.languageInfo[].listenAndSpeak | string | 听说能力 |
data.applicationList[].candidateInfo.languageInfo[].readAndWrite | string | 读写能力 |
data.applicationList[].candidateInfo.practiceInfo[] | object[] | 候选人实习经历 |
data.applicationList[].candidateInfo.practiceInfo[].id | integer | 项目经历id |
data.applicationList[].candidateInfo.practiceInfo[].candidateId | integer | 候选人id |
data.applicationList[].candidateInfo.practiceInfo[].company | string | 公司名称 |
data.applicationList[].candidateInfo.practiceInfo[].title | string | 职位名称 |
data.applicationList[].candidateInfo.practiceInfo[].summary | string | 工作职责 |
data.applicationList[].candidateInfo.practiceInfo[].location | string | 职位地点 |
data.applicationList[].candidateInfo.practiceInfo[].industry | string | 所在行业 |
data.applicationList[].candidateInfo.practiceInfo[].leader | string | 汇报对象 |
data.applicationList[].candidateInfo.practiceInfo[].size | string | 公司规模 |
data.applicationList[].candidateInfo.practiceInfo[].type | string | 公司性质 |
data.applicationList[].candidateInfo.practiceInfo[].department | string | 所在部门 |
data.applicationList[].candidateInfo.practiceInfo[].salary | string | 薪资 |
data.applicationList[].candidateInfo.practiceInfo[].startTime | long | 开始时间(时间戳格式) |
data.applicationList[].candidateInfo.practiceInfo[].endTime | long | 结束时间(时间戳格式) |
data.applicationList[].candidateInfo.practiceInfo[].now | boolean | 标识结束时间是否为“至今”。当结束时间为至今时,now=true,此时endTime的值将可能为任意值,直接忽略endTime即可 |
data.applicationList[].candidateInfo.interestSource[] | object[] | 候选人利益渠道信息 |
data.applicationList[].candidateInfo.interestSource[].id | integer | 利益渠道id |
data.applicationList[].candidateInfo.interestSource[].name | string | 名称 |
data.applicationList[].candidateInfo.interestSource[].level | integer | 等级 |
data.applicationList[].candidateInfo.intentionInfo | object | 候选人意向信息 |
data.applicationList[].candidateInfo.intentionInfo.forwardIndustry | string | 期望行业 |
data.applicationList[].candidateInfo.intentionInfo.aimSalary | string | 期望薪资 |
data.applicationList[].candidateInfo.intentionInfo.forwardLocation | string | 期望城市 |
data.applicationList[].checkinInfo | object | 入职信息 |
data.applicationList[].checkinInfo.probation | integer | 试用期 单位 月 |
data.applicationList[].checkinInfo.correctedAt | long | 转正时间(时间戳格式) |
data.applicationList[].checkinInfo.headcountId | integer | 招聘需求Id |
data.applicationList[].lockInfo | object | 锁定信息 |
data.applicationList[].lockType | integer | 锁定类型 1:全流程黄锁 2:全流程灰锁 3:项目制黄锁 4:项目制灰锁 5:集团黄锁 6:集团灰锁 7:阶段黄锁 8:阶段灰锁 |
data.applicationList[].lockedAt | long | 锁定时间(时间戳格式) |
data.applicationList[].lockId | integer | 锁定id |
data.applicationList[].sourceInfo | object | 渠道信息 |
data.applicationList[].sourceInfo.sourceId | integer | 来源Id |
data.applicationList[].sourceInfo.sourceName | string | 来源名称 |
data.applicationList[].sourceInfo.sourceType | integer | 简历来源:1 主动搜索, 2 主动投递, 3 内部推荐,4 猎头推荐 |
data.applicationList[].sourceInfo.recommenderId | integer | 推荐人Id,用于内部推荐和猎头推荐 |
data.applicationList[].sourceInfo.recommendReason | string | 推荐理由,用于内部推荐和猎头推荐 |
data.applicationList[].sourceInfo.category | string | 渠道分类信息 |
人才库API
查询人才库列表
返回值为该客户下设置的人才库列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/talentPool/list?hireMode=1 \
-u 'your_api_key:' \
-X GET \
[
{
"id": 115,
"name": "系统入职人才库",
"description": "保存已入职的员工,仅对授权用户、管理员及以上权限用户可见",
"hire_mode": 1,
"isPrivate": 0
},
{
"id": 116,
"name": "系统公共人才库",
"description": "所有HR权限及以上用户可见,用户可浏览公共人才库中所有候选人",
"hire_mode": 1,
"isPrivate": 0
},
{
"id": 117,
"name": "系统黑名单",
"description": "",
"hire_mode": 1,
"isPrivate": 0
}
]
传range参数视为新版本,返回样例
{
"success": true,
"msg": "success",
"data": [{
"id": 21,
"name": "系统入职人才库",
"description": "所有HR权限及以上用户可见,用户可浏览其相关职位下的已入职候选人",
"hireMode": 1,
"isPrivate": 0,
"creatorId": null,
"authUsers": []
},
{
"id": 22,
"name": "系统公共人才库",
"description": "所有HR权限及以上用户可见,用户可浏览公共人才库中所有候选人",
"hireMode": 1,
"isPrivate": 0,
"creatorId": null,
"authUsers": []
},
{
"id": 36,
"name": "测试111",
"description": "",
"hireMode": 1,
"isPrivate": 1,
"creatorId": 1,
"authUsers": [{
"userId": 1,
"name": "haha",
"email": "haha@trymoka.com",
"phone": "18812345678",
"number": null
},
{
"userId": 16,
"name": "small hr ceshi",
"email": "why_pm@163.com",
"phone": null,
"number": null
}
]
},
{
"id": 203,
"name": "系统黑名单",
"description": null,
"hireMode": 1,
"isPrivate": 0,
"creatorId": null,
"authUsers": []
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/talentPool/list?hireMode=1
请求参数
字段 | 必填 | 描述 |
---|---|---|
hireMode | 否 | 可选值:1 :社招 2 : 校招模式 不传默认所有模式 |
range | 否 | open/all 人才库返回数据的范围(不传或者传open默认返回除入职库和黑名单库之外的公共人才库) |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 人才库id |
name | string | 人才库名称 |
description | string | 描述 |
hire_mode | integer | 可选值:1 :社招模式2 :校招模式 |
isPrivate | integer | 可选值:0: 私有库1 :公共库 |
creatorId | integer | 创建者ID |
authUsers | Array | 有权限的用户 |
authUsers[].userId | integer | 有权限的用户ID |
authUsers[].name | string | 有权限的用户姓名 |
authUsers[].email | string | 有权限的用户邮箱 |
authUsers[].phone | string | 有权限的用户电话 |
authUsers[].number | string | 有权限的用户工号 |
查询人才库下候选人
返回值为该客户下人才库里候选人相关信息 分页返回一页20条数据
请求样例
$ curl https://api.mokahr.com/api-platform/v1/talentPool/candidates?archivedAtStart=2019-06-01&archivedAtEnd=2019-11-01&talentPoolIds=[666,888] \
-u 'your_api_key:' \
-X GET \
返回样例
{
"success": true,
"data": {
"candidates": [{
"id": 4293,
"name": "姜浩",
"email": "82355110791@qq.com",
"phone": "18762604190",
"gender": "男",
"birthYear": null,
"ethnic": null,
"nationality": null,
"nativePlace": null,
"highestDegree": null,
"certificateType": 1,
"citizenId": null,
"location": null,
"candidateArchivedAt": "2019-10-30T07:28:26.000Z",
"archiveHistory": [{
"id": 39131,
"stageId": 56,
"stage": "初筛",
"archivedAt": "2019-10-30T07:28:26.000Z",
"archiveReasonId": 1113,
"archiveReason": "加入黑名单",
"archiveType": "系统原因",
"archiveDetail": null,
"blacklistTags": "态度恶劣,简历造假",
"blacklistDetail": "789"
}],
"talentPools": [{
"talentPoolId": 203,
"talentPoolName": "系统黑名单"
}]
}, {
"id": 21906,
"name": "fanhaha",
"email": "fanhaha@mokahr.com",
"phone": null,
"gender": null,
"birthYear": null,
"ethnic": null,
"nationality": null,
"nativePlace": null,
"highestDegree": null,
"certificateType": 1,
"candidateArchivedAt": "2019-10-17T05:26:57.000Z",
"archiveHistory": [{
"id": 39162,
"stageId": 56,
"stage": "初筛",
"archivedAt": "2019-10-17T05:26:57.000Z",
"archiveReasonId": 7,
"archiveReason": "胜任力不足",
"archiveType": "我们拒绝了候选人",
"archiveDetail": null
}],
"talentPools": [{
"talentPoolId": 22,
"talentPoolName": "系统公共人才库"
}]
},
{
"id": 8805,
"name": "邓婷婷",
"email": "18857886047@163.com",
"phone": "18857886047",
"gender": "女",
"birthYear": 1990,
"ethnic": null,
"nationality": null,
"nativePlace": null,
"highestDegree": null,
"certificateType": 1,
"candidateArchivedAt": "2019-10-17T05:26:57.000Z",
"archiveHistory": [{
"id": 15793,
"stageId": 56,
"stage": "初筛",
"archivedAt": "2017-08-18T07:51:24.000Z",
"archiveReasonId": 96,
"archiveReason": "淘汰",
"archiveType": "我们拒绝了候选人",
"archiveDetail": null
},
{
"id": 39132,
"stageId": 56,
"stage": "初筛",
"archivedAt": "2019-10-17T05:26:57.000Z",
"archiveReasonId": 7,
"archiveReason": "胜任力不足",
"archiveType": "我们拒绝了候选人",
"archiveDetail": null
}
],
"talentPools": [{
"talentPoolId": 37,
"talentPoolName": "中级产品类"
},
{
"talentPoolId": 22,
"talentPoolName": "系统公共人才库"
}
]
}
],
"nextCursor": "eyJjYW5kaWRhdGVJZCI6MTQzMzR9"
}
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/talentPool/candidates?archivedAtStart=2019-06-01&archivedAtEnd=2019-11-01
请求参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
archivedAtStart | 是 | string | 归档时间下限 |
archivedAtEnd | 是 | string | 归档时间上限 |
talentPoolIds | 否 | Array | 人才库ID列表 |
nextCursor | 否 | string | 下一页(每页20条)分页标记 |
返回
返回data的candidates字段信息如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 候选人ID |
name | string | 姓名 |
string | 邮箱 | |
phone | string | 电话 |
gender | string | 性别 |
birthYear | string | 出生年份 |
ethnic | string | 民族 |
nationality | string | 国籍 |
nativePlace | string | 籍贯 |
highestDegree | string | 最高学历 |
certificateType | integer | 证件类型 可选值: 1 :身份证2 :香港身份证3 :澳门身份证4 :台湾身份证5 :护照6 :其他证件 7 :港澳居民来往内地通行证8 :台湾居民来往内地通行证9 :外国人工作许可证10 :外国人居留许可证 |
citizenId | string | 身份证号 |
location | string | 所在地 |
candidateArchivedAt | string | 候选人最后被归档的时间 |
archiveHistory | Array | 申请归档记录 |
archiveHistory[].id | integer | 申请ID |
archiveHistory[].stageId | integer | 申请归档前阶段ID |
archiveHistory[].stage | string | 申请归档前阶段名 |
archiveHistory[].archivedAt | string | 申请归档时间 |
archiveHistory[].archiveReasonId | integer | 归档原因ID |
archiveHistory[].archiveReason | string | 归档原因 |
archiveHistory[].archiveType | string | 归档类型 |
archiveHistory[].archiveDetail | string | 归档详情 |
archiveHistory[].blacklistTags | string | 黑名单标签(只有黑名单库有) |
archiveHistory[].blacklistDetail | string | 黑名单原因(只有黑名单库有) |
talentPools | Array | 当前候选人所在的人才库列表 |
talentPools[].talentPoolId | integer | 人才库ID |
talentPools[].talentPoolName | string | 人才库名字 |
查询用户拒绝类型的归档原因列表
返回值为该客户下设置的所有拒绝原因,含系统默认和自定义
请求样例
$ curl https://api.mokahr.com/api-platform/v1/archiveReasons \
-u 'your_api_key:' \
-X GET \
返回样例
{
"success": true,
"data": [
{
"id": 419,
"name": "福利待遇不满足",
"type": 1
},
{
"id": 420,
"name": "工作地点较远",
"type": 1
},
{
"id": 421,
"name": "有更好的机会",
"type": 1
},
{
"id": 422,
"name": "对公司业务不感兴趣",
"type": 1
},
{
"id": 423,
"name": "其他",
"type": 1
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/archiveReasons
请求参数
无
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 归档原因id |
name | string | 归档原因 |
type | integer | 归档原因类型 可选值: 1 :被候选人拒绝2 :被我们拒绝 |
移动/复制候选人到指定的人才库
移动/复制候选人到指定的人才库
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/reserveOtherTalentPool' \
--header 'Authorization: Basic ZndyMDAzOg==' \
--header 'Content-Type: application/json' \
--data-raw '{
"candidateIds": [
201214451
],
"hireMode": 2,
"fromTalentPoolId": 200003160,
"toTalentPoolIds": [
200003270
],
"archiveMode": "cut",
"operatorEmail": "liutao1@mokahr.com"
}'
返回样例
{
"code": 0,
"msg": "成功"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/reserveOtherTalentPool
请求参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
archiveMode | 是 | string | 储备到其他人才库的方式 cut/copy |
candidateIds | 是 | array[integer] | 候选人ids |
toTalentPoolIds | 是 | array[integer] | 人才库id |
fromTalentPoolId | 是 | integer | 当前人才库id |
hireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
operatorEmail | 是 | string | 操作人邮箱 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 0 :设置成功1 :失败 |
msg | string | 成功 |
归档申请:是否发拒信功能
归档申请:是否发拒信功能
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/archiveApplicationToTalentPool' \
--header 'Authorization: Basic ZndyMDAzOg==' \
--header 'Content-Type: application/json' \
--data-raw '{
"reasonId": 2455,
"detail": "不满足",
"applicationIds": [
411250317
],
"talentPoolIds": [
200003160
],
"hireMode": 2,
"operatorEmail": "fwr003@163.com"
}'
返回样例
{
"code": 0,
"msg": "成功"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/archiveApplicationToTalentPool
请求参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | array[integer] | 申请ids |
businessUnitId | 否 | number | bu的id |
detail | 否 | string | 归档原因 |
hireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
needRefuse | 否 | boolean | true则会检查该org的设置来发送拒信 |
operatorEmail | 是 | string | 操作人邮箱 |
reasonId | 否 | integer | 归档原因ID |
talentPoolIds | 是 | array[integer] | 目标人才库ids |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 0 :设置成功1 :失败 |
msg | string | 成功 |
人才库数据导入
HTTP请求
POST https://api.mokahr.com/api-platform/v2/syncCandidates
请求样例 (application/json)
$ curl https://api.mokahr.com/api-platform/v2/syncCandidates \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: application/json' \
-d '{
"orgId":"livingsimple",
"candidateName": "test",
"candidatePhone": "18700998899",
"candidateEmail": "1234@test.com",
"note": "测试备注",
"talentPoolId": 200000131,
"email": "xiedi@mokahr.com",
"resignDepartment": "离职部门",
"reason": 1,
"detail": "世界那么大,我想去看看",
"time": "2020-01-01 00:00:00",
"channelType": 5,
"channelName": "人才库",
"source": 0,
"jobId": "07af7045-b4e7-43eb-ba64-87128c4df3bf",
"candidateAge": 18,
"candidateGender": "男",
"candidateLastCompany": "天南",
"candidateLastSpeciality": "化工",
"candidateAcademicDegree": "本科",
"hiredTime": "2020-01-01 00:00:00",
"educationInfo": [
{
"school": "北京大学",
"startDate": "2014-09",
"endDate": "2017-06",
"speciality": "软件工程",
"academicDegree": "本科"
}
],
"experienceInfo": [
{
"company": "百度",
"startDate": "2014-09",
"endDate": "2017-06",
"title": "初级工程师",
"summary": "负责产品功能实现"
},{
"company": "百度",
"startDate": "2014-09",
"endDate": "2017-06",
"title": "初级工程师",
"summary": "负责产品功能实现"
}
],
"projectInfo": [
{
"projectName": "项目1",
"startDate": "2017-01",
"endDate": "2017-11",
"projectDescription": "项目功能描述",
"title": "后端工程师",
"responsibilities": "项目职责"
},
{
"projectName": "项目2",
"startDate": "2017-01",
"endDate": "2017-11",
"projectDescription": "项目功能描述",
"title": "后端工程师",
"responsibilities": "项目职责"
}
],
"practiceInfo": [
{
"company": "腾讯",
"title": "实习工程师",
"startDate": "2017-01",
"endDate": "2017-11",
"summary": "负责简单的功能实现"
},{
"company": "腾讯",
"title": "实习工程师",
"startDate": "2017-01",
"endDate": "2017-11",
"summary": "负责简单的功能实现"
}
],
"jobIntention": {
"aimSalary": "7000-13000元/月",
"forwardLocation": "北京"
},
"selfDescription": {
"personal": "人经历丰富,在校担任过部长,主持人以及新生教官。"
},
"customFields": [
{
"id": 146,
"value": "22",
"index": 0
},
{
"id": 121,
"value": "22",
"index": 10
},
{
"id": 124,
"value": "bbb",
"index": 0
},
{
"id": 130,
"value": {"endDate":"2020-01","startDate":"2021-01"},
"index": 0
}
],
"isResignWriteJob": true,
"resignJobName": "工程师",
"resignJobType": "技术"
}'
请求样例(multipart/form-data方式)
$ curl https://api.mokahr.com/api-platform/v2/syncCandidates \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: multipart/form-data' \
-F 'basicInfo={"candidateName": "王五","age": 20,"gender": "男","candidatePhone": "13800000000","candidateEmail":"test@mokahr.com","jobId":"330fd7e3-45a1-4705-828c-7e1beafad355","talentPoolId":200004785,"email":"test@mokahr.com"}' \
-F 'resume=@/path/to/resume/张三.pdf' \
-F 'attachments=@/path/to/attachments/attach1.txt'
返回示例
{
"code": 200,
"msg": "success",
"data": {
"applicationId": 189316652,
"candidateId": 168776432
}
}
失败返回实例
{
"code": 40040102,
"msg": "找不到归档原因,归档信息错误"
}
请求body参数(application/json)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
candidateName | 是 | string | 候选人姓名 |
candidatePhone | 是 | string | 候选人手机号 |
candidateEmail | 是 | string | 候选人邮箱 |
note | 否 | string | 备注 |
channelType | 否 | string | 渠道类型 如果未匹配 可选值: 1 :招聘网站(moka已对接的招聘网站)2 :社招门户3 :内推门户4 :猎头5 :人才库6 :其他渠道7 :内部自有8 :招聘网站(客户自定义的一个渠道类别)9 :招聘会10 :论坛11 :SNS12 :其他默认:5 |
sourceStatistics | 否 | string | 来源效果 在channel_type为2、3、4时需要填写,若未填写,导入失败 |
channelName | 否 | string | 渠道 如果未匹配,默认:人才库 |
source | 否 | int | 来源 各个渠道默认的来源 可选值: 1 :主动搜索2 :主动投递3 :人才推荐 |
appliedAt | 否 | string | 申请时间 若为空,默认使用系统当前时间 格式遵从ISO8061标准 |
jobId | 是 | string | 职位ID |
candidateAge | 否 | integer | 候选人年龄 |
candidateGender | 否 | string | 候选人性别 |
candidateLastCompany | 否 | string | 最近公司 |
candidateLastSpeciality | 否 | string | 最近毕业专业 |
candidateAcademicDegree | 否 | string | 最高学历 |
educationInfo | 否 | array | 教育经历 |
educationInfo[].school | 否 | string | 学校名称 |
educationInfo[].startDate | 否 | 格式遵从ISO8601标准 string | 开始时间 |
educationInfo[].endDate | 否 | 格式遵从ISO8601标准 string | 结束时间 |
educationInfo[].speciality | 否 | string | 学习专业 |
educationInfo[].academicDegree | 否 | string | 学历 |
experienceInfo | 否 | array | 工作经验 |
experienceInfo[].company | 否 | string | 公司名称 |
experienceInfo[].startDate | 否 | 格式遵从ISO8601标准 string | 开始时间 |
experienceInfo[].endDate | 否 | 格式遵从ISO8061标准 string | 结束时间 |
experienceInfo[].title | 否 | string | 工作职位 |
experienceInfo[].summary | 否 | string | 工作职责 |
projectInfo | 否 | array | 项目经验 |
projectInfo[].projectName | 否 | string | 项目名称 |
projectInfo[].startDate | 否 | 格式遵从ISO8601标准 string | 开始时间 |
projectInfo[].endDate | 否 | 格式遵从ISO8601标准 string | 结束时间 |
projectInfo[].title | 否 | string | 项目中担任的> 职责 |
projectInfo[].projectDescription | 否 | string | 项目功能描述 |
projectInfo[].responsibilities | 否 | string | 项目中的职责 |
practiceInfo | 否 | array | 实习经历 |
practiceInfo[].company | 否 | string | 公司名称 |
practiceInfo[].title | 否 | string | 职位名称 |
practiceInfo[].startDate | 否 | 格式遵从ISO8601标准 string | 开始时间 |
practiceInfo[].endDate | 否 | 格式遵从ISO8601标准 string | 结束时间 |
practiceInfo[].summary | 否 | string | 工作职责 |
jobIntention | 否 | object | 求职意向 |
jobIntention.aimSalary | 否 | string | 期望薪资 |
jobIntention.forwardLocation | 否 | string | 期望城市 |
selfDescription | 否 | object | 自我描述 |
selfDescription.personal | 否 | object | 自我描述,简介 |
customFields[].id | 否 | integer | 自定义字段id |
customFields[].value | 否 | string | 自定义字段值 |
customFields[].index | 否 | number | 如果当前模块数据是一个数组且含有自定义字段,则该值必填且与数组下标一致(备注:支持自定义模块数据) |
talentPoolId | 是 | int | 若是入职人才库,需填写:hired_type、hired_time 若是离职人才库,须填写:resign_type、resign_detail、resign_time 若需要导入黑名单人才库,此人才库ID为黑名单人才库ID 若要导入人才库,则该字段是必填的 |
是 | string | 用户邮箱 有人才库权限的用户邮箱, 若归档候选人时,该字段必填 |
|
hiredTime | 否 | string | 入职时间 默认使用请求时间 |
isResignWriteJob | 否 | boolean | 是否回写离职信息 可选值: 0 :不开启1 :开启,开启后需填写离职职位默认:0 |
resignJobName | 否 | string | 离职职位 |
resignDepartment | 否 | string | 离职部门 |
reason | 否 | int | 离职原因 可选值: 0 :已离职 1 :主动离职 2 :被动离职 |
detail | 否 | string | 离职详情 若为离职,该字段必填 |
time | 否 | string | 离职时间(日期格式为:ISO8601) 若为空,则为当前时间 |
political | 否 | string | 政治面貌 |
certificateType | 否 | string | 证件类型 枚举值 1 :身份证2 :身份证(中国香港)3 :身份证(中国澳门)4 :身份证(中国台湾)5 :护照6 :其他证件7 :港澳居民来往内地通行证8 :台湾居民来往内地通行证9 :外国人工作许可证10 :外国人居留许可证 |
citizenId | 否 | string | 证件号码
请求body参数 (multipart/form-data方式)
字段 | 类型 | 描述 |
---|---|---|
candidateInfo | string | json格式的字符串,字段同json请求方式的body |
resume | file | 简历文件 |
attachments | file | 附件文件,可以同时传多个 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
msg | string | 报错信息 |
code | integer | 返回码 |
data | object | 返回数据 |
可能的错误信息
code | errorMessage | 说明 |
---|---|---|
200 | success | 成功 |
1240040102 | channel_source.error | 渠道来源错误 |
1240040104 | talent_pool_Id.error | 人才库错误 |
1240040105 | userId.error | 用户id错误(a.不存在该用户;b.ID错误) |
1240040106 | user_permission.error | 用户无权限 |
职位API
查询职位字段
请求样例
$ curl https://api.mokahr.com/api-platform/v1/jobs-fields?currentHireMode=1
-u 'your-api_key:' \
查询职位字段接口主要用户查询系统内已创建的职位字段,包括系统默认字段和自定义字段
返回样例
{
"success": true,
"data": [
{
"id": 432,
"name": "职位类别",
"type": "string_info",
"detail": null,
"isRequired": 0,
"isVisiable": 1,
"isBuiltin": 1
},
{
"id": 433,
"name": "工作地点",
"type": "select_info",
"detail": null,
"isRequired": 0,
"isVisiable": 1,
"isBuiltin": 1
},
{
"id": 434,
"name": "工作经验",
"type": "string_info",
"detail": null,
"isRequired": 0,
"isVisiable": 1,
"isBuiltin": 1
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/jobs-fields
请求query参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 字段ID |
name | string | 字段名称 |
type | string | 字段类型 |
detail | string | 字段详情 |
isRequired | integer | 必填 |
isVisiable | integer | 是否隐藏 |
isBuiltin | integer | 是否是系统内置 |
创建新职位
请求样例
$ curl -X POST \
'https://api.mokahr.com/api-platform/v1/jobs?currentHireMode=1' \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{
"title": "API测试",
"status": "open",
"commitment": "测试",
"departmentCode": "1111",
"minSalary": 20,
"maxSalary": 50,
"education": "本科",
"jobPriorityId": 13,
"managerEmail": "limeng@mokahr.com",
"hrAssistantEmails": [ "zhangsan@mokahr.com" ],
"hiringManagerEmails": [ "lisi@mokahr.com" ],
"interviewerEmails": [ "wangwu@mokahr.com" ],
"interviewerNumbers": [ "1234", "2345" ],
"jobRankIds": [113, 114],
"customData": {
"2": "北京",
"5": "50",
"9":["1723553256175","1723553256176"]
},
"pipelineId": 12,
"headcountIds": [1,2,3],
"finishedAt": "2020-04-15 00:00:00",
"siteIds":[29189,29190],
"storeIds":[1234,4567]
}'
通过接口直接在Moka系统中创建职位;创建职位时间即为开始招聘时间
返回样例
{
"success": true,
"data": {
"jobId": "d7556714-6de1-4a14-82d8-2a8fc1ac7624",
"mjCode": "MJ001789"
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/jobs?currentHireMode=1
请求query参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
请求body参数操作人编号
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
title | 是 | string | 职位名称 |
status | 否 | string | 职位状态 可选值: open :开启 closed :关闭pause :暂停 |
description | 否 | string | 职位描述 |
commitment | 是 | string | 职位性质 可选值: 全职 兼职 实习 其它 |
departmentCode | 否 | string | 所属部门code |
number | 否 | integer | 招聘人数 |
experience | 否 | string | 工作经验 可选值: 不限 应届毕业生 1年以下 1-3年 3-5年 5-10年 10年以上 |
education | 否 | string | 最低教育程度, 可选值: 不限 高中以下 中专 大专 本科 硕士 博士 |
jobPriorityId | 否 | integer | 职位优先级ID |
locationId | 否 | integer | 工作地点ID |
locationIds | 否 | array |
多个工作地点ID,locationIds 和 locationId 同时存在时,优先使用 locationIds |
managerEmail | 否 | string | 负责人邮箱 |
managerNumber | 否 | string | 负责人number字段, 该值存在会忽略managerEmail字段 (managerNumber为-1时会删除负责人) |
hrAssistantEmails | 否 | Array<string> | 职位协助人邮箱 |
hrAssistantNumbers | 否 | Array<string> | 职位协助人number字段, 该值存在会忽略hrAssistantEmails字段 (hrAssistantNumbers为空数组[]时清空协助人) |
hiringManagerEmails | 否 | Array<string> | 用人经理邮箱 |
hiringManagerNumbers | 否 | Array<string> | 用人经理number字段, 该值存在会忽略hiringManagerEmails字段(hiringManagerNumbers为空数组[]时清空用人经理) |
interviewerEmails | 否 | Array<string> | 面试官邮箱 |
interviewerNumbers | 否 | Array<string> | 面试官number字段, 该值存在会忽略interviewerEmails字段(interviewerNumbers为空数组[]时清空面试官) |
jobRankIds | 否 | Array<integer> | 职位级别ID列表 |
zhinengId | 否 | integer | 职能ID |
customData | 否 | Object | 自定义数据,键值对形式,key为自定义字段id,value为自定义字段值。如果是多选字段,value为选项id数组 |
pipelineId | 否 | integer | 招聘流程 |
headcountIds | 否 | Array<integer> | 关联HC列表 |
finishedAt | 否 | string | 招聘截止时间, 格式遵从ISO8601标准 |
siteIds | 否 | array | 官网ids |
storeIds | 否 | array | 门店id数组.如果开启了部门和门店同步,传了部门信息会优先使用部门对应的门店信息 |
jobTemplateId | 否 | number | 自定义招聘查询id |
isVirtual | 否 | boolean | 是否创建为虚拟职位,true:创建为虚拟职位,默认是实体职位 |
jobIdsForVirtualJobList | 否 | array | 虚拟职位需要关联的实体职位id |
applyForms | 否 | array | 申请表 |
applyForms[].applyFormId | 是 | number | 申请表id |
applyForms[].type | 是 | string | 申请表类型:NORMAL_PORTAL:普通官网,RECOMMENDATION_PORTAL:内推官网 |
applyForms[].device | 是 | string | 申请表适用浏览器类型:pc或者mobild |
roundFeedbacks | 否 | array | 面试评价表 |
roundFeedbacks[].roundId | 是 | number | 面试轮次id |
roundFeedbacks[].feedbackId | 是 | string | 面试评价表id |
interviewPlanId | 否 | string | 面试方案,以及面试方案下每个轮次所关联的用户组。如果和旧的面试评价表roundFeedbacks 数组,同时传,优先走面试方案 |
roundUserGroups | 否 | array | 用户组数组 |
roundUserGroups[].roundId | 否 | number | 面试轮次id,面试方案下需要关联用户组的轮次id |
roundUserGroups[].userGroupIds | 否 | number[] | 用户组ids,可以传多个用户组,可不传用户组 |
subscribersEmails | 否 | string[] | 简历自动推荐人邮箱。支持面试官、用人经理及以上角色。["lisi@mokahr.com"] |
subscribersNumbers | 否 | string[] | 简历自动推荐人工号。支持面试官、用人经理及以上角色。[ "1234", "2345" ] |
minSalary | 否 | integer | 最低薪资 |
maxSalary | 否 | integer | 最高薪资 |
salaryUnit | 否 | integer | 薪资单位 可选值: 0:k/月 1:元/月 2:元/周 3:元/天 4:元/小时 5:元/次 |
payPeriod | 否 | integer | 发薪月数 最小值:12 最大值:24 |
paymentMethod | 否 | integer | 发薪方式 可选值: 0:日结 1:周结 2:月结 3:完工结 |
assignmentFeedbackId | 否 | integer | 简历筛选评价表ID 未开启简历筛选评价表时无法完成绑定,并且只能绑定当前部门可用的筛选评价表,若不指定部门则只能绑定默认筛选评价表 |
jobSettingLocale | 否 | string | 职位设置语言 简体中文:zh-CN 英语:en-US |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
jobId | string | 职位ID,moka系统内置。 |
mjCode | string | 职位编号,发布到外部系统保证唯一性。 |
subscribersEmails | string[] | 简历自动推荐人邮箱。支持面试官、用人经理及以上角色。["lisi@mokahr.com"] |
subscribersNumbers | string[] | 简历自动推荐人工号。支持面试官、用人经理及以上角色。[ "1234", "2345" ] |
更新已有职位
请求样例
$ curl -X PUT \
https://api.mokahr.com/api-platform/v1/jobs/d7556714-6de1-4a14-82d8-2a8fc1ac7624 \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{
"title": "34534783478378",
"commitment": "786786786786",
"departmentCode": "1111",
"education": "博士",
"jobPriorityId": null,
"managerEmail": "limeng@mokahr.com",
"minSalary": "20000",
"jobRankIds": [113, 114],
"customData": {
"2": "北京",
"5": "50",
"9":["1723553256175","1723553256176"]
}
},
"locationIds":[123,3444]
"pipelineId": 12,
"headcountIds": [1,2,3],
"finishedAt": "2020-04-15 00:00:00",
"storeIds":[1234,4567]
'
通过接口更新系统中已存在的职位信息
HTTP请求
https://api.mokahr.com/api-platform/v1/jobs/{jobId}
请求path参数
字段 | 类型 | 描述 |
---|---|---|
jobId | string | 职位ID |
请求body参数
和创建新职位的body参数一致
本接口特有字段
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
archive | 否 | boolean | 是否放入人才库 可选值: true :是false :否默认: false |
useHeadhunter | 否 | boolean | 是否使用猎头(已废弃,系统功能已下线) 传true:不生效 传false:将职位从全部猎头渠道下架 默认:false |
tempJobToJob | 否 | int | 可选值:0 :保持关联1 :取消关联2 :重新关联默认:0 |
distributeJobId | 否 | string | 重新关联职位id |
displayOnOfficialSite, | 否 | boolean | 是否在招聘官网展示, 默认: false |
displayOnRecommendationSite | 否 | boolean | 是否在内推官网展示, 默认: false |
departmentCode | 否 | string | 所属部门code,如果为null的话会删除该职位的部门 |
storeIds | 否 | array | 门店id数组.如果开启了部门和门店同步,传了部门信息会优先使用部门对应的门店信息 |
publishedAt | 否 | string | 官网发布时间,职位在招聘官网或内推官网的最新发布时间。如果不传,系统会在发布职位到官网时自动更新该时间,如果传了则按传值更新职位的官网发布时间,非业务需要无需修改该时间,格式遵从ISO8601标准 |
返回示例
{
"success": true,
"data": {
"jobId": "d7556714-6de1-4a14-82d8-2a8fc1ac7624"
}
}
职位查询接口
请求样例
$ curl -X "POST" \
"https://api.mokahr.com/api-platform/v1/jobs/getJobs" \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{
"zhinengId": 372,
"departmentCodes": [
"1234"
],
"locationIds": [],
"commitment": "全职",
"updatedEndAt": "2021-10-10",
"limit": 10,
"offset": 0,
"hireMode": "social",
"updatedFromAt": "2019-08-10",
"storeCodes": [
"123",
"50"
],
"jobId": "",
"status": "open"
}'
通过接口查询系统中已存在的职位信息
HTTP请求
POST https://api.mokahr.com/api-platform/v1/jobs/getJobs
返回样例
{
"code": 0,
"msg": "success",
"data": {
"total": 1,
"jobs": [
{
"id": "b0a8a988-441d-4fca-a200-b77526ec9ba0",
"orgId": "livingsimple",
"title": "网页设计师",
"status": "open",
"description": "<div><b>我们是谁</b><div>",
"minSalary": 1000,
"maxSalary": 9000,
"minExperience": 3,
"maxExperience": 5,
"number": 10,
"commitment": "全职",
"education": "本科",
"openedAt": "2017-09-01T21:00:00.000Z",
"closedAt": "2017-10-01T22:00:00.000Z",
"hireMode": 1,
"publishedAt": "2021-03-17T07:10:53.000Z",
"updatedAt": "2021-03-22T07:05:53.000Z",
"finishedAt": "2019-08-23T16:00:00.000Z",
"mjCode": "MJ007995",
"pipelineId": 21,
"pipelineName": "审计部",
"locations": [
{
"id": 1,
"province": "广东",
"city": "深圳市",
"area": "福田区",
"country": "中国",
"address": "车公庙泰然大厦C座22楼"
}
],
"prior": 1,
"stores": [],
"department": {
"id": 3,
"name": "审计部",
"code": "1234"
},
"zhineng": {
"id": 1,
"name": "技术类"
},
"customFields": [
{
"id": 1,
"name": "薪资范围",
"value": "100-200",
"type": "string_info"
}
],
"isRecommendation": false
}
]
}
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
hireMode | 是 | string | 招聘模式 可选值: social :社招 campus :校招 |
limit | 否 | string | 分页用的每页条数,默认30 |
offset | 否 | string | 分页用的偏移量,所示索引从0开始 |
locationIds | 否 | array | 通过地址列表接口返回的地址id,比如[1,2,3] 详细参数见职位地址 |
zhinengId | 否 | number | 通过职能列表接口返回的地址id 详细参数见职位职能 |
siteId | 否 | number | 官网id |
commitment | 否 | number | 职位性质 可选值: 1 :全职2 :兼职3 :实习4 :其它 |
updatedFromAt | 否 | string | 职位按更新时间筛选的起始时间,比如2020-06-01 |
updatedEndAt | 否 | string | 职位按更新时间筛选的截止时间,比如2020-07-01 |
status | 否 | string | 职位状态:open/开启, closed/关闭, pause/暂停 |
jobId | 否 | string | 职位id |
departmentCodes | 否 | array | 职位所属部门编号列表 |
storeCodes | 否 | array | 职位所属门店编号列表 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
total | integer | 职位总数量 |
jobs[] | array | 职位列表 |
jobs[].id | string | 职位id |
jobs[].title | string | 职位名称 |
jobs[].status | string | 职位状态 可选值: open :开启 closed :关闭pause :暂停 |
jobs[].description | string | 职位描述 |
jobs[].mjCode | string | 职位编号 |
jobs[].minSalary | integer | 最低薪资 |
jobs[].maxSalary | integer | 最高薪资 |
jobs[].salaryUnit | integer | 薪资单位 |
jobs[].payPeriod | integer | 发薪月数 |
jobs[].paymentMethod | integer | 发薪方式 |
jobs[].minExperience | integer | 最低工作经验 |
jobs[].maxExperience | integer | 最高工作经验 |
jobs[].number | integer | 招聘人数 |
jobs[].commitment | string | 职位性质 可选值: 全职 兼职 实习 其它 |
jobs[].education | string | 学历要求 |
jobs[].closedAt | string | 职位关闭时间。日期格式为:ISO8601 |
jobs[].openedAt | string | 开始招聘时间。日期格式为:ISO8601 |
jobs[].updatedAt | string | 职位更新时间。日期格式为:ISO8601 |
jobs[].prior | integer | 是否优先招聘,1 为优先招聘 |
jobs[].hireMode | integer | 招聘模式 可选值: 1 :社招2 :校招 |
jobs[].publishedAt | string | 官网发布时间,职位在招聘官网或内推官网的最新发布时间 |
jobs[].finishedAt | string | 职位目标完成时间 |
jobs[].isRecommendation | boolean | 是否为内推职位 |
jobs[].department | object | 职位所在部门信息 |
jobs[].department.id | integer | 部门id |
jobs[].department.code | integer | 部门编码 |
jobs[].department.name | string | 部门名称 |
jobs[].pipelineId | string | 职位所属流程ID |
jobs[].pipelineName | string | 职位所属流程名称 |
jobs[].locations | array | 职位地点 |
jobs[].locations[].id | integer | 地址id |
jobs[].locations[].province | string | 省份 |
jobs[].locations[].city | string | 城市 |
jobs[].locations[].area | string | 地区 |
jobs[].locations[].country | string | 地点所在国家 |
jobs[].locations[].address | string | 地点详细信息 |
jobs[].stores | array | 职位所属门店 |
jobs[].stores.id | integer | 门店id |
jobs[].stores.apiCode | string | 门店编码 |
jobs[].stores.name | string | 门店名称 |
jobs[].zhineng | object | 职位职能信息 |
jobs[].zhineng.id | integer | 职能id |
jobs[].zhineng.name | string | 职能名称 |
jobs[].customFields | array | 职位自定义字段列表 |
jobs[].customFields[].id | integer | 自定义字段id |
jobs[].customFields[].name | string | 自定义字段名称 |
jobs[].customFields[].type | string | 自定义字段类型,可以是以下值之一: string_info bool_info |
jobs[].customFields[].value | string | 自定义字段的值 |
jobs[].jobManager | object | 职位负责人 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobManager.name | string | 职位负责人姓名 |
jobs[].jobManager.email | string | 职位负责人邮箱 |
jobs[].jobManager.phone | string | 职位负责人手机号 |
jobs[].jobManager.number | string | 职位负责人number字段 |
jobs[].jobHrAssistant | object[] | 职位协助人 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobHrAssistant[].name | string | 职位协助人姓名 |
jobs[].jobHrAssistant[].email | string | 职位协助人邮箱 |
jobs[].jobHrAssistant[].phone | string | 职位协助人手机号 |
jobs[].jobHrAssistant[].number | string | 职位协助人number字段 |
jobs[].jobHiringManager | object[] | 用人经理 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobHiringManager[].name | string | 用人经理姓名 |
jobs[].jobHiringManager[].email | string | 用人经理邮箱 |
jobs[].jobHiringManager[].phone | string | 用人经理手机号 |
jobs[].jobHiringManager[].number | string | 用人经理number字段 |
jobs[].jobInterviewer | object[] | 面试官 (此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
jobs[].jobInterviewer[].name | string | 面试官姓名 |
jobs[].jobInterviewer[].email | string | 面试官邮箱 |
jobs[].jobInterviewer[].phone | string | 面试官手机号 |
jobs[].jobInterviewer[].number | string | 面试官number字段 |
jobs[].jobTemplateId | number | 自定义招聘查询id |
jobs[].isVirtual | boolean | true:为虚拟职位 |
jobs[].applyForms | array | 申请表 |
jobs[].applyForms[].applyFormId | number | 申请表id |
jobs[].applyForms[].type | string | 申请表类型 可选值: NORMAL_PORTAL :普通官网RECOMMENDATION_PORTAL :内推官网 |
jobs[].applyForms[].device | string | 申请表适用浏览器类型:pc或者mobild |
jobs[].roundFeedbacks | array | 面试评价表 |
jobs[].roundFeedbacks[].roundId | number | 面试轮次id |
jobs[].roundFeedbacks[].feedbackId | string | 面试评价表id |
interviewPlanId | string | 面试方案id |
jobs[].roundFeedbacks[].userGroupsIds | array | 面试轮次关联的用户组id |
userGroupsId | number | 用户组id |
jobs[].jobRankInfo | object | 职级信息 |
jobs[].jobRankInfo.id | Integer | 职级id |
jobs[].jobRankInfo.name | string | 职级名称 |
jobs[].jobRankInfo.type | string | 职级类别 |
jobs[].jobRankInfo.level | Integer | 职级顺序 |
jobs[].jobRankInfo.comment | string | 职级备注 |
jobs[].createAt | string | 职位创建日期 |
jobs[].confidential | Integer | 是否是保密职位: 1:是保密职位 0:不是保密职位 |
获取招聘流程列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/pipelines/list?currentHireMode=1
-u 'your-api_key:' \
获取招聘流程列表
返回样例
{
"rows": [
{
"id": 1,
"name": "默认流程",
"disabled": false
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/pipelines/list
请求Query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
currentHireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回json数据
字段 | 类型 | 描述 |
---|---|---|
id | integer | id |
name | string | 流程名称 |
disabled | boolean | 是否禁用 |
获取职位信息
请求样例
$ curl https://api.mokahr.com/api-platform/v1/data/jobs
返回样例
{
"data": [
{
"id": 1,
"title": "blabla"
}
],
"next": "8465195468"
}
获取职位信息
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/jobs
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
fromTime | 否 | string | 数据的开始时间,fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。 |
next | 否 | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next 字段,下次请求只需要把这个next 参数加到query中就可以了。fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。如果响应中没有next 字段,表示没有更多的数据了 |
limit | 否 | string | 分页用的每页条数,默认100 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 职位id |
title | string | 职位名称 |
获取职位下所有可移动阶段信息
请求样例
$ curl https://api.mokahr.com/api-platform/v1/data/job_stages?jobId=xiaozhao3
返回样例
[
{
"id": 1,
"name": "初筛"
},
{
"id": 2,
"name": "用人部门筛选"
},
{
"id": 3,
"name": "面试"
},
{
"id": 4,
"name": "沟通offer"
},
{
"id": 5,
"name": "待入职"
}
]
该接口将返回指定职位下,所有可用阶段信息
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/job_stages
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
jobId | 是 | string | 职位id |
返回
字段 | 类型 | 描述 |
---|---|---|
id | integer | 阶段id |
name | string | 阶段名称 |
获取职位优先级列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/job_priority \
-u 'your-api_key:' \
-X GET
返回样例
[
{
"id": 488,
"name": "优先招聘",
"isBuiltin": 1
},
{
"id": 811,
"name": "特别",
"isBuiltin": 0
}
]
HTTP请求
GET https://api.mokahr.com/api-platform/v1/job_priority
请求参数
无
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 职位优先级id |
name | string | 字段显示的名字 |
isBuiltin | integer | 是否系统内置 |
获取企业职位级别
请求样例
$ curl https://api.mokahr.com/api-platform/v1/job_ranks \
-u 'your-api_key:' \
-X GET
返回样例
[
{
"id": 1,
"name": "新人",
"type": "p5",
"level": 1,
"comment": "1111"
},
{
"id": 2,
"name": "中坚",
"type": null,
"level": 2,
"comment": null
},
{
"id": 3,
"name": "总裁",
"type": null,
"level": 3,
"comment": null
}
]
HTTP请求
GET https://api.mokahr.com/api-platform/v1/job_ranks
请求参数
无
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 职级的id |
name | string | 名称 |
type | string | 设置的类型 |
level | integer | 设置的级别 |
comment | string | 备注 |
departmentIds | array | 所属部门id |
创建企业职位级别
请求样例
$ curl https://api.mokahr.com/api-platform/v1/job_ranks \
-u 'your-api_key:' \
-X POST \
-H 'content-type: application/json' \
-d '
{
"name": "初级",
"type": "",
"level": 1,
"comment": ""
}
'
返回样例
{
"id": 1,
"name": "初级",
"type": "",
"level": 1,
"comment": ""
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/job_ranks
请求Body
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
name | 是 | string | 级别名称 |
type | 否 | string | 级别类型 |
level | 否 | integer | 级别 |
comment | 否 | string | 备注 |
departmentIds | 否 | array | 所属部门id |
返回JSON
字段 | 类型 | 说明 |
---|---|---|
id | integer | 职位职级id |
name | string | 级别名称 |
type | string | 级别类型 |
level | integer | 级别 |
comment | string | 备注 |
departmentIds | array | 所属部门id |
更新企业职位级别
请求样例
$ curl https://api.mokahr.com/api-platform/v1/job_ranks/1 \
-u 'your-api_key:' \
-X PUT
-H 'content-type: application/json' \
-d '
{
"name": "hcName",
"type": "",
"level": 1,
"comment": ""
}
'
返回样例
{
"id": 1,
"name": "初级",
"type": "",
"level": 1,
"comment": ""
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/job_ranks/:id
请求Url参数
字段 | 类型 | 说明 |
---|---|---|
id | integer | id |
请求Body
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
name | 否 | string | 级别名称 |
type | 否 | string | 级别类型 |
level | 否 | integer | 级别 |
comment | 否 | string | 备注 |
departmentIds | 否 | array | 所属部门id |
返回JSON
字段 | 类型 | 说明 |
---|---|---|
id | integer | 职级id |
name | string | 级别名称 |
type | string | 级别类型 |
level | integer | 级别 |
comment | string | 备注 |
departmentIds | array | 所属部门id |
删除企业职位级别
请求样例
$ curl https://api.mokahr.com/api-platform/v1/job_ranks/1 \
-u 'your-api_key:' \
-X DELETE
-H 'content-type: application/json' \
-d '
{
"mergeToId": 5,
}
'
返回样例
{
"success": true
}
HTTP请求
DELETE https://api.mokahr.com/api-platform/v1/job_ranks/:id
请求url参数
字段 | 类型 | 说明 |
---|---|---|
id | integer | 删除id |
请求Body
字段 | 类型 | 说明 |
---|---|---|
mergeToId | integer | 合并到id |
返回JSON
字段 | 类型 | 说明 |
---|---|---|
success | boolean | 删除成功或失败 |
创建自定义字段
请求样例
$ curl -X POST \
'https://api.mokahr.com/api-platform/v1/jobs/custom_fields?currentHireMode=1' \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{
"type": "select_info",
"name": "工作地点",
"isRequired": true,
"isVisible": true,
"detail": [
"工作地点1",
"工作地点2",
"工作地点3"
]
}'
通过接口直接在Moka系统中创建职位
返回样例
{
"success": true,
"data": {
"jobFieldId": 603
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/jobs/custom_fields?currentHireMode={currentHireMode}
请求query参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
请求body参数
字段 | 类型 | 描述 |
---|---|---|
name | string | 字段名称,必填 |
type | string | 字段类型 可选值: string_info select_info bool_info date_info day_info text_info multi_select_info |
isRequired | string | 是否为必填字段 |
detail | array | 字段详情 |
isVisible | boolean | 是否可见 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
jobFieldId | string | 自定义字段对应的ID |
更新自定义字段
请求样例
案例1:
$ curl -X PUT \
'https://api.mokahr.com/api-platform/v1/jobs/custom_fields/603?currentHireMode=1' \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{
"name": "工作地点",
"isRequired": true,
"isVisible": true,
"detail": [
"工作地点1",
"工作地点2",
"工作地点3"
]
}'
案例2:
$ curl -X PUT \
'https://api.mokahr.com/api-platform/v1/jobs/custom_fields/603?currentHireMode=1' \
-u 'your-api-key:' \
-H 'Content-Type: application/json' \
-d '{
"name": "多选字段",
"isRequired": true,
"isVisible": true,
"detail": [
{"value": "修改后的值或原始值", "optionId": "多选项ID"},
{"value": "新增的修改值"}
]
}'
通过接口直接在Moka系统中创建职位
返回样例
{
"success": true,
"data": {
"jobFieldId": 603
}
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/jobs/custom_fields/{jobFieldId}?currentHireMode={currentHireMode}
请求path参数
字段 | 类型 | 描述 |
---|---|---|
jobFieldId | integer | 字段对应的ID |
请求query参数
字段 | 类型 | 描述 |
---|---|---|
currentHireMode | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
请求body参数
字段 | 类型 | 描述 |
---|---|---|
name | string | 字段名称 |
isRequired | string | 是否为必填字段 |
detail | array | 字段详情 |
isVisible | boolean | 是否可见 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
jobFieldId | string | 自定义字段对应的ID |
删除自定义字段
请求样例
$ curl -X DELETE \
'https://api.mokahr.com/api-platform/v1/jobs/custom_fields/603?currentHireMode=1' \
-u 'your-api-key:' \
-H 'Content-Type: application/json'
通过接口直接在Moka系统中创建职位
返回样例
{
"success": true,
"data": {
"jobFieldId": "603"
}
}
HTTP请求
DELETE https://api.mokahr.com/api-platform/v1/jobs/custom_fields/{jobFieldId}?currentHireMode={currentHireMode}
请求path参数
字段 | 类型 | 描述 |
---|---|---|
jobFieldId | 自定义字段对应的ID |
请求query参数
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
currentHireMode | 必填 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
jobFieldId | string | 自定义字段对应的ID |
查询自定义招聘设置
请求样例
$ curl https://api.mokahr.com/api-platform/v1/job-templates/list
-u 'your-api_key:' \
查询自定义招聘设置
返回样例
{
"success": true,
"data": [
{
"id": 100008412,
"name": "标准简历",
"hireMode": 1,
"createdAt": "2020-09-28T06:26:34.000Z"
},
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/job-templates/list
请求query参数 无
字段 | 类型 | 描述 |
---|
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 响应码,非200代表失败 |
msg | string | 响应信息 |
data[].id | integer | 唯一key |
data[].name | string | 名称 |
data[].hireMode | number | 招聘模式 可选值: 1 :社招 2 :校招 |
data[].createdAt | string | 是否隐藏 |
发布/下架职位
请求样例
$ curl -X POST --location "https://api.mokahr.com/api-platform/jobs/v1/display_job_on_websites" \
-H "Content-Type: application/json; charset=utf-8" \
-u 'your-api_key:' \
-d "{
\"orgId\": \"livingsimple\",
\"jobId\": \"c9705c0d-7131-45a9-86d2-be7c6fe3a208\",
\"siteIds\": [
364
],
\"headhunterIds\": \"[200000063,200000094,200000092]\",
\"headhunterContractIds\": \"[137,1,122,116,132]\",
\"displayOnRecommendationSite\": false,
\"displayOnOfficialSite\": true,
\"displayOnHeadhunterSite\": false
}"
通过接口实现职位在官网和猎头端的发布或下架操作。
返回样例
{
"code": 0,
"success": true,
"data": {
"operateOfficialSiteSuccess": false,
"operateRecommendationSiteSuccess": false,
"operateHeadhunterSiteSuccess": false
}}
HTTP请求
POST https://api.mokahr.com/api-platform/jobs/v1/display_job_on_websites
请求Body参数
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
jobId | 是 | string | 职位ID |
siteIds | 是 | array | 官网ids,须指定需要发布或下架的官网 |
displayOnOfficialSite | 否 | boolean | 是否在招聘官网展示。不传参,职位发布状态不变;传false,下架职位;传true,发布职位 |
displayOnRecommendationSite | 否 | boolean | 是否在内推官网展示。不传参,职位发布状态不变;传false,下架职位;传true,发布职位 |
recommendationSiteIds | 否 | array | 内推官网ID |
displayOnHeadhunterSite | 否 | boolean | 是否在猎头端展示。不传参,职位发布状态不变;传false,下架职位;传true,发布职位 |
headhunterIds | 否 | array | 猎头顾问ID,请指定将该职位发布至哪位猎头顾问名下,或从哪位猎头顾问名下下架 |
headhunterContractIds | 否 | array | 猎头合约ID,请指定将该职位发布至哪个猎头合约名下,或从哪个猎头合约名下下架。 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 响应码,非200代表失败 |
msg | string | 响应信息 |
data[].id | integer | 唯一key |
data[].operateOfficialSiteSuccess | boolean | 招聘官网操作是否成功,参数没传和操作失败都是false |
data[].operateRecommendationSiteSuccess | boolean | 内推官网操作是否成功,参数没传和操作失败都是false |
data[].operateHeadhunterSiteSuccess | boolean | 猎头端操作是否成功,参数没传和操作失败都是false |
获取职能类型
获取所有职能类型
请求样例
$ curl -X POST --location "https://api.mokahr.com/api-platform/v1/zhineng/getZhineng" \
-u 'your-api_key:' \
返回样例
{
"code": 0,
"msg": "success",
"data": [
{
"children": [
{
"children": [
{
"id": "1111",
"label": "技术1-2",
"orgId": "daibanap",
"parentId": 1112,
"sort": 0,
"supplementaryLocales": {
"en-US": {
"label": "技术1-2英语"
},
"fr-FR": {
"label": "技术1-2法语"
},
"zh-CN": {
"label": "技术1-2"
}
},
"version": "1.0"
}
],
"id": "1112",
"label": "技术1-1",
"orgId": "daibanap",
"parentId": 1113,
"sort": 0,
"supplementaryLocales": {
"zh-CN": {
"label": "技术1-1"
}
},
"version": "1.0"
},
{
"id": "1114",
"label": "技术2-1",
"orgId": "daibanap",
"parentId": 1113,
"sort": 1,
"supplementaryLocales": {
"zh-CN": {
"label": "技术2-1"
}
},
"version": "1.0"
}
],
"id": "1113",
"label": "技术类",
"parentId": 0,
"orgId": "daibanap"
},
{
"id": "1115",
"label": "产品类",
"parentId": 0,
"orgId": "daibanap",
"supplementaryLocales": {
"en-US": {
"label": "产品类-英语"
},
"fr-FR": {
"label": "产品类-法语"
},
"zh-CN": {
"label": "产品类"
}
},
"children": null
},
{
"id": "1116",
"label": "设计类",
"parentId": 0,
"orgId": "daibanap",
"children": null
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/zhineng/getZhineng
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 响应码,非200代表失败 |
msg | string | 响应信息 |
data[].id | string | 业务id |
data[].label | string | 职能类型名称 |
data[].parentId | long | 父级业务id |
data[].orgId | string | 租户id |
data[].supplementaryLocales | map | 多语言信息 格式如下 {"zh-CN": {"label": "技术2-1"}} |
data[].children[] | array | 子级职能类型信息(和父级内容一样) |
职位v3接口
根据jobId或mjCode获取职位信息
HTTP请求
POST https://api.mokahr.com/api-platform/v3/job/getJobInfo
请求样例
$ curl -X POST --location "https://api.mokahr.com/api-platform/v3/job/getJobInfo" \
-u 'your-api_key:' \
-X POST
-H 'Content-Type: application/json' \
-d '
{
"jobIds": ["111","222"],
"scene": ""
} '
请求Body参数
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
jobIds | 否 | array | 需要查询信息的职位id,最大20个。jobIds 和 mjCodes 至少有一个有值 |
mjCodes | 否 | array | 需要查询信息的职位mjcode,最大10个 (建议使用职位id,性能更好。如果职位id和mjcode同时存在,以职位id为主) |
sence | 否 | string | 查询数据的场景,如果不传,默认值返回职位的基本信息。如果需要返回负责人、协助人、自定义字段等,联系CSM |
返回样例
{
"code": 0,
"codeType": 0,
"data": [
{
"aiEvalAuto": true,
"aiEvalRequirementInfo": null,
"aiEvalRequirementSchema": null,
"aiInfoVersion": 0,
"aiSchemaVersion": 0,
"applicationAiEvalEnable": false,
"applicationAiEvalRequirement": null,
"approvalState": 0,
"attributeId": 111,
"category": null,
"category2Id": null,
"closedAt": null,
"commitment": "全职",
"createdAt": 1653532481000,
"creatorId": 123,
"customFields": [
],
"demographicQuestionId": 0,
"department": {
"code": "110",
"id": 123,
"name": "api测试",
"namePath": "api测试",
"parentId": null,
"path": "api测试"
},
"departmentCode": "110",
"departmentId": 123,
"description": "<p>12312</p>",
"education": "中技",
"enableAiQuestionBank": false,
"enableEeo": false,
"experience": "不限",
"finishedAt": 1654358400000,
"hasRecommendRewardPlan": false,
"hcIds": [
111
],
"hireMode": 1,
"id": "123",
"interviewCityIds": "",
"interviewPlanId": 1530,
"isInteralReferral": false,
"jobApplyFormUseDTOS": [
],
"jobCustomAttribute": {
"id": "123",
"isBuiltin": true,
"name": "优先招聘",
"orgId": "elegrptest"
},
"jobDuty": null,
"jobFamily": false,
"jobHiringManager": [
{
"bindWorkWechat": false,
"email": "xxx",
"employeeId": "",
"employee_id": "",
"fullPhone": null,
"id": 123,
"name": "xxx",
"number": null,
"phone": "12345678910",
"role": 50
}
],
"jobHrAssistant": null,
"jobInterviewer": null,
"jobLocale": "",
"jobNumId": 100001,
"jobRanks": [
{
"apiCode": "",
"campusRecommendRewardRulesId": null,
"comment": null,
"departmentIds": [
0
],
"id": 123,
"level": 5,
"name": "总监",
"orgId": "test",
"recommendRewardRulesId": null,
"status": 0,
"type": null
}
],
"jobTemplateId": 0,
"locations": [
{
"address": "香花桥街道振盈路68号",
"area": "青浦区",
"city": null,
"cityId": 310118,
"country": "中国",
"id": 111,
"province": "上海市"
}
],
"maxExperience": null,
"maxSalary": 14,
"minExperience": null,
"minSalary": 12,
"mjCode": "MJ000001",
"number": 2,
"openedAt": 1653494400000,
"orgId": "test",
"payPeriod": null,
"paymentMethod": null,
"pipelineId": 410021910,
"pipelineName": "aa",
"pointTo": null,
"publishedAt": 1653532481000,
"recruiter": {
"bindWorkWechat": false,
"email": "xxxx",
"employeeId": "",
"employee_id": "",
"fullPhone": null,
"id": 1,
"name": "xxxx",
"number": null,
"phone": "12345678910",
"role": 50
},
"roundToFeedbackTemplateId": {
"1": 0,
"2": 0,
"3": 0
},
"roundToRoundInfo": {
"1": {
"color": "#00D1DB",
"interviewRoundId": 33,
"jobId": "111",
"name": "初试",
"sort": 1,
"supplementaryLocales": "{\"en-US\":{\"name\":\"1st round\"}}",
"visible": 1
},
"2": {
"color": "#5D63DC",
"interviewRoundId": 22,
"jobId": "111",
"name": "复试",
"sort": 2,
"supplementaryLocales": "{\"en-US\":{\"name\":\"2nd round\"}}",
"visible": 1
},
"3": {
"color": "#F3719D",
"interviewRoundId": 11,
"jobId": "111",
"name": "终试",
"sort": 3,
"supplementaryLocales": "{\"en-US\":{\"name\":\"3rd round\"}}",
"visible": 1
}
},
"salaryUnit": 0,
"status": "open",
"stores": null,
"title": "测试岗位",
"updatedAt": 1656346259000,
"zhinengId": null
}
],
"msg": "成功",
"success": true
}
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | Number | 面试id,md5字符串,唯一标识一场面试 |
message | String | 面试开始时间。格式遵从ISO8601标准 |
data | Array | 职位详情数据 |
data.id | string | 职位id |
data.title | string | 职位标题 |
data.commitment | string | 职位性质:全职、兼职、实习、其它 |
data.status | string | 职位状态:open/closed/pause/temp |
data.description | string | 职位描述 |
data.minSalary | integer | 最小薪资: 单位为k |
data.maxSalary | integer | 最大薪资: 单位为k |
data.salaryUnit | integer | 薪资单位,默认k/月,枚举 |
data.paymentMethod | integer | 结算方式 |
data.payPeriod | integer | 薪资数 |
data.orgId | string | orgId |
data.pointTo | string | 如果该职位是临时职位,pointTo会指向一个实体职位 |
data.departmentId | long | departmentId |
data.department | object | 部门信息 |
data.departmentCode | string | departmentCode |
data.education | string | 学历要求 |
data.minExperience | integer | 最低工作经验 |
data.maxExperience | integer | 最高工作经验 |
data.experience | string | 工作经验 |
data.number | integer | 招聘人数 |
data.category2Id | string | 职位类型id |
data.category | string | 职位类型 |
data.creatorId | long | 职位创建人 |
data.zhinengId | long | 职能类型ID |
data.jobDuty | object | 职能 |
data.jobDuty.id | long | 职能类型ID |
data.jobDuty.name | string | 职能名称 |
data.hireMode | integer | 当前职位的招聘模式(1社招/2校招) |
data.mjCode | string | 职位编码(moka_job_code) |
data.attributeId | long | 职位优先级id |
data.jobCustomAttribute | object | 职位优先级 |
data.jobCustomAttribute.id | string | 职位优先级id |
data.jobCustomAttribute.name | string | 职位优先级名称 |
data.jobCustomAttribute.orgId | string | orgId |
data.jobCustomAttribute.isBuiltin | boolean | 是否内置 |
data.closedAt | long | 职位关闭时间。日期格式为:时间戳 |
data.openedAt | long | 开始招聘时间。日期格式为:时间戳 |
data.updatedAt | long | 职位更新时间。日期格式为:时间戳 |
data.finishedAt | long | 目标完成时间 |
data.publishedAt | long | 展示在官网的职位发布时间,可手动刷新 |
data.createdAt | long | 职位创建时间 |
data.jobNumId | long | 自增字段,数值型的jobid,对当前非自增主键的一个补充 |
data.jobFamily | boolean | 是否是虚拟职位 |
data.jobTemplateId | long | job的模版id |
data.approvalState | integer | 审批状态 |
data.customFields | array | 职位自定义字段 |
data.customFields.id | string | 职位自定义字段id |
data.customFields.name | string | 职位自定义字段名称 |
data.customFields.type | string | 职位自定义字段类型 |
data.customFields.value | string | 职位自定义字段值 |
data.customFields.multiSelectValue | array | 职位自定义多选字段值 |
data.recruiter | object | 职位负责人(此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
data.recruiter.id | long | id |
data.recruiter.role | integer | 角色 |
data.recruiter.name | string | 姓名 |
data.recruiter.email | string | 邮箱 |
data.recruiter.phone | string | 手机号 |
data.recruiter.fullPhone | string | 手机号 |
data.recruiter.employeeId | string | employeeId |
data.recruiter.employee_id | string | employee_Id,同employeeId |
data.recruiter.number | string | number |
data.recruiter.isBindWorkWechat | boolean | 是否绑定了企微 id |
data.jobHrAssistant | array | 职位协助人(此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
data.jobHrAssistant.id | long | id |
data.jobHrAssistant.role | integer | 角色 |
data.jobHrAssistant.name | string | 姓名 |
data.jobHrAssistant.email | string | 邮箱 |
data.jobHrAssistant.phone | string | 手机号 |
data.jobHrAssistant.fullPhone | string | 手机号 |
data.jobHrAssistant.employeeId | string | employeeId |
data.jobHrAssistant.employee_id | string | employee_Id,同employeeId |
data.jobHrAssistant.number | string | number |
data.jobHrAssistant.isBindWorkWechat | boolean | 是否绑定了企微 id |
data.jobHiringManager | array | 用人经理(此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
data.jobHiringManager.id | long | id |
data.jobHiringManager.role | integer | 角色 |
data.jobHiringManager.name | string | 姓名 |
data.jobHiringManager.email | string | 邮箱 |
data.jobHiringManager.phone | string | 手机号 |
data.jobHiringManager.fullPhone | string | 手机号 |
data.jobHiringManager.employeeId | string | employeeId |
data.jobHiringManager.employee_id | string | employee_Id,同employeeId |
data.jobHiringManager.number | string | number |
data.jobHiringManager.isBindWorkWechat | boolean | 是否绑定了企微 id |
data.jobInterviewer | array | 面试官(此项字段默认不返回,若要返回请联系CSM在后台配置功能模块打开官网职位接口负责人同步开关) |
data.jobInterviewer.id | long | id |
data.jobInterviewer.role | integer | 角色 |
data.jobInterviewer.name | string | 姓名 |
data.jobInterviewer.email | string | 邮箱 |
data.jobInterviewer.phone | string | 手机号 |
data.jobInterviewer.fullPhone | string | 手机号 |
data.jobInterviewer.employeeId | string | employeeId |
data.jobInterviewer.employee_id | string | employee_Id,同employeeId |
data.jobInterviewer.number | string | number |
data.jobInterviewer.isBindWorkWechat | boolean | 是否绑定了企微 id |
data.jobRanks | array | 职位级别 |
data.jobRanks.id | long | id |
data.jobRanks.campusRecommendRewardRulesId | long | 与校招职级关联的内推奖励规则 |
data.jobRanks.comment | string | 备注 |
data.jobRanks.level | integer | 职级等级 |
data.jobRanks.name | string | 职级名称 |
data.jobRanks.orgId | string | orgId |
data.jobRanks.recommendRewardRulesId | long | 与职级关联的内推奖励规则 |
data.jobRanks.type | string | 职级类别 |
data.jobRanks.apiCode | string | 关联people的职级id |
data.jobRanks.status | integer | 创建时可以标记是否有效, 0是有效,1是标记删除 |
data.jobRanks.departmentIds | array | departmentIds |
data.hcIds | array | 关联的招聘需求id |
data.locations | array | 职位地点 |
data.locations.address | string | 地址 |
data.locations.cityId | integer | 城市ID |
data.locations.country | string | 国家 |
data.locations.id | integer | ID |
data.locations.province | string | 省 |
data.locations.city | string | 市 |
data.locations.area | string | 区 |
data.pipelineId | long | 职位所属流程 |
data.pipelineName | string | 职位所属流程名称 |
data.stores | array | 门店 |
data.stores.id | string | 业务ID |
data.stores.orgId | string | orgId |
data.stores.name | string | 门店名称 |
data.stores.lat | integer | 门店地址Latitude,根据坐标查询附近门店用 |
data.stores.lng | integer | 门店地址Longitude,根据坐标查询附近门店用 |
data.stores.locationId | long | locations.id |
data.stores.departmentId | long | departments.id, 0代表没有关联department |
data.stores.apiCode | string | 系统或接口导入时候的code, 0代表不是导入而是从mage手动创建的 |
data.stores.disabled | boolean | 门店删除状态,默认0代表启用中,1代表已停用 |
data.stores.disabledAt | long | 门店停用时间 |
data.jobApplyFormUseDTOS | array | 申请表 |
data.jobApplyFormUseDTOS.id | long | 业务ID |
data.jobApplyFormUseDTOS.jobId | string | job_id |
data.jobApplyFormUseDTOS.orgId | string | orgId |
data.jobApplyFormUseDTOS.device | string | 设备类型 |
data.jobApplyFormUseDTOS.type | string | 申请表登记表使用场景 |
data.jobApplyFormUseDTOS.applyFormId | long | apply_form |
data.interviewPlanId | long | 面试方案id |
data.roundToFeedbackTemplateId | object | 面试评价表模板 面试轮次-面试评价表模板 |
data.roundToRoundInfo | object | 面试轮次信息 面试轮次信息 |
data.interviewCityIds | string | 面试城市列表 |
data.applicationAiEvalEnable | boolean | 是否开启简历职能评估 |
data.applicationAiEvalRequirement | string | 简历智能评估要求 |
data.hasRecommendRewardPlan | boolean | 是否有内推简历方案 |
data.enableAiQuestionBank | boolean | 是否开启ai面试题 |
data.aiEvalRequirementInfo | string | 简历智能评估要求半结构化信息,给前端展示用的 |
data.aiInfoVersion | integer | 简历智能评估要求半结构化信息版本信息 |
data.aiEvalRequirementSchema | string | 简历智能评估要求结构化信息,给AI用的 |
data.aiSchemaVersion | integer | 简历智能评估要求结构化信息版本信息 |
data.aiEvalAuto | boolean | 是否开启自动AI简历初筛 |
data.jobLocale | string | 职位语言 |
data.enableEeo | boolean | 是否开启eeo |
data.demographicQuestionId | long | 调查问卷id |
data.isInteralReferral | boolean | 是否内推职位 |
面试API
创建⾯试
HTTP请求
POST https://api.mokahr.com/api-platform/v1/interview/create
请求样例
$ curl https://api.mokahr.com/api-platform/v1/interview/create \
-u 'your_api_key:' \
-X POST
-H 'Content-Type: application/json' \
-d '
{
"stageId": 1741,
"startTime": "2023-03-09 11:00:00",
"duration": 15,
"typeCode": 1,
"orgId": "nonobank",
"interviewArrangerEmail": "lichaozhen@mokahr.com",
"locationId": 1,
"meetingRoomId": 1,
"round": 1,
"signedInAt": "2023-03-09 12:00:00",
"applicationIds": [425015406],
"interviewerEmails": ["lichaozhen@mokahr.com"]
} '
请求Body参数
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
stageId | 是 | number | ⾯试所在招聘阶段id;通过获取阶段信息列表接口获取 |
startTime | 是 | string | 面试日期,格式: "yyyy-MM-dd HH:mm:ss" |
duration | 是 | number | 持续分钟数,15的倍数 |
typeCode | 是 | number | 1 :现场⾯试2 :集体⾯试3 :电话⾯试 |
orgId | 是 | string | MOKA租户orgId,由客户负责人提供 |
interviewArrangerEmail | 是 | string | ⾯试创建⼈email |
locationId | 是 | number | ⾯试地点id ⻅后附录 |
meetingRoomId | 否 | number | 会议室id |
round | 是 | number | 需要提前给数据 |
signedInAt | 是 | string | 候选⼈签到时间 "yyyy-MM-dd HH:mm:ss" |
applicationIds | 是 | array | 参与⾯试的申请id, 不能超过200⼈,最少1⼈ |
interviewerEmails | 是 | array | 参与⾯试的⾯试官email |
请求返回数据样例:
{
"code": 0,
"message": "成功",
"data": {
"groupInterviewId": 1
}
}
返回body
字段 | 类型 | 描述 |
---|---|---|
code | Number | 面试id,md5字符串,唯一标识一场面试 |
message | String | 面试开始时间。格式遵从ISO8601标准 |
data | Object | 面试类型,例如:现场面试、视频面试、电话面试、集体面试 |
data.groupInterviewId | Number | 面试时长,单位为分钟,例如:30 |
code说明
值 | 说明 |
---|---|
-1 | '系统未知错误' |
100 | '负责⼈或者⾯试官email不准确' |
101 | '存在⽆权创建⾯试的职位' |
102 | '⾯试持续时⻓需要是15的倍数, 且不能超过3⼩时' |
103 | '现场⾯试,仅⽀持⼀个候选⼈' |
104 | 'stageId不合法' |
105 | 'applicationIds不合法' |
106 | '未找到指定的⾯试, ⽆法更新⾯试反馈' |
400 | '参数检查错误', |
拉取面试列表
拉取从startDate
(包含)至endDate
(包含)的面试列表
列表内容为可读的中文描述信息
HTTP请求
GET https://api.mokahr.com/api-platform/v1/interviews?startDate={startDate}&endDate={endDate}&hireMode={hireMode}
请求样例
$ curl https://api.mokahr.com/api-platform/v1/interviews\?startDate\=2018-01-02T00:00:00.000Z\&endDate\=2018-01-04T00:00:00.000Z \
-u 'your_api_key:' \
-X GET
请求Query参数
字段 | 必填 | 描述 |
---|---|---|
startDate | 否 | 面试日期,格式: ISO8601 |
endDate | 否 | 面试日期,格式: ISO8601 |
createStartDate | 否 | 面试创建日期,格式: ISO8601 |
createEndDate | 否 | 面试创建日期,格式: ISO8601 |
hireMode | 否 | 招聘模式 可选值: 1:社招 2:校招 |
注意,startDate与endDate, createStartDate与createEndDate确定的日期范围不得超过31天, 并且这两对参数必须有一对参数必填。
且我们会按照该时间的年月日取值,只能精确到天。
返回数据
请求返回数据样例:
{
"data": [
{
"id": "d3d9446802a44259755d38e6d163e820",
"startTime": "2017-01-03T00:00:00.000Z",
"type": "现场面试",
"duration": 30,
"jobTitle": "Mac开发工程师",
"stageName": "技术面",
"address": "北京市 海淀区 北京市海淀区海淀西大街",
"theme": "Mac开发工程师-现场面试-复试",
"status": "已取消",
"createdAt": "2019-06-26 21:37:04",
"hr": {
"name": "李明",
"email": "liming@example.com",
"phone": "+86 1234567890"
},
"candidates": [
{
"name": "邓新宇",
"email": "dxy@example.com",
"phone": "+86 0123456789",
"status": "候选人未反馈",
"jobTitle": "Mac开发工程师",
"applicationId": 1022,
"groupId": 1
}
],
"interviewers": [
{
"name": "旭东",
"email": "xudong@example.com",
"phone": ""
},
{
"name": "柳丁",
"email": "liuding@example.com",
"phone": "+86 1234567890"
}
]
},
{
"startTime": "2017-01-03T02:00:00.000Z",
"type": "集体面试",
"duration": 60,
"jobTitle": "iOS工程师、PHP工程师等3个职位",
"stageName": "一面",
"address": "北京市 海淀区 北京市海淀区海淀西大街",
"theme": "iOS工程师等3个职位-集体面试-初试",
"status": "未结束",
"hr": {
"name": "李明",
"email": "liming@example.com",
"phone": "+86 1234567890"
},
"candidates": [
{
"name": "邓新宇",
"email": "dxy@example.com",
"phone": "+86 0123456789",
"status": "候选人已拒绝",
"jobTitle": "Mac开发工程师",
"applicationId": 1022,
"groupId": 2
},
{
"name": "金清",
"email": "jq@gmail.com",
"phone": "",
"status": "候选人已接受",
"jobTitle": "Android多媒体软件工程师",
"applicationId": 1432,
"groupId": 3
},
{
"name": "应婉蓉",
"email": "ywr@gmail.com",
"phone": "",
"status": "候选人未反馈",
"jobTitle": "web前端工程师",
"applicationId": 4422,
"groupId": 4
}
],
"interviewers": [
{
"name": "旭东",
"email": "xudong@example.com",
"phone": ""
}
]
}
]
}
data为面试数组,按照面试开始时间由早到晚排序。其中每一项的数据结构为:
字段 | 类型 | 描述 |
---|---|---|
id | String | 面试id,md5字符串,唯一标识一场面试 |
startTime | String | 面试开始时间。格式遵从ISO8601标准 |
type | String | 面试类型,例如:现场面试、视频面试、电话面试、集体面试 |
duration | Number | 面试时长,单位为分钟,例如:30 |
jobTitle | String | 面试职位 |
stageName | String | 面试所在阶段名称,例如:面试、技术面、HR面等 |
address | String | 面试地址 |
theme | String | 面试主题,格式为 {面试职位}-{面试类型}-{面试轮次} |
status | String | 面试状态。例如:未结束(代表面试尚未开始)、已结束(代表面试已结束)、已取消(代表面试已被取消) |
createdAt | String | 面试创建时间 |
hr | Object | 安排面试的HR |
hr.name | String | 姓名 |
hr.email | String | 邮箱 |
hr.phone | String | 电话。格式为:+{区号} {电话号码} |
candidates | Array | 参加面试的候选人 |
canddiates[].name | String | 姓名 |
candidates[].email | String | 邮箱 |
candidates[].phone | String | 电话。格式为:+{区号} {电话号码} |
candidates[].status | String | 参加面试的状态。例如:候选人未反馈、候选人已接受、候选人已拒绝 |
candidates[].jobTitle | String | 申请职位名称 |
candidates[].applicationId | Number | 申请id, 唯一标识该候选人的一份申请 |
candidates[].groupId | Number | 面试id |
interviewers | Array | 面试官。结构同hr |
roomId | Long | 面试房间ID |
roomName | String | 面试房间名称 |
jobs | Array | 职位 |
jobs[].mjCode | string | 职位编号 |
注意,字段若为空,则内容为空字符串
第三方面试签到api
业务场景
第三方面试签到系统需要跳转至moka面试签到页面时使用。
HTTP请求
GET https://app.mokahr.com/m/interview-signin/{orgId}?phone={Phone}
请求Path参数
字段 | 必填 | 描述 |
---|---|---|
orgId | 是 | 每个公司客户对应的唯一id,String |
请求Query参数
字段 | 必填 | 描述 |
---|---|---|
Phone | 否 | 候选人手机号码(未填写手机号码时,会跳转到填写手机号码页面) ,String |
返回数据
重定向至Moka面试签到页面。
获取面试反馈数据
请求样例
$ curl https://api.mokahr.com/api-platform/v1/data/interviewer_feedbacks
返回样例
{
"data": [
{
"applicationId": 1,
"round": 1,
"interviewerName": "张三",
"interviewerEmail": "zhangsan@mokahr.com",
"resultName": "非常不满意",
"resultType": 0,
"feedback": "技术不错",
"feedbackTemplateResult": {
"items":[
{
"type":1,
"key":889274446478.9995,
"title":"个人能力",
"scoreType":5,
"calcScoreType":"total",
"subjects": [
{
"title":"沟通能力",
"description":"",
"result":4,
"key":108456151784.09537
},
{
"title":"技能经验",
"description":"",
"result":3,
"key": 160786089566.0061
}
]
},
{
"type":2,
"key":986979085907.8695,
"title":"",
"description":"",
"subjects":[
{
"title":"专业技巧",
"key": 54296490060.84821,
"result":0,
"options":[
{
"value":"招聘知识强",
"key":1478619790466.305
},
{
"value":"系统理解强",
"key":772643685729.6316
},
{
"value":"技术能力强",
"key":982210359123.4211
}
]
}
]
},
{
"type":3,
"key":716130309734.7427,
"title":"",
"description":"",
"subjects":[
{
"title":"综合评语",
"key":529722675109.2128,
"result":"不错"
}
]
}
]
}
}
],
"next": "8465195468"
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/data/interviewer_feedbacks
请求query
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
fromTime | 首次请求必填 | string | 数据的开始时间,fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。 |
next | 与fromTime有一个必填 | string | 分页参数,如果有更多的数据可供拉取,响应的json中会有一个next 字段,下次请求只需要把这个next 参数加到query中就可以了。fromTime 参数只在第一次请求时带,之后的请求就不需要带了,也就是next 和fromTime 只需要带其中一个。如果响应中没有next 字段,表示没有更多的数据了 |
limit | 否 | string | 分页用的每页条数,默认100 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
applicationId | integer | 申请Id |
interviewerName | string | 面试官名字 |
interviewerEmail | string | 面试官邮箱 |
result Deprecated | integer | 面试结果 可选值: 1 :非常不满意2 :不满意3 ;满意4 :非常满意 |
resultName | string | 面试反馈结果 |
resultType | integer | 面试反馈结果类型 可选值: 0 : 不满意 1 : 满意 |
interviewType | string | 面试类型,以下值之一: 电话面试 , 现场面试 , 集体面试 , 视频面试 |
round | number | 面试轮次 可选值: 1 初试 2 复试 3 终试 |
feedback | string | 面试反馈内容 |
feedbackTemplateResult | object | 面试评价表信息 |
feedbackTemplateResult.items | array | 面试评价表的题目列表 |
feedbackTemplateResult.items[].type | number | 题目类型 可选值: 1 : 打分题2 : 单选题3 : 描述题4 : 多选题 |
feedbackTemplateResult.items[].title | string | 题目标题 |
feedbackTemplateResult.items[].description | string | 题目描述 |
feedbackTemplateResult.items[].calcScoreType | string | avg : 计算平均分,total : 计算总分 (这个字段只有在type 为1时有效) |
feedbackTemplateResult.items[].scoreType | number | 5 表示5分制,10 表示10分制(这个字段只有在type 为1时有效) |
feedbackTemplateResult.items[].needReason | string | 是否需要打分综述(这个字段只有在type 为1时有效) |
feedbackTemplateResult.items[].subjects | array | 题目下各个小题的信息 |
feedbackTemplateResult.items[].subjects[].title | array | 小题标题 |
feedbackTemplateResult.items[].subjects[].description | array | 小题描述 |
feedbackTemplateResult.items[].subjects[].result | array | 小题结果: 打分题为所选分数的数值;单选题为选项的索引值,从0开始;描述题为描述的字符串 |
feedbackTemplateResult.items[].subjects[].options | array | 选项字符串数组(这个字段只有在type 为2时有效) |
updatedAt | string | 本条数据的最近更新时间 |
feedbackTime | string | 首次反馈时间 |
first_feedback_user_id | string | 首次反馈填写人 |
last_feedback_user_id | string | 最新反馈填写人 |
添加面试评价表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/addFeedbackTemplates \
-X POST
-H 'Content-Type: application/json' \
-d '
{
"name": "面试评价表",
"items": "[{\"title\":\"模块1\",\"description\":\"测试\",\"subjects\":[{\"type\":1,\"title\":\"JVM\",\"description\":\"测试\",\"scoreType\":5,\"needReason\":false,\"isRequired\":false,\"id\":\"d694ac72-1e57-4be1-b899-c3ad7f1f9feb\"}]}]",
"isOptimizedDeptIds": true,
"departmentType": 1,
"hireMode": 1,
"email": "linjianjun@mokahr.com",
"description": "这是描述",
"departmentIds": ["1","2"],
"linkageRelationship": "[{\"id\":\"523093a1-1727-49f1-80a7-26e6a817e44b\",\"linkages\":[{\"id\":\"1f4a6cf6-b5d6-4341-8187-989343cf98d7\",\"value\":0},{\"id\":\"11b1075c-5993-4338-8961-337747bac351\",\"value\":1}]}]"
}'
返回样例
{
"code": 200,
"message": "success",
"data": {
"id": "3435353"
}
}
添加对应的面试评价表
HTTP请求
POST https://api.mokahr.com/api-platform/v1/addFeedbackTemplates
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
name | 是 | string | 面试评价表名称 |
items | 是 | string | 面试评价表模块字符串(具体Items的json见下方Item详解) |
hireMode | 是 | number | 招聘模式 可选值: 1 :社招 2 :校招 |
是 | string | 操作人邮箱 | |
isOptimizedDeptIds | 是 | boolean | 面试评价表部门联动开关 |
departmentIds | 是 | array |
部门Id数组 |
departmentType | 是 | number | 部门类型0 :使用MOKA系统的1 :使用部门同步 |
description | 否 | string | 面试评价表描述 |
linkageRelationship | 否 | string | 面试评价表联动关系 |
Item参数详解
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
title | 是 | string | 模块名称 |
description | 否 | string | 模块描述 |
calcScoreType | 否 | string | 积分方式 'avg:平均分 |
subjects[] | 是 | array | 题目信息数组 |
subjects[].id | 是 | string | 题目ID(同一评价表下,题目ID不可重复) |
subjects[].type | 是 | integer | 题目类型 可选值: 1 :打分题2 :单选3 :描述4 :多选 |
subjects[].title | 是 | string | 题目名称 |
subjects[].description | 是 | string | 题目描述 |
subjects[].scoreType | 否 | number | type为1的时候必填,为其他值则不填 |
subjects[].options[] | 否 | array | 题目为选择题的时候(type为2和4的时候,必填)里面是json对象(eg:[{value:"选项1"}]) |
subjects[].arrangeType | 否 | number | type为2或者4的时候此时必填(也就是题目为单选或者多选的时候)意思为每行几个选项 |
subjects[].needReason | 否 | boolean | 是否需要打分综合描述 |
subjects[].isRequired | 否 | boolean | 是否必填 |
subjects[].weight | 否 | number | calcScoreType === 'weight' 才会出现 权重比 50 代表50% 另外只有打分题才会计算权重 |
subjects[].ratio | 否 | number | 系数非负一位小数,只有标准面试评价表中的打分题会出现 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 非200代表错误 |
message | string | 操作信息 |
data | object | 返回的数据体 |
data.id | number | 面试评价表id |
更新面试评价表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/updateFeedbackTemplates \
-X POST
-H 'Content-Type: application/json' \
-d '
{
"id": "123",
"name": "面试评价表",
"items": "[{\"title\":\"模块1\",\"description\":\"测试\",\"subjects\":[{\"type\":1,\"title\":\"JVM\",\"description\":\"测试\",\"scoreType\":5,\"needReason\":false,\"isRequired\":false,\"id\":\"d694ac72-1e57-4be1-b899-c3ad7f1f9feb\"}]}]",
"isOptimizedDeptIds": true,
"departmentType": 0,
"hireMode": 1,
"email": "linjianjun@mokahr.com",
"description": "这是描述",
"departmentIds": [1,2],
"linkageRelationship": "[{\"id\":\"523093a1-1727-49f1-80a7-26e6a817e44b\",\"linkages\":[{\"id\":\"1f4a6cf6-b5d6-4341-8187-989343cf98d7\",\"value\":0},{\"id\":\"11b1075c-5993-4338-8961-337747bac351\",\"value\":1}]}]"
} '
返回样例
{
"code": 200,
"message": "success",
"data": null
}
更新对应的面试评价表
HTTP请求
POST https://api.mokahr.com/api-platform/v1/updateFeedbackTemplates
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
id | 是 | number | 面试评价表id |
name | 是 | string | 面试评价表名称 |
items | 是 | string | 面试评价表模块字符串(具体Items的json见下方Item详解) |
hireMode | 是 | number | 招聘模式 可选值: 1 :社招 2 :校招 |
是 | string | 操作人邮箱 | |
isOptimizedDeptIds | 是 | boolean | 面试评价表部门联动开关 |
departmentIds | 是 | array |
部门Id数组 |
departmentType | 是 | number | 部门类型0 :使用MOKA系统的1 :使用部门同步 |
description | 否 | string | 面试评价表描述 |
linkageRelationship | 否 | string | 面试评价表联动关系 |
Item参数详解
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
title | 是 | string | 模块名称 |
description | 否 | string | 模块描述 |
calcScoreType | 否 | string | 积分方式 'avg:平均分 |
subjects[] | 是 | array | 题目信息数组 |
subjects[].id | 是 | string | 题目ID(同一评价表下,题目ID不可重复) |
subjects[].type | 是 | integer | 题目类型 可选值: 1 :打分题2 :单选3 :描述4 :多选 |
subjects[].title | 是 | string | 题目名称 |
subjects[].description | 是 | string | 题目描述 |
subjects[].scoreType | 否 | number | type为1的时候必填,为其他值则不填 |
subjects[].options[] | 否 | array | 题目为选择题的时候(type为2和4的时候,必填)里面是json对象(eg:[{value:"选项1"}]) |
subjects[].arrangeType | 否 | number | type为2或者4的时候此时必填(也就是题目为单选或者多选的时候)意思为每行几个选项 |
subjects[].needReason | 否 | boolean | 是否需要打分综合描述 |
subjects[].isRequired | 否 | boolean | 是否必填 |
subjects[].weight | 否 | number | calcScoreType === 'weight' 才会出现 权重比 50 代表50% 另外只有打分题才会计算权重 |
subjects[].ratio | 否 | number | 系数非负一位小数,只有标准面试评价表中的打分题会出现 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 非200代表错误 |
message | string | 操作信息 |
data | object | 返回的数据题默认为null |
删除面试评价表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/deleteFeedbackTemplates \
-X POST
-H 'Content-Type: application/json' \
-d '
{
"id": "123"
} '
返回样例
{
"code": 200,
"message": "success",
"data": null
}
删除对应的面试评价表
HTTP请求
POST https://api.mokahr.com/api-platform/v1/deleteFeedbackTemplates
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
id | 是 | number | 面试评价表id |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 非200代表错误 |
message | string | 操作信息 |
data | object | 返回的数据体默认为null |
查询面试方案
请求样例
$ curl --location 'https://api.mokahr.com/api-platform/v1/interview-plan/getInterviewPlanConfig' \
--header 'Content-Type: application/json' \
--header 'Cookie: locale=zh-CN' \
--data '{
"ids" : [686]
}'
HTTP请求
POST https://api.mokahr.com/api-platform/v1/interview-plan/getInterviewPlanConfig
返回样例
{
"code": 0,
"codeType": 0,
"data": [
{
"interviewPlanConfig": [
{
"feedbackTemplateId": 128,
"interviewConclusionDecideRulesId": 0,
"interviewRoundId": 200000130,
"sort": 1
},
{
"feedbackTemplateId": 129,
"interviewConclusionDecideRulesId": 0,
"interviewRoundId": 200000131,
"sort": 2
},
{
"feedbackTemplateId": 0,
"interviewConclusionDecideRulesId": 0,
"interviewRoundId": 200000132,
"sort": 3
},
{
"feedbackTemplateId": 0,
"interviewConclusionDecideRulesId": 0,
"interviewRoundId": 200000450,
"sort": 4
}
],
"interviewPlanId": 686,
"interviewPlanName": "社招面试方案1",
"version": "1.0"
}
],
"msg": "成功",
"success": true
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
interviewPlanIds | 否 | number | 可以传多个面试方案,如果不传,则查询全部面试方案 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
interviewPlan | array | 面试方案数组 |
interviewPlanId | string | 面试方案id |
interviewPlanName | string | 面试方案名称 |
interviewPlanConfig | array | 面试方案配置 |
interviewRoundId | number | 面试轮次id |
feedbackTemplateId | number | 面试评价表id |
interviewConclusionDecideRulesId | number | 面试结果判定规则id |
sort | number | 排序值 |
nextCursor | number | 分页游标,第一次查询不用传(该属性值取自上次调用时,响应参数返回的nextcursor值) |
pageSize | number | 分页用的每页条数,默认100 |
拉取单场面试信息
请求样例
$ curl -X POST \
https://api.mokahr.com/api-platform/v1/interview/interview-information \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 1234-7d7d-49ee-866d-8fc34567' \
-d '{"applicationIds":[123],"email":"ttt@moka.com"}'
HTTP请求
POST https://api.mokahr.com/api-platform/v1/interview/interview-information
返回样例
{
"code": 0,
"codeType": 0,
"data": [
{
"applicationId": 123,
"createdAt": 1706521302000,
"entities": [
{
"duration": 30,
"id": 123,
"intervieweeVideoUrl": "",
"interviewerFeedbacks": [
{
"feedbackId": 412343,
"interviewer": {
"id": "5234",
"name": "刘"
},
"interviewerId": 5666
}
],
"round": 16,
"roundName": "这是很长的轮次名称啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦",
"startTime": 1706522400000
}
],
"interviewArranger": {
"id": "410105860",
"name": "wangzhuang"
},
"interviewArrangerId": 410105860,
"startDay": 1706522400000,
"typeCode": 1,
"valid": true
},
{
"applicationId": 123,
"createdAt": 1706596988000,
"entities": [
{
"duration": 30,
"id": 411242466,
"interviewerFeedbacks": [
{
"feedbackId": 412343,
"interviewer": {
"id": "5666",
"name": "刘"
},
"interviewerId": 5666
},
{
"feedbackId": 42344,
"interviewer": {
"id": "6592",
"name": "杜"
},
"interviewerId": 6592
},
{
"feedbackId": 41178,
"interviewer": {
"id": "6427",
"name": "高"
},
"interviewerId": 6427
}
],
"round": 17,
"roundName": "这是很长名字",
"startTime": 1706598000000
}
],
"interviewArranger": {
"id": "4101058",
"name": "wang"
},
"interviewArrangerId": 41010560,
"startDay": 1706598000000,
"typeCode": 1,
"valid": true
},
{
"applicationId": 123,
"createdAt": 1706521583000,
"entities": [
{
"duration": 30,
"id": 41124233,
"intervieweeVideoUrl": "",
"interviewerFeedbacks": [
{
"feedbackId": 41173095,
"interviewer": {
"id": "41010560",
"name": "wang"
},
"interviewerId": 41010560
}
],
"round": 17,
"roundName": "这是很长名字",
"startTime": 1706608800000
}
],
"interviewArranger": {
"id": "41010560",
"name": "wangzhuang"
},
"interviewArrangerId": 41010580,
"startDay": 1706608800000,
"typeCode": 1,
"valid": true
},
{
"applicationId": 42537377,
"createdAt": 1711422246000,
"entities": [
{
"duration": 30,
"id": 41124492,
"intervieweeVideoUrl": "https://meeting.tencent.com/dm/E7L4qy7pZm",
"interviewerFeedbacks": [
{
"feedbackId": 411788,
"interviewer": {
"id": "5666",
"name": "刘"
},
"interviewerId": 5666
}
],
"round": 17,
"roundName": "这是很长名字",
"startTime": 1711423800000
},
{
"duration": 30,
"id": 4112443,
"intervieweeVideoUrl": "https://meeting.tencent.com/dm/E7L4qy7p4m",
"interviewerFeedbacks": [
{
"feedbackId": 4117859,
"interviewer": {
"id": "7280",
"name": "胡"
},
"interviewerId": 780
}
],
"round": 17,
"roundName": "这是很长名字",
"startTime": 1711425600000
}
],
"interviewArranger": {
"id": "4105860",
"name": "wang"
},
"interviewArrangerId": 4101860,
"startDay": 1711423800000,
"typeCode": 4,
"valid": true
},
{
"applicationId": 123,
"createdAt": 1711620793000,
"entities": [
{
"duration": 30,
"id": 4112493,
"intervieweeVideoUrl": "",
"interviewerFeedbacks": [
{
"feedbackId": 4117858,
"interviewer": {
"id": "7280",
"name": "胡"
},
"interviewerId": 7280
}
],
"round": 17,
"roundName": "这是很长名字",
"startTime": 1711621800000
}
],
"interviewArranger": {
"id": "410105860",
"name": "wang"
},
"interviewArrangerId": 40105860,
"startDay": 1711621800000,
"typeCode": 1,
"valid": true
},
{
"applicationId": 425347377,
"createdAt": 1711684014000,
"entities": [
{
"duration": 30,
"id": 411244717,
"intervieweeVideoUrl": "",
"interviewerFeedbacks": [
{
"feedbackId": 411785598,
"interviewer": {
"id": "6427",
"name": "高"
},
"interviewerId": 6427
}
],
"round": 4,
"roundName": "初试",
"startTime": 1711684800000
}
],
"interviewArranger": {
"id": "410105860",
"name": "wang"
},
"interviewArrangerId": 410105860,
"startDay": 1711684800000,
"typeCode": 2,
"valid": true
},
{
"applicationId": 425347377,
"createdAt": 1712567677000,
"entities": [
{
"duration": 30,
"id": 411245123,
"intervieweeVideoUrl": "",
"interviewerFeedbacks": [
{
"feedbackId": 411786027,
"interviewer": {
"id": "7280",
"name": "胡"
},
"interviewerId": 7280
},
{
"feedbackId": 411786028,
"interviewer": {
"id": "410105860",
"name": "wang"
},
"interviewerId": 410105860
},
{
"feedbackId": 411786029,
"interviewer": {
"id": "26446",
"name": "Han"
},
"interviewerId": 26446
}
],
"round": 17,
"roundName": "这是很长名字",
"startTime": 1712568600000
}
],
"interviewArranger": {
"id": "410105860",
"name": "wang"
},
"interviewArrangerId": 410105860,
"startDay": 1712568600000,
"typeCode": 1,
"valid": true
}
],
"msg": "成功",
"success": true
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationIds | 是 | array | 申请id集合 |
是 | string | 邮箱 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
typeCode | integer | 面试类型:1.现场面试 2.集体面试 3.电话面试 4.视频面试 |
valid | boolean | 是否取消 false:取消 |
createdAt | date | 创建时间 |
applicationId | integer | 申请ID |
interviewArranger | object | 面试负责人 |
interviewArranger.id | string | 面试负责人id |
interviewArranger.name | string | 面试负责人名称 |
entities[] | array | 面试信息 |
entities[].id | integer | 面试ID |
entities[].duration | integer | 面试时间:单位分钟 |
entities[].intervieweeVideoUrl | string | 面试链接 |
entities[].round | integer | 面试轮次ID |
entities[].roundName | string | 面试轮次 |
entities[].startTime | date | 面试开始时间 |
entities[].interviewerFeedbacks[] | array | 面试反馈信息 |
entities[].interviewerFeedbacks[].feedbackId | integer | 面试评价id |
entities[].interviewerFeedbacks[].interviewer | object | 面试官信息 |
entities[].interviewerFeedbacks[].interviewer.id | string | 面试官id |
entities[].interviewerFeedbacks[].interviewer.name | string | 面试官名称 |
拉取面试评价表配置及数据
请求样例
$ curl -X POST \
https://api.mokahr.com/api-platform/v1/interview/getInterviewFeedbackTpl \
-H 'Content-Type: application/json' \
-H 'Postman-Token: ba847e42-10d2-42fa-9eee-3defd1' \
-d '{"feedbackId":123,"email":"ttt@moka.com"}'
HTTP请求
POST https://api.mokahr.com/api-platform/v1/interview/getInterviewFeedbackTpl
返回样例
{
"code": 0,
"codeType": 0,
"data": {
"applicationId": 42537,
"feedback": "2",
"feedbackId": 123,
"feedbackResultId": 4181,
"feedbackResultList": [
{
"feedbackResultId": 4181,
"feedbackResultName": "非常不满意"
},
{
"feedbackResultId": 4182,
"feedbackResultName": "不满意"
},
{
"feedbackResultId": 4183,
"feedbackResultName": "非常满意"
},
{
"feedbackResultId": 4184,
"feedbackResultName": "满意"
},
{
"feedbackResultId": 410026016,
"feedbackResultName": "待定"
}
],
"feedbackResultName": "非常不满意",
"feedbackTemplateResult": {
"description": "",
"items": [
{
"description": "",
"id": "2a67ba30-39b1-48f0-93f372e70d5b6",
"subjects": [
{
"arrangeType": 0,
"description": "1、的九康京东方就\n2、大师级绝对第三节课\n3、大师空",
"id": "1e3cb4a0-7c3f-481e-8a4abfe5fbf6",
"isFoldDescription": true,
"isRequired": false,
"needReason": true,
"relatedQuestion": true,
"result": 2,
"scoreType": 5,
"title": "11",
"type": 1
},
{
"arrangeType": 0,
"description": "1、大家看见地方接口\n2、杜佳的看速度金卡戴珊就\n3、大师得大师级\n4、大师级绝对是绝是加快速度",
"id": "5bcc1188-da8c-4b13-8f94-919327f2",
"isFoldDescription": false,
"isRequired": false,
"needReason": false,
"relatedQuestion": true,
"scoreType": 5,
"title": "12",
"type": 1
}
],
"title": "这是新建的评价表"
},
{
"description": "",
"id": "55a1c7dc-6af2-49ee-86c1aca40c57",
"subjects": [
{
"arrangeType": 0,
"description": "我认为人人车23场",
"id": "23d04fbd-2333-4f13-9d20-29f65c89cdb7",
"invisible": true,
"isRequired": false,
"needReason": false,
"scoreType": 5,
"title": "万人次",
"type": 3
},
{
"arrangeType": 0,
"description": "a是的",
"id": "e4710ffd-43b8-4142-83d1-899ad5",
"isRequired": false,
"needReason": false,
"scoreType": 5,
"title": "2",
"type": 3
}
],
"title": "仍维持"
},
{
"description": "是的",
"id": "0fee2d7e-fdca-43bc141e9a57",
"subjects": [
{
"arrangeType": 0,
"description": "安德森",
"id": "cce8922c-82c9-4b22-b638-24210c36bd35",
"isRequired": false,
"needReason": false,
"options": [
{
"value": "选项1"
},
{
"value": "选项2"
}
],
"scoreType": 5,
"title": "2阿斯顿",
"type": 2
}
],
"title": "阿斯顿"
}
],
"name": "校招面试评价表111"
},
"interviewId": 411243,
"interviewerId": 4105860
},
"msg": "成功",
"success": true
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
feedbackId | 是 | Integer | 面试反馈id |
是 | string | 邮箱 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
feedbackId | Integer | 面试评价ID |
interviewerId | Integer | 面试官id |
interviewId | Integer | 面试id |
applicationId | Integer | 申请id |
feedback | string | 评价内容 |
feedbackResultId | Integer | 评价结果ID |
feedbackResultName | string | 评价结果 |
feedbackTemplateResult | object | 评价明细 |
feedbackTemplateResult.name | string | 评价名称 |
feedbackTemplateResult.description | string | 评价描述 |
feedbackTemplateResult.items[] | array | 评价明细 |
feedbackTemplateResult.items[].id | string | 模块id |
feedbackTemplateResult.items[].description | string | 模块描述 |
feedbackTemplateResult.items[].title | string | 模块标题 |
feedbackTemplateResult.items[].subjects[] | array | 模块下每个小题的信息 |
feedbackTemplateResult.items[].subjects[].id | string | 小题id |
feedbackTemplateResult.items[].subjects[].description | string | 小题描述 |
feedbackTemplateResult.items[].subjects[].isRequired | boolean | 是否必须 |
feedbackTemplateResult.items[].subjects[].needReason | boolean | 是否需要原因 |
feedbackTemplateResult.items[].subjects[].arrangeType | integer | 安排类型 |
feedbackTemplateResult.items[].subjects[].scoreType | integer | 小题分数类型 |
feedbackTemplateResult.items[].subjects[].title | string | 小题题目标题 |
feedbackTemplateResult.items[].subjects[].type | integer | 题目类型,可选值: 1:打分题 2: 单选题 3: 描述题 4: 多选题 |
feedbackTemplateResult.items[].subjects[].options[] | array | 选项字符串数组(只在type为2、4时有效) |
feedbackTemplateResult.items[].subjects[].options[].value | string | 选项值 |
feedbackResultList[] | array | 可选择的评价结果列表 |
feedbackResultList[].feedbackResultId | interger | 评价结果ID |
feedbackResultList[].feedbackResultName | string | 评价结果 |
填写面试反馈
请求样例
$ curl -X POST \
https://api.mokahr.com/api-platform/v1/interview/updateInterviewFeedback \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 18cd54dc-89f1-4ee1-9801-340d' \
-d '{
"orgId": "nonobank",
"email": "wang@mokahr.com",
"applicationId": 427,
"feedback": "2",
"feedbackId": 411795,
"feedbackResultId": 4181,
"feedbackResultList": [
{
"feedbackResultId": 4181,
"feedbackResultName": "非常不满意"
},
{
"feedbackResultId": 4182,
"feedbackResultName": "不满意"
},
{
"feedbackResultId": 4183,
"feedbackResultName": "非常满意"
},
{
"feedbackResultId": 4184,
"feedbackResultName": "满意"
},
{
"feedbackResultId": 410026016,
"feedbackResultName": "待定"
}
],
"feedbackResultName": "非常不满意",
"feedbackTemplateResult": {
"description": "",
"items": [
{
"description": "",
"id": "2a67ba30-39b1-48f0-93f3-46672e70d5b6",
"subjects": [
{
"arrangeType": 0,
"description": "1、的九分裤京东方就就\n2、大师级绝对是就大三节课\n3、大师级绝对三节课四大皆空",
"id": "1e3cb4a0-7c3f-481e-ba90-8a4abfe5fbf6",
"isFoldDescription": true,
"isRequired": false,
"needReason": true,
"relatedQuestion": true,
"result": 2,
"scoreType": 5,
"title": "11",
"type": 1
},
{
"arrangeType": 0,
"description": "1、大家减级的尽快答复看见地方接口\n2、杜佳美大师度金卡戴珊就\n3、大师级大师级试看见的都可见觉得大师级\n4、大师级绝对三节课绝对是绝对是加快速度",
"id": "5bcc1188-da8c-4b13-8f94-9954619327f2",
"isFoldDescription": false,
"isRequired": false,
"needReason": false,
"relatedQuestion": true,
"scoreType": 5,
"title": "12",
"type": 1
}
],
"title": "这是新建的评价表"
},
{
"description": "",
"id": "55a1c7dc-6af2-49ee-86c1-c908aca40c57",
"subjects": [
{
"arrangeType": 0,
"description": "我认为人人车23场",
"id": "23d04fbd-2333-4f13-9d20-29f65c89cdb7",
"invisible": true,
"isRequired": false,
"needReason": false,
"scoreType": 5,
"title": "万人次",
"type": 3
},
{
"arrangeType": 0,
"description": "a是的",
"id": "e4710ffd-43b8-4142-83d1-84382e099ad5",
"isRequired": false,
"needReason": false,
"scoreType": 5,
"title": "2",
"type": 3
}
],
"title": "仍维持"
},
{
"description": "是的",
"id": "0fee2d7e-fdca-47ab-a465-53bc141e9a57",
"subjects": [
{
"arrangeType": 0,
"description": "安德森",
"id": "cce8922c-82c9-4b22-b638-24210c36bd35",
"isRequired": false,
"needReason": false,
"options": [
{
"value": "选项1"
},
{
"value": "选项2"
}
],
"scoreType": 5,
"title": "2阿斯顿",
"type": 2
}
],
"title": "阿斯顿"
}
],
"name": "校招面试评价表111"
},
"interviewId": 41123,
"interviewerId": 410105860
}'
HTTP请求
POST https://api.mokahr.com/api-platform/v1/interview/updateInterviewFeedback
返回样例
{
"code": 0,
"codeType": 0,
"msg": "成功",
"success": true
}
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
feedbackId | 是 | Integer | 面试评价ID |
是 | String | 邮箱 | |
feedback | 否 | string | 评价内容(传feedbackResultId才会生效) |
feedbackResultId | 否 | Integer | 评价结果ID |
feedbackTemplateResult | 否 | object | 评价明细 |
feedbackTemplateResult.items[] | 否 | array | 评价明细 |
feedbackTemplateResult.items[].id | 否 | string | 模块id |
feedbackTemplateResult.items[].subjects[] | 否 | array | 模块下每个小题的信息 |
feedbackTemplateResult.items[].subjects[].id | 否 | string | 小题id |
feedbackTemplateResult.items[].subjects[].result | 否 | object | 根据题目类型type不同: 1:打分题 例如 3(number 表示分数) 2: 单选题 例如 0(integer 表示下标,从0开始) 3: 描述题 例如 优秀(string 表示描述) 4: 多选题 例如 [0,3] (array 表示多选的下标) |
feedbackTemplateResult.items[].subjects[].reason | 否 | string | 原因,当需要传原因时传 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 接口调用状态 |
msg | string | 返回的调用消息 |
success | boolean | 是否调用成功 |
Offer API
此部分API主要用于更新候选人在Offer/入职阶段的状态。应用场景为候选人通过webhook推送到其他系统,其他系统的信息同步更新Moka内该候选人状态,以保证数据的准确性以及避免手动二次操作。
创建Offer
请求样例
$ curl https://api.mokahr.com/api-platform/v1/create-offer \
-u 'your_api_key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '
{
"applicationId": 12,
"salaryNumber": 1000,
"salaryType": 1,
"checkinDate": "2018-08-06T16:00:00.000Z",
"contactUserName": "张三",
"contactEmail": "zhangsan@mokahr.com",
"contactPhone": "18612345678",
"locationId": 1,
"customFields": [
{
"name": "字段1",
"value": "value1"
},
{
"name": "字段2",
"value": 2
}
]
} '
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "错误信息"
}
传入Offer信息,创建一个Offer。需要您的CSM开启该功能
HTTP请求
POST https://api.mokahr.com/api-platform/v1/create-offer
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 要更新offer审批结果的申请id |
salaryNumber | 否 | integer | 候选人薪资 |
salaryType | 否 | integer | 薪资类型 可选值: 1 :时薪2 :日薪3 :月薪4 :年薪 |
checkinDate | 否 | string | 入职时间 |
locationId | 否 | integer | 入职地点id |
contactUserName | 否 | string | 联系人姓名 |
contactPhone | 否 | string | 联系人电话 |
contactEmail | 否 | string | 联系人邮箱 |
customFields | 否 | array | 自定义字段 |
customFields[].id | 否 | string | 自定义字段名称(注:Id和name参数必须传其一) |
customFields[].name | 否 | string | 自定义字段名称(注:Id和name参数必须传其一) |
customFields[].value | 否 | string | 自定义字段值 |
creatorEmail | 否 | string | 创建人邮箱 |
creatorNumber | 否 | string | 创建人工号 |
toCandidateAttachment | 否 | array | 发送给候选人的附件key(通过公共API附件上传接口获取),数量不能超过5个 |
toApproverAttachment | 否 | array | 发送给审批人的附件key(通过公共API附件上传接口获取),数量不能超过5个 |
hcId | 否 | integer | 关联headcount ID |
jobRankId | 否 | integer | 职位级别id(获取企业职位级别接口获取) |
departmentCode | 否 | string | 入职部门code |
isCreateOfferAttachment | 否 | boolean | false:不创建offer附件,true:创建默认offer附件 |
templateId | 否 | integer | offer附件模板id |
更新offer
用于对系统中已存在的offer进行更新,更新offer必审字段后,原Offer审批会失效,需要重新发起审批
请求样例
$ curl https://api.mokahr.com/api-platform/v1/offers/offerFields/update \
-u 'your_api_key:' \
-X POST \
-d '
{
"applicationId": 1,
"orgId": "test",
"operatorName": "zwj",
"fields": [
{
"name": "预计入职时间",
"value": "2020-09-09"
}
]
} '
返回样例
{
"code": 200,
"msg": "xxx"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/offers/offerFields/update
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | Long | 申请id |
orgId | 是 | String | orgId |
operatorName | 是 | String | 操作人 |
fields | 是 | array | 需要更新的字段,可以有多个元素 |
fields[].id | 否 | string | 自定义字段名称(注:Id和name参数必须传其一) |
fields[].name | 是 | String | 字段中文名称 |
fields[].value | 是 | String | name对应的值 |
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
获取offer附件模板列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/listOfferTemplateByOrgId \
-u 'your_api_key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "hireMode": 1 }'
返回样例
{
"code": 200,
"msg": "success",
"data": [
{
"id": 410002334,
"templateName": "系统默认Offer附件模板",
"templateCategory": 1,
"version": "1.0"
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/listOfferTemplateByOrgId
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
hireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
id | integer | 模板id |
templateName | string | 模板名称 |
templateCategory | integer | 模板类型 可选值: 1 :在线模板2 :导入模板 |
获取Offer审批列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/offerApprovals?email={email}&period={period} \
-u 'your_api_key:' \
-X GET \
返回样例
{
"total": 1,
"offerApprovals": [
{
"candidateName": "Arturia Pendragon",
"jobTitle": "Saber",
"departmentName": "Servants",
"initiatedAt": "2018-03-16T09:10:26.000Z",
"url": "https://app.mokahr.com/"
}
]
}
根据用户的email和offer审批状态获取需要该用户审批的offer。
HTTP请求
GET https://api.mokahr.com/api-platform/v1/offerApprovals?email={email}&period={period}
请求Query参数
字段 | 必填 | 描述 |
---|---|---|
是 | 当前用户在moka系统中使用的email | |
period | 是 | 审批状态 可选值: past : 已审批pending : 待审批 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
total | integer | 返回数据总数量 |
offerApprovals[].candidateName | string | 候选人姓名 |
offerApprovals[].jobTitle | string | 职位名称 |
offerApprovals[].departmentName | string | 部门名称 |
offerApprovals[].initiatedAt | string | 发起审批时间。日期格式为:ISO8601 |
offerApprovals[].url | string | 审批url |
审批offer
请求样例
$ curl https://api.mokahr.com/api-platform/v1/applications/offerApproval \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: application/json' \
-d '
{
"applicationId": 12,
"status": 1
} '
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "错误信息"
}
根据申请ID和状态更新offer审批结果,需要您的csm开启外部审批功能
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/applications/offerApproval
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 要更新offer审批结果的申请id |
status | 是 | integer | 审批结果更新状态 可选值: 1 : 审批通过2 : 审批驳回3 : 审批中 |
发送offer
请求样例
$ curl https://api.mokahr.com/api-platform/v1/sendOffer \
-u 'your_api_key:' \
-X POST \
-H 'Content-Type: application/json' \
-d '
{
"applicationId":1234,
"notifySms":false,
"notifyEmail":true,
"notifyWechat":true
}'
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "错误信息"
}
根据applicationId发送offer
HTTP请求
POST https://api.mokahr.com/api-platform/v1/sendOffer
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 申请Id |
hrEmail | 是 | string | 操作hr邮箱 |
notifySms | 否 | boolean | 是否给候选人发送短信,默认否 |
notifyEmail | 否 | boolean | 是否给候选人发送邮件,默认否 |
notifyWechat | 否 | boolean | 是否给候选人发送微信,默认否 |
ccUserEmails | 否 | array | 抄送人(受notifyEmail开关控制) eg: ["123@mail.com"] |
接收/拒绝Offer
设置候选人Offer反馈状态,Moka 系统收到后将对应的申请标记为接受或拒绝。
请求样例
$ curl http://api.mokahr.com/api-platform/v1/offer/status?applicationId=89&accepted=1&reasonId=1 \
-u 'your_api_key:' \
-X PUT \
返回样例
{
"code": 0
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/offer/status?applicationId={applicationId}&accepted={accepted}&reasonId={reasonId}
请求参数
字段 | 必填 | 描述 |
---|---|---|
applicationId | 是 | 申请id |
accepted | 是 | 反馈状态 可选值: 1 :接受0 :拒绝 |
reasonId | 否 | 系统的归档原因和客户自定的归档原因id, 当反馈状态是拒绝时为必填项 |
talentPoolId | 否 | 公开人才库id, 不填写默认进入公共人才库, 当反馈状态是拒绝时才会生效 |
fbTime | 否 | 反馈时间 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 0设置成功 |
获取offer自定义字段列表
请求样例
$ curl https://api.mokahr.com/api-platform/v2/offers/custom_fields
-u 'your-api-key:'
-X POST
-H 'Content-Type: application/json'
-d '{
"hireMode": 1
}'
返回样例
{
"code": 0,
"message": "success",
"data": [
{
"id": "7513",
"name": "预计入职时间",
"hireMode": 1,
"type": 4,
"isBuiltin": true,
"isRequired": false,
"isSensitive": false,
"isVisible": true,
"reapprovalRequired": false
},
{
"id": "410000250",
"name": "多行文本-1",
"hireMode": 1,
"type": 1,
"supplementaryLocales": {
"en-US": {
"name": ""
}
},
"isBuiltin": false,
"isRequired": true,
"isSensitive": true,
"isVisible": true,
"reapprovalRequired": true
},
{
"id": "410000251",
"name": "是否题",
"hireMode": 1,
"type": 3,
"supplementaryLocales": {
"en-US": {
"name": ""
}
},
"isBuiltin": false,
"isRequired": false,
"isSensitive": false,
"isVisible": true,
"reapprovalRequired": false
}, {
"id": "410002280",
"name": "选择题",
"hireMode": 1,
"type": 6,
"supplementaryLocales": {
"en-US": {
"name": "",
"detail": []
}
},
"detail": [
"A",
"B",
"C",
"D"
],
"codes": [
"1001",
"1002",
"1003",
"1004"
],
"isBuiltin": false,
"isRequired": false,
"isSensitive": false,
"isVisible": true,
"reapprovalRequired": false
},
{
"id": "410002282",
"name": "年月",
"hireMode": 1,
"type": 4,
"supplementaryLocales": {
"en-US": {
"name": ""
}
},
"isBuiltin": false,
"isRequired": false,
"isSensitive": false,
"isVisible": true,
"reapprovalRequired": false
},
{
"id": "410002283",
"name": "时间年月日----0",
"hireMode": 1,
"type": 9,
"supplementaryLocales": {
"en-US": {
"name": ""
}
},
"isBuiltin": false,
"isRequired": false,
"isSensitive": false,
"isVisible": true,
"reapprovalRequired": false
},
{
"id": "410002292",
"name": "时间段",
"hireMode": 1,
"type": 7,
"supplementaryLocales": {
"en-US": {
"name": ""
}
},
"isBuiltin": false,
"isRequired": false,
"isSensitive": false,
"isVisible": true,
"reapprovalRequired": false
},
{
"id": "410012394",
"name": "测33333试",
"hireMode": 1,
"type": 6,
"supplementaryLocales": {
"en-US": {
"name": "测试-单行文本-英文名称",
"detail": [
"选项1-e",
"选项2-e"
]
}
},
"detail": [
"选项1",
"选项2"
],
"codes": [
"1005",
"1006"
],
"isBuiltin": false,
"isRequired": true,
"isSensitive": true,
"isVisible": false,
"reapprovalRequired": true
}
]
}
HTTP请求
POST https://api.mokahr.com/api-platform/v2/offers/custom_fields
请求body
字段 | 是否必填 | 类型 | 描述 |
---|---|---|---|
hireMode | 是 | integer | 招聘模式 可选值: 1 :社招 2 :校招 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | integer | 返回的code:200正常,其他的都是错误 |
msg | string | 成功返回success,失败返回false |
data | array or object | 如果是单条数据则返回object多条数据返回的是数组 |
data.id | integer | 自定义字段id |
data.name | string | 自定义字段名称 |
data.hireMode | integer | 招聘类型 可选值: 1 : 社招2 :校招 |
data.type | integer | 自定义字段类型 可选值: 1 :单行文本2 :多行文本3 :是否题4 :年月选择5 :文件6 :选择题7 :时间段8 :Offer关联的HC9 :日期 |
data.detail | array | 自定义字段选择项 |
data.codes | array | 自定义字段选择项对应的编码 |
data.supplementaryLocales | object | 多语言的object |
data.supplementaryLocales.en-US | object | 多语言的英文object |
data.supplementaryLocales.en-US.name | string | 自定义字段的英文名称 |
data.supplementaryLocales.en-US.detail | array | 自定义字段选择项 |
data.isBuiltin | boolean | 是否内建 |
data.isRequired | boolean | 是否必填 |
data.isSensitive | boolean | 是否私密 |
data.isVisible | boolean | 是否可见 |
data.reapprovalRequired | boolean | 是否必审 |
新建offer自定义字段列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/offers/custom_field/create
-u 'your-api-key:'
-X POST
-H 'Content-Type: application/json'
-d '
{
"hireMode": 1,
"detail":["选项1","选项2"],
"codes":["1005","1006"],
"supplementaryLocales":{
"en-US": {
"name":"测试-单行文本-英文名称",
"detail":["选项1-e","选项2-e"]
}
},
"isRequired": true,
"isSensitive": true,
"isVisible": false,
"name": "测33333试",
"reapprovalRequired": true,
"type": 6
}
'
返回样例
{
"code": 200,
"success": true,
"msg": "success",
"data": {
"id": "410012399"
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/offers/custom_field/create
请求body
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
name | 是 | string | 自定义字段名称 |
hireMode | 是 | integer | 招聘类型 可选值: 1 : 社招2 : 校招 |
type | 是 | integer | 自定义字段类型 可选值: 1 :单行文本2 :多行文本3 :是否题4 :年月选择6 :选择题7 :时间段8 :Offer关联的HC9 :日期10 :数字 |
detail | 否 | array | 自定义字段选择项,选填,当type为6的时候,添加 |
data.codes | 否 | array | 自定义字段选择项对应的编码 |
supplementaryLocales | 否 | object | 多语言的object,如果设置英文一定要按照下面的格式设定参数,选填 |
supplementaryLocales.en-US | 否 | object | 多语言的英文object,选填 |
supplementaryLocales.en-US.name | 否 | string | 自定义字段的英文名称,选填 |
supplementaryLocales.en-US.detail | 否 | array | 自定义字段选择项,选填 |
isRequired | 否 | boolean | 必填,选填默认为false |
isSensitive | 否 | boolean | 是否私密,选填默认为false |
isVisible | 否 | boolean | 是否可见,选填默认为true |
reapprovalRequired | 否 | boolean | 是否必审,选填默认为false |
attributeRule | 否 | object | type为10的时候,所使用的属性规则 |
attributeRule.decimalLength | 否 | number | 小数的位数,默认为null |
attributeRule.isSupportNegative | 否 | boolean | 是否支持负数,默认不支持 |
attributeRule.numberRange | 否 | objeact | 数字范围 |
attributeRule.numberRange.min | 否 | number | 数字范围的最小值 |
attributeRule.numberRange.max | 否 | number | 数字范围的最大值 |
返回
返回的body的JSON如下
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
success | boolean | 已废弃,请勿用于业务逻辑判断,请使用code来判断调用结果 |
data | object | 返回为一个对象 |
data.id | string | 返回当前创建字段的id |
更新offer自定义字段列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/offers/custom_field/update
-u 'your-api-key:'
-X PUT
-H 'Content-Type: application/json'
-d '
{
"id":"410012399",
"hireMode": 1,
"detail":["选项1","选项2"],
"codes":["1005","1006"],
"supplementaryLocales":{
"en-US": {
"name":"测试-单行文本-英文名称",
"detail":["选项1-e","选项2-e"]
}
},
"isRequired": true,
"isSensitive": true,
"isVisible": false,
"name": "测33333试",
"reapprovalRequired": true,
"type": 6
}
'
返回样例
{
"code": 200,
"success": true,
"msg": "success",
"data": null
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/offers/custom_field/update
请求body
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
id | 是 | integer | 需要修改的自定义字段的id,必填 |
name | 否 | string | 自定义字段名称,选填 |
hireMode | 否 | integer | 招聘类型 可选值: 1 :社招2 : 校招 |
type | 否 | integer | 自定义字段类型 可选值: 1 :单行文本2 :多行文本3 :是否题4 :年月选择6 :选择题7 :时间段9 :日期10 :数字 |
detail | 否 | array | 自定义字段选择项,选填 |
data.codes | 否 | array | 自定义字段选择项对应的编码 |
supplementaryLocales | 否 | object | 多语言的object,如果设置多语音一定要按照下面的格式设定参数,选填 |
supplementaryLocales.en-US | 否 | object | 多语言的英文object,选填 |
supplementaryLocales.en-US.name | 否 | string | 自定义字段的英文名称,选填 |
supplementaryLocales.en-US.detail | 否 | array | 自定义字段选择项,选填 |
isRequired | 否 | boolean | 必填,选填 |
isSensitive | 否 | boolean | 是否私密,选填 |
isVisible | 否 | boolean | 是否可见,选填 |
reapprovalRequired | 否 | boolean | 是否必审,选填 |
attributeRule | 否 | object | type为10的时候,所使用的属性规则 |
attributeRule.decimalLength | 否 | number | 小数的位数,默认为null |
attributeRule.isSupportNegative | 否 | boolean | 是否支持负数,默认不支持 |
attributeRule.numberRange | 否 | objeact | 数字范围 |
attributeRule.numberRange.min | 否 | number | 数字范围的最小值 |
attributeRule.numberRange.max | 否 | number | 数字范围的最大值 |
返回
返回的body的JSON如下
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
success | boolean | 已废弃,请勿用于业务逻辑判断,请使用code来判断调用结果 |
data | object | 返回为null |
删除offer自定义字段列表
请求样例
$ curl https://api.mokahr.com/api-platform/v1/offers/custom_field/delete
-u 'your-api-key:'
-X DELETEl
-H 'Content-Type: application/json'
-d '
{
"id":"410012399"
}
'
返回样例
{
"code": 200,
"success": true,
"msg": "success",
"data": null
}
HTTP请求
DELETE https://api.mokahr.com/api-platform/v1/offers/custom_field/delete
请求body
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
id | 是 | integer | 需要删除的自定义字段的id,必填 |
返回
返回的body的JSON如下
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
success | boolean | 已废弃,请勿用于业务逻辑判断,请使用code来判断调用结果 |
data | object | 返回为null |
获取offer附件
请求样例
$ curl https://api.mokahr.com/api-platform/v1/offer/getOfferAttachment
-u 'your-api-key:'
-X POST
-H 'Content-Type: application/json'
-d '
{
"applicationId":"410012399"
}
'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"downLoadUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/0d4281d9d86c43d8b0c46f1ad9fc9b0bf06d0e39fe6645e9a20b5171050259d1.pdf?Expires=1605597667&OSSAccessKeyId=LTAIoEXIQWCGUAZO&Signature=gVAYJv7BBCbIQ7fLYx3K%2Fy1FOso%3D×tamp=1605594067646"
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/offer/getOfferAttachment
请求body
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 当前候选人的申请id,必填 |
返回
返回的body的JSON如下
字段 | 类型 | 描述 |
---|---|---|
code | string | 200 :成功 非200代表错误 |
msg | string | 接口返回值说明 |
data | object | 对象 |
data.downLoadUrl | string | offer附件的链接 |
入职API
标记候选人未入职
请求样例
$ curl https://api.mokahr.com/api-platform/v1/applications/33582/rejected \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: application/json' \
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "该申请已归档"
}
将申请状态归档,并放入人才库。申请必须处于“待入职”阶段,并且不在人才库中。
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/applications/{applicationId}/rejected
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 要标记已入职的候选人申请id |
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
archiveReasonId | 否 | number | 归档原因id,如果不传,默认为内置的福利待遇不满足 |
talentPoolId | 否 | string | 人才库id,如果不传,默认为内置的系统公共人才库 (先用查询人才库列表接口,查询人才库id) |
detail | 否 | string | 归档详细原因,可以为空 |
返回
返回body的JSON数据如下:
字段 | 描述 |
---|---|
success | boolean |
errorMessage | string |
标记候选人已入职
请求样例
$ curl https://api.mokahr.com/api-platform/v1/applications/33582/hired \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: application/json' \
-d '
{
"hcId": 5,
"hiredAt": "2018-08-06T16:00:00.000Z",
"probation": 3
} '
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "hcId 参数错误"
}
{
"success": false,
"errorMessage": "该申请已归档"
}
根据候选人申请id及对应招聘需求 id。
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/applications/{applicationId}/hired
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 要标记已入职的候选人申请id |
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
hcId | 否 | integer | 1、当”isUseOfferHcid“参数为1时,(1)若”hcId“不传参,则自动填入当前申请下的offer所关联的招聘需求id;若offer所关联的招聘需求id为空,则”hcId“参数为空。(2)若”hcId“传参,则使用传的值 2、如果传的值为null,不允许传hcId=“”或hcId=null,直接不传此字段即可。 |
hiredAt | 是 | string | 实际入职时间 |
probation | 是 | integer | 试用期 可选值:0-6 0 :无试用期1-6 :对应几个月试用期 |
isUseOfferHcid | 否 | integer | 入职时是否使用offer关联的招聘需求。可选值:传1:“hcId”参数在不传参时会自动填入当前申请下的offer所关联的招聘需求id。不传参:不执行“入职时使用offer关联的招聘需求”的逻辑。 |
talentPoolIds | 否 | array | 人才库ID列表 该字段为空或没有任意入职人才库ID时,将候选人放入“系统入职人才库” 该字段中含“入职人才库ID”时,放入指定的入职人才库 该字段中含“非入职人才库”时,不会放入该人才库 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
success | boolean | 成功与否 |
errorMessage | string | 报错信息 |
标记候选人已入职转正
请求样例
$ curl https://api.mokahr.com/api-platform/v1/applications/33582/corrected \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: application/json' \
-d '
{
"status": 1,
"correctedAt": "2018-08-06T16:00:00.000Z"
} '
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "转正状态错误"
}
根据候选人申请id。
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/applications/{applicationId}/corrected
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 要标记已转正\未转正的候选人申请id;此申请必须已经进入入职人才库中 |
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
status | 是 | integer | 更新的转正状态 可选值 1 :转正 0 :未转正 |
correctedAt | 否 | string | 实际转正时间;当status=1时,传递,若不传则默认为当前时间 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
success | boolean | 成功与否 |
errorMessage | string | 报错信息 |
标记候选人已离职
请求样例
$ curl https://api.mokahr.com/api-platform/v1/applications/35392/resign \
-u 'your_api_key:' \
-X PUT \
-H 'Content-Type: application/json' \
-d '
{
"type": 1,
"detail":"世界那么大,我想去看看",
"time": "2018-08-06T16:00:00.000Z"
}
返回样例
{
"success": true
}
or
{
"success": false,
"errorMessage": "找不到归档原因,归档信息错误",
"code": 40040102
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/applications/{applicationId}/resign
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
applicationId | 是 | integer | 要标记已离职的候选人申请id |
请求body参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
reasonType | 否 | integer | 离职类型的归档原因id |
detail | 是 | string | 离职原因 |
time | 否 | string | 离职时间 (默认请求时间) |
否 | string | 操作人的邮箱 | |
talentPoolId | 否 | array | 操作人有权限的人才库ID(先用查询人才库列表接口,查询人才库id) |
isResignWriteJob | 否 | boolean | 是否回写离职信息 可选值: 0 :不开启1 :开启,开启后需填写离职职位默认:0 |
resignJobName | 否 | string | 离职职位 |
resignDepartment | 否 | string | 离职部门 |
reason | 否 | int | 离职原因 可选值: 0 :已离职1 :主动离职2 :被动离职 |
resignJobType | 否 | string | 离职职类 当传入的职类完全相同时系统会自动合并 |
返回
返回body的JSON数据如下:
字段 | 描述 |
---|---|
success | boolean 已废弃,请勿用于业务逻辑判断,请使用code来判断调用结果 |
errorMessage | string 报错信息 |
code | string |
可能的错误信息
code | errorMessage | 说明 |
---|---|---|
0 | success | 成功 |
40040101 | applicationId.error | 候选人申请id错误(a.不存在该申请id;b.类型错误) |
40040102 | reason.error | 离职原因错误(类型错误) |
40040104 | talent_pool_Id.error | 人才库错误(a.不是离职人才库) |
40040105 | email.error | 用户邮箱错误(a.不存在该用户;b.邮箱错误) |
40040106 | user_permission.error | 用户无权限 |
内推奖励API
查询内推奖励
请求样例
$ curl https://api.mokahr.com/api-platform/v1/recommend/reward/getRecord
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '{operatorEmail: "test@test.com", statusList: ["unconfirmed"], "rewardRecordCreateAtRange": {
"start": "2024-01-01",
"end": "2025-01-01",
}, "pageNum": "1", "pageSize": "30"}'
返回样例
{
"code": 0,
"codeType": 0,
"data": {
"list": [
{
"applicationCreatedAt": "2024-10-09",
"candidate": {
"name": "某某某"
},
"job": {
"id": "67f079a1-9372-4f2f-a284-28038b491f57",
"mjCode": "MJ025244",
"title": "咖啡师"
},
"lastChangeInfo": {},
"lastChangeOperator": {
"email": "test@mokahr.com",
"id": 349509,
"name": "Moka同学",
"role": 50,
"roleName": "超级管理员"
},
"recommender": {
"email": "testo@mokahr.com",
"id": 355575,
"name": "test",
"number": "355575",
"phone": "11111111111",
"role": 50,
"roleName": "超级管理员"
,
"recordNo": "OD10083726924",
"reward": {
"money": 0,
"score": 333
},
"rewardCreatedAt": "2024-10-09",
"rewardReason": "执行奖励原因",
"status": "unconfirmed",
"statusLastChangeAt": "2024-10-09",
"version": "1.0"
}
],
"pageNum": 1,
"pageSize": 30,
"size": 1,
"total": 1,
"version": "1.0"
},
"msg": "成功",
"success": true
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/recommend/reward/getRecord
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
operatorEmail | 否 | string | 操作人邮箱(如果传递了操作人邮箱,则按照该用户的权限查询对应记录) |
operatorNumber | 否 | string | 操作人工号(如果传递了操作人工号,则按照该用户的权限查询对应记录) |
statusList | 否 | array | 要查询奖励状态列表,默认待确认 可选值: unconfirmed :待确认confirmed :已确认cancel :已取消 |
applicationCreateAtRange | 否 | object | 申请创建时间区间 |
applicationCreateAtRange.start | 否 | string | 申请创建开始时间(yyyy-MM-dd) |
applicationCreateAtRange.end | 否 | string | 申请创建结束时间(yyyy-MM-dd) |
rewardRecordCreateAtRange | 否 | object | 奖励发生日期区间 |
rewardRecordCreateAtRange.start | 否 | string | 奖励发生开始时间(yyyy-MM-dd) |
rewardRecordCreateAtRange.end | 否 | string | 奖励发生结束时间(yyyy-MM-dd) |
statusLastChangeAt | 否 | object | 确认/取消日期区间 |
statusLastChangeAt.start | 否 | string | 确认/取消开始时间(yyyy-MM-dd) |
tatusLastChangeAt.end | 否 | string | 确认/取消结束时间(yyyy-MM-dd) |
pageNum | 否 | integer | 页码,默认值为1 |
pageSize | 否 | integer | 每页大小,默认值为30 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
total | integer | 总记录条数 |
size | integer | 当前页数量 |
pageNum | integer | 当前页数 |
pageSize | integer | 每页条数 |
list[] | array | 奖励记录集合 |
list[].recommender | object | 内推人 |
list[].recommender.name | string | 内推人姓名 |
list[].recommender.id | long | 内推人ID |
list[].recommender.role | integer | 内推人角色 |
list[].recommender.roleName | string | 内推人角色描述 |
list[].recommender.email | string | 内推人邮箱 |
list[].recommender.phone | string | 内推人手机号 |
list[].recommender.number | string | 内推人工号 |
list[].candidate | object | 候选人 |
list[].candidate.name | string | 候选人姓名 |
list[].candidate.applicationId | long | 申请ID |
list[].job | object | 职位信息 |
list[].job.title | string | 职位名称 |
list[].job.id | string | 职位ID |
list[].job.mjCode | string | 职位编号 |
list[].recordNo | string | 奖励记录编号 |
list[].status | string | 奖励状态 |
list[].reward | object | 奖励内容 |
list[].reward.score | long | 奖励积分 |
list[].reward.money | long | 奖励现金 |
list[].rewardReason | string | 奖励原因 |
list[].applicationCreatedAt | string | 申请创建日期(yyyy-MM-dd) |
list[].rewardCreatedAt | string | 奖励发生日期(yyyy-MM-dd) |
list[].statusLastChangeAt | string | 确认/取消日期(yyyy-MM-dd) |
list[].lastChangeInfo | object | 取消原因 |
list[].lastChangeInfo.reason | string | 取消原因描述 |
确认内推奖励
请求样例
$ curl https://api.mokahr.com/api-platform/v1/recommend/reward/confirm
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '{operatorEmail: "test@test.com", recordNoList:["1234567"]}'
返回样例
{
"code": 200,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/recommend/reward/confirm
请求body(JSON)
字段 | 是否必须 | 类型 | 描述 |
---|---|---|---|
operatorEmail | 邮箱和工号至少传一个 | string | 操作人邮箱 |
operatorNumber | 邮箱和工号至少传一个 | string | 操作人工号 |
recordNoList | 是 | array | 内推奖励记录编号 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
取消内推奖励
请求样例
$ curl https://api.mokahr.com/api-platform/v1/recommend/reward/cancel
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '{operatorEmail: "test@test.com", reason: "取消奖励", recordNoList:["1234567"]}'
返回样例
{
"code": 200,
"msg": "success",
"data": null
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/recommend/reward/cancel
请求body(JSON)
字段 | 是否必须 | 类型 | 描述 |
---|---|---|---|
operatorEmail | 邮箱和工号至少传一个 | string | 操作人邮箱 |
operatorNumber | 邮箱和工号至少传一个 | string | 操作人工号 |
reason | 是 | string | 取消奖励原因 |
recordNoList | 是 | array | 内推奖励记录编号 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 0 :成功 非0代表失败 |
message | string | 提示信息 |
内推账户API
查询内推账户
请求样例
$ curl https://api.mokahr.com/api-platform/v1/user/recommend_account/search
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '{ "emails": ["hello@mokahr.com", "admin@mokahr.com"], "phones": ["18600000001"], "employeeIds": ["123456", "32123"]}'
返回样例
[
{
"name": "超级管理员",
"email": "hello@mokahr.com",
"phone": "18600000002",
"deactivated": 0,
"recommend_score": 0,
"recommend_money": 0,
"employee_id": "123456"
}
]
HTTP请求
POST https://api.mokahr.com/api-platform/v1/user/recommend_account/search
请求body(JSON)
单次查询只允许查询20个用户(emails + phones 的数量之和不超过20)
字段 | 是否必须 | 类型 | 描述 |
---|---|---|---|
emails | 与 phones, employeeIds 至少传入一个 | array | 要查询的内推用户邮箱数组 |
phones | 与 emails, employeeIds 至少传入一个 | array | 要查询的内推用户手机号数组 |
employeeIds | 与 emails, phones 至少传入一个 | array | 要查询的内推用户工号数组 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
name | string | 姓名 |
string | 邮箱 | |
phone | string | 手机号 |
employee_id | string | 工号 |
deactivated | number | 是否被禁用 可选值: 0 :可用 1 :禁用 |
recommend_score | number | 内推积分 |
recommend_money | number | 内推现金 |
增加、扣减内推人余额
请求样例
$ curl https://api.mokahr.com/api-platform/v1/user/recommend_account/wallet_balance_changes
-u 'your-api-key:'
-X PUT
-H 'content-type: application/json'
-d '{ "user": { "email": "hello@mokahr.com" }, "currencyChanges": { "SCORE": { "method": 0, "number": 100 }, "MONEY": { "method": 0, "number": 100 } }, "comment": "积分商城兑换 iPhoneX" }'
返回样例
{
"name": "超级管理员",
"email": "hello@mokahr.com",
"phone": "18600000001",
"employeeId": "123456",
"recommendScore": 10,
"recommendMoney": 800
}
HTTP请求
PUT https://api.mokahr.com/api-platform/v1/user/recommend_account/wallet_balance_changes
请求body(JSON)
字段 | 是否必须 | 类型 | 描述 |
---|---|---|---|
user | 必须 | object | 操作的内推用户对象 |
user.email | 与 user.phone,user.employeeId 传一 | object | 要操作的内推用户邮箱 |
user.phone | 与 user.email,user.employeeId 传一 | object | 要操作的内推用户手机号 |
user.employeeId | 与 user.email,user.phone 传一 | object | 要操作的内推用户工号 |
currencyChanges | 必须 | object | 货币更改对象 |
currencyChanges.SCORE | 与 currencyChanges.MONEY 至少传入一个 | object | 对 user 进行积分操作 |
currencyChanges.SCORE.method | 必须 | 0 or 1 | 0 :为减少1 : 为增加 |
currencyChanges.SCORE.number | 必须 | number | 增加或扣减的数量,必须是数字且最多只能输入2位小数 |
currencyChanges.MONEY | 与 currencyChanges.SCORE 至少传入一个 | object | 对 user 进行现金操作 |
currencyChanges.MONEY.method | 必须 | 0 or 1 | 0 :为减少1 : 为增加 |
currencyChanges.MONEY.number | 必须 | number | 增加或扣减的数量,必须是数字且最多只能输入2位小数 |
comment | 可选 | string | 操作备注,如(兑换iPhoneX |
返回值
变更后的内推用户余额
查询内推积分
请求样例
$ curl https://api.mokahr.com/api-platform/v2/user/recommend_account/search
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '{
"emails":["son@mokahr.com",""],
"phones":["12345678"],
"numbers":["123","234"]
}'
返回样例
{
"code": 0,
"codeType": 0,
"data": [
{
"deactivated": 0,
"email": "son@mokahr.com",
"name": "宋秋晓",
"phone": "",
"recommendMoney": 0.00,
"recommendScore": 45.00,
"version": "1.0"
}
],
"msg": "成功",
"success": true
}
HTTP请求
POST https://api.mokahr.com/api-platform/v2/user/recommend_account/search
请求body(JSON)
字段 | 是否必须 | 类型 | 描述 |
---|---|---|---|
emails | 与phones, numbers 至少传入一个 | array | 邮箱 |
phones | 与emails, numbers 至少传入一个 | array | 手机号(仅支持11位手机号) |
numbers | 与emails, phones 至少传入一个 | array | 工号 |
返回body(JSON)
字段 | 类型 | 描述 |
---|---|---|
name | string | 姓名 |
string | 邮箱 | |
phone | string | 手机号 |
number | string | 工号 |
deactivated | integer | 是否被禁用 可选值: 0 :可用 1 :禁用 |
recommendScore | number | 内推积分 |
recommendMoney | number | 内推现金 |
猎头API
系统内猎头管理已升级为猎头合约管理,猎头合约和猎头公司是两个概念,可以满足“一个企业与同一家猎头公司签订多份合约”的场景,具体变化点如下:
1、新增字段【猎头合约名称】;
2、同一个猎头顾问可以在不同猎头合约下。
升级后,对以下V1版本猎头API的影响:
1、V1版本猎头API仅适用于“与一个猎头公司签订一份合约”的场景;
2、“添加猎头公司”、“更新猎头公司”API实际是对猎头合约进行增改,添加猎头公司时,系统会默认将【猎头合约名称】字段赋【猎头公司名称】字段的值;
3、“获取猎头公司”、“获取猎头顾问”API实际是查询猎头合约以及合约下的顾问;
4、“添加猎头顾问”、“更新猎头顾问”API实际是对猎头合约下的顾问进行增改;
特别地,如在系统中手动给某个猎头公司创建了多份合约,“获取猎头公司”API默认返回猎头公司下第一个创建的合约。
添加猎头公司
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headhunters/addCompany
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '
{
"activated": true,
"authorizedUserEmails": [
"fengxiang@mokahr.com"
],
"company": "20210917165310",
"contactEmail": "2021091716531012@mokahr.com",
"contactName": " v ",
"contactPhone": "13111111111",
"endDate": "2021-08-22T00:00:00+08:00",
"needPermission": true,
"notifiedUserEmails": [
"fengxiang@mokahr.com"
],
"operatorEmail": "fengxiang@mokahr.com",
"orgId": "bytedance003",
"protectTime": "10005",
"rate": "hahah",
"rpoEnabled": "true",
"rpoProtectTime": "90",
"startDate": "2021-08-20T00:00:00+08:00",
"telephone": "1111111",
"telephonePrefixLocal": "111",
"telephonePrefixInternational": "11"
}
'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"id": 410020302
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/headhunters/addCompany
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
activated | 是 | boolean | 猎头公司状态 可选值: 0 :否1 :是 |
authorizedUserEmails | 否 | array[string] | 授权用户的邮箱 |
company | 是 | string | 猎头公司名称 |
contactEmail | 否 | string | 猎头公司联系人邮箱 |
contactName | 否 | string | 猎头公司联系人姓名 |
contactPhone | 否 | string | 猎头公司联系人手机号码 |
endDate | 否 | string | 猎头公司合同结束日期 |
needPermission | 否 | boolean | 猎头公司是否是授权猎头 |
notifiedUserEmails | 否 | array[string] | 猎头公司对接人 |
operatorEmail | 是 | string | 操作者email,必须为moka系统用户 |
rate | 否 | string | 猎头公司费率 |
headhunterEnabled | 否 | boolean | 猎头公司是否开启猎头 |
protectTime | string | number | 猎头公司猎头保护期(天) |
rpoEnabled | 否 | boolean | 猎头公司是否开启rpo |
rpoProtectTime | 否 | number | 猎头公司批量导入候选人保护期(rpo) |
startDate | 否 | string | 猎头公司合同开始日期 |
telephone | 否 | string | 猎头公司联系人固定电话 |
telephonePrefixLocal | 否 | string | 固定电话区号 |
telephonePrefixInternational | 否 | string | 固话国际号码 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200代表错误 |
msg | number | 报错信息 |
data | object | |
data.id | number | 当前数据id |
更新猎头公司
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headhunters/updateCompany
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '
{
"activated": "true",
"authorizedUserEmails": [
"fengxiang@mokahr.com"
],
"company": "20210917165739\u66f4\u65b0",
"contactEmail": "20210917165739fengxiang11111@mokahr.com",
"contactName": "\t\r\n\\~!@#$%^&*()_+<>?",
"contactPhone": "13111111111",
"endDate": "2021-08-22T00:00:00+08:00",
"needPermission": true,
"notifiedUserEmails": [
"fengxiang@mokahr.com"
],
"operatorEmail": "fengxiang@mokahr.com",
"orgId": "bytedance003",
"protectTime": "10000",
"rate": "99",
"rpoEnabled": "true",
"rpoProtectTime": "0",
"startDate": "2021-08-31T00:00:00+08:00",
"telephone": "12229211",
"telephonePrefixLocal": "010",
"telephonePrefixInternational": "86",
"id": 410020302
}
'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"id": 410020302
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/headhunters/updateCompany
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
id | 是 | number | 猎头公司id |
activated | 是 | boolean | 猎头公司状态 可选值: 0 :否1 :是 |
authorizedUserEmails | 否 | array[string] | 授权用户的邮箱 |
company | 是 | string | 猎头公司名称 |
contactEmail | 否 | string | 猎头公司联系人邮箱 |
contactName | 否 | string | 猎头公司联系人姓名 |
contactPhone | 否 | string | 猎头公司联系人手机号码 |
endDate | 否 | string | 猎头公司合同结束日期 |
needPermission | 否 | boolean | 猎头公司是否是授权猎头 |
notifiedUserEmails | 否 | array[string] | 猎头公司对接人 |
operatorEmail | 是 | string | 操作者email,必须为moka系统用户 |
rate | 否 | string | 猎头公司费率 |
protectTime | string | number | 猎头公司猎头保护期(天) |
rpoEnabled | 否 | boolean | 猎头公司是否开启rpo |
rpoProtectTime | 否 | number | 猎头公司批量导入候选人保护期(rpo) |
startDate | 否 | string | 猎头公司合同开始日期 |
telephone | 否 | string | 猎头公司联系人固定电话 |
telephonePrefixLocal | 否 | string | 固定电话区号 |
telephonePrefixInternational | 否 | string | 固话国际号码 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200 代表错误 |
msg | number | 报错信息 |
data | object | |
data.id | number | 当前数据id |
获取猎头公司
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headhunters/getCompany?orgId=test
-u 'your-api-key:'
-X GET
返回样例
{
"code": 200,
"msg": "success",
"data": [{
"activated": true,
"authorizedUserEmails": [
"fengxiang@mokahr.com"
],
"company": "20210917165739更新",
"contactEmail": "20210917165739fengxiang11111@mokahr.com",
"contactName": "\t\r\n\\~!@#$%^&*()_+<>?",
"contactPhone": "13111111111",
"contacts": [],
"telephone": "12229211",
"endDate": "2021-08-22T00:00",
"id": 410020302,
"needPermission": true,
"notifiedUserEmails": [
"fengxiang@mokahr.com"
],
"protectTime": 10000,
"rate": "99",
"rpoEnabled": true,
"rpoProtectTime": 0,
"startDate": "2021-08-31T00:00"
}
]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/headhunters/getCompany
请求Query(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 当前公司的orgId |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200 代表错误 |
msg | number | 报错信息 |
data | array(object) | |
data[].id | boolean | 猎头公司id |
data[].activated | boolean | 猎头公司状态 可选值: 0 :否1 :是 |
data[].authorizedUserEmails | array[string] | 授权用户的邮箱 |
data[].company | string | 猎头公司名称 |
data[].contactEmail | string | 猎头公司联系人邮箱 |
data[].contactName | string | 猎头公司联系人姓名 |
data[].contactPhone | string | 猎头公司联系人手机号码 |
data[].contacts | array | 猎头公司的顾问 -todo |
data[].endDate | string | 猎头公司合同结束日期 |
data[].needPermission | boolean | 猎头公司是否是授权猎头 |
data[].notifiedUserEmails | array[string] | 猎头公司对接人 |
data[].operatorEmail | string | 操作者email,必须为moka系统用户 |
data[].rate | string | 猎头公司费率 |
data[].protectTime | number | 猎头公司猎头保护期(天) |
data[].rpoEnabled | boolean | 猎头公司是否开启rpo |
data[].rpoProtectTime | number | 猎头公司批量导入候选人保护期(rpo) |
data[].startDate | string | 猎头公司合同开始日期 |
data[].telephone | string | 猎头公司联系人固定电话 |
data[].telephonePrefixLocal | string | 固定电话区号 |
data[].telephonePrefixInternational | string | 固话国际号码 |
获取猎头顾问
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headhunters/getContacts?orgId=test&headhunterCompanyId=1
-u 'your-api-key:'
-X GET
返回样例
{
"code": 200,
"msg": "success",
"data": [{
"activated": 1,
"active": false,
"headHunterId": 410022372,
"headHunterName": "20210917163223",
"headHunterPhone": "13111111111",
"headHunterTelephone": "11111111",
"telephonePrefixLocal": "010",
"telephonePrefixInternational": "89",
"headhunterEmail": "1631867543@qq.com"
}]
}
HTTP请求
GET https://api.mokahr.com/api-platform/v1/headhunters/getContacts
请求Query(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 当前公司的orgId |
headhunterCompanyId | 是 | string | 猎头公司id |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200 代表错误 |
msg | number | 报错信息 |
data | array(object) | |
data[].activated | number | 猎头顾问状态 可选值: 0 :否1 :是 |
data[].active | boolean | 猎头顾问状态:是否激活 |
data[].headHunterId | number | 猎头顾问id |
data[].headHunterName | string | 猎头顾问名称 |
data[].headHunterPhone | string | 猎头顾问手机 |
data[].headHunterTelephone | string | 猎头顾问固定电话 |
data[].telephonePrefixLocal | string | 固定电话区号 |
data[].telephonePrefixInternational | string | 固话国际号码 |
data[].headhunterEmail | string | 猎头顾问邮箱 |
添加猎头顾问
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headhunters/addContacts
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '
{
"activated": 1,
"headHunterName": "202101701371",
"headHunterPhone": "13111111311",
"telephonePrefixInternational": "89",
"telephonePrefixLocal": "010",
"headHunterTelephone": "11111111",
"headhunterCompanyId": 410020302,
"headhunterEmail": "16318917@qq.com",
"operatorEmail": "fengxiang@mokahr.com",
"orgId": "bytedance003"
}
'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"headHunterId":3344555
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/headhunters/addContacts
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
activated | 是 | number | 是否启用 可选值: 0 :否 1 :是 |
headHunterName | 是 | string | 猎头顾问名称 |
headHunterPhone | 否 | string | 猎头顾问手机 |
headHunterTelephone | 否 | string | 猎头顾问固定电话 |
telephonePrefixLocal | 否 | string | 固话区号 |
telephonePrefixInternational | 否 | string | 固话国家号码 |
headhunterCompanyId | 是 | number | 猎头公司id |
headhunterEmail | 是 | string | 猎头顾问邮箱 |
operatorEmail | 是 | string | 操作者email,必须为moka系统用户 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200代表错误 |
msg | number | 报错信息 |
data | object | |
data.headHunterId | number | 猎头顾问的id |
更新猎头顾问
请求样例
$ curl https://api.mokahr.com/api-platform/v1/headhunters/updateContacts
-u 'your-api-key:'
-X POST
-H 'content-type: application/json'
-d '
{
"activated": "1",
"headHunterName": " d ",
"headHunterPhone": "13111111311",
"telephonePrefixInternational": "88",
"telephonePrefixLocal": "0352",
"headHunterTelephone": "222222",
"headhunterCompanyId": 410020302,
"headHunterId": 410024263,
"headhunterEmail": "fengxiang@mokahr.com",
"operatorEmail": "fengxiang@mokahr.com",
"orgId": "bytedance003"
}
'
返回样例
{
"code": 200,
"msg": "success",
"data": {
"headHunterId": 33444
}
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/headhunters/updateContacts
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
headerHunterId | 是 | number | 当前数据id |
activated | 是 | number | 是否启用 可选值: 0 :否1 :是 |
headHunterName | 是 | string | 猎头顾问名称 |
headHunterPhone | 否 | string | 猎头顾问手机 |
headHunterTelephone | 否 | string | 猎头顾问固定电话 |
telephonePrefixLocal | 否 | string | 固话区号 |
telephonePrefixInternational | 否 | string | 固话国家号码 |
headhunterCompanyId | 是 | number | 猎头公司id |
headhunterEmail | 是 | string | 猎头顾问邮箱 |
operatorEmail | 是 | string | 操作者email,必须为moka系统用户 |
返回
返回body的JSON数据如下:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200代表错误 |
msg | number | 报错信息 |
data | object | |
data.headHunterId | number | 猎头顾问的id |
BI报表API
获取单个报表结果数据
请求样例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/getReportData' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic dGVzdDo=' \
--data-raw '{
"reportId": 12318
}'
返回样例
{
"code": 200,
"data": {
"headers": [{
"dataIndex": "c_1",
"title": "性别",
"type": "HEADER"
}, {
"dataIndex": "c_2",
"title": "民族",
"type": "HEADER"
}],
"rows": [{
"c_1": "男性",
"c_2": "汉族"
}],
"size": 1
},
"msg": "成功"
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/getReportData
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
reportId | 是 | integer | 报表id |
返回
返回body的JSON数据如下,上述返回数据总共有一行,两列,第一列是性别,第二列是民族:
字段 | 类型 | 描述 |
---|---|---|
code | number | 返回码:非200代表错误 |
msg | number | 报错信息 |
data | object | |
data.headers | object | 表头 |
data.headers.dataIndex | integer | 表头和结果数据映射关系 |
data.headers.title | string | 表头名称 |
data.headers.type | string | 表头类型,只可能为HEADER 或者 DATA |
data.headers.children | object | 元素类型同data.headers(代表多级表头) |
data.rows | array | 结果数据 |
data.rows.c_$ | string | 结果数据索引 key:value形式 |
JD模板API
查询JD模板
请求样例
curl --location 'https://api.mokahr.com/api-platform/v1/job/job_desc_template/list' \
--header 'Accept: */*' \
--header 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--data '{
"hireMode":1
}'
返回样例
{
"code": 0,
"codeType": 0,
"data": {
"jobDescTemplateDTOList": [
{
"id": 100000908,
"jobDescription": "<p>一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十.一二三四五六七八九十导入902-描述</p>",
"jobTitle": "导入902-名称1",
"name": "导入9021",
"version": "1.0"
}
],
"total": 1004,
"version": "1.0"
},
"msg": "成功",
"success": true
}
HTTP请求
POST https://api.mokahr.com/api-platform/v1/job/job_desc_template/list
请求body(JSON)
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
hireMode | 是 | number | 招聘模式 可选值: social:社招 campus:校招 |
pageSize | 否 | number | 分页用的每页条数,默认100 |
nextCursor | 否 | number | 分页游标, 第一次查询不用传(该属性值取自上次调用时,响应参数返回的nextCursor值) |
返回body(JSON)
字段 | 类型 | 描述 |
---|---|---|
total | integer | JD总数量 |
hasMore | boolean | 表示下一页是否有返回值 |
nextCursor | string | 分页游标 |
jds[] | array | JD列表 |
jds[].id | integer | 模板ID |
jds[].title | string | 模板名称 |
jds[].jobTitle | string | 职位名称 |
jds[].jobDescription | string | 职位描述 |
district code
行政区码
行政区码列表
{
"110000": "北京市",
"110101": "东城区",
"110102": "西城区",
"110105": "朝阳区",
"110106": "丰台区",
"110107": "石景山区",
"110108": "海淀区",
"110109": "门头沟区",
"110111": "房山区",
"110112": "通州区",
"110113": "顺义区",
"110114": "昌平区",
"110115": "大兴区",
"110116": "怀柔区",
"110117": "平谷区",
"110118": "密云区",
"110119": "延庆区",
"120000": "天津市",
"120101": "和平区",
"120102": "河东区",
"120103": "河西区",
"120104": "南开区",
"120105": "河北区",
"120106": "红桥区",
"120110": "东丽区",
"120111": "西青区",
"120112": "津南区",
"120113": "北辰区",
"120114": "武清区",
"120115": "宝坻区",
"120116": "滨海新区",
"120117": "宁河区",
"120118": "静海区",
"120119": "蓟州区",
"130000": "河北",
"130100": "石家庄市",
"130102": "长安区",
"130104": "桥西区",
"130105": "新华区",
"130107": "井陉矿区",
"130108": "裕华区",
"130109": "藁城区",
"130110": "鹿泉区",
"130111": "栾城区",
"130121": "井陉县",
"130123": "正定县",
"130125": "行唐县",
"130126": "灵寿县",
"130127": "高邑县",
"130128": "深泽县",
"130129": "赞皇县",
"130130": "无极县",
"130131": "平山县",
"130132": "元氏县",
"130133": "赵县",
"130171": "石家庄高新技术产业开发区",
"130172": "石家庄循环化工园区",
"130181": "辛集市",
"130183": "晋州市",
"130184": "新乐市",
"130200": "唐山市",
"130202": "路南区",
"130203": "路北区",
"130204": "古冶区",
"130205": "开平区",
"130207": "丰南区",
"130208": "丰润区",
"130209": "曹妃甸区",
"130223": "滦县(旧)",
"130224": "滦南县",
"130225": "乐亭县",
"130227": "迁西县",
"130229": "玉田县",
"130271": "河北唐山芦台经济开发区",
"130272": "唐山市汉沽管理区",
"130273": "唐山高新技术产业开发区",
"130274": "河北唐山海港经济开发区",
"130281": "遵化市",
"130283": "迁安市",
"130284": "滦州市",
"130300": "秦皇岛市",
"130302": "海港区",
"130303": "山海关区",
"130304": "北戴河区",
"130306": "抚宁区",
"130321": "青龙满族自治县",
"130322": "昌黎县",
"130324": "卢龙县",
"130371": "秦皇岛市经济技术开发区",
"130372": "北戴河新区",
"130400": "邯郸市",
"130402": "邯山区",
"130403": "丛台区",
"130404": "复兴区",
"130406": "峰峰矿区",
"130407": "肥乡区",
"130408": "永年区",
"130423": "临漳县",
"130424": "成安县",
"130425": "大名县",
"130426": "涉县",
"130427": "磁县",
"130430": "邱县",
"130431": "鸡泽县",
"130432": "广平县",
"130433": "馆陶县",
"130434": "魏县",
"130435": "曲周县",
"130471": "邯郸经济技术开发区",
"130473": "邯郸冀南新区",
"130481": "武安市",
"130500": "邢台市",
"130502": "襄都区",
"130503": "信都区",
"130505": "任泽区",
"130506": "南和区",
"130521": "邢台县(旧)",
"130522": "临城县",
"130523": "内丘县",
"130524": "柏乡县",
"130525": "隆尧县",
"130526": "任县(旧)",
"130527": "南和县(旧)",
"130528": "宁晋县",
"130529": "巨鹿县",
"130530": "新河县",
"130531": "广宗县",
"130532": "平乡县",
"130533": "威县",
"130534": "清河县",
"130535": "临西县",
"130571": "河北邢台经济开发区",
"130581": "南宫市",
"130582": "沙河市",
"130600": "保定市",
"130602": "竞秀区",
"130604": "南市区(旧)",
"130606": "莲池区",
"130607": "满城区",
"130608": "清苑区",
"130609": "徐水区",
"130623": "涞水县",
"130624": "阜平县",
"130626": "定兴县",
"130627": "唐县",
"130628": "高阳县",
"130629": "容城县",
"130630": "涞源县",
"130631": "望都县",
"130632": "安新县",
"130633": "易县",
"130634": "曲阳县",
"130635": "蠡县",
"130636": "顺平县",
"130637": "博野县",
"130638": "雄县",
"130671": "保定高新技术产业开发区",
"130672": "保定白沟新城",
"130681": "涿州市",
"130682": "定州市",
"130683": "安国市",
"130684": "高碑店市",
"130700": "张家口市",
"130702": "桥东区",
"130703": "桥西区",
"130705": "宣化区",
"130706": "下花园区",
"130708": "万全区",
"130709": "崇礼区",
"130722": "张北县",
"130723": "康保县",
"130724": "沽源县",
"130725": "尚义县",
"130726": "蔚县",
"130727": "阳原县",
"130728": "怀安县",
"130730": "怀来县",
"130731": "涿鹿县",
"130732": "赤城县",
"130771": "张家口经济开发区",
"130772": "张家口市察北管理区",
"130773": "张家口市塞北管理区",
"130800": "承德市",
"130802": "双桥区",
"130803": "双滦区",
"130804": "鹰手营子矿区",
"130821": "承德县",
"130822": "兴隆县",
"130823": "平泉县(旧)",
"130824": "滦平县",
"130825": "隆化县",
"130826": "丰宁满族自治县",
"130827": "宽城满族自治县",
"130828": "围场满族蒙古族自治县",
"130871": "承德高新技术产业开发区",
"130881": "平泉市",
"130900": "沧州市",
"130902": "新华区",
"130903": "运河区",
"130921": "沧县",
"130922": "青县",
"130923": "东光县",
"130924": "海兴县",
"130925": "盐山县",
"130926": "肃宁县",
"130927": "南皮县",
"130928": "吴桥县",
"130929": "献县",
"130930": "孟村回族自治县",
"130971": "河北沧州经济开发区",
"130972": "沧州高新技术产业开发区",
"130973": "沧州渤海新区",
"130981": "泊头市",
"130982": "任丘市",
"130983": "黄骅市",
"130984": "河间市",
"131000": "廊坊市",
"131002": "安次区",
"131003": "广阳区",
"131022": "固安县",
"131023": "永清县",
"131024": "香河县",
"131025": "大城县",
"131026": "文安县",
"131028": "大厂回族自治县",
"131071": "廊坊经济技术开发区",
"131081": "霸州市",
"131082": "三河市",
"131100": "衡水市",
"131102": "桃城区",
"131103": "冀州区",
"131121": "枣强县",
"131122": "武邑县",
"131123": "武强县",
"131124": "饶阳县",
"131125": "安平县",
"131126": "故城县",
"131127": "景县",
"131128": "阜城县",
"131171": "河北衡水高新技术产业开发区",
"131172": "衡水滨湖新区",
"131182": "深州市",
"140000": "山西",
"140100": "太原市",
"140105": "小店区",
"140106": "迎泽区",
"140107": "杏花岭区",
"140108": "尖草坪区",
"140109": "万柏林区",
"140110": "晋源区",
"140121": "清徐县",
"140122": "阳曲县",
"140123": "娄烦县",
"140171": "山西转型综合改革示范区",
"140181": "古交市",
"140200": "大同市",
"140202": "城区(旧)",
"140203": "矿区(旧)",
"140211": "南郊区(旧)",
"140212": "新荣区",
"140213": "平城区",
"140214": "云冈区",
"140215": "云州区",
"140221": "阳高县",
"140222": "天镇县",
"140223": "广灵县",
"140224": "灵丘县",
"140225": "浑源县",
"140226": "左云县",
"140227": "大同县(旧)",
"140271": "山西大同经济开发区",
"140300": "阳泉市",
"140302": "城区",
"140303": "矿区",
"140311": "郊区",
"140321": "平定县",
"140322": "盂县",
"140400": "长治市",
"140402": "城区(旧)",
"140403": "潞州区",
"140404": "上党区",
"140405": "屯留区",
"140406": "潞城区",
"140411": "郊区(旧)",
"140412": "潞州区(旧)",
"140421": "长治县(旧)",
"140423": "襄垣县",
"140424": "屯留县(旧)",
"140425": "平顺县",
"140426": "黎城县",
"140427": "壶关县",
"140428": "长子县",
"140429": "武乡县",
"140430": "沁县",
"140431": "沁源县",
"140471": "山西长治高新技术产业园区",
"140481": "潞城市(旧)",
"140500": "晋城市",
"140502": "城区",
"140521": "沁水县",
"140522": "阳城县",
"140524": "陵川县",
"140525": "泽州县",
"140581": "高平市",
"140600": "朔州市",
"140602": "朔城区",
"140603": "平鲁区",
"140621": "山阴县",
"140622": "应县",
"140623": "右玉县",
"140624": "怀仁县(旧)",
"140671": "山西朔州经济开发区",
"140681": "怀仁市",
"140700": "晋中市",
"140702": "榆次区",
"140703": "太谷区",
"140721": "榆社县",
"140722": "左权县",
"140723": "和顺县",
"140724": "昔阳县",
"140725": "寿阳县",
"140726": "太谷县(旧)",
"140727": "祁县",
"140728": "平遥县",
"140729": "灵石县",
"140781": "介休市",
"140800": "运城市",
"140802": "盐湖区",
"140821": "临猗县",
"140822": "万荣县",
"140823": "闻喜县",
"140824": "稷山县",
"140825": "新绛县",
"140826": "绛县",
"140827": "垣曲县",
"140828": "夏县",
"140829": "平陆县",
"140830": "芮城县",
"140881": "永济市",
"140882": "河津市",
"140900": "忻州市",
"140902": "忻府区",
"140921": "定襄县",
"140922": "五台县",
"140923": "代县",
"140924": "繁峙县",
"140925": "宁武县",
"140926": "静乐县",
"140927": "神池县",
"140928": "五寨县",
"140929": "岢岚县",
"140930": "河曲县",
"140931": "保德县",
"140932": "偏关县",
"140971": "五台山风景名胜区",
"140981": "原平市",
"141000": "临汾市",
"141002": "尧都区",
"141021": "曲沃县",
"141022": "翼城县",
"141023": "襄汾县",
"141024": "洪洞县",
"141025": "古县",
"141026": "安泽县",
"141027": "浮山县",
"141028": "吉县",
"141029": "乡宁县",
"141030": "大宁县",
"141031": "隰县",
"141032": "永和县",
"141033": "蒲县",
"141034": "汾西县",
"141081": "侯马市",
"141082": "霍州市",
"141100": "吕梁市",
"141102": "离石区",
"141121": "文水县",
"141122": "交城县",
"141123": "兴县",
"141124": "临县",
"141125": "柳林县",
"141126": "石楼县",
"141127": "岚县",
"141128": "方山县",
"141129": "中阳县",
"141130": "交口县",
"141181": "孝义市",
"141182": "汾阳市",
"150000": "内蒙古",
"150100": "呼和浩特市",
"150102": "新城区",
"150103": "回民区",
"150104": "玉泉区",
"150105": "赛罕区",
"150121": "土默特左旗",
"150122": "托克托县",
"150123": "和林格尔县",
"150124": "清水河县",
"150125": "武川县",
"150172": "呼和浩特经济技术开发区",
"150200": "包头市",
"150202": "东河区",
"150203": "昆都仑区",
"150204": "青山区",
"150205": "石拐区",
"150206": "白云鄂博矿区",
"150207": "九原区",
"150221": "土默特右旗",
"150222": "固阳县",
"150223": "达尔罕茂明安联合旗",
"150271": "包头稀土高新技术产业开发区",
"150300": "乌海市",
"150302": "海勃湾区",
"150303": "海南区",
"150304": "乌达区",
"150400": "赤峰市",
"150402": "红山区",
"150403": "元宝山区",
"150404": "松山区",
"150421": "阿鲁科尔沁旗",
"150422": "巴林左旗",
"150423": "巴林右旗",
"150424": "林西县",
"150425": "克什克腾旗",
"150426": "翁牛特旗",
"150428": "喀喇沁旗",
"150429": "宁城县",
"150430": "敖汉旗",
"150500": "通辽市",
"150502": "科尔沁区",
"150521": "科尔沁左翼中旗",
"150522": "科尔沁左翼后旗",
"150523": "开鲁县",
"150524": "库伦旗",
"150525": "奈曼旗",
"150526": "扎鲁特旗",
"150571": "通辽经济技术开发区",
"150581": "霍林郭勒市",
"150600": "鄂尔多斯市",
"150602": "东胜区",
"150603": "康巴什区",
"150621": "达拉特旗",
"150622": "准格尔旗",
"150623": "鄂托克前旗",
"150624": "鄂托克旗",
"150625": "杭锦旗",
"150626": "乌审旗",
"150627": "伊金霍洛旗",
"150700": "呼伦贝尔市",
"150702": "海拉尔区",
"150703": "扎赉诺尔区",
"150721": "阿荣旗",
"150722": "莫力达瓦达斡尔族自治旗",
"150723": "鄂伦春自治旗",
"150724": "鄂温克族自治旗",
"150725": "陈巴尔虎旗",
"150726": "新巴尔虎左旗",
"150727": "新巴尔虎右旗",
"150781": "满洲里市",
"150782": "牙克石市",
"150783": "扎兰屯市",
"150784": "额尔古纳市",
"150785": "根河市",
"150800": "巴彦淖尔市",
"150802": "临河区",
"150821": "五原县",
"150822": "磴口县",
"150823": "乌拉特前旗",
"150824": "乌拉特中旗",
"150825": "乌拉特后旗",
"150826": "杭锦后旗",
"150900": "乌兰察布市",
"150902": "集宁区",
"150921": "卓资县",
"150922": "化德县",
"150923": "商都县",
"150924": "兴和县",
"150925": "凉城县",
"150926": "察哈尔右翼前旗",
"150927": "察哈尔右翼中旗",
"150928": "察哈尔右翼后旗",
"150929": "四子王旗",
"150981": "丰镇市",
"152200": "兴安盟",
"152201": "乌兰浩特市",
"152202": "阿尔山市",
"152221": "科尔沁右翼前旗",
"152222": "科尔沁右翼中旗",
"152223": "扎赉特旗",
"152224": "突泉县",
"152500": "锡林郭勒盟",
"152501": "二连浩特市",
"152502": "锡林浩特市",
"152522": "阿巴嘎旗",
"152523": "苏尼特左旗",
"152524": "苏尼特右旗",
"152525": "东乌珠穆沁旗",
"152526": "西乌珠穆沁旗",
"152527": "太仆寺旗",
"152528": "镶黄旗",
"152529": "正镶白旗",
"152530": "正蓝旗",
"152531": "多伦县",
"152571": "乌拉盖管委会",
"152900": "阿拉善盟",
"152921": "阿拉善左旗",
"152922": "阿拉善右旗",
"152923": "额济纳旗",
"152971": "内蒙古阿拉善高新技术产业开发区",
"210000": "辽宁",
"210100": "沈阳市",
"210102": "和平区",
"210103": "沈河区",
"210104": "大东区",
"210105": "皇姑区",
"210106": "铁西区",
"210111": "苏家屯区",
"210112": "浑南区",
"210113": "沈北新区",
"210114": "于洪区",
"210115": "辽中区",
"210123": "康平县",
"210124": "法库县",
"210181": "新民市",
"210200": "大连市",
"210202": "中山区",
"210203": "西岗区",
"210204": "沙河口区",
"210211": "甘井子区",
"210212": "旅顺口区",
"210213": "金州区",
"210214": "普兰店区",
"210224": "长海县",
"210281": "瓦房店市",
"210283": "庄河市",
"210300": "鞍山市",
"210302": "铁东区",
"210303": "铁西区",
"210304": "立山区",
"210311": "千山区",
"210321": "台安县",
"210323": "岫岩满族自治县",
"210381": "海城市",
"210400": "抚顺市",
"210402": "新抚区",
"210403": "东洲区",
"210404": "望花区",
"210411": "顺城区",
"210421": "抚顺县",
"210422": "新宾满族自治县",
"210423": "清原满族自治县",
"210500": "本溪市",
"210502": "平山区",
"210503": "溪湖区",
"210504": "明山区",
"210505": "南芬区",
"210521": "本溪满族自治县",
"210522": "桓仁满族自治县",
"210600": "丹东市",
"210602": "元宝区",
"210603": "振兴区",
"210604": "振安区",
"210624": "宽甸满族自治县",
"210681": "东港市",
"210682": "凤城市",
"210700": "锦州市",
"210702": "古塔区",
"210703": "凌河区",
"210711": "太和区",
"210726": "黑山县",
"210727": "义县",
"210781": "凌海市",
"210782": "北镇市",
"210800": "营口市",
"210802": "站前区",
"210803": "西市区",
"210804": "鲅鱼圈区",
"210811": "老边区",
"210881": "盖州市",
"210882": "大石桥市",
"210900": "阜新市",
"210902": "海州区",
"210903": "新邱区",
"210904": "太平区",
"210905": "清河门区",
"210911": "细河区",
"210921": "阜新蒙古族自治县",
"210922": "彰武县",
"211000": "辽阳市",
"211002": "白塔区",
"211003": "文圣区",
"211004": "宏伟区",
"211005": "弓长岭区",
"211011": "太子河区",
"211021": "辽阳县",
"211081": "灯塔市",
"211100": "盘锦市",
"211102": "双台子区",
"211103": "兴隆台区",
"211104": "大洼区",
"211122": "盘山县",
"211200": "铁岭市",
"211202": "银州区",
"211204": "清河区",
"211221": "铁岭县",
"211223": "西丰县",
"211224": "昌图县",
"211281": "调兵山市",
"211282": "开原市",
"211300": "朝阳市",
"211302": "双塔区",
"211303": "龙城区",
"211321": "朝阳县",
"211322": "建平县",
"211324": "喀喇沁左翼蒙古族自治县",
"211381": "北票市",
"211382": "凌源市",
"211400": "葫芦岛市",
"211402": "连山区",
"211403": "龙港区",
"211404": "南票区",
"211421": "绥中县",
"211422": "建昌县",
"211481": "兴城市",
"220000": "吉林",
"220100": "长春市",
"220102": "南关区",
"220103": "宽城区",
"220104": "朝阳区",
"220105": "二道区",
"220106": "绿园区",
"220112": "双阳区",
"220113": "九台区",
"220122": "农安县",
"220171": "长春经济技术开发区",
"220172": "长春净月高新技术产业开发区",
"220173": "长春高新技术产业开发区",
"220174": "长春汽车经济技术开发区",
"220182": "榆树市",
"220183": "德惠市",
"220184": "公主岭市",
"220200": "吉林市",
"220202": "昌邑区",
"220203": "龙潭区",
"220204": "船营区",
"220211": "丰满区",
"220221": "永吉县",
"220271": "吉林经济开发区",
"220272": "吉林高新技术产业开发区",
"220273": "吉林中国新加坡食品区",
"220281": "蛟河市",
"220282": "桦甸市",
"220283": "舒兰市",
"220284": "磐石市",
"220300": "四平市",
"220302": "铁西区",
"220303": "铁东区",
"220322": "梨树县",
"220323": "伊通满族自治县",
"220381": "公主岭市(旧)",
"220382": "双辽市",
"220400": "辽源市",
"220402": "龙山区",
"220403": "西安区",
"220421": "东丰县",
"220422": "东辽县",
"220500": "通化市",
"220502": "东昌区",
"220503": "二道江区",
"220521": "通化县",
"220523": "辉南县",
"220524": "柳河县",
"220581": "梅河口市",
"220582": "集安市",
"220600": "白山市",
"220602": "浑江区",
"220605": "江源区",
"220621": "抚松县",
"220622": "靖宇县",
"220623": "长白朝鲜族自治县",
"220681": "临江市",
"220700": "松原市",
"220702": "宁江区",
"220721": "前郭尔罗斯蒙古族自治县",
"220722": "长岭县",
"220723": "乾安县",
"220771": "吉林松原经济开发区",
"220781": "扶余市",
"220800": "白城市",
"220802": "洮北区",
"220821": "镇赉县",
"220822": "通榆县",
"220871": "吉林白城经济开发区",
"220881": "洮南市",
"220882": "大安市",
"222400": "延边朝鲜族自治州",
"222401": "延吉市",
"222402": "图们市",
"222403": "敦化市",
"222404": "珲春市",
"222405": "龙井市",
"222406": "和龙市",
"222424": "汪清县",
"222426": "安图县",
"230000": "黑龙江",
"230100": "哈尔滨市",
"230102": "道里区",
"230103": "南岗区",
"230104": "道外区",
"230108": "平房区",
"230109": "松北区",
"230110": "香坊区",
"230111": "呼兰区",
"230112": "阿城区",
"230113": "双城区",
"230123": "依兰县",
"230124": "方正县",
"230125": "宾县",
"230126": "巴彦县",
"230127": "木兰县",
"230128": "通河县",
"230129": "延寿县",
"230183": "尚志市",
"230184": "五常市",
"230200": "齐齐哈尔市",
"230202": "龙沙区",
"230203": "建华区",
"230204": "铁锋区",
"230205": "昂昂溪区",
"230206": "富拉尔基区",
"230207": "碾子山区",
"230208": "梅里斯达斡尔族区",
"230221": "龙江县",
"230223": "依安县",
"230224": "泰来县",
"230225": "甘南县",
"230227": "富裕县",
"230229": "克山县",
"230230": "克东县",
"230231": "拜泉县",
"230281": "讷河市",
"230300": "鸡西市",
"230302": "鸡冠区",
"230303": "恒山区",
"230304": "滴道区",
"230305": "梨树区",
"230306": "城子河区",
"230307": "麻山区",
"230321": "鸡东县",
"230381": "虎林市",
"230382": "密山市",
"230400": "鹤岗市",
"230402": "向阳区",
"230403": "工农区",
"230404": "南山区",
"230405": "兴安区",
"230406": "东山区",
"230407": "兴山区",
"230421": "萝北县",
"230422": "绥滨县",
"230500": "双鸭山市",
"230502": "尖山区",
"230503": "岭东区",
"230505": "四方台区",
"230506": "宝山区",
"230521": "集贤县",
"230522": "友谊县",
"230523": "宝清县",
"230524": "饶河县",
"230600": "大庆市",
"230602": "萨尔图区",
"230603": "龙凤区",
"230604": "让胡路区",
"230605": "红岗区",
"230606": "大同区",
"230621": "肇州县",
"230622": "肇源县",
"230623": "林甸县",
"230624": "杜尔伯特蒙古族自治县",
"230671": "大庆高新技术产业开发区",
"230700": "伊春市",
"230702": "伊春区(旧)",
"230703": "南岔区(旧)",
"230704": "友好区(旧)",
"230705": "西林区(旧)",
"230706": "翠峦区(旧)",
"230707": "新青区(旧)",
"230708": "美溪区(旧)",
"230709": "金山屯区(旧)",
"230710": "五营区(旧)",
"230711": "乌马河区(旧)",
"230712": "汤旺河区(旧)",
"230713": "带岭区(旧)",
"230714": "乌伊岭区(旧)",
"230715": "红星区(旧)",
"230716": "上甘岭区(旧)",
"230717": "伊美区",
"230718": "乌翠区",
"230719": "友好区",
"230722": "嘉荫县",
"230723": "汤旺县",
"230724": "丰林县",
"230725": "大箐山县",
"230726": "南岔县",
"230751": "金林区",
"230781": "铁力市",
"230800": "佳木斯市",
"230803": "向阳区",
"230804": "前进区",
"230805": "东风区",
"230811": "郊区",
"230822": "桦南县",
"230826": "桦川县",
"230828": "汤原县",
"230881": "同江市",
"230882": "富锦市",
"230883": "抚远市",
"230900": "七台河市",
"230902": "新兴区",
"230903": "桃山区",
"230904": "茄子河区",
"230921": "勃利县",
"231000": "牡丹江市",
"231002": "东安区",
"231003": "阳明区",
"231004": "爱民区",
"231005": "西安区",
"231025": "林口县",
"231071": "牡丹江经济技术开发区",
"231081": "绥芬河市",
"231083": "海林市",
"231084": "宁安市",
"231085": "穆棱市",
"231086": "东宁市",
"231100": "黑河市",
"231102": "爱辉区",
"231121": "嫩江县(旧)",
"231123": "逊克县",
"231124": "孙吴县",
"231181": "北安市",
"231182": "五大连池市",
"231183": "嫩江市",
"231200": "绥化市",
"231202": "北林区",
"231221": "望奎县",
"231222": "兰西县",
"231223": "青冈县",
"231224": "庆安县",
"231225": "明水县",
"231226": "绥棱县",
"231281": "安达市",
"231282": "肇东市",
"231283": "海伦市",
"232700": "大兴安岭地区",
"232701": "漠河市",
"232721": "呼玛县",
"232722": "塔河县",
"232723": "漠河县(旧)",
"232761": "加格达奇区",
"232762": "松岭区",
"232763": "新林区",
"232764": "呼中区",
"310000": "上海市",
"310101": "黄浦区",
"310104": "徐汇区",
"310105": "长宁区",
"310106": "静安区",
"310107": "普陀区",
"310109": "虹口区",
"310110": "杨浦区",
"310112": "闵行区",
"310113": "宝山区",
"310114": "嘉定区",
"310115": "浦东新区",
"310116": "金山区",
"310117": "松江区",
"310118": "青浦区",
"310120": "奉贤区",
"310151": "崇明区",
"320000": "江苏",
"320100": "南京市",
"320102": "玄武区",
"320104": "秦淮区",
"320105": "建邺区",
"320106": "鼓楼区",
"320111": "浦口区",
"320113": "栖霞区",
"320114": "雨花台区",
"320115": "江宁区",
"320116": "六合区",
"320117": "溧水区",
"320118": "高淳区",
"320200": "无锡市",
"320205": "锡山区",
"320206": "惠山区",
"320211": "滨湖区",
"320213": "梁溪区",
"320214": "新吴区",
"320281": "江阴市",
"320282": "宜兴市",
"320300": "徐州市",
"320302": "鼓楼区",
"320303": "云龙区",
"320305": "贾汪区",
"320311": "泉山区",
"320312": "铜山区",
"320321": "丰县",
"320322": "沛县",
"320324": "睢宁县",
"320371": "徐州经济技术开发区",
"320381": "新沂市",
"320382": "邳州市",
"320400": "常州市",
"320402": "天宁区",
"320404": "钟楼区",
"320411": "新北区",
"320412": "武进区",
"320413": "金坛区",
"320481": "溧阳市",
"320500": "苏州市",
"320505": "虎丘区",
"320506": "吴中区",
"320507": "相城区",
"320508": "姑苏区",
"320509": "吴江区",
"320571": "苏州工业园区",
"320581": "常熟市",
"320582": "张家港市",
"320583": "昆山市",
"320585": "太仓市",
"320600": "南通市",
"320602": "崇川区(旧)",
"320611": "港闸区(旧)",
"320612": "通州区",
"320613": "崇川区",
"320614": "海门区",
"320621": "海安县(旧)",
"320623": "如东县",
"320671": "南通经济技术开发区",
"320681": "启东市",
"320682": "如皋市",
"320684": "海门市(旧)",
"320685": "海安市",
"320700": "连云港市",
"320703": "连云区",
"320706": "海州区",
"320707": "赣榆区",
"320722": "东海县",
"320723": "灌云县",
"320724": "灌南县",
"320771": "连云港经济技术开发区",
"320772": "连云港高新技术产业开发区",
"320800": "淮安市",
"320803": "淮安区",
"320804": "淮阴区",
"320812": "清江浦区",
"320813": "洪泽区",
"320826": "涟水县",
"320830": "盱眙县",
"320831": "金湖县",
"320871": "淮安经济技术开发区",
"320900": "盐城市",
"320902": "亭湖区",
"320903": "盐都区",
"320904": "大丰区",
"320921": "响水县",
"320922": "滨海县",
"320923": "阜宁县",
"320924": "射阳县",
"320925": "建湖县",
"320971": "盐城经济技术开发区",
"320981": "东台市",
"321000": "扬州市",
"321002": "广陵区",
"321003": "邗江区",
"321012": "江都区",
"321023": "宝应县",
"321071": "扬州经济技术开发区",
"321081": "仪征市",
"321084": "高邮市",
"321100": "镇江市",
"321102": "京口区",
"321111": "润州区",
"321112": "丹徒区",
"321171": "镇江新区",
"321181": "丹阳市",
"321182": "扬中市",
"321183": "句容市",
"321200": "泰州市",
"321202": "海陵区",
"321203": "高港区",
"321204": "姜堰区",
"321271": "泰州医药高新技术产业开发区",
"321281": "兴化市",
"321282": "靖江市",
"321283": "泰兴市",
"321300": "宿迁市",
"321302": "宿城区",
"321311": "宿豫区",
"321322": "沭阳县",
"321323": "泗阳县",
"321324": "泗洪县",
"321371": "宿迁经济技术开发区",
"330000": "浙江",
"330100": "杭州市",
"330102": "上城区",
"330103": "下城区(旧)",
"330104": "江干区(旧)",
"330105": "拱墅区",
"330106": "西湖区",
"330108": "滨江区",
"330109": "萧山区",
"330110": "余杭区",
"330111": "富阳区",
"330112": "临安区",
"330113": "临平区",
"330114": "钱塘区",
"330122": "桐庐县",
"330127": "淳安县",
"330182": "建德市",
"330185": "临安市(旧)",
"330200": "宁波市",
"330203": "海曙区",
"330205": "江北区",
"330206": "北仑区",
"330211": "镇海区",
"330212": "鄞州区",
"330213": "奉化区",
"330225": "象山县",
"330226": "宁海县",
"330281": "余姚市",
"330282": "慈溪市",
"330300": "温州市",
"330302": "鹿城区",
"330303": "龙湾区",
"330304": "瓯海区",
"330305": "洞头区",
"330324": "永嘉县",
"330326": "平阳县",
"330327": "苍南县",
"330328": "文成县",
"330329": "泰顺县",
"330371": "温州经济技术开发区",
"330381": "瑞安市",
"330382": "乐清市",
"330383": "龙港市",
"330400": "嘉兴市",
"330402": "南湖区",
"330411": "秀洲区",
"330421": "嘉善县",
"330424": "海盐县",
"330481": "海宁市",
"330482": "平湖市",
"330483": "桐乡市",
"330500": "湖州市",
"330502": "吴兴区",
"330503": "南浔区",
"330521": "德清县",
"330522": "长兴县",
"330523": "安吉县",
"330600": "绍兴市",
"330602": "越城区",
"330603": "柯桥区",
"330604": "上虞区",
"330624": "新昌县",
"330681": "诸暨市",
"330683": "嵊州市",
"330700": "金华市",
"330702": "婺城区",
"330703": "金东区",
"330723": "武义县",
"330726": "浦江县",
"330727": "磐安县",
"330781": "兰溪市",
"330782": "义乌市",
"330783": "东阳市",
"330784": "永康市",
"330800": "衢州市",
"330802": "柯城区",
"330803": "衢江区",
"330822": "常山县",
"330824": "开化县",
"330825": "龙游县",
"330881": "江山市",
"330900": "舟山市",
"330902": "定海区",
"330903": "普陀区",
"330921": "岱山县",
"330922": "嵊泗县",
"331000": "台州市",
"331002": "椒江区",
"331003": "黄岩区",
"331004": "路桥区",
"331021": "玉环县(旧)",
"331022": "三门县",
"331023": "天台县",
"331024": "仙居县",
"331081": "温岭市",
"331082": "临海市",
"331083": "玉环市",
"331100": "丽水市",
"331102": "莲都区",
"331121": "青田县",
"331122": "缙云县",
"331123": "遂昌县",
"331124": "松阳县",
"331125": "云和县",
"331126": "庆元县",
"331127": "景宁畲族自治县",
"331181": "龙泉市",
"340000": "安徽",
"340100": "合肥市",
"340102": "瑶海区",
"340103": "庐阳区",
"340104": "蜀山区",
"340111": "包河区",
"340121": "长丰县",
"340122": "肥东县",
"340123": "肥西县",
"340124": "庐江县",
"340171": "合肥高新技术产业开发区",
"340172": "合肥经济技术开发区",
"340173": "合肥新站高新技术产业开发区",
"340181": "巢湖市",
"340200": "芜湖市",
"340202": "镜湖区",
"340203": "弋江区(旧)",
"340207": "鸠江区",
"340208": "三山区(旧)",
"340209": "弋江区",
"340210": "湾沚区",
"340212": "繁昌区",
"340221": "芜湖县(旧)",
"340222": "繁昌县(旧)",
"340223": "南陵县",
"340225": "无为县(旧)",
"340271": "芜湖经济技术开发区",
"340272": "安徽芜湖三山经济开发区",
"340281": "无为市",
"340300": "蚌埠市",
"340302": "龙子湖区",
"340303": "蚌山区",
"340304": "禹会区",
"340311": "淮上区",
"340321": "怀远县",
"340322": "五河县",
"340323": "固镇县",
"340371": "蚌埠市高新技术开发区",
"340372": "蚌埠市经济开发区",
"340400": "淮南市",
"340402": "大通区",
"340403": "田家庵区",
"340404": "谢家集区",
"340405": "八公山区",
"340406": "潘集区",
"340421": "凤台县",
"340422": "寿县",
"340500": "马鞍山市",
"340503": "花山区",
"340504": "雨山区",
"340506": "博望区",
"340521": "当涂县",
"340522": "含山县",
"340523": "和县",
"340600": "淮北市",
"340602": "杜集区",
"340603": "相山区",
"340604": "烈山区",
"340621": "濉溪县",
"340700": "铜陵市",
"340705": "铜官区",
"340706": "义安区",
"340711": "郊区",
"340722": "枞阳县",
"340800": "安庆市",
"340802": "迎江区",
"340803": "大观区",
"340811": "宜秀区",
"340822": "怀宁县",
"340824": "潜山县(旧)",
"340825": "太湖县",
"340826": "宿松县",
"340827": "望江县",
"340828": "岳西县",
"340871": "安徽安庆经济开发区",
"340881": "桐城市",
"340882": "潜山市",
"341000": "黄山市",
"341002": "屯溪区",
"341003": "黄山区",
"341004": "徽州区",
"341021": "歙县",
"341022": "休宁县",
"341023": "黟县",
"341024": "祁门县",
"341100": "滁州市",
"341102": "琅琊区",
"341103": "南谯区",
"341122": "来安县",
"341124": "全椒县",
"341125": "定远县",
"341126": "凤阳县",
"341171": "中新苏滁高新技术产业开发区",
"341172": "滁州经济技术开发区",
"341181": "天长市",
"341182": "明光市",
"341200": "阜阳市",
"341202": "颍州区",
"341203": "颍东区",
"341204": "颍泉区",
"341221": "临泉县",
"341222": "太和县",
"341225": "阜南县",
"341226": "颍上县",
"341271": "阜阳合肥现代产业园区",
"341272": "阜阳经济技术开发区",
"341282": "界首市",
"341300": "宿州市",
"341302": "埇桥区",
"341321": "砀山县",
"341322": "萧县",
"341323": "灵璧县",
"341324": "泗县",
"341371": "宿州马鞍山现代产业园区",
"341372": "宿州经济技术开发区",
"341500": "六安市",
"341502": "金安区",
"341503": "裕安区",
"341504": "叶集区",
"341522": "霍邱县",
"341523": "舒城县",
"341524": "金寨县",
"341525": "霍山县",
"341600": "亳州市",
"341602": "谯城区",
"341621": "涡阳县",
"341622": "蒙城县",
"341623": "利辛县",
"341700": "池州市",
"341702": "贵池区",
"341721": "东至县",
"341722": "石台县",
"341723": "青阳县",
"341800": "宣城市",
"341802": "宣州区",
"341821": "郎溪县",
"341822": "广德县(旧)",
"341823": "泾县",
"341824": "绩溪县",
"341825": "旌德县",
"341871": "宣城市经济开发区",
"341881": "宁国市",
"341882": "广德市",
"350000": "福建",
"350100": "福州市",
"350102": "鼓楼区",
"350103": "台江区",
"350104": "仓山区",
"350105": "马尾区",
"350111": "晋安区",
"350112": "长乐区",
"350121": "闽侯县",
"350122": "连江县",
"350123": "罗源县",
"350124": "闽清县",
"350125": "永泰县",
"350128": "平潭县",
"350181": "福清市",
"350182": "长乐市(旧)",
"350200": "厦门市",
"350203": "思明区",
"350205": "海沧区",
"350206": "湖里区",
"350211": "集美区",
"350212": "同安区",
"350213": "翔安区",
"350300": "莆田市",
"350302": "城厢区",
"350303": "涵江区",
"350304": "荔城区",
"350305": "秀屿区",
"350322": "仙游县",
"350400": "三明市",
"350402": "梅列区(旧)",
"350403": "三元区(旧)",
"350404": "三元区",
"350405": "沙县区",
"350421": "明溪县",
"350423": "清流县",
"350424": "宁化县",
"350425": "大田县",
"350426": "尤溪县",
"350427": "沙县(旧)",
"350428": "将乐县",
"350429": "泰宁县",
"350430": "建宁县",
"350481": "永安市",
"350500": "泉州市",
"350502": "鲤城区",
"350503": "丰泽区",
"350504": "洛江区",
"350505": "泉港区",
"350521": "惠安县",
"350524": "安溪县",
"350525": "永春县",
"350526": "德化县",
"350527": "金门县",
"350581": "石狮市",
"350582": "晋江市",
"350583": "南安市",
"350600": "漳州市",
"350602": "芗城区",
"350603": "龙文区",
"350604": "龙海区",
"350605": "长泰区",
"350622": "云霄县",
"350623": "漳浦县",
"350624": "诏安县",
"350625": "长泰县(旧)",
"350626": "东山县",
"350627": "南靖县",
"350628": "平和县",
"350629": "华安县",
"350681": "龙海市(旧)",
"350700": "南平市",
"350702": "延平区",
"350703": "建阳区",
"350721": "顺昌县",
"350722": "浦城县",
"350723": "光泽县",
"350724": "松溪县",
"350725": "政和县",
"350781": "邵武市",
"350782": "武夷山市",
"350783": "建瓯市",
"350800": "龙岩市",
"350802": "新罗区",
"350803": "永定区",
"350821": "长汀县",
"350823": "上杭县",
"350824": "武平县",
"350825": "连城县",
"350881": "漳平市",
"350900": "宁德市",
"350902": "蕉城区",
"350921": "霞浦县",
"350922": "古田县",
"350923": "屏南县",
"350924": "寿宁县",
"350925": "周宁县",
"350926": "柘荣县",
"350981": "福安市",
"350982": "福鼎市",
"360000": "江西",
"360100": "南昌市",
"360102": "东湖区",
"360103": "西湖区",
"360104": "青云谱区",
"360105": "湾里区(旧)",
"360111": "青山湖区",
"360112": "新建区",
"360113": "红谷滩区",
"360121": "南昌县",
"360123": "安义县",
"360124": "进贤县",
"360200": "景德镇市",
"360202": "昌江区",
"360203": "珠山区",
"360222": "浮梁县",
"360281": "乐平市",
"360300": "萍乡市",
"360302": "安源区",
"360313": "湘东区",
"360321": "莲花县",
"360322": "上栗县",
"360323": "芦溪县",
"360400": "九江市",
"360402": "濂溪区",
"360403": "浔阳区",
"360404": "柴桑区",
"360421": "九江县(旧)",
"360423": "武宁县",
"360424": "修水县",
"360425": "永修县",
"360426": "德安县",
"360427": "庐山市(旧)",
"360428": "都昌县",
"360429": "湖口县",
"360430": "彭泽县",
"360481": "瑞昌市",
"360482": "共青城市",
"360483": "庐山市",
"360500": "新余市",
"360502": "渝水区",
"360521": "分宜县",
"360600": "鹰潭市",
"360602": "月湖区",
"360603": "余江区",
"360622": "余江县(旧)",
"360681": "贵溪市",
"360700": "赣州市",
"360702": "章贡区",
"360703": "南康区",
"360704": "赣县区",
"360721": "赣县区(旧)",
"360722": "信丰县",
"360723": "大余县",
"360724": "上犹县",
"360725": "崇义县",
"360726": "安远县",
"360727": "龙南县(旧)",
"360728": "定南县",
"360729": "全南县",
"360730": "宁都县",
"360731": "于都县",
"360732": "兴国县",
"360733": "会昌县",
"360734": "寻乌县",
"360735": "石城县",
"360781": "瑞金市",
"360783": "龙南市",
"360800": "吉安市",
"360802": "吉州区",
"360803": "青原区",
"360821": "吉安县",
"360822": "吉水县",
"360823": "峡江县",
"360824": "新干县",
"360825": "永丰县",
"360826": "泰和县",
"360827": "遂川县",
"360828": "万安县",
"360829": "安福县",
"360830": "永新县",
"360881": "井冈山市",
"360900": "宜春市",
"360902": "袁州区",
"360921": "奉新县",
"360922": "万载县",
"360923": "上高县",
"360924": "宜丰县",
"360925": "靖安县",
"360926": "铜鼓县",
"360981": "丰城市",
"360982": "樟树市",
"360983": "高安市",
"361000": "抚州市",
"361002": "临川区",
"361003": "东乡区",
"361021": "南城县",
"361022": "黎川县",
"361023": "南丰县",
"361024": "崇仁县",
"361025": "乐安县",
"361026": "宜黄县",
"361027": "金溪县",
"361028": "资溪县",
"361029": "东乡区(旧)",
"361030": "广昌县",
"361100": "上饶市",
"361102": "信州区",
"361103": "广丰区",
"361104": "广信区",
"361121": "上饶县(旧)",
"361123": "玉山县",
"361124": "铅山县",
"361125": "横峰县",
"361126": "弋阳县",
"361127": "余干县",
"361128": "鄱阳县",
"361129": "万年县",
"361130": "婺源县",
"361181": "德兴市",
"370000": "山东",
"370100": "济南市",
"370102": "历下区",
"370103": "市中区",
"370104": "槐荫区",
"370105": "天桥区",
"370112": "历城区",
"370113": "长清区",
"370114": "章丘区",
"370115": "济阳区",
"370116": "莱芜区",
"370117": "钢城区",
"370124": "平阴县",
"370125": "济阳县(旧)",
"370126": "商河县",
"370171": "济南高新技术产业开发区",
"370181": "章丘区(旧)",
"370200": "青岛市",
"370202": "市南区",
"370203": "市北区",
"370211": "黄岛区",
"370212": "崂山区",
"370213": "李沧区",
"370214": "城阳区",
"370215": "即墨区",
"370271": "青岛高新技术产业开发区",
"370281": "胶州市",
"370282": "即墨市(旧)",
"370283": "平度市",
"370285": "莱西市",
"370300": "淄博市",
"370302": "淄川区",
"370303": "张店区",
"370304": "博山区",
"370305": "临淄区",
"370306": "周村区",
"370321": "桓台县",
"370322": "高青县",
"370323": "沂源县",
"370400": "枣庄市",
"370402": "市中区",
"370403": "薛城区",
"370404": "峄城区",
"370405": "台儿庄区",
"370406": "山亭区",
"370481": "滕州市",
"370500": "东营市",
"370502": "东营区",
"370503": "河口区",
"370505": "垦利区",
"370522": "利津县",
"370523": "广饶县",
"370571": "东营经济技术开发区",
"370572": "东营港经济开发区",
"370600": "烟台市",
"370602": "芝罘区",
"370611": "福山区",
"370612": "牟平区",
"370613": "莱山区",
"370614": "蓬莱区",
"370634": "长岛县(旧)",
"370671": "烟台高新技术产业开发区",
"370672": "烟台经济技术开发区",
"370681": "龙口市",
"370682": "莱阳市",
"370683": "莱州市",
"370684": "蓬莱市(旧)",
"370685": "招远市",
"370686": "栖霞市",
"370687": "海阳市",
"370700": "潍坊市",
"370702": "潍城区",
"370703": "寒亭区",
"370704": "坊子区",
"370705": "奎文区",
"370724": "临朐县",
"370725": "昌乐县",
"370772": "潍坊滨海经济技术开发区",
"370781": "青州市",
"370782": "诸城市",
"370783": "寿光市",
"370784": "安丘市",
"370785": "高密市",
"370786": "昌邑市",
"370800": "济宁市",
"370811": "任城区",
"370812": "兖州区",
"370826": "微山县",
"370827": "鱼台县",
"370828": "金乡县",
"370829": "嘉祥县",
"370830": "汶上县",
"370831": "泗水县",
"370832": "梁山县",
"370871": "济宁高新技术产业开发区",
"370881": "曲阜市",
"370883": "邹城市",
"370900": "泰安市",
"370902": "泰山区",
"370911": "岱岳区",
"370921": "宁阳县",
"370923": "东平县",
"370982": "新泰市",
"370983": "肥城市",
"371000": "威海市",
"371002": "环翠区",
"371003": "文登区",
"371071": "威海火炬高技术产业开发区",
"371072": "威海经济技术开发区",
"371073": "威海临港经济技术开发区",
"371082": "荣成市",
"371083": "乳山市",
"371100": "日照市",
"371102": "东港区",
"371103": "岚山区",
"371121": "五莲县",
"371122": "莒县",
"371171": "日照经济技术开发区",
"371200": "莱芜市(旧)",
"371202": "莱城区(旧)",
"371203": "钢城区(旧)",
"371300": "临沂市",
"371302": "兰山区",
"371311": "罗庄区",
"371312": "河东区",
"371321": "沂南县",
"371322": "郯城县",
"371323": "沂水县",
"371324": "兰陵县",
"371325": "费县",
"371326": "平邑县",
"371327": "莒南县",
"371328": "蒙阴县",
"371329": "临沭县",
"371371": "临沂高新技术产业开发区",
"371400": "德州市",
"371402": "德城区",
"371403": "陵城区",
"371422": "宁津县",
"371423": "庆云县",
"371424": "临邑县",
"371425": "齐河县",
"371426": "平原县",
"371427": "夏津县",
"371428": "武城县",
"371471": "德州经济技术开发区",
"371472": "德州运河经济开发区",
"371481": "乐陵市",
"371482": "禹城市",
"371500": "聊城市",
"371502": "东昌府区",
"371503": "茌平区",
"371521": "阳谷县",
"371522": "莘县",
"371523": "茌平县(旧)",
"371524": "东阿县",
"371525": "冠县",
"371526": "高唐县",
"371581": "临清市",
"371600": "滨州市",
"371602": "滨城区",
"371603": "沾化区",
"371621": "惠民县",
"371622": "阳信县",
"371623": "无棣县",
"371625": "博兴县",
"371626": "邹平县(旧)",
"371681": "邹平市",
"371700": "菏泽市",
"371702": "牡丹区",
"371703": "定陶区",
"371721": "曹县",
"371722": "单县",
"371723": "成武县",
"371724": "巨野县",
"371725": "郓城县",
"371726": "鄄城县",
"371728": "东明县",
"371771": "菏泽经济技术开发区",
"371772": "菏泽高新技术开发区",
"410000": "河南",
"410100": "郑州市",
"410102": "中原区",
"410103": "二七区",
"410104": "管城回族区",
"410105": "金水区",
"410106": "上街区",
"410108": "惠济区",
"410122": "中牟县",
"410171": "郑州经济技术开发区",
"410172": "郑州高新技术产业开发区",
"410173": "郑州航空港经济综合实验区",
"410181": "巩义市",
"410182": "荥阳市",
"410183": "新密市",
"410184": "新郑市",
"410185": "登封市",
"410186": "郑东新区(旧)",
"410200": "开封市",
"410202": "龙亭区",
"410203": "顺河回族区",
"410204": "鼓楼区",
"410205": "禹王台区",
"410212": "祥符区",
"410221": "杞县",
"410222": "通许县",
"410223": "尉氏县",
"410225": "兰考县",
"410300": "洛阳市",
"410302": "老城区",
"410303": "西工区",
"410304": "瀍河回族区",
"410305": "涧西区",
"410306": "吉利区(旧)",
"410307": "偃师区",
"410308": "孟津区",
"410311": "洛龙区",
"410322": "孟津县(旧)",
"410323": "新安县",
"410324": "栾川县",
"410325": "嵩县",
"410326": "汝阳县",
"410327": "宜阳县",
"410328": "洛宁县",
"410329": "伊川县",
"410371": "洛阳高新技术产业开发区",
"410381": "偃师市(旧)",
"410400": "平顶山市",
"410402": "新华区",
"410403": "卫东区",
"410404": "石龙区",
"410411": "湛河区",
"410421": "宝丰县",
"410422": "叶县",
"410423": "鲁山县",
"410425": "郏县",
"410471": "平顶山高新技术产业开发区",
"410472": "平顶山市城乡一体化示范区",
"410481": "舞钢市",
"410482": "汝州市",
"410500": "安阳市",
"410502": "文峰区",
"410503": "北关区",
"410505": "殷都区",
"410506": "龙安区",
"410522": "安阳县",
"410523": "汤阴县",
"410526": "滑县",
"410527": "内黄县",
"410571": "安阳高新技术产业开发区",
"410581": "林州市",
"410600": "鹤壁市",
"410602": "鹤山区",
"410603": "山城区",
"410611": "淇滨区",
"410621": "浚县",
"410622": "淇县",
"410671": "鹤壁经济技术开发区",
"410700": "新乡市",
"410702": "红旗区",
"410703": "卫滨区",
"410704": "凤泉区",
"410711": "牧野区",
"410721": "新乡县",
"410724": "获嘉县",
"410725": "原阳县",
"410726": "延津县",
"410727": "封丘县",
"410728": "长垣县(旧)",
"410771": "新乡高新技术产业开发区",
"410772": "新乡经济技术开发区",
"410773": "新乡市平原城乡一体化示范区",
"410781": "卫辉市",
"410782": "辉县市",
"410783": "长垣市",
"410800": "焦作市",
"410802": "解放区",
"410803": "中站区",
"410804": "马村区",
"410811": "山阳区",
"410821": "修武县",
"410822": "博爱县",
"410823": "武陟县",
"410825": "温县",
"410871": "焦作城乡一体化示范区",
"410882": "沁阳市",
"410883": "孟州市",
"410900": "濮阳市",
"410902": "华龙区",
"410922": "清丰县",
"410923": "南乐县",
"410926": "范县",
"410927": "台前县",
"410928": "濮阳县",
"410971": "河南濮阳工业园区",
"410972": "濮阳经济技术开发区",
"411000": "许昌市",
"411002": "魏都区",
"411003": "建安区",
"411023": "许昌县(旧)",
"411024": "鄢陵县",
"411025": "襄城县",
"411071": "许昌经济技术开发区",
"411081": "禹州市",
"411082": "长葛市",
"411100": "漯河市",
"411102": "源汇区",
"411103": "郾城区",
"411104": "召陵区",
"411121": "舞阳县",
"411122": "临颍县",
"411171": "漯河经济技术开发区",
"411200": "三门峡市",
"411202": "湖滨区",
"411203": "陕州区",
"411221": "渑池县",
"411224": "卢氏县",
"411271": "河南三门峡经济开发区",
"411281": "义马市",
"411282": "灵宝市",
"411300": "南阳市",
"411302": "宛城区",
"411303": "卧龙区",
"411321": "南召县",
"411322": "方城县",
"411323": "西峡县",
"411324": "镇平县",
"411325": "内乡县",
"411326": "淅川县",
"411327": "社旗县",
"411328": "唐河县",
"411329": "新野县",
"411330": "桐柏县",
"411371": "南阳高新技术产业开发区",
"411372": "南阳市城乡一体化示范区",
"411381": "邓州市",
"411400": "商丘市",
"411402": "梁园区",
"411403": "睢阳区",
"411421": "民权县",
"411422": "睢县",
"411423": "宁陵县",
"411424": "柘城县",
"411425": "虞城县",
"411426": "夏邑县",
"411471": "豫东综合物流产业聚集区",
"411472": "河南商丘经济开发区",
"411481": "永城市",
"411500": "信阳市",
"411502": "浉河区",
"411503": "平桥区",
"411521": "罗山县",
"411522": "光山县",
"411523": "新县",
"411524": "商城县",
"411525": "固始县",
"411526": "潢川县",
"411527": "淮滨县",
"411528": "息县",
"411571": "信阳高新技术产业开发区",
"411600": "周口市",
"411602": "川汇区",
"411603": "淮阳区",
"411621": "扶沟县",
"411622": "西华县",
"411623": "商水县",
"411624": "沈丘县",
"411625": "郸城县",
"411626": "淮阳县(旧)",
"411627": "太康县",
"411628": "鹿邑县",
"411671": "河南周口经济开发区",
"411681": "项城市",
"411700": "驻马店市",
"411702": "驿城区",
"411721": "西平县",
"411722": "上蔡县",
"411723": "平舆县",
"411724": "正阳县",
"411725": "确山县",
"411726": "泌阳县",
"411727": "汝南县",
"411728": "遂平县",
"411729": "新蔡县",
"411771": "河南驻马店经济开发区",
"419001": "济源市",
"420000": "湖北",
"420100": "武汉市",
"420102": "江岸区",
"420103": "江汉区",
"420104": "硚口区",
"420105": "汉阳区",
"420106": "武昌区",
"420107": "青山区",
"420111": "洪山区",
"420112": "东西湖区",
"420113": "汉南区",
"420114": "蔡甸区",
"420115": "江夏区",
"420116": "黄陂区",
"420117": "新洲区",
"420200": "黄石市",
"420202": "黄石港区",
"420203": "西塞山区",
"420204": "下陆区",
"420205": "铁山区",
"420222": "阳新县",
"420281": "大冶市",
"420300": "十堰市",
"420302": "茅箭区",
"420303": "张湾区",
"420304": "郧阳区",
"420322": "郧西县",
"420323": "竹山县",
"420324": "竹溪县",
"420325": "房县",
"420381": "丹江口市",
"420500": "宜昌市",
"420502": "西陵区",
"420503": "伍家岗区",
"420504": "点军区",
"420505": "猇亭区",
"420506": "夷陵区",
"420525": "远安县",
"420526": "兴山县",
"420527": "秭归县",
"420528": "长阳土家族自治县",
"420529": "五峰土家族自治县",
"420581": "宜都市",
"420582": "当阳市",
"420583": "枝江市",
"420600": "襄阳市",
"420602": "襄城区",
"420606": "樊城区",
"420607": "襄州区",
"420624": "南漳县",
"420625": "谷城县",
"420626": "保康县",
"420682": "老河口市",
"420683": "枣阳市",
"420684": "宜城市",
"420700": "鄂州市",
"420702": "梁子湖区",
"420703": "华容区",
"420704": "鄂城区",
"420800": "荆门市",
"420802": "东宝区",
"420804": "掇刀区",
"420821": "京山县(旧)",
"420822": "沙洋县",
"420881": "钟祥市",
"420882": "京山市",
"420900": "孝感市",
"420902": "孝南区",
"420921": "孝昌县",
"420922": "大悟县",
"420923": "云梦县",
"420981": "应城市",
"420982": "安陆市",
"420984": "汉川市",
"421000": "荆州市",
"421002": "沙市区",
"421003": "荆州区",
"421022": "公安县",
"421023": "监利县(旧)",
"421024": "江陵县",
"421071": "荆州经济技术开发区",
"421081": "石首市",
"421083": "洪湖市",
"421087": "松滋市",
"421088": "监利市",
"421100": "黄冈市",
"421102": "黄州区",
"421121": "团风县",
"421122": "红安县",
"421123": "罗田县",
"421124": "英山县",
"421125": "浠水县",
"421126": "蕲春县",
"421127": "黄梅县",
"421171": "龙感湖管理区",
"421181": "麻城市",
"421182": "武穴市",
"421200": "咸宁市",
"421202": "咸安区",
"421221": "嘉鱼县",
"421222": "通城县",
"421223": "崇阳县",
"421224": "通山县",
"421281": "赤壁市",
"421300": "随州市",
"421303": "曾都区",
"421321": "随县",
"421381": "广水市",
"422800": "恩施土家族苗族自治州",
"422801": "恩施市",
"422802": "利川市",
"422822": "建始县",
"422823": "巴东县",
"422825": "宣恩县",
"422826": "咸丰县",
"422827": "来凤县",
"422828": "鹤峰县",
"429004": "仙桃市",
"429005": "潜江市",
"429006": "天门市",
"429021": "神农架林区",
"430000": "湖南",
"430100": "长沙市",
"430102": "芙蓉区",
"430103": "天心区",
"430104": "岳麓区",
"430105": "开福区",
"430111": "雨花区",
"430112": "望城区",
"430121": "长沙县",
"430124": "宁乡县(旧)",
"430181": "浏阳市",
"430182": "宁乡市",
"430200": "株洲市",
"430202": "荷塘区",
"430203": "芦淞区",
"430204": "石峰区",
"430211": "天元区",
"430212": "渌口区",
"430221": "株洲县(旧)",
"430223": "攸县",
"430224": "茶陵县",
"430225": "炎陵县",
"430271": "云龙示范区",
"430281": "醴陵市",
"430300": "湘潭市",
"430302": "雨湖区",
"430304": "岳塘区",
"430321": "湘潭县",
"430371": "湖南湘潭高新技术产业园区",
"430372": "湘潭昭山示范区",
"430373": "湘潭九华示范区",
"430381": "湘乡市",
"430382": "韶山市",
"430400": "衡阳市",
"430405": "珠晖区",
"430406": "雁峰区",
"430407": "石鼓区",
"430408": "蒸湘区",
"430412": "南岳区",
"430421": "衡阳县",
"430422": "衡南县",
"430423": "衡山县",
"430424": "衡东县",
"430426": "祁东县",
"430471": "衡阳综合保税区",
"430472": "湖南衡阳高新技术产业园区",
"430473": "湖南衡阳松木经济开发区",
"430481": "耒阳市",
"430482": "常宁市",
"430500": "邵阳市",
"430502": "双清区",
"430503": "大祥区",
"430511": "北塔区",
"430521": "邵东县(旧)",
"430522": "新邵县",
"430523": "邵阳县",
"430524": "隆回县",
"430525": "洞口县",
"430527": "绥宁县",
"430528": "新宁县",
"430529": "城步苗族自治县",
"430581": "武冈市",
"430582": "邵东市",
"430600": "岳阳市",
"430602": "岳阳楼区",
"430603": "云溪区",
"430611": "君山区",
"430621": "岳阳县",
"430623": "华容县",
"430624": "湘阴县",
"430626": "平江县",
"430671": "岳阳市屈原管理区",
"430681": "汨罗市",
"430682": "临湘市",
"430700": "常德市",
"430702": "武陵区",
"430703": "鼎城区",
"430721": "安乡县",
"430722": "汉寿县",
"430723": "澧县",
"430724": "临澧县",
"430725": "桃源县",
"430726": "石门县",
"430771": "常德市西洞庭管理区",
"430781": "津市市",
"430800": "张家界市",
"430802": "永定区",
"430811": "武陵源区",
"430821": "慈利县",
"430822": "桑植县",
"430900": "益阳市",
"430902": "资阳区",
"430903": "赫山区",
"430921": "南县",
"430922": "桃江县",
"430923": "安化县",
"430971": "益阳市大通湖管理区",
"430972": "湖南益阳高新技术产业园区",
"430981": "沅江市",
"431000": "郴州市",
"431002": "北湖区",
"431003": "苏仙区",
"431021": "桂阳县",
"431022": "宜章县",
"431023": "永兴县",
"431024": "嘉禾县",
"431025": "临武县",
"431026": "汝城县",
"431027": "桂东县",
"431028": "安仁县",
"431081": "资兴市",
"431100": "永州市",
"431102": "零陵区",
"431103": "冷水滩区",
"431121": "祁阳县(旧)",
"431122": "东安县",
"431123": "双牌县",
"431124": "道县",
"431125": "江永县",
"431126": "宁远县",
"431127": "蓝山县",
"431128": "新田县",
"431129": "江华瑶族自治县",
"431171": "永州经济技术开发区",
"431173": "永州市回龙圩管理区",
"431181": "祁阳市",
"431200": "怀化市",
"431202": "鹤城区",
"431221": "中方县",
"431222": "沅陵县",
"431223": "辰溪县",
"431224": "溆浦县",
"431225": "会同县",
"431226": "麻阳苗族自治县",
"431227": "新晃侗族自治县",
"431228": "芷江侗族自治县",
"431229": "靖州苗族侗族自治县",
"431230": "通道侗族自治县",
"431271": "怀化市洪江管理区",
"431281": "洪江市",
"431300": "娄底市",
"431302": "娄星区",
"431321": "双峰县",
"431322": "新化县",
"431381": "冷水江市",
"431382": "涟源市",
"433100": "湘西土家族苗族自治州",
"433101": "吉首市",
"433122": "泸溪县",
"433123": "凤凰县",
"433124": "花垣县",
"433125": "保靖县",
"433126": "古丈县",
"433127": "永顺县",
"433130": "龙山县",
"440000": "广东",
"440100": "广州市",
"440103": "荔湾区",
"440104": "越秀区",
"440105": "海珠区",
"440106": "天河区",
"440111": "白云区",
"440112": "黄埔区",
"440113": "番禺区",
"440114": "花都区",
"440115": "南沙区",
"440117": "从化区",
"440118": "增城区",
"440200": "韶关市",
"440203": "武江区",
"440204": "浈江区",
"440205": "曲江区",
"440222": "始兴县",
"440224": "仁化县",
"440229": "翁源县",
"440232": "乳源瑶族自治县",
"440233": "新丰县",
"440281": "乐昌市",
"440282": "南雄市",
"440300": "深圳市",
"440303": "罗湖区",
"440304": "福田区",
"440305": "南山区",
"440306": "宝安区",
"440307": "龙岗区",
"440308": "盐田区",
"440309": "龙华区",
"440310": "坪山区",
"440311": "光明区",
"440400": "珠海市",
"440402": "香洲区",
"440403": "斗门区",
"440404": "金湾区",
"440500": "汕头市",
"440507": "龙湖区",
"440511": "金平区",
"440512": "濠江区",
"440513": "潮阳区",
"440514": "潮南区",
"440515": "澄海区",
"440523": "南澳县",
"440600": "佛山市",
"440604": "禅城区",
"440605": "南海区",
"440606": "顺德区",
"440607": "三水区",
"440608": "高明区",
"440700": "江门市",
"440703": "蓬江区",
"440704": "江海区",
"440705": "新会区",
"440781": "台山市",
"440783": "开平市",
"440784": "鹤山市",
"440785": "恩平市",
"440800": "湛江市",
"440802": "赤坎区",
"440803": "霞山区",
"440804": "坡头区",
"440811": "麻章区",
"440823": "遂溪县",
"440825": "徐闻县",
"440881": "廉江市",
"440882": "雷州市",
"440883": "吴川市",
"440900": "茂名市",
"440902": "茂南区",
"440904": "电白区",
"440981": "高州市",
"440982": "化州市",
"440983": "信宜市",
"441200": "肇庆市",
"441202": "端州区",
"441203": "鼎湖区",
"441204": "高要区",
"441223": "广宁县",
"441224": "怀集县",
"441225": "封开县",
"441226": "德庆县",
"441284": "四会市",
"441300": "惠州市",
"441302": "惠城区",
"441303": "惠阳区",
"441322": "博罗县",
"441323": "惠东县",
"441324": "龙门县",
"441400": "梅州市",
"441402": "梅江区",
"441403": "梅县区",
"441422": "大埔县",
"441423": "丰顺县",
"441424": "五华县",
"441426": "平远县",
"441427": "蕉岭县",
"441481": "兴宁市",
"441500": "汕尾市",
"441502": "城区",
"441521": "海丰县",
"441523": "陆河县",
"441581": "陆丰市",
"441600": "河源市",
"441602": "源城区",
"441621": "紫金县",
"441622": "龙川县",
"441623": "连平县",
"441624": "和平县",
"441625": "东源县",
"441700": "阳江市",
"441702": "江城区",
"441704": "阳东区",
"441721": "阳西县",
"441781": "阳春市",
"441800": "清远市",
"441802": "清城区",
"441803": "清新区",
"441821": "佛冈县",
"441823": "阳山县",
"441825": "连山壮族瑶族自治县",
"441826": "连南瑶族自治县",
"441881": "英德市",
"441882": "连州市",
"441900": "东莞市",
"442000": "中山市",
"445100": "潮州市",
"445102": "湘桥区",
"445103": "潮安区",
"445122": "饶平县",
"445200": "揭阳市",
"445202": "榕城区",
"445203": "揭东区",
"445222": "揭西县",
"445224": "惠来县",
"445281": "普宁市",
"445300": "云浮市",
"445302": "云城区",
"445303": "云安区",
"445321": "新兴县",
"445322": "郁南县",
"445381": "罗定市",
"450000": "广西",
"450100": "南宁市",
"450102": "兴宁区",
"450103": "青秀区",
"450105": "江南区",
"450107": "西乡塘区",
"450108": "良庆区",
"450109": "邕宁区",
"450110": "武鸣区",
"450123": "隆安县",
"450124": "马山县",
"450125": "上林县",
"450126": "宾阳县",
"450127": "横县(旧)",
"450181": "横州市",
"450200": "柳州市",
"450202": "城中区",
"450203": "鱼峰区",
"450204": "柳南区",
"450205": "柳北区",
"450206": "柳江区",
"450221": "柳江区(旧)",
"450222": "柳城县",
"450223": "鹿寨县",
"450224": "融安县",
"450225": "融水苗族自治县",
"450226": "三江侗族自治县",
"450300": "桂林市",
"450302": "秀峰区",
"450303": "叠彩区",
"450304": "象山区",
"450305": "七星区",
"450311": "雁山区",
"450312": "临桂区",
"450321": "阳朔县",
"450323": "灵川县",
"450324": "全州县",
"450325": "兴安县",
"450326": "永福县",
"450327": "灌阳县",
"450328": "龙胜各族自治县",
"450329": "资源县",
"450330": "平乐县",
"450331": "荔浦县(旧)",
"450332": "恭城瑶族自治县",
"450381": "荔浦市",
"450400": "梧州市",
"450403": "万秀区",
"450405": "长洲区",
"450406": "龙圩区",
"450421": "苍梧县",
"450422": "藤县",
"450423": "蒙山县",
"450481": "岑溪市",
"450500": "北海市",
"450502": "海城区",
"450503": "银海区",
"450512": "铁山港区",
"450521": "合浦县",
"450600": "防城港市",
"450602": "港口区",
"450603": "防城区",
"450621": "上思县",
"450681": "东兴市",
"450700": "钦州市",
"450702": "钦南区",
"450703": "钦北区",
"450721": "灵山县",
"450722": "浦北县",
"450800": "贵港市",
"450802": "港北区",
"450803": "港南区",
"450804": "覃塘区",
"450821": "平南县",
"450881": "桂平市",
"450900": "玉林市",
"450902": "玉州区",
"450903": "福绵区",
"450921": "容县",
"450922": "陆川县",
"450923": "博白县",
"450924": "兴业县",
"450981": "北流市",
"451000": "百色市",
"451002": "右江区",
"451003": "田阳区",
"451021": "田阳县(旧)",
"451022": "田东县",
"451023": "平果县(旧)",
"451024": "德保县",
"451026": "那坡县",
"451027": "凌云县",
"451028": "乐业县",
"451029": "田林县",
"451030": "西林县",
"451031": "隆林各族自治县",
"451081": "靖西市",
"451082": "平果市",
"451100": "贺州市",
"451102": "八步区",
"451103": "平桂区",
"451121": "昭平县",
"451122": "钟山县",
"451123": "富川瑶族自治县",
"451200": "河池市",
"451202": "金城江区",
"451203": "宜州区",
"451221": "南丹县",
"451222": "天峨县",
"451223": "凤山县",
"451224": "东兰县",
"451225": "罗城仫佬族自治县",
"451226": "环江毛南族自治县",
"451227": "巴马瑶族自治县",
"451228": "都安瑶族自治县",
"451229": "大化瑶族自治县",
"451281": "宜州区(旧)",
"451300": "来宾市",
"451302": "兴宾区",
"451321": "忻城县",
"451322": "象州县",
"451323": "武宣县",
"451324": "金秀瑶族自治县",
"451381": "合山市",
"451400": "崇左市",
"451402": "江州区",
"451421": "扶绥县",
"451422": "宁明县",
"451423": "龙州县",
"451424": "大新县",
"451425": "天等县",
"451481": "凭祥市",
"460000": "海南",
"460100": "海口市",
"460105": "秀英区",
"460106": "龙华区",
"460107": "琼山区",
"460108": "美兰区",
"460200": "三亚市",
"460202": "海棠区",
"460203": "吉阳区",
"460204": "天涯区",
"460205": "崖州区",
"460300": "三沙市",
"460321": "西沙群岛",
"460322": "南沙群岛",
"460323": "中沙群岛",
"460324": "永乐群岛",
"460400": "儋州市",
"469001": "五指山市",
"469002": "琼海市",
"469005": "文昌市",
"469006": "万宁市",
"469007": "东方市",
"469021": "定安县",
"469022": "屯昌县",
"469023": "澄迈县",
"469024": "临高县",
"469025": "白沙黎族自治县",
"469026": "昌江黎族自治县",
"469027": "乐东黎族自治县",
"469028": "陵水黎族自治县",
"469029": "保亭黎族苗族自治县",
"469030": "琼中黎族苗族自治县",
"500000": "重庆市",
"500101": "万州区",
"500102": "涪陵区",
"500103": "渝中区",
"500104": "大渡口区",
"500105": "江北区",
"500106": "沙坪坝区",
"500107": "九龙坡区",
"500108": "南岸区",
"500109": "北碚区",
"500110": "綦江区",
"500111": "大足区",
"500112": "渝北区",
"500113": "巴南区",
"500114": "黔江区",
"500115": "长寿区",
"500116": "江津区",
"500117": "合川区",
"500118": "永川区",
"500119": "南川区",
"500120": "璧山区",
"500151": "铜梁区",
"500152": "潼南区",
"500153": "荣昌区",
"500154": "开州区",
"500155": "梁平区",
"500156": "武隆区",
"500228": "梁平区(旧)",
"500229": "城口县",
"500230": "丰都县",
"500231": "垫江县",
"500232": "武隆区(旧)",
"500233": "忠县",
"500235": "云阳县",
"500236": "奉节县",
"500237": "巫山县",
"500238": "巫溪县",
"500240": "石柱土家族自治县",
"500241": "秀山土家族苗族自治县",
"500242": "酉阳土家族苗族自治县",
"500243": "彭水苗族土家族自治县",
"510000": "四川",
"510100": "成都市",
"510104": "锦江区",
"510105": "青羊区",
"510106": "金牛区",
"510107": "武侯区",
"510108": "成华区",
"510112": "龙泉驿区",
"510113": "青白江区",
"510114": "新都区",
"510115": "温江区",
"510116": "双流区",
"510117": "郫都区",
"510118": "新津区",
"510121": "金堂县",
"510124": "郫都区(旧)",
"510129": "大邑县",
"510131": "蒲江县",
"510132": "新津县(旧)",
"510181": "都江堰市",
"510182": "彭州市",
"510183": "邛崃市",
"510184": "崇州市",
"510185": "简阳市",
"510300": "自贡市",
"510302": "自流井区",
"510303": "贡井区",
"510304": "大安区",
"510311": "沿滩区",
"510321": "荣县",
"510322": "富顺县",
"510400": "攀枝花市",
"510402": "东区",
"510403": "西区",
"510411": "仁和区",
"510421": "米易县",
"510422": "盐边县",
"510500": "泸州市",
"510502": "江阳区",
"510503": "纳溪区",
"510504": "龙马潭区",
"510521": "泸县",
"510522": "合江县",
"510524": "叙永县",
"510525": "古蔺县",
"510600": "德阳市",
"510603": "旌阳区",
"510604": "罗江区",
"510623": "中江县",
"510626": "罗江县(旧)",
"510681": "广汉市",
"510682": "什邡市",
"510683": "绵竹市",
"510700": "绵阳市",
"510703": "涪城区",
"510704": "游仙区",
"510705": "安州区",
"510722": "三台县",
"510723": "盐亭县",
"510725": "梓潼县",
"510726": "北川羌族自治县",
"510727": "平武县",
"510781": "江油市",
"510800": "广元市",
"510802": "利州区",
"510811": "昭化区",
"510812": "朝天区",
"510821": "旺苍县",
"510822": "青川县",
"510823": "剑阁县",
"510824": "苍溪县",
"510900": "遂宁市",
"510903": "船山区",
"510904": "安居区",
"510921": "蓬溪县",
"510922": "射洪县(旧)",
"510923": "大英县",
"510981": "射洪市",
"511000": "内江市",
"511002": "市中区",
"511011": "东兴区",
"511024": "威远县",
"511025": "资中县",
"511028": "隆昌县(旧)",
"511071": "内江经济开发区",
"511083": "隆昌市",
"511100": "乐山市",
"511102": "市中区",
"511111": "沙湾区",
"511112": "五通桥区",
"511113": "金口河区",
"511123": "犍为县",
"511124": "井研县",
"511126": "夹江县",
"511129": "沐川县",
"511132": "峨边彝族自治县",
"511133": "马边彝族自治县",
"511181": "峨眉山市",
"511300": "南充市",
"511302": "顺庆区",
"511303": "高坪区",
"511304": "嘉陵区",
"511321": "南部县",
"511322": "营山县",
"511323": "蓬安县",
"511324": "仪陇县",
"511325": "西充县",
"511381": "阆中市",
"511400": "眉山市",
"511402": "东坡区",
"511403": "彭山区",
"511421": "仁寿县",
"511423": "洪雅县",
"511424": "丹棱县",
"511425": "青神县",
"511500": "宜宾市",
"511502": "翠屏区",
"511503": "南溪区",
"511504": "叙州区",
"511521": "宜宾县(旧)",
"511523": "江安县",
"511524": "长宁县",
"511525": "高县",
"511526": "珙县",
"511527": "筠连县",
"511528": "兴文县",
"511529": "屏山县",
"511600": "广安市",
"511602": "广安区",
"511603": "前锋区",
"511621": "岳池县",
"511622": "武胜县",
"511623": "邻水县",
"511681": "华蓥市",
"511700": "达州市",
"511702": "通川区",
"511703": "达川区",
"511722": "宣汉县",
"511723": "开江县",
"511724": "大竹县",
"511725": "渠县",
"511771": "达州经济开发区",
"511781": "万源市",
"511800": "雅安市",
"511802": "雨城区",
"511803": "名山区",
"511822": "荥经县",
"511823": "汉源县",
"511824": "石棉县",
"511825": "天全县",
"511826": "芦山县",
"511827": "宝兴县",
"511900": "巴中市",
"511902": "巴州区",
"511903": "恩阳区",
"511921": "通江县",
"511922": "南江县",
"511923": "平昌县",
"511971": "巴中经济开发区",
"512000": "资阳市",
"512002": "雁江区",
"512021": "安岳县",
"512022": "乐至县",
"513200": "阿坝藏族羌族自治州",
"513201": "马尔康市",
"513221": "汶川县",
"513222": "理县",
"513223": "茂县",
"513224": "松潘县",
"513225": "九寨沟县",
"513226": "金川县",
"513227": "小金县",
"513228": "黑水县",
"513230": "壤塘县",
"513231": "阿坝县",
"513232": "若尔盖县",
"513233": "红原县",
"513300": "甘孜藏族自治州",
"513301": "康定市",
"513322": "泸定县",
"513323": "丹巴县",
"513324": "九龙县",
"513325": "雅江县",
"513326": "道孚县",
"513327": "炉霍县",
"513328": "甘孜县",
"513329": "新龙县",
"513330": "德格县",
"513331": "白玉县",
"513332": "石渠县",
"513333": "色达县",
"513334": "理塘县",
"513335": "巴塘县",
"513336": "乡城县",
"513337": "稻城县",
"513338": "得荣县",
"513400": "凉山彝族自治州",
"513401": "西昌市",
"513402": "会理市",
"513422": "木里藏族自治县",
"513423": "盐源县",
"513424": "德昌县",
"513425": "会理县(旧)",
"513426": "会东县",
"513427": "宁南县",
"513428": "普格县",
"513429": "布拖县",
"513430": "金阳县",
"513431": "昭觉县",
"513432": "喜德县",
"513433": "冕宁县",
"513434": "越西县",
"513435": "甘洛县",
"513436": "美姑县",
"513437": "雷波县",
"520000": "贵州",
"520100": "贵阳市",
"520102": "南明区",
"520103": "云岩区",
"520111": "花溪区",
"520112": "乌当区",
"520113": "白云区",
"520115": "观山湖区",
"520121": "开阳县",
"520122": "息烽县",
"520123": "修文县",
"520181": "清镇市",
"520200": "六盘水市",
"520201": "钟山区",
"520203": "六枝特区",
"520204": "水城区",
"520221": "水城县(旧)",
"520222": "盘县(旧)",
"520281": "盘州市",
"520300": "遵义市",
"520302": "红花岗区",
"520303": "汇川区",
"520304": "播州区",
"520322": "桐梓县",
"520323": "绥阳县",
"520324": "正安县",
"520325": "道真仡佬族苗族自治县",
"520326": "务川仡佬族苗族自治县",
"520327": "凤冈县",
"520328": "湄潭县",
"520329": "余庆县",
"520330": "习水县",
"520381": "赤水市",
"520382": "仁怀市",
"520400": "安顺市",
"520402": "西秀区",
"520403": "平坝区",
"520422": "普定县",
"520423": "镇宁布依族苗族自治县",
"520424": "关岭布依族苗族自治县",
"520425": "紫云苗族布依族自治县",
"520500": "毕节市",
"520502": "七星关区",
"520521": "大方县",
"520522": "黔西县(旧)",
"520523": "金沙县",
"520524": "织金县",
"520525": "纳雍县",
"520526": "威宁彝族回族苗族自治县",
"520527": "赫章县",
"520581": "黔西市",
"520600": "铜仁市",
"520602": "碧江区",
"520603": "万山区",
"520621": "江口县",
"520622": "玉屏侗族自治县",
"520623": "石阡县",
"520624": "思南县",
"520625": "印江土家族苗族自治县",
"520626": "德江县",
"520627": "沿河土家族自治县",
"520628": "松桃苗族自治县",
"522300": "黔西南布依族苗族自治州",
"522301": "兴义市",
"522302": "兴仁市",
"522322": "兴仁县(旧)",
"522323": "普安县",
"522324": "晴隆县",
"522325": "贞丰县",
"522326": "望谟县",
"522327": "册亨县",
"522328": "安龙县",
"522600": "黔东南苗族侗族自治州",
"522601": "凯里市",
"522622": "黄平县",
"522623": "施秉县",
"522624": "三穗县",
"522625": "镇远县",
"522626": "岑巩县",
"522627": "天柱县",
"522628": "锦屏县",
"522629": "剑河县",
"522630": "台江县",
"522631": "黎平县",
"522632": "榕江县",
"522633": "从江县",
"522634": "雷山县",
"522635": "麻江县",
"522636": "丹寨县",
"522700": "黔南布依族苗族自治州",
"522701": "都匀市",
"522702": "福泉市",
"522722": "荔波县",
"522723": "贵定县",
"522725": "瓮安县",
"522726": "独山县",
"522727": "平塘县",
"522728": "罗甸县",
"522729": "长顺县",
"522730": "龙里县",
"522731": "惠水县",
"522732": "三都水族自治县",
"530000": "云南",
"530100": "昆明市",
"530102": "五华区",
"530103": "盘龙区",
"530111": "官渡区",
"530112": "西山区",
"530113": "东川区",
"530114": "呈贡区",
"530115": "晋宁区",
"530122": "晋宁区(旧)",
"530124": "富民县",
"530125": "宜良县",
"530126": "石林彝族自治县",
"530127": "嵩明县",
"530128": "禄劝彝族苗族自治县",
"530129": "寻甸回族彝族自治县",
"530181": "安宁市",
"530300": "曲靖市",
"530302": "麒麟区",
"530303": "沾益区",
"530304": "马龙区",
"530321": "马龙县(旧)",
"530322": "陆良县",
"530323": "师宗县",
"530324": "罗平县",
"530325": "富源县",
"530326": "会泽县",
"530381": "宣威市",
"530400": "玉溪市",
"530402": "红塔区",
"530403": "江川区",
"530422": "澄江县(旧)",
"530423": "通海县",
"530424": "华宁县",
"530425": "易门县",
"530426": "峨山彝族自治县",
"530427": "新平彝族傣族自治县",
"530428": "元江哈尼族彝族傣族自治县",
"530481": "澄江市",
"530500": "保山市",
"530502": "隆阳区",
"530521": "施甸县",
"530523": "龙陵县",
"530524": "昌宁县",
"530581": "腾冲市",
"530600": "昭通市",
"530602": "昭阳区",
"530621": "鲁甸县",
"530622": "巧家县",
"530623": "盐津县",
"530624": "大关县",
"530625": "永善县",
"530626": "绥江县",
"530627": "镇雄县",
"530628": "彝良县",
"530629": "威信县",
"530630": "水富县(旧)",
"530681": "水富市",
"530700": "丽江市",
"530702": "古城区",
"530721": "玉龙纳西族自治县",
"530722": "永胜县",
"530723": "华坪县",
"530724": "宁蒗彝族自治县",
"530800": "普洱市",
"530802": "思茅区",
"530821": "宁洱哈尼族彝族自治县",
"530822": "墨江哈尼族自治县",
"530823": "景东彝族自治县",
"530824": "景谷傣族彝族自治县",
"530825": "镇沅彝族哈尼族拉祜族自治县",
"530826": "江城哈尼族彝族自治县",
"530827": "孟连傣族拉祜族佤族自治县",
"530828": "澜沧拉祜族自治县",
"530829": "西盟佤族自治县",
"530900": "临沧市",
"530902": "临翔区",
"530921": "凤庆县",
"530922": "云县",
"530923": "永德县",
"530924": "镇康县",
"530925": "双江拉祜族佤族布朗族傣族自治县",
"530926": "耿马傣族佤族自治县",
"530927": "沧源佤族自治县",
"532300": "楚雄彝族自治州",
"532301": "楚雄市",
"532302": "禄丰市",
"532322": "双柏县",
"532323": "牟定县",
"532324": "南华县",
"532325": "姚安县",
"532326": "大姚县",
"532327": "永仁县",
"532328": "元谋县",
"532329": "武定县",
"532331": "禄丰县(旧)",
"532500": "红河哈尼族彝族自治州",
"532501": "个旧市",
"532502": "开远市",
"532503": "蒙自市",
"532504": "弥勒市",
"532523": "屏边苗族自治县",
"532524": "建水县",
"532525": "石屏县",
"532527": "泸西县",
"532528": "元阳县",
"532529": "红河县",
"532530": "金平苗族瑶族傣族自治县",
"532531": "绿春县",
"532532": "河口瑶族自治县",
"532600": "文山壮族苗族自治州",
"532601": "文山市",
"532622": "砚山县",
"532623": "西畴县",
"532624": "麻栗坡县",
"532625": "马关县",
"532626": "丘北县",
"532627": "广南县",
"532628": "富宁县",
"532800": "西双版纳傣族自治州",
"532801": "景洪市",
"532822": "勐海县",
"532823": "勐腊县",
"532900": "大理白族自治州",
"532901": "大理市",
"532922": "漾濞彝族自治县",
"532923": "祥云县",
"532924": "宾川县",
"532925": "弥渡县",
"532926": "南涧彝族自治县",
"532927": "巍山彝族回族自治县",
"532928": "永平县",
"532929": "云龙县",
"532930": "洱源县",
"532931": "剑川县",
"532932": "鹤庆县",
"533100": "德宏傣族景颇族自治州",
"533102": "瑞丽市",
"533103": "芒市",
"533122": "梁河县",
"533123": "盈江县",
"533124": "陇川县",
"533300": "怒江傈僳族自治州",
"533301": "泸水市",
"533323": "福贡县",
"533324": "贡山独龙族怒族自治县",
"533325": "兰坪白族普米族自治县",
"533400": "迪庆藏族自治州",
"533401": "香格里拉市",
"533422": "德钦县",
"533423": "维西傈僳族自治县",
"540000": "西藏",
"540100": "拉萨市",
"540102": "城关区",
"540103": "堆龙德庆区",
"540104": "达孜区",
"540121": "林周县",
"540122": "当雄县",
"540123": "尼木县",
"540124": "曲水县",
"540126": "达孜县(旧)",
"540127": "墨竹工卡县",
"540171": "格尔木藏青工业园区",
"540172": "拉萨经济技术开发区",
"540173": "西藏文化旅游创意园区",
"540174": "达孜工业园区",
"540200": "日喀则市",
"540202": "桑珠孜区",
"540221": "南木林县",
"540222": "江孜县",
"540223": "定日县",
"540224": "萨迦县",
"540225": "拉孜县",
"540226": "昂仁县",
"540227": "谢通门县",
"540228": "白朗县",
"540229": "仁布县",
"540230": "康马县",
"540231": "定结县",
"540232": "仲巴县",
"540233": "亚东县",
"540234": "吉隆县",
"540235": "聂拉木县",
"540236": "萨嘎县",
"540237": "岗巴县",
"540300": "昌都市",
"540302": "卡若区",
"540321": "江达县",
"540322": "贡觉县",
"540323": "类乌齐县",
"540324": "丁青县",
"540325": "察雅县",
"540326": "八宿县",
"540327": "左贡县",
"540328": "芒康县",
"540329": "洛隆县",
"540330": "边坝县",
"540400": "林芝市",
"540402": "巴宜区",
"540421": "工布江达县",
"540422": "米林县",
"540423": "墨脱县",
"540424": "波密县",
"540425": "察隅县",
"540426": "朗县",
"540500": "山南市",
"540502": "乃东区",
"540521": "扎囊县",
"540522": "贡嘎县",
"540523": "桑日县",
"540524": "琼结县",
"540525": "曲松县",
"540526": "措美县",
"540527": "洛扎县",
"540528": "加查县",
"540529": "隆子县",
"540530": "错那县",
"540531": "浪卡子县",
"540600": "那曲市",
"540602": "色尼区",
"540621": "嘉黎县",
"540622": "比如县",
"540623": "聂荣县",
"540624": "安多县",
"540625": "申扎县",
"540626": "索县",
"540627": "班戈县",
"540628": "巴青县",
"540629": "尼玛县",
"540630": "双湖县",
"542400": "那曲地区(旧)",
"542421": "那曲县(旧)",
"542422": "嘉黎县(旧)",
"542423": "比如县(旧)",
"542424": "聂荣县(旧)",
"542425": "安多县(旧)",
"542426": "申扎县(旧)",
"542427": "索县(旧)",
"542428": "班戈县(旧)",
"542429": "巴青县(旧)",
"542430": "尼玛县(旧)",
"542431": "双湖县(旧)",
"542500": "阿里地区",
"542521": "普兰县",
"542522": "札达县",
"542523": "噶尔县",
"542524": "日土县",
"542525": "革吉县",
"542526": "改则县",
"542527": "措勤县",
"610000": "陕西",
"610100": "西安市",
"610102": "新城区",
"610103": "碑林区",
"610104": "莲湖区",
"610111": "灞桥区",
"610112": "未央区",
"610113": "雁塔区",
"610114": "阎良区",
"610115": "临潼区",
"610116": "长安区",
"610117": "高陵区",
"610118": "鄠邑区",
"610122": "蓝田县",
"610124": "周至县",
"610125": "鄠邑区(旧)",
"610200": "铜川市",
"610202": "王益区",
"610203": "印台区",
"610204": "耀州区",
"610222": "宜君县",
"610300": "宝鸡市",
"610302": "渭滨区",
"610303": "金台区",
"610304": "陈仓区",
"610305": "凤翔区",
"610322": "凤翔县(旧)",
"610323": "岐山县",
"610324": "扶风县",
"610326": "眉县",
"610327": "陇县",
"610328": "千阳县",
"610329": "麟游县",
"610330": "凤县",
"610331": "太白县",
"610400": "咸阳市",
"610402": "秦都区",
"610403": "杨陵区",
"610404": "渭城区",
"610422": "三原县",
"610423": "泾阳县",
"610424": "乾县",
"610425": "礼泉县",
"610426": "永寿县",
"610427": "彬县(旧)",
"610428": "长武县",
"610429": "旬邑县",
"610430": "淳化县",
"610431": "武功县",
"610481": "兴平市",
"610482": "彬州市",
"610500": "渭南市",
"610502": "临渭区",
"610503": "华州区",
"610522": "潼关县",
"610523": "大荔县",
"610524": "合阳县",
"610525": "澄城县",
"610526": "蒲城县",
"610527": "白水县",
"610528": "富平县",
"610581": "韩城市",
"610582": "华阴市",
"610600": "延安市",
"610602": "宝塔区",
"610603": "安塞区",
"610621": "延长县",
"610622": "延川县",
"610623": "子长县(旧)",
"610625": "志丹县",
"610626": "吴起县",
"610627": "甘泉县",
"610628": "富县",
"610629": "洛川县",
"610630": "宜川县",
"610631": "黄龙县",
"610632": "黄陵县",
"610681": "子长市",
"610700": "汉中市",
"610702": "汉台区",
"610703": "南郑区",
"610721": "南郑县(旧)",
"610722": "城固县",
"610723": "洋县",
"610724": "西乡县",
"610725": "勉县",
"610726": "宁强县",
"610727": "略阳县",
"610728": "镇巴县",
"610729": "留坝县",
"610730": "佛坪县",
"610800": "榆林市",
"610802": "榆阳区",
"610803": "横山区",
"610821": "神木县(旧)",
"610822": "府谷县",
"610824": "靖边县",
"610825": "定边县",
"610826": "绥德县",
"610827": "米脂县",
"610828": "佳县",
"610829": "吴堡县",
"610830": "清涧县",
"610831": "子洲县",
"610881": "神木市",
"610900": "安康市",
"610902": "汉滨区",
"610921": "汉阴县",
"610922": "石泉县",
"610923": "宁陕县",
"610924": "紫阳县",
"610925": "岚皋县",
"610926": "平利县",
"610927": "镇坪县",
"610928": "旬阳县(旧)",
"610929": "白河县",
"610981": "旬阳市",
"611000": "商洛市",
"611002": "商州区",
"611021": "洛南县",
"611022": "丹凤县",
"611023": "商南县",
"611024": "山阳县",
"611025": "镇安县",
"611026": "柞水县",
"620000": "甘肃",
"620100": "兰州市",
"620102": "城关区",
"620103": "七里河区",
"620104": "西固区",
"620105": "安宁区",
"620111": "红古区",
"620121": "永登县",
"620122": "皋兰县",
"620123": "榆中县",
"620171": "兰州新区",
"620200": "嘉峪关市",
"620300": "金昌市",
"620302": "金川区",
"620321": "永昌县",
"620400": "白银市",
"620402": "白银区",
"620403": "平川区",
"620421": "靖远县",
"620422": "会宁县",
"620423": "景泰县",
"620500": "天水市",
"620502": "秦州区",
"620503": "麦积区",
"620521": "清水县",
"620522": "秦安县",
"620523": "甘谷县",
"620524": "武山县",
"620525": "张家川回族自治县",
"620600": "武威市",
"620602": "凉州区",
"620621": "民勤县",
"620622": "古浪县",
"620623": "天祝藏族自治县",
"620700": "张掖市",
"620702": "甘州区",
"620721": "肃南裕固族自治县",
"620722": "民乐县",
"620723": "临泽县",
"620724": "高台县",
"620725": "山丹县",
"620800": "平凉市",
"620802": "崆峒区",
"620821": "泾川县",
"620822": "灵台县",
"620823": "崇信县",
"620824": "华亭县(旧)",
"620825": "庄浪县",
"620826": "静宁县",
"620881": "华亭市",
"620900": "酒泉市",
"620902": "肃州区",
"620921": "金塔县",
"620922": "瓜州县",
"620923": "肃北蒙古族自治县",
"620924": "阿克塞哈萨克族自治县",
"620981": "玉门市",
"620982": "敦煌市",
"621000": "庆阳市",
"621002": "西峰区",
"621021": "庆城县",
"621022": "环县",
"621023": "华池县",
"621024": "合水县",
"621025": "正宁县",
"621026": "宁县",
"621027": "镇原县",
"621100": "定西市",
"621102": "安定区",
"621121": "通渭县",
"621122": "陇西县",
"621123": "渭源县",
"621124": "临洮县",
"621125": "漳县",
"621126": "岷县",
"621200": "陇南市",
"621202": "武都区",
"621221": "成县",
"621222": "文县",
"621223": "宕昌县",
"621224": "康县",
"621225": "西和县",
"621226": "礼县",
"621227": "徽县",
"621228": "两当县",
"622900": "临夏回族自治州",
"622901": "临夏市",
"622921": "临夏县",
"622922": "康乐县",
"622923": "永靖县",
"622924": "广河县",
"622925": "和政县",
"622926": "东乡族自治县",
"622927": "积石山保安族东乡族撒拉族自治县",
"623000": "甘南藏族自治州",
"623001": "合作市",
"623021": "临潭县",
"623022": "卓尼县",
"623023": "舟曲县",
"623024": "迭部县",
"623025": "玛曲县",
"623026": "碌曲县",
"623027": "夏河县",
"630000": "青海",
"630100": "西宁市",
"630102": "城东区",
"630103": "城中区",
"630104": "城西区",
"630105": "城北区",
"630106": "湟中区",
"630121": "大通回族土族自治县",
"630122": "湟中县(旧)",
"630123": "湟源县",
"630200": "海东市",
"630202": "乐都区",
"630203": "平安区",
"630222": "民和回族土族自治县",
"630223": "互助土族自治县",
"630224": "化隆回族自治县",
"630225": "循化撒拉族自治县",
"632200": "海北藏族自治州",
"632221": "门源回族自治县",
"632222": "祁连县",
"632223": "海晏县",
"632224": "刚察县",
"632300": "黄南藏族自治州",
"632301": "同仁市",
"632321": "同仁县(旧)",
"632322": "尖扎县",
"632323": "泽库县",
"632324": "河南蒙古族自治县",
"632500": "海南藏族自治州",
"632521": "共和县",
"632522": "同德县",
"632523": "贵德县",
"632524": "兴海县",
"632525": "贵南县",
"632600": "果洛藏族自治州",
"632621": "玛沁县",
"632622": "班玛县",
"632623": "甘德县",
"632624": "达日县",
"632625": "久治县",
"632626": "玛多县",
"632700": "玉树藏族自治州",
"632701": "玉树市",
"632722": "杂多县",
"632723": "称多县",
"632724": "治多县",
"632725": "囊谦县",
"632726": "曲麻莱县",
"632800": "海西蒙古族藏族自治州",
"632801": "格尔木市",
"632802": "德令哈市",
"632803": "茫崖市",
"632821": "乌兰县",
"632822": "都兰县",
"632823": "天峻县",
"632857": "大柴旦行政委员会",
"640000": "宁夏",
"640100": "银川市",
"640104": "兴庆区",
"640105": "西夏区",
"640106": "金凤区",
"640121": "永宁县",
"640122": "贺兰县",
"640181": "灵武市",
"640200": "石嘴山市",
"640202": "大武口区",
"640205": "惠农区",
"640221": "平罗县",
"640300": "吴忠市",
"640302": "利通区",
"640303": "红寺堡区",
"640323": "盐池县",
"640324": "同心县",
"640381": "青铜峡市",
"640400": "固原市",
"640402": "原州区",
"640422": "西吉县",
"640423": "隆德县",
"640424": "泾源县",
"640425": "彭阳县",
"640500": "中卫市",
"640502": "沙坡头区",
"640521": "中宁县",
"640522": "海原县",
"650000": "新疆",
"650100": "乌鲁木齐市",
"650102": "天山区",
"650103": "沙依巴克区",
"650104": "新市区",
"650105": "水磨沟区",
"650106": "头屯河区",
"650107": "达坂城区",
"650109": "米东区",
"650121": "乌鲁木齐县",
"650200": "克拉玛依市",
"650202": "独山子区",
"650203": "克拉玛依区",
"650204": "白碱滩区",
"650205": "乌尔禾区",
"650400": "吐鲁番市",
"650402": "高昌区",
"650421": "鄯善县",
"650422": "托克逊县",
"650500": "哈密市",
"650502": "伊州区",
"650521": "巴里坤哈萨克自治县",
"650522": "伊吾县",
"652300": "昌吉回族自治州",
"652301": "昌吉市",
"652302": "阜康市",
"652323": "呼图壁县",
"652324": "玛纳斯县",
"652325": "奇台县",
"652327": "吉木萨尔县",
"652328": "木垒哈萨克自治县",
"652700": "博尔塔拉蒙古自治州",
"652701": "博乐市",
"652702": "阿拉山口市",
"652722": "精河县",
"652723": "温泉县",
"652800": "巴音郭楞蒙古自治州",
"652801": "库尔勒市",
"652822": "轮台县",
"652823": "尉犁县",
"652824": "若羌县",
"652825": "且末县",
"652826": "焉耆回族自治县",
"652827": "和静县",
"652828": "和硕县",
"652829": "博湖县",
"652871": "库尔勒经济技术开发区",
"652900": "阿克苏地区",
"652901": "阿克苏市",
"652902": "库车市",
"652922": "温宿县",
"652923": "库车县(旧)",
"652924": "沙雅县",
"652925": "新和县",
"652926": "拜城县",
"652927": "乌什县",
"652928": "阿瓦提县",
"652929": "柯坪县",
"653000": "克孜勒苏柯尔克孜自治州",
"653001": "阿图什市",
"653022": "阿克陶县",
"653023": "阿合奇县",
"653024": "乌恰县",
"653100": "喀什地区",
"653101": "喀什市",
"653121": "疏附县",
"653122": "疏勒县",
"653123": "英吉沙县",
"653124": "泽普县",
"653125": "莎车县",
"653126": "叶城县",
"653127": "麦盖提县",
"653128": "岳普湖县",
"653129": "伽师县",
"653130": "巴楚县",
"653131": "塔什库尔干塔吉克自治县",
"653200": "和田地区",
"653201": "和田市",
"653221": "和田县",
"653222": "墨玉县",
"653223": "皮山县",
"653224": "洛浦县",
"653225": "策勒县",
"653226": "于田县",
"653227": "民丰县",
"654000": "伊犁哈萨克自治州",
"654002": "伊宁市",
"654003": "奎屯市",
"654004": "霍尔果斯市",
"654021": "伊宁县",
"654022": "察布查尔锡伯自治县",
"654023": "霍城县",
"654024": "巩留县",
"654025": "新源县",
"654026": "昭苏县",
"654027": "特克斯县",
"654028": "尼勒克县",
"654200": "塔城地区",
"654201": "塔城市",
"654202": "乌苏市",
"654203": "沙湾市",
"654221": "额敏县",
"654223": "沙湾县(旧)",
"654224": "托里县",
"654225": "裕民县",
"654226": "和布克赛尔蒙古自治县",
"654300": "阿勒泰地区",
"654301": "阿勒泰市",
"654321": "布尔津县",
"654322": "富蕴县",
"654323": "福海县",
"654324": "哈巴河县",
"654325": "青河县",
"654326": "吉木乃县",
"659001": "石河子市",
"659002": "阿拉尔市",
"659003": "图木舒克市",
"659004": "五家渠市",
"659005": "北屯市",
"659006": "铁门关市",
"659007": "双河市",
"659008": "可克达拉市",
"659009": "昆玉市",
"659010": "胡杨河市",
"659011": "新星市",
"710000": "台湾",
"710100": "台北市",
"710101": "中正区",
"710102": "大同区",
"710103": "中山区",
"710104": "万华区",
"710105": "信义区",
"710106": "松山区",
"710107": "大安区",
"710108": "南港区",
"710109": "北投区",
"710110": "内湖区",
"710111": "士林区",
"710112": "文山区",
"710200": "新北市",
"710201": "板桥区",
"710202": "土城区",
"710203": "新庄区",
"710204": "新店区",
"710205": "深坑区",
"710206": "石碇区",
"710207": "坪林区",
"710208": "乌来区",
"710209": "五股区",
"710210": "八里区",
"710211": "林口区",
"710212": "淡水区",
"710213": "中和区",
"710214": "永和区",
"710215": "三重区",
"710216": "芦洲区",
"710217": "泰山区",
"710218": "树林区",
"710219": "莺歌区",
"710220": "三峡区",
"710221": "汐止区",
"710222": "金山区",
"710223": "万里区",
"710224": "三芝区",
"710225": "石门区",
"710226": "瑞芳区",
"710227": "贡寮区",
"710228": "双溪区",
"710229": "平溪区",
"710300": "桃园市",
"710301": "桃园区",
"710302": "中坜区",
"710303": "平镇区",
"710304": "八德区",
"710305": "杨梅区",
"710306": "芦竹区",
"710307": "大溪区",
"710308": "龙潭区",
"710309": "龟山区",
"710310": "大园区",
"710311": "观音区",
"710312": "新屋区",
"710313": "复兴区",
"710400": "台中市",
"710401": "中区",
"710402": "东区",
"710403": "西区",
"710404": "南区",
"710405": "北区",
"710406": "西屯区",
"710407": "南屯区",
"710408": "北屯区",
"710409": "丰原区",
"710410": "大里区",
"710411": "太平区",
"710412": "东势区",
"710413": "大甲区",
"710414": "清水区",
"710415": "沙鹿区",
"710416": "梧栖区",
"710417": "后里区",
"710418": "神冈区",
"710419": "潭子区",
"710420": "大雅区",
"710421": "新小区",
"710422": "石冈区",
"710423": "外埔区",
"710424": "大安区",
"710425": "乌日区",
"710426": "大肚区",
"710427": "龙井区",
"710428": "雾峰区",
"710429": "和平区",
"710500": "台南市",
"710501": "中西区",
"710502": "东区",
"710503": "南区",
"710504": "北区",
"710505": "安平区",
"710506": "安南区",
"710507": "永康区",
"710508": "归仁区",
"710509": "新化区",
"710510": "左镇区",
"710511": "玉井区",
"710512": "楠西区",
"710513": "南化区",
"710514": "仁德区",
"710515": "关庙区",
"710516": "龙崎区",
"710517": "官田区",
"710518": "麻豆区",
"710519": "佳里区",
"710520": "西港区",
"710521": "七股区",
"710522": "将军区",
"710523": "学甲区",
"710524": "北门区",
"710525": "新营区",
"710526": "后壁区",
"710527": "白河区",
"710528": "东山区",
"710529": "六甲区",
"710530": "下营区",
"710531": "柳营区",
"710532": "盐水区",
"710533": "善化区",
"710534": "大内区",
"710535": "山上区",
"710536": "新市区",
"710537": "安定区",
"710600": "高雄市",
"710601": "楠梓区",
"710602": "左营区",
"710603": "鼓山区",
"710604": "三民区",
"710605": "盐埕区",
"710606": "前金区",
"710607": "新兴区",
"710608": "苓雅区",
"710609": "前镇区",
"710610": "旗津区",
"710611": "小港区",
"710612": "凤山区",
"710613": "大寮区",
"710614": "鸟松区",
"710615": "林园区",
"710616": "仁武区",
"710617": "大树区",
"710618": "大社区",
"710619": "冈山区",
"710620": "路竹区",
"710621": "桥头区",
"710622": "梓官区",
"710623": "弥陀区",
"710624": "永安区",
"710625": "燕巢区",
"710626": "阿莲区",
"710627": "茄萣区",
"710628": "湖内区",
"710629": "旗山区",
"710630": "美浓区",
"710631": "内门区",
"710632": "杉林区",
"710633": "甲仙区",
"710634": "六龟区",
"710635": "茂林区",
"710636": "桃源区",
"710637": "那玛夏区",
"710700": "基隆市",
"710701": "中正区",
"710702": "七堵区",
"710703": "暖暖区",
"710704": "仁爱区",
"710705": "中山区",
"710706": "安乐区",
"710707": "信义区",
"710800": "新竹市",
"710801": "东区",
"710802": "北区",
"710803": "香山区",
"710900": "嘉义市",
"710901": "东区",
"710902": "西区",
"719001": "宜兰县",
"719002": "新竹县",
"719003": "苗栗县",
"719004": "彰化县",
"719005": "南投县",
"719006": "嘉义县",
"719007": "云林县",
"719008": "屏东县",
"719009": "台东县",
"719010": "花莲县",
"719011": "澎湖县",
"719012": "金门县",
"719013": "连江县",
"810000": "香港",
"810101": "中西区",
"810102": "湾仔区",
"810103": "东区",
"810104": "南区",
"810105": "油尖旺区",
"810106": "深水埗区",
"810107": "九龙城区",
"810108": "黄大仙区",
"810109": "观塘区",
"810110": "北区",
"810111": "大埔区",
"810112": "沙田区",
"810113": "西贡区",
"810114": "荃湾区",
"810115": "屯门区",
"810116": "元朗区",
"810117": "葵青区",
"810118": "离岛区",
"820000": "澳门",
"820101": "花地玛堂区",
"820102": "圣安多尼堂区",
"820103": "大堂区",
"820104": "望德堂区",
"820105": "风顺堂区",
"820106": "嘉模堂区",
"820107": "圣方济各堂区",
"820108": "路氹城",
"820109": "澳门新城"
}
错误码
返回的错误码
code | 描述 | 备注 |
---|---|---|
100001 | 需要登录才能进行该操作 | |
100002 | 登录失效 | |
100003 | 用户权限不够,不能完成该操作 | |
100004 | 账户已过期 | |
100005 | 参数异常 | 缺少必要参数 |
201010 | 无法创建过去开始的叫号面试 | |
201011 | 找不到可用的面试申请 | |
201012 | 面试开始后无法变更面试开始时间 | |
201013 | 无法将面试开始时间修改为过去的时间 | |
201014 | 面试开始后无法变更面试地点 | |
201015 | 无法删除候选人 | |
201016 | 面试开始后无法变更面试轮次 | |
201017 | 面试开始后无法修改简历类型 | |
201018 | 面试开始后无法删除已选房间 | |
201019 | 当前场地已经被删除,请选择其他场地 | |
201020 | 临时房间名称不能重名 | |
201021 | 您已经在 ${房间名字} 签到就座 | |
201022 | 面试官没有在房间中 | |
201023 | 面试官没有该轮次 | |
201024 | 该房间已经存在其他面试官 | |
201025 | 不能把候选人移入面试中房间 | |
201026 | 不能退出面试中的面试官 | |
201030 | 队列不存在 | |
201031 | 面试中的候选人不能更换面试官 | |
201032 | 候选人不在队列中 | |
201033 | 不能移动其他场次或轮次的候选人 | |
201040 | 反馈创建叫号面试失败 | |
201041 | 面试分组时间不能小于面试开始时间 | |
201042 | 当前叫号面试已经失效 | |
201043 | 现场申请职位不能为空 | |
201044 | 候选人不能为空 | |
201045 | 现场叫号面试状态不匹配 | |
201046 | 叫号面试现场申请时间不匹配 | |
201047 | 叫号面试允许现场申请的职位不匹配 | |
201048 | 本场叫号面试已存在相同职位下的申请 | |
201049 | 检查候选人申请的职位是否存在相同职位的申请,并且其申请流程在第一个面试流程之后 | |
201050 | 候选人其他职位正在处理中 | |
201051 | 面试官重复出现 | |
201052 | 多人面试数量设置异常 | |
201053 | 多人面试状态修改异常,只可以在面试当前之前进行修改 | |
201054 | 多人面试轮次获取异常,一个面试官只能存在一个轮次下 | |
201055 | 获取反馈异常,反馈数据异常反馈模版数量不可大于1 | |
201056 | 获取反馈异常,反馈数据异常 | |
201057 | 面试中的候选人不能移动 | |
201058 | 候选人或申请不存在 | |
201059 | 已签到的面试官不允许删除 | |
201060 | 候选人校验异常 | |
211010 | 与本面官已安排面试冲突 | |
211011 | 轮次名称不可以为空 | |
211012 | 轮次名称或英文名称不可以重复 | |
211013 | pdf渲染失败 | |
211014 | 权重面试评价表模块计算类型必须全部是权重 | |
211015 | 权重总和不是100 | |
211016 | 权重表里的打分题,权重不能为空 | |
211017 | 缺少职位Id | |
211018 | 找不到所选面试评价表,请刷新重试 | |
211019 | 找不到招聘模式 | |
211020 | 请确保打分题分值统一 | |
211021 | 找不到指定面试反馈信 | |
211022 | 最多可导出连续7天的面试 | |
211030 | 找不到符合条件的面试记录 | |
211031 | 面试官已填写反馈 | |
211032 | 候选人没有参加面试 | |
211033 | 无效的面试反馈 | |
211034 | 只有面试官才能填写面试反馈 | |
211037 | 面试反馈失败 | |
211041 | 没有绑定飞书的用户 | |
211090 | 评价模板有修改 | |
221001 | 预约面试不存在 | |
221002 | 预约面试不可取消 | |
221003 | 不可变更不可用场次的面试状态 | |
221004 | 该场次已有候选人预约,请移动全部候选人后再禁用 | |
221005 | 当前格子不存在 | |
221006 | 不可变更已取消或锁定的预约面试 | |
221007 | 只可修改状态为未预约和已预约的预约面试 | |
221008 | 预约面试已截止 | |
221009 | 只可修改状态为预约中的预约面试 | |
221010 | 修改次数已达到上限 | |
221011 | 预约面试状态不可预约 | |
221012 | 预约面试数据异常,缺少必要字段 | |
221013 | 当前无可选时间 | |
221014 | 当前组不存在 | |
221015 | 预约面试申请不存在 | |
221016 | 不可以移动候选人到禁用的场次 | |
221017 | 目标场次已满员 | |
221018 | 找不到归档原因 | |
221019 | 预约面试已锁定 | |
221020 | 服务调用异常 | |
221021 | 预约面试关联表数据异常 | |
221022 | 本次修改时间与已预约时间相同,无需变更 | |
221023 | 面试官异常 | |
221024 | 当前状态不能重新锁定预约面试 | |
300100 | 模版不存在 | |
300101 | 模版名称不能为空 | |
300102 | 名称长度不能超过{}个字符 | |
300103 | 系统中已经有同名模板,请更名后再试 | |
300104 | 该模板为默认模板,无法删除 | |
300105 | 未知模版类型 | |
300106 | Office模版暂不支持报错快照 | |
300200 | 字段名称为空 | |
300201 | 字段类型为空 | |
300202 | 字段类型不合法 | |
300203 | 字段名称过长 | |
300204 | 字段名称不可重复 | |
300205 | 字段名称不存在 | |
300206 | 字段必审 | |
300207 | 薪资类型错误 | |
300208 | 字段值不合法 | |
300300 | 每个阶段都必须选择审批人 | |
300301 | 阶段审批人重复 | |
300302 | 所选用户不存在 | |
300303 | 用户没有操作部门的权限 | |
300304 | Offer审批流程不存在 | |
300305 | Offer审批流状态为空 | |
300306 | 此审批流没有审批节点 | |
300307 | 创建审批流日志失败 | |
300308 | 审批流ID为空 | |
300309 | 审批人列表为空 | |
300310 | Offer审批进行中,不可修改 | |
300311 | 未在Offer审批状态中 | |
300312 | Offer审批已进行,不可设置审批流程 | |
300313 | Offer审批流模版不存在 | |
300314 | Offer审批流模版ID为空 | |
300315 | Offer审批进行中,不可取消 | |
300316 | 存在不合法的offer审批状态 | |
300317 | accessToken为空 | |
300318 | forawardAccessToken生产失败 | |
300319 | Offer已审批 | |
300320 | 不支持的Offer审批阶段 | |
300321 | 审批人已审批完成 | |
300322 | 此用户不是该offer审批人 | |
300323 | 审批人已审批完成 | |
300400 | 参数错误 | |
300401 | 角色错误 | |
300402 | 用户错误 | |
300500 | 接口返回值错误 | 调用其他服务报错 |
300501 | 用户错误 | 申请不存在 |
300502 | 申请已归档 | |
300503 | 无效的地址 | |
300504 | 无效的职位级别 | |
300505 | 发送文本处理错误 | |
300506 | 申请ID必传 | |
300507 | 职位不存在 | |
300508 | 招聘模式错误 | |
300509 | 当前申请所在阶段有误 | |
300510 | hc不可被关联 | |
300511 | 存在虚拟职位 | |
300512 | 更新入职日期失败 | |
300513 | 更新申请失败 | |
300514 | 已经更新过该申请 | |
300515 | 候选人不存在 | |
300516 | 候选人邮箱为空 | |
300517 | 候选人手机号为空 | |
300518 | 短信余量不足 | |
300519 | 创建操作记录失败 | |
300520 | 找不到归档人才库 | |
300600 | Offer不存在 | |
300601 | Offer不存在审批流程 | |
300602 | OfferId为空 | |
300603 | Offer附件获取URL失败 | |
300604 | Offer创建人ID为空 | |
300605 | Offer中职位信息为空 | |
300606 | Offer状态错误 | |
300607 | Offer接受状态不存在 | |
300608 | Offer已接受 | |
300609 | Offer发送记录已接受 | |
300610 | 删除Offer失败,请刷新后重试 | |
300611 | Offer正在审批中,不能被删除 | |
300612 | 申请下已存在Offer | |
300613 | Offer发送记录不存在 | |
300614 | Offer发送记录已处理或已失效 | |
300615 | 不允许编辑Offer详情 | |
300616 | Offer创建失败 | |
300617 | Offer审批未通过,不可发送 | |
300618 | 未开启外部系统创建Offer | |
300619 | Offer创建人不存在 | |
300620 | 该创建人没有创建offer权限 | |
300621 | 该用户没有发送offer权限 | |
300622 | 字段不能为空 | |
300800 | kafka消费数据异常 | |
400009 | 后续操作失败 | |
400010 | 职位选择错误 | |
400011 | 职位不存在! | |
400012 | 读取猎头公司设置失败! | |
400013 | 获取配置信息失败 | |
400014 | 获取职位信息失败 | |
400015 | 获取渠道信息失败 | |
400016 | 清除候选人token失败 | |
400017 | 候选人处于保护期 | |
400018 | 职位已关闭 | |
400019 | 找不到猎头合同或合同已失效/禁用 | |
400020 | 获取猎头渠道信息失 | |
400021 | 候选人职位不统一 | |
400022 | 初筛阶段不存在 | |
500101 | 北森服务器异常 | |
500102 | 北森返回数据异常 | |
500103 | 未绑定北森服务 | |
500301 | 牛客服务器异常 | |
500302 | 牛客返回数据异常 | |
500303 | 未绑定牛客服务 | |
700010 | 候选人查重失败 | |
700011 | 获取候选人信息失败 | |
700012 | 获取配置信息失败 | |
700013 | 职位选择错误 | |
700014 | 职位不存在 | |
700015 | 找不到猎头合同或合同已失效/禁用 | |
700016 | 获取同一职位下候选人查重结果失败 |