Switch API document version
Apinew interface
Switch toApinew interface
Exam/Assessment、PES(Pre-employment screening)、Video interview interface guidance (platform)
Switch toExam/Assessment、PES(Pre-employment screening)、Video interview interface guidance
Offer API
GetofferCustom field list
Request example
$ curl https://api.mokahr.com/api-platform/v1/offers/custom_fields
Response example
{
"social": [
{
"id": 496,
"name": "dmj-offer",
"type": 1,
"detail": null,
"hire_mode": 1
},
{
"id": 281,
"name": "子公司",
"type": 6,
"detail": [
"子公司1",
"子公司2",
"子公司3"
],
"hire_mode": 2
},
{
"id": 456,
"name": "offer-校-年月日",
"type": 9,
"detail": null,
"hire_mode": 2
}
],
"campus": [
{
"id": 273,
"name": "Time period4",
"type": 7,
"detail": null,
"hire_mode": 2
},
{
"id": 276,
"name": "Single line text",
"type": 1,
"detail": null,
"hire_mode": 2
},
{
"id": 277,
"name": "家庭住址",
"type": 1,
"detail": null,
"hire_mode": 2
}
]
}
HTTP request
GET https://api.mokahr.com/api-platform/v1/offers/custom_fields
Response
Response body in JSON
| Field | Type | Description |
|---|---|---|
| social | array | Custom field for experienced hires |
| social[].id | integer | Custom fieldid |
| social[].name | string | Custom field name |
| social[].type | integer | Custom field type: 1Single line text,2 Multiple-line text,3Yes-or-No question,4Select year and month,6 Choice question,7Time period,8Offer associated HC,9 Date,10Number |
| social[].detail | array | Options of custom field |
| social[].hire_mode | integer | Recruitment type: 1 experienced hires, 2 Campus recruitment |
| campus | array | Custom field for campus recruitment |
| campus[].id | integer | Custom fieldid |
| campus[].name | string | Custom field name |
| campus[].type | integer | Custom field type: 1Single line text,2 Multiple-line text,3Yes-or-No question,4Select year and month,6 Choice question,7Time period,8Offer associated HC,9 Date,10Number |
| campus[].detail | array | Options of custom field |
| campus[].hire_mode | integer | Recruitment type: 1 experienced hires, 2 Campus recruitment |
UserAPI
Sync personnel info to Moka system
The Moka system will synchronize (add, update, mark and delete) the personnel in the current system according to the requested list. Synchronization uses any one of the user's email, employee number, and phone as the primary key, and compares it with any of the user's email, employee number, and phone in the system: 1、The current system does not have it, but it does exist during synchronization: add a new user 2、The current system has it during synchronization: update the existing user's information. If it exists during synchronization, the current system job status is marked as deleted, and after updating, the status changes to normal.
HTTP request
POST https://api.mokahr.com/api-platform/v1/users/syncInfo
Request example (JSON)
{
"usersInfo": [{
"email": "test@mokahr.com",
"name": "张三",
"phone": "18710000182",
"number": "101",
"role": 10,
"departmentCode": ["888","999"],
"superiorEmail": "superior@mokahr.com",
"deactivated": 0,
"thirdPartyId": "E12345",
"updateDepartment": true,
"updateSuperiorEmail": true,
"autoActivated": 1,
"locale":"en-English"
}]
}
Operation successful
{
"success": true
}
Operation failed
{
"success": false,
"errorMessage": "Error info "
}
Request body parameter
| Field | Required | Type | Description |
|---|---|---|---|
| Yes | string | ||
| name | Yes | string | Name |
| phone | Yes | string | Phone |
| number | No | string | Employee number |
| role | Yes | integer | Role Optional value: 0:Referrer 5: Reception 10:Interviewer 20:Hiring manager 25:Senior hiring manager 30:HR 40:Administrator 50:Super-administrator It can be used when the current field is created, and does not support data update. If it is updated, it will go to the corresponding v2 interface.。 |
| roleId | No | integer | Custom roleid:It can be used when the current field is created, and does not support data update. If it is updated, it will go to the corresponding v2 interface. |
| departmentCode | Yes | array | Department,Pass an empty array for all departments |
| superiorEmail | Yes | string | Upper class email,Pass an empty string will*clear*reporting relationship in moka system,You can update the reporting relationship by setting the updateSuperiorEmail parameter |
| deactivated | Yes | integer | Whether be disabled Optional value: 0:Available 1:Disabled |
| thirdPartyId | Yes | string | Functional field,Used to SSO,Not pass empty string |
| updateDepartment | No | boolean | !!!Note:The default is true if not pass Whether to update the department true:Updatefalse:Not update |
| updateSuperiorEmail | No | boolean | Whether to update the superior reporter Optional value: true:Update false:Not update Default istrue |
| autoActivated | No | integer | Whether to auto-activate, senior manager, HR, administrator and supervisor roles need to send emails for account activation by default. Optional value: 0:Do not activate automatically, send an email to the user for manual activation 1:Auto-activation, the system generates a default password for auto-activation Passing an empty string defaults to 0 |
| locale | No | string | User language Optional value: zh-CN:Chinese en-US:EnglishChinese by default |
Handle
The Moka system will sync (add and update) users in the current system according to the email and employee number of each user in the requested list.
Possible error info
| errorMessage | Description |
|---|---|
| The personnel information synchronization switch is not turned on | |
| Parameter format is incorrect | such as:Department must be array |
| Sync up to 100 users at a time | |
| Email and employee number cannot be empty | |
| Role is an integer or an empty string | The empty string default interviewer |
| Missing required parameter | All are required parameters No pass |
| No corresponding department information found | When organization structure synchronization is enabled No matching departments were found |
| The phone number has been used by another account of the company,Please try other phone | |
| This email has been used by other user | |
| This employee number has been used by other user | |
| At least one administrator | |
| Insufficient of available senior manager accounts | |
| Insufficient of available accounts | |
| System error | |
| ... |
Precautions
For debugging, please contact the relevant IC to open。 Please confirm that the organizational structure synchronization is enabled, and the organizational structure data has been synchronized, otherwise the personnel department information will be processed as the whole department Email and employee number cannot be empty。 Only built-in roles are supported,Role information is empty or 0 default interviewer。 The user information for each synchronization cannot exceed 100. When a user makes an error during synchronization, the synchronization will stop and an error will be reported. The prefix of (email or employee number) will be added before the error message. And the data from before the error is reported has been successfully synchronized.
CandidateAPI
Get candidate info
Request example
curl --location --request GET 'https://api.mokahr.com/api-platform/v1/data/ehrApplications?stage=all&applicationId=333333333' \
--header 'Authorization: Basic TW4xY**********ckpDdnk6' \
--data-raw ''
Response example
{
"data": [{
"applicationId": 47151744,
"candidateId": 28739723,
"name": "张三",
"phone": null,
"email": "yang111@163.com",
"gender": null,
"birthYear": null,
"birthDate": "2020-03-17T00:00:00.000Z",
"nationality": null,
"experience": null,
"ethnic": null,
"certificateType": null,
"citizenId": null,
"nativePlace": "",
"source": "Other source",
"sourceType": 2,
"sourceList": [
{
"name": "Other source",
"isBuiltin": true
}, {
"id": 4,
"name": "Historical source",
"isBuiltin": true
}
],
"academicDegree": null,
"lastSpeciality": "Human resources management",
"married": null,
"jobCommitment": " Full-time",
"hireMode": 1,
"departmentCode": null,
"parentDepartmentCode": null,
"resumeKey": null,
"stageName": "沟通offer",
"nativePlaceCode": null,
"nationalityCode": null,
"genderCode": null,
"academicDegreeCode": null,
"ethnicCode": null,
"lastCompany": "郑州***限公司",
"campus_site_id": 1,
"campus_site_name": "哈尔冰佛学院",
"job": {
"title": "test",
"department": "xinjan2",
"departmentCode": null,
"parentDepartmentCode": null,
"departmentPath": "华北Region/二级财务部/产品部/产研部/xinjan2",
"jobId": "39d3d5c9-949e-40d4-8d4b-5cb247d327a8",
"customFields": [
{
"name": "职位-年月",
"value": "2019-01"
}
]
},
"jobManager": {
"name": "test",
"email": "11q1@qq.com",
"phone": "17611232222",
"employeeId": "01"
},
"officeweb365Url": null,
"officeweb365PrintUrl": null,
"resumePdfMeta": null,
"portraitUrl": null,
"resumeUrl": "",
"educationInfo": [{
"id": 34263162,
"startDate": "",
"endDate": "",
"school": null,
"speciality": null,
"academicDegree": null,
"startTime": null,
"endTime": null,
"now": false
}],
"experienceInfo": [{
"id": 76685202,
"startDate": "",
"endDate": "",
"company": null,
"title": null,
"startTime": null,
"endTime": null,
"now": false,
"underlingNumber": "5"
}],
"awardInfo": [{
"awardDate": null,
"awardName": null
}],
"customFields": [{
"name": "Single line text",
"value": "122",
"section": "题型测试",
"index": 0
}, {
"name": "Field呀",
"value": "1333",
"section": "1测试",
"index": 0
}, {
"name": "我叫何为",
"value": "题型0001",
"section": "测试",
"index": 0
}, {
"codes": "",
"name": "T选择",
"value": "A",
"section": "1测试",
"index": 0
}, {
"name": "Field呀",
"value": "133333333",
"section": "1测试",
"index": 0
}, {
"name": "我叫何为",
"value": "题型0002",
"section": "1测试",
"index": 0
}, {
"codes": "",
"name": "T选择",
"value": "B:4",
"section": "1测试",
"index": 0
}, {
"name": "T多文本 ",
"value": "多文本 Required",
"section": "basicInfo"
}, {
"codes": "",
"name": "T确认型",
"value": "Y",
"section": "basicInfo"
}],
"interviewers": [],
"interviewFeedbackUrl": null,
"referrer": {
"name": "杨",
"email": "11111@mokahr.com",
"phone": "15001802222",
"number": "2019"
},
"headcountInfo": [],
"jobRanksInfo": [],
"offer": {
"approvalStatus": "APPROVED",
"salaryNumber": null,
"checkinDate": "2018-09-20T13:00:07.000Z",
"location": "上海市 普陀区 XXXX大学XXXX教室",
"creator": {
"name": "报表_HR",
"email": "mce35@yuoia.com"
},
"finishedAt": null,
"customFields": [{
"name": "合同 Date",
"value": "2022"
}, {
"name": "转正 Date",
"value": "2018-09-20"
}, {
"name": "自定义 - 据offer后去向",
"value": null
}, {
"name": "测试123",
"value": null
}, {
"name": "自定义offerField",
"value": null
}, {
"name": "多行",
"value": null
}, {
"name": "222按时",
"value": null
}, {
"name": "1212111111",
"value": null
}],
"hcInfo": null,
"jobRankInfo": null,
"departmentName": "产品创新部",
"departmentCode": 30,
"parentDepartmentCode": 10,
"departmentPath": "产研部/产品创新部",
"offerLastSentAt": "2019-10-29T03:41:07.000Z"
},
" Attachments": [
{
"name": " Attachment1",
"size": 1024,
"url": "https://cdn.mokahr.com/e11d677-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q="
}
],
"ehrCandidateExternalLink": "https://cdn.mokahr.com/forward/candidate/info?access_token=93e0eb37-6a5c-4fe4-91db-0579a844fb51"
},
{
"applicationId": 47168265,
"candidateId": 28755998,
"name": "test",
"phone": "17600000000",
"email": "111111@qq.com",
"gender": null,
"birthYear": null,
"nationality": null,
"experience": null,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"source": "Other",
"sourceType": 2,
"academicDegree": null,
"lastSpeciality": "Human resources management",
"married": null,
"jobCommitment": " Full-time",
"hireMode": 1,
"departmentCode": null,
"parentDepartmentCode": null,
"resumeKey": null,
"stageName": "沟通offer",
"nativePlaceCode": null,
"nationalityCode": null,
"genderCode": null,
"academicDegreeCode": null,
"ethnicCode": null,
"lastCompany": null,
"campus_site_id": 0,
"campus_site_name": null,
"job": {
"title": "test",
"department": "xinjan2",
"departmentCode": null,
"parentDepartmentCode": null,
"departmentPath": "华北Region/二级财务部/产品部/产研部/xinjan2",
"jobId": "ea932057-2637-4408-98a2-a3366b4ade14",
"customFields": [
{
"name": "职位-年月",
"value": "2019-01"
}
]
},
"jobManager": {
"name": "test",
"email": "11q1@qq.com",
"phone": "17611232222",
"employeeId": "01"
},
"officeweb365Url": null,
"officeweb365PrintUrl": null,
"resumePdfMeta": null,
"portraitUrl": null,
"resumeUrl": "",
"educationInfo": [],
"experienceInfo": [],
"awardInfo": [],
"customFields": [],
"interviewers": [],
"interviewFeedbackUrl": null,
"referrer": null,
"headcountInfo": [],
"jobRanksInfo": [],
"offer": {
"salaryNumber": 111,
"checkinDate": "2018-09-20T12:58:17.000Z",
"location": "上海市 普陀区 XXXX大学XXXX教室",
"creator": {
"name": "报表_HR",
"email": "mc435@yuoia.com"
},
"finishedAt": null,
"customFields": [{
"name": "合同 Date",
"value": "2022-03"
}, {
"name": "转正 Date",
"value": "2018-09-20"
}, {
"name": "自定义 - 据offer后去向",
"value": null
}, {
"name": "测试123",
"value": null
}, {
"name": "自定义offerField",
"value": null
}, {
"name": "多行",
"value": null
}, {
"name": "222按时",
"value": null
}, {
"name": "1212111111",
"value": null
}],
"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": " Attachment1",
"size": 1024,
"url": "https://cdn.mokahr.com/e11d677-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q="
}
],
"examReportLinks": [
{
"name": "Exam结果链接",
"url": "https://t.cn/XXXXXX"
}
],
"exam Attachments": [
{
"name": "Exam结果",
"url": "https://cdn.mokahr.com/1234567-4962-4309-b507-2273bf2499c8.pdf?OSSAccessKeyId=BBc12XXIQWCGUAZO&Expires=1505300229&Signature=Vdw6zpNH8HTUnu1FvhSjdXiqK6Q="
}
],
"ehrCandidateExternalLink": "https://cdn.mokahr.com/forward/candidate/info?access_token=93e0eb37-6a5c-4fe4-91db-0579a844fb51",
"invitationUpdateStatus": 1
}],
"next": "47168265"
}
Get candidate info
HTTP request
GET https://api.mokahr.com/api-platform/v1/data/ehrApplications
Request check
| Field | Required | Type | Description |
|---|---|---|---|
| applicationId | No | string | Candidate application ID Note: 1、If there is this parameter, the following parameters are invalid;To obtain multiple candidate information, separate them with commas (,),, such as:81,82,83 2、The applicationId and stage parameters must be passed one |
| stage | No | string | offer(Offer stage) 1、pending_checkin(To be onboarded) 2、all(Offer stage and to be onboarded stage Note::The applicationId and stage parameters must be passed one,If there is no candidate in the current search stage, a server exception will be prompted |
| No | string | Candidate email | |
| phone | No | string | Candidate phone |
| movedAtStartTime | No | string | Start time(Time of moving to this stage) |
| movedAtEndTime | No | string | End time(Time of moving to this stage) |
| limit | No | string | Number of entries per page for pagination,Default is20,Maximux is 20 |
| fromTime | No | No | No this parameter in this interface |
| order | No | string | Sort by pulling data,The sort key is the date of entering the current stage.Optional values are DESC Pull in order from newest to oldest,This is default value ASC Pull in order from oldest to newest Note:When the sorting method is ASC, no matter whether there is more data, next will be included in the returned body (can be used as incremental pull) |
| next | No | string | Paging parameter, if there is more data to be pulled, there will be a next field in the response json, you only need to add this next parameter to the query for the next request. If there is no next field in the response, it means that there is no more dataNote:When the sorting method is ASC, no matter whether there is more data, next will be included in the returned body (can be used as incremental pull) |
| invitationUpdateStatus | No | integer | Invitation to update status 0、Not invited 1、Not update 2、Updated |
Response data
| Field | Type | Description |
|---|---|---|
| candidateId | integer | The candiate unique id in Moka |
| applicationId | integer | The application unique id of candidate in Moka |
| name | string | Name |
| phone | string | Phone |
| string | ||
| prefixPhone | string | Country calling code |
| gender | string | Gender,one of the following values:Male,Female |
| created_at | string | Resume in-system time |
| birthYear | integer | Birthyear,, such as1990 |
| birthDate | string | Birthdate |
| ethnic | string | Ethnicity |
| certificateType | integer | Certificate type 1: id card,2: Hong Kong id card,3: Macau id card,4:Taiwan id card,5: Passport,6: Other identity document |
| citizenId | string | identification No. |
| nationality | string | Country/Region |
| nativePlace | string | Birthplace |
| experience | integer | Work experience,0Graduates,-1Students,Other numbers indicate specific years |
| portraitUrl | string | Image address of the candidate's avatar,The link is valid for1hour |
| hireMode | integer | Recruitment mode,1: experienced hires, 2: Campus recruitment |
| finishedAt | string | Recruitment goal finish time |
| source | string | Source,, such asLagou |
| sourceList | Array | Source level,The array is arranged in the order of first-level source, second-level source, and the order of third-level source, second-level source, and third-level source. |
| sourceList[].id | integer | Sourceid(The id of the first-level source does not existid) |
| sourceList[].name | string | Source name |
| sourceList[].isBuiltin | boolean | Whether the system has a built-in source |
| sourceType | integer | Source,one of the following values:1,2,3。1 Active search,2 Direct delivery,3 Talent recommendation。PS:It will not be used from 2020-03-164 Headhunting referral |
| location | string | Location,, such asBeijing |
| lastCompany | string | Recent company,one of the following values:nullno recent company,xxxServed company name |
| academicDegree | string | Highest education,one of the following values:Bachelor degree,Master degree,Doctor degree,Senior high school,Junior college,Technical secondary school,MBA,Other |
| lastSpeciality | string | Recent graduate major |
| married | string | Marital status,one of the following values:'Married', 'Single', 'Divorced', 'Widowed', 'CIVILUNION', 'COHABITATING', 'MARRIED', 'DIVORCED', 'ENGAGED', 'SEPARATED', 'SINGLE', 'WIDOWED' |
| nativePlaceCode | integer | Birthplace code(null when birthplace is empty,Code details refer to Attachment) |
| nationalityCode | integer | Nationality code(null when nationality is emptynull,Code details refer to Attachment) |
| genderCode | integer | Gender code(null when gender is emptynull,Code details refer to Attachment) |
| academicDegreeCode | integer | Education code(null when education is emptynull,Code details refer to Attachment) |
| ethnicCode | integer | Ethnicity(null when ethnicity is emptynull,Code details refer to Attachment) |
| personal | string | Self-description |
| salary | string | Current salary |
| forwardLocation | string | Preferred city |
| aimSalary | string | Preferred salary |
| personalInterests | string | Hobby |
| political | string | Political status |
| educationInfo[] | array | Education experience |
| educationInfo[].startDate | string | School start date,accurate to month。, such as2010-09, 2008 |
| educationInfo[].endDate | string | School end date,accurate to month。, such as2010-09, 2008 |
| educationInfo[].now | boolean | Whether the end time represents "to date"。, such astrue。If it is true, the value of endDate may be any value, just ignore endDate at this time |
| educationInfo[].school | string | School |
| educationInfo[].speciality | string | Major |
| educationInfo[].academicDegree | string | Education,one of the following values:Bachelor degree,Master degree,Doctor degree,Senior high school,Junior college,Technical secondary school,MBA,Other |
| experienceInfo[] | array | Work experience |
| experienceInfo[].startDate | string | Work start time,accurate to month。, such as2010-09, 2008 |
| experienceInfo[].endDate | string | Work end time,accurate to month。, such as2010-09, 2008 |
| experienceInfo[].now | boolean | Whether the end time represents "to date"。, such asfalse。If it is true, the value of endDate may be any value, just ignore endDate at this time |
| experienceInfo[].company | string | Company name |
| experienceInfo[].title | string | Job title |
| experienceInfo[].department | string | Department |
| experienceInfo[].salary | string | Salary |
| experienceInfo[].summary | string | Job responsibility |
| experienceInfo[].reasonForLeaving | string | Reason for resignation |
| experienceInfo[].underlingNumber | string | No.of subordinate |
| experienceInfo[].type | string | Company type |
| experienceInfo[].size | string | Company size |
| awardInfo[] | array | Awards |
| awardInfo[].awardDate | datetime | Winning date |
| awardInfo[].awardName | string | Award name |
| resumeUrl | string | Resume download link,HTTP GET requests this URL to download the original resume file. This link is time-sensitive, and the expiration time is 1 hour. It needs to be downloaded and saved on the server as soon as possible after receiving the request. |
| job | object | Position info |
| job.jobId | string | 职位ID |
| job.title | string | Job title |
| job.department | string | Department |
| job.departmentPath | string | The full path of the department, from superior to subordinate, separated by / |
| job.departmentCode | string | Departmentcode |
| job.parentDepartmentCode | string | Parent departmentcode |
| job.competencyType | string | Function type |
| job.jobDescription | string | Job description |
| job.customFields | array | jobCustom field |
| job.customFields[].name | string | jobCustom field name |
| job.customFields[].value | string | jobCustom field value |
| interviewers[] | array | The interviewer who join in this application of the candidate |
| interviewers[].name | string | Interviewer name |
| interviewers[].email | string | Interviewer email |
| interviewers[].phone | string | Interviewer phone |
| interviewers[].id | number | Interviewid |
| interviewers[].groupId | string | Interview groupid |
| interviewers[].attendStatus | string | Whether to accept the interview No feedback, No show, Rejected, Accepted |
| interviewers[].cancelReason | string | Reason for cancelling interview |
| interviewers[].participated | string | Interview feedback classification interview not conducted, Feedback filled, Feedback not filled |
| interviewers[].status | string | Interview status Cancelled, unfinished, Finished |
| interviewers[].round | integer | Interview rounds,1: 1st round,2: 2nd round,3: Final round ,etc. |
| interviewers[].roundName | string | Interview round name,1st round,2nd round,Final round ,etc. |
| interviewers[].roundOtherName | object | The name of interview rounds in other languages |
| interviewers[].startTime | string | Interview start time |
| interviewers[].createdAt | string | Time for creating interview |
| interviewers[].locationCountry | string | Interview location(Country) |
| interviewers[].locationCityId | number | Interview location(Cityid) |
| interviewers[].locationAddress | string | Interview location(Full address) |
| interviewers[].result Deprecated | integer | Interview result 1: Very dissatisfied, 2: Dissatisfied, 3: Satisfaction, 4: Very satisfied |
| interviewers[].resultName | string | Interview feedback |
| interviewers[].resultType | integer | Type of interview feedback result 0: Dissatisfied 1: Satisfaction |
| interviewers[].feedback | string | Interview feedback content |
| interviewers[].resultTime | string | Interview feedback filling time |
| interviewers[].feedbackTemplateResult | array | Information of interview evaluation |
| interviewers[].feedbackTemplateResult[].type | number Question type, 1: Scoring question, 2: Multiple choice, 3: Description, 4: Multiple response |
|
| interviewers[].feedbackTemplateResult[].title | string | Question title |
| interviewers[].feedbackTemplateResult[].description | string | Question description |
| interviewers[].feedbackTemplateResult[].result | number | Total score |
| interviewers[].feedbackTemplateResult[].calcScoreType | string | avg: Average, total: Sum (only valid when type is 1) |
| interviewers[].feedbackTemplateResult[].scoreType | number | 5 means total score is 5,10 means total score is 10(only valid when type is 1) |
| interviewers[].feedbackTemplateResult[].needReason | string | Whether need score review(only valid when type is 1) |
| interviewers[].feedbackTemplateResult[].subjects | array | Information about each sub-question |
| interviewers[].feedbackTemplateResult[].subjects[].type | number | Question type, 1: Scoring question, 2: Multiple choice, 3: Description, 4: Multiple response |
| interviewers[].feedbackTemplateResult[].subjects[].title | string | Sub-question title |
| interviewers[].feedbackTemplateResult[].subjects[].description | string | Sub-question description |
| interviewers[].feedbackTemplateResult[].subjects[].result | number | Sub-question result: the scoring question is the value of the selected score; the single-choice question is the index value of the option, starting from 0; the description question is the description string question type=2 single-choice question, the return value is "result": 0, Question type=4 multiple choice question return value is "result":[1,2] |
| interviewers[].feedbackTemplateResult[].subjects[].reason | string | Score review |
| interviewers[].feedbackTemplateResult[].subjects[].options | string | Options string array(only valid when type is 2) |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord | object | Related info of interview satisfaction |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord.sendTime | string | The sending time of interview satisfaction evaluation |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord.isAnonymous | Boolean | Whether to anonymously evaluate |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord.content | string | Evaluate content,jsonFormat: {"customFields":[{"options":[//Options"Options1","Options2","Options3"],"subTitle":"Description of multiple choice questions111",//Sub-title"title":"Multiple choice",//Title"type":"single",//TypesingleMultiple choice,mutiSelectMultiple response,describeDescription"value":"0"//Multiple choice value(Subscripts start from 0)},{"options":["Options11","Options22","Options33","Options44"],"subTitle":"Description of multiple response questions333","title":"Multiple response","type":"mutiSelect",//Multiple response"value":"[0,2,1]"//Multiple response value(Subscripts start from 0,No order)},{"subTitle":"Description4444","title":"Description","type":"describe",//Description"value":"Description question result"//Description question value}],"essaySectionTitle":"Other comment",//Other comment(When setting the evaluation form, you can configure whether to display it through the switch)"essayValue":"Other evaluation result"//Values corresponding to other evaluation} |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord.satisfactionDimensions | array | Dimension array(Interview process |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord[].name | string | Dimension name |
| data[].interviewInfo[].interviewerFeedbacks[].satisfactionRecord[].name | string | Dimension corresponding value |
| interviewFeedbackUrl | string | Interview feedback summary file download link, HTTP GET requests this URL to download the interview feedback summary file, this link is time-sensitive, the expiration time is 1 hour, it needs to be downloaded and saved on the server as soon as possible after receiving the request |
| extendedInterviewers[] | array | Participate in the candidate's application interviewer's no interview feedback information,Specific field referenceinterviewers |
| extendedInterviewerFeedbackUrl | string | Interview feedback summary file download link, HTTP GET requests this URL to download the interview feedback summary file, this link is time-sensitive, the expiration time is 1 hour, it needs to be downloaded and saved on the server as soon as possible after receiving the request |
| ehrCustomFields[] | array | ehrCustom export field collection |
| ehrCustomFields[].name | string | Custom field name |
| ehrCustomFields[].value | any | Custom field value |
| ehrCandidateExternalLink | string | Link to Candidate Details,Can be opened directly in the browser to view,The link is valid for 14 days by default |
| referrer | object | Referrer info |
| referrer.name | string | Referrer name |
| referrer.email | string | Referrer email |
| referrer.phone | string | Referrer phone |
| referrer.number | string | Employee No. of referrer,one of the following values:nullno employee No.,xxxEmployee number |
| jobRanksInfo[].name | string | Job level name |
| jobRanksInfo[].type | string | Job level type |
| jobRanksInfo[].level | string | Job level grade |
| headcountInfo[].id | number | Headcount ID |
| headcountInfo[].number | string | Headcount Number |
| headcountInfo[].name | string | Headcount Title |
| headcountInfo[].status | string | Headcount Status |
| customFields[] | array | Candidate custom field,Include only custom fields set in the standard resume |
| customFields[].name | string | Custom field name |
| customFields[].value | string | Custom field value。For yes or no question type,1 “Yes”,0 “No”。 |
| customFields[].now | boolean | This field exists when the custom field is time,Indicates whether the time (or the end of the time range) is "to date"。, for exampletrue。, such as果为true,Then the corresponding time may be any value, please note |
| customFields[].section | string | The module name where the custom field is located. The module can be a built-in module (such as experienceInfo) or a custom module (such as emergency contact) |
| customFields[].index | string | For modules with multiple pieces of data, such as experienceInfo, educationInfo, or custom modules (such as emergency contacts), index indicates which field is the custom field information of the first piece of data |
| customFields[].codes | string | Custom code for multiple choice questions (only valid for multiple choice questions with code) |
| offer | object | offerInfo |
| offer.createdAt | string | offerCreated time。Date format is:ISO8601 |
| offer.status | string | offerStatus;To be created:notCreated To be sent: pending Pending:sent Accepted: accepted Rejected: rejected |
| offer.approvalStatus | string | Approval status UNINITIATED: // Uninitiated;INPROGRESS: // In process;APPROVED: // Approved;REJECTED: // Denied;RECALLED: // Withdrawn |
| offer.salaryNumber | number | Monthly salary |
| offer.checkinDate | string | Estimated start time |
| offer.location | string | Onboard Location |
| offer.creator | object | offerCreator info |
| offer.creator.name | string | offerCreator name |
| offer.creator.email | string | offerCreator email |
| offer.finishedAt | string | offerAccept time。Date format is:ISO8601 |
| offer.customFields | array | offerCustom field |
| offer.customFields[].name | string | offerCustom field name |
| offer.customFields[].value | string | offerCustom field value |
| offer.customFields[].codes | string | Custom code for multiple choice questions (only valid for multiple choice questions with code) |
| offer.hcInfo | object | HeadCount info selected by offer |
| offer.hcInfo.id | number | HeadCount ID selected by offer |
| offer.hcInfo.number | string | HeadCount number selected by offer |
| offer.hcInfo.name | string | HeadCount name selected by offer |
| offer.hcInfo.status | string | HeadCount status selected by offer |
| offer.jobRankInfo | object | The job level information selected by the offer |
| offer.jobRankInfo.type | string | The job level type selected by the offer |
| offer.jobRankInfo.level | string | The job level selected by the offer |
| offer.jobRankInfo.name | string | The job level name selected by the offer |
| offer.departmentName | string | Onboarding department name |
| offer.departmentCode | number | Onboarding department code |
| offer.parentDepartmentCode | number | Entry Department Upper Departmentcode |
| offer.departmentPath | string | The full path of Onboarding department |
| offer.offerLastSentAt | string | Last send offer time |
| offer.offer AttachmentDownloadUrl | string | Attachment download URL generated by offer,Valid for 1 hour |
| Attachments | array | The candidate's Attachment |
| Attachments[].name | string | The doc. name of candidate's Attachment |
| Attachments[].applyFormId | number | Registration templateID |
| Attachments[].size | integer | Candidate Attachment size |
| Attachments[].url | string | The download url of candidate Attachment |
| Attachments[].customFieldId | integer | Custom Attachment field ID |
| Attachments[].customFieldName | string | Custom Attachment field names |
| Attachments[].type | string | Candidate Attachment type,Values are:CANDIDATE_UPLOAD_ Attachment Upload by candidateUPLOAD_PORTRAIT Candidate AvatarHR_UPLOAD_ Attachment HRManual uploadHM_UPLOAD_ Attachment Manual upload on the HR sideINTERVIEW_ACCEPT Attachment of the registration form generated by the candidate for the interviewINTERVIEW_SIGNIN Registration form Attachment generated by candidate interview check-inOFFER_ACCEPT Candidates accept the registration form Attachment generated by OFFERMERGE_APPLICATION_ Attachment Attachments generated by candidate mergersINVITE_UPDATE_RESUME Invite candidates to update the registration form for resume generation |
| offer Attachment | object | CandidateofferRelevant Attachments No this field by default,Please contact your CMS if necessary, This field will not exist even if the get candidate interface switch is turned on |
| offer Attachment.url | string | CandidateofferThe download address of relevant Attachments The link address is valid for1hour |
| examReportLinks | array | Candidate exam/Assessment result link |
| examReportLinks[].name | string | Candidate exam/Assessment name |
| examReportLinks[].url | string | Candidate exam/Assessment result link |
| exam Attachments | array | Candidate exam/Relevant Attachment of assessment |
| exam Attachments[].name | string | Candidate exam/Assessment related Attachment file name |
| exam Attachments[].url | string | Candidate exam/Assessment related Attachment download address The link address is valid for1hour |
| projectInfo | array | Project experience |
| projectInfo[].startDate | string | Project start date,accurate to month。, such as2010-09, 2008 |
| projectInfo[].endDate | string | Project end date,accurate to month。, such as2010-09, 2008 |
| projectInfo[].projectName | string | Project name |
| projectInfo[].title | string | Job title and duty |
| projectInfo[].projectDescript | string | Project description |
| projectInfo[].responsibilities | string | Responsibility in project |
| projectInfo[].now | boolean | Whether the end time represents "to date"。, such asfalse。If it is true, the value of endDate may be any value, just ignore endDate at this time |
| languageInfo | array | Language skill |
| languageInfo[].language | string | Language type |
| languageInfo[].level | string | Proficiency |
| languageInfo[].listenAndSpeak | string | Listening and speaking |
| languageInfo[].readAndWrite | string | Reading and writing |
| stageName | string | Stage name |
| jobManager | object | Position administrator |
| jobManager.name | string | The name of position leader |
| jobManager.phone | string | The phone of position leader |
| jobManager.email | string | Position leader email |
| jobManager.employeeId | string | Position leader phone employee No. |
| jobAssistants | array | Position assistant |
| jobAssistants[].name | string | Position assistant name |
| jobAssistants[].phone | string | Position assistant phone |
| jobAssistants[].email | string | Position assistant email |
| jobAssistants[].employeeId | string | Position assistant employee No. |
| label | array | Candidate tag |
| label[].id | number | Tagid |
| label[].label | string | Tag name |
| remarks | array | Candidate note |
| remarks[].creator | object | The creator info of note |
| remarks[].creator.name | object | The creator name of note |
| remarks[].creator.phone | object | The creator phone of note |
| remarks[].creator.email | object | The creator email of note |
| remarks[].creator.number | object | The creator's employee No. of note |
| remarks[].content | string | Note content |
| remarks[].targets | array | The person information of @ in the comment, the format is the same as the creator information |
| remarks[].is_private | number | Whether the not is private,1:Private0:Public |
| remarks[].type | string | Note type:Fill in manually |
| remarks[].created_at | string | Time for creating note |
| owners | object | Candidate owner |
| owners.name | string | Candidate owner name |
| owners.phone | string | Candidate owner phone |
| owners.email | string | Candidate owner email |
| owners.employeeId | string | Candidate owner employee No. |
| survey | array | Pre-employment screening (PES) content |
| survey[].name | string | Pre-employment screening (PES) name |
| survey[].date | string | Pre-employment screening (PES) date |
| survey[].result | string | Pre-employment screening (PES) result |
| survey[].survey AttachmentsUrl | string | The link of PES report |
| survey[].survey AttachmentName | string | The name of PES Attachment |
| survey[].survey Attachments[] | array | PES multiple Attachments(The new version of single Attachment and multiple Attachments are in this Attachment collection,The original single- Attachment results are only used for historical compatibility) |
| survey[].survey Attachments[].survey AttachmentsUrl | string | The link of PES report |
| survey[].survey Attachments[].survey AttachmentName | string | The name of PES Attachment |
| practiceInfo[] | array | Intern experience |
| practiceInfo[].startDate | string | Intern start time |
| practiceInfo[].endDate | string | Intern end time |
| practiceInfo[].company | string | Company name |
| practiceInfo[].title | string | Job title |
| customstyle Attachments | object | Custom registration form info |
| customstyle Attachments.type | string | Attachment type fixeddoc |
| customstyle Attachments.createTime | string | Created time |
| customstyle Attachments.customFieldName | string | Custom Attachment name |
| customstyle Attachments.url | string | Attachment download address |
Get Candidate info v2 interface
HTTP request
POST https://api.mokahr.com/api-platform/v2/data/ehrApplications
> Request example (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]
}'
Response example
{
"code": 200,
"msg": "success",
"data": [
{
"basicInfo": {
"applicationId": 200012943,
"campusSiteId": 0,
"archived": true,
"invitationUpdateStatus": 0,
"movedAt": "2021-04-22T11:47:05.000Z",
"sourceId": 200000480,
"createdAt": "2021-01-26T10:48:03.000Z",
"updatedAt": "2021-06-09T06:14:38.000Z",
"standardResumeUrl": "https://moka-test-public.oss-cn-beijing.aliyuncs.com/7402a966b65b438db315d9b339143e6d.pdf?Expires=1626266775&OSSAccessKeyId=LTAIoEXIQWCGUAZO&Signature=K1qXMEitIKuPxr1gzxa5%2Bz6Gylc%3D×tamp=1626263175803",
"sourceName": "拉勾",
"ehrCandidateExternalLink": "https://staging003.mokahr.com/forward/Candidate/info?access_token=9676f03ac311426e9ff6f74e9851d312916110d27d064a90aca3dbe9838f2571",
"archivedAt": null,
"archiveReasonId": null,
"referrer": null,
"archiveReasonsDetails": null,
"probation": null,
"headcountId": null,
"headcountNumber": null,
"headcountName": null,
"resumeKey": null,
"resumeUrl": null,
"pipelineId": 410030481,
"stageId": 410040910,
"sourceId": 410040910,
"archiveReasons": null,
"talentPoolsList": [
{
"talentPoolId": 200000140,
"name": "系统公共Talent pool",
"description": "所有HR权限及以上用户可见,用户可浏览公共Talent pool中所有Candidate"
}
],
"hireMode": 1,
"stage": {
"name": "沟通offer",
"id": 200000088,
"type": 101
},
"operationRecord": null,
"sourceList": [
{
"name": "招聘网站",
"isBuiltin": 1,
"id": null
},
{
"id": 200000480,
"name": "拉勾",
"isBuiltin": 1
},
{
"id": null,
"name": null,
"isBuiltin": null
}
],
"attachments": [],
"remarks": [
{
"content": "这Yes个Note",
"created_at": "2021-02-02T06:30:45.000Z",
"creator": {
"name": "简彦明",
"employeeId": "",
"id": 200001549,
"email": "jianyanming@mokahr.com",
"number": null
},
"is_private": false,
"type": "人工填写"
}
],
"owner": {
"name": "简彦明",
"email": "jianyanming@mokahr.com",
"employeeId": "",
"phone": null,
"number": null
},
"assignments": null,
"operator": null,
"birthYear": 1990,
"CandidateId": 200012616,
"sourceType": 2,
"name": "全Field",
"phone": "17787871675",
"email": "17787871675@163.com",
"gender": "Male",
"birthDate": "1990-03-07",
"ethnic": "汉族",
"certificateType": 1,
"citizenId": "110101199003079251",
"nationality": "安哥拉",
"nativePlace": "北京City 西城District",
"experience": 4,
"location": "北京Location",
"lastCompany": "Recent company",
"academicDegree": "Doctor degree",
"lastSpeciality": "计算机软件与理论",
"nativePlaceCode": 110102,
"nationalityCode": 1,
"genderCode": 0,
"academicDegreeCode": 7,
"ethnicCode": 1,
"industry": "Industry",
"forwardIndustry": "期望行业",
"lastUpdate": "2020-02-02",
"startFrom": "2021-02-02",
"skill": "Skill",
"awards": "Awards",
"personalInterests": "Hobby",
"lastWorkedJobTitle": "Job title",
"graduateDate": "2018-06-01T00:00:00.000Z",
"salary": "当前Salary",
"aimSalary": "Preferred salary",
"forwardLocation": "Preferred city",
"personal": "Self- description\n",
"blacklistTags": null,
"blacklistDetail": null,
"personalUrl": null,
"portraitUrl": null,
"married": null,
"customFields": [
{
"name": "Department",
"value": "Department",
"section": "experienceInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "工作City",
"value": "工作City",
"section": "experienceInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "所属行业",
"value": "所属行业",
"section": "experienceInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "Education experienceDescription",
"value": "Education experienceDescription\n",
"section": "educationInfo",
"index": 0,
"type": "text_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "教育月",
"value": "2015-07",
"section": "educationInfo",
"index": 0,
"type": "date_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "Language skill",
"value": "Language skill",
"section": "languageInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "Awards2",
"value": "Awards2",
"section": "awardInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "当前居住地",
"value": "当前居住地",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "当前行业",
"value": "当前行业",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "当前职位",
"value": "当前职位",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "期望职业",
"value": "期望职业",
"section": "jobIntention",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "所获奖励",
"value": "所获奖励",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "所获证书",
"value": "所获证书",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "投递From",
"value": "微信",
"section": "basicInfo",
"index": 0,
"type": "select_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "工作年限",
"value": "工作年限",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "投递 Date",
"value": "2021-01-26",
"section": "basicInfo",
"index": 0,
"type": "day_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "当前Salary",
"value": "当前Salary",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "毕业院校",
"value": "毕业院校",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "Language skill",
"value": "Language skill",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "Nationality",
"value": "中国",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "MajorSkill",
"value": "MajorSkill",
"section": "basicInfo",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "Self- description2",
"value": "Self- description2",
"section": "selfDescription",
"index": 0,
"type": "string_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "测试时间2",
"value": "2017-01",
"section": "测试模块",
"index": 0,
"type": "date_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "测试时间3",
"value": "2021-06-16",
"section": "测试模块",
"index": 0,
"type": "day_info",
"customFieldId": null,
"now": null,
"codes": null,
"code": null
},
{
"name": "测试 Time period",
"value": {
"endDate": "2019-01",
"startDate": "2018-01"
},
"now": false,
"section": "测试模块",
"index": 0,
"type": "date_group_info",
"customFieldId": null,
"codes": null,
"code": null
}
],
"label": null,
"educationInfo": [
{
"id": "200018307",
"startDate": "2014-01",
"endDate": "2018-01",
"now": false,
"school": "北京科技大学",
"speciality": "计算机科学与技术",
"academicDegree": "Master degree"
}
],
"experienceInfo": [
{
"id": "200011041",
"startDate": "2016-01",
"endDate": "2017-01",
"now": false,
"company": "Company name",
"title": "Job title",
"location": "Work location",
"industry": "Industry",
"leader": "汇报Object",
"department": "Department",
"salary": "Salary",
"summary": "Job responsibility\n",
"reasonForLeaving": "Reason for resignation",
"underlingNumber": "6",
"type": "Company type",
"size": "Company size"
}
],
"awardInfo": [
{
"id": "200000781",
"awardDate": "2017-01",
"awardName": "Country奖学金"
}
],
"projectInfo": [
{
"id": "200008354",
"startDate": "2017-01",
"endDate": "2021-07",
"now": true,
"projectName": "Project name",
"title": "Job title",
"projectDescription": "Project description\n",
"responsibilities": "Responsibility in project\n"
}
],
"languageInfo": [
{
"id": "200000866",
"language": "Language type",
"level": "良好",
"listenAndSpeak": "一般",
"readAndWrite": "一般"
}
],
"practiceInfo": [
{
"id": "200001954",
"startDate": "2018-01",
"endDate": "2019-01",
"company": "Company name",
"title": "Job title",
"location": "Work location",
"industry": "Industry",
"leader": "汇报Object",
"department": "Department",
"salary": "Salary",
"summary": "Job responsibility\n",
"size": "Company size"
}
]
},
"offerInfo": {
"applicationId": 200012943,
"status": "pending",
"approvalStatus": "UNINITIATED",
"checkinDate": "2021-06-17T16:00:00.000Z",
"salaryNumber": "11",
"locationString": "上海City 黄浦District 黄浦江",
"jobRankLevel": 2,
"jobRankName": "资深",
"dutyLevelName": "",
"salaryType": 3,
"offerAttachmentUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/export_files_cache/sdicfund/offers/2dce43984bdf9a77e2e3823b8110672d.pdf?Expires=1626266774&OSSAccessKeyId=LTAIoEXIQWCGUAZO&Signature=3kwpFQImRTRKIPk7bpCaeb4sypo%3D&response-content-disposition=attachment%3B%20filename%3D%25E5%2585%25A8%25E5%25AD%2597%25E6%25AE%25B5_Offer%25E4%25BF%25A1%25E6%2581%25AF.pdf%3B%20×tamp=1626263174601",
"finishedAt": null,
"jobRankType": null,
"creator": {
"name": "简彦明",
"email": "jianyanming@mokahr.com",
"employeeId": "",
"phone": null,
"number": null
},
"hcInfo": {
"id": 200001747,
"name": "hc",
"number": "1111",
"status": "ongoing",
"manager": {
"name": "简彦明",
"employeeId": "",
"id": 200001549,
"email": "jianyanming@mokahr.com"
},
"department": null
},
"department": {
"departmentName": "国投公司",
"departmentPath": "国投公司",
"id": "200031249",
"departmentCode": null,
"parentAPICode": null
},
"offerHistoryList": [
{
"sentAt": "2022-12-28T13:08:51.000Z",
"sentUser": {
"number": "78293365",
"phone": "13311334334",
"name": "刘阳",
"employeeId": "78293365",
"id": 3551342,
"email": "liuceshi@mokahr.com"
},
"status": "pending",
"operationType": null
}
],
"customFields": [
{
"name": "测试Custom field",
"value": "2016-01 2017-01",
"codes": null,
"code": null
},
{
"name": "测试Custom field2",
"value": "2021-01",
"codes": null,
"code": null
},
{
"name": "测试Custom field3",
"value": "2021-06-09",
"codes": null,
"code": null
}
]
},
"interviewInfo": [
{
"noInterview": false,
"applicationId": 200012943,
"groupInterviewId": 200003333,
"groupId": "de1d030ec7394b6eb07f70977f712852a2100b9198754c0b9a14d9ad71ac50f5",
"status": "Finished",
"CandidateAttendStatus": "No feedback",
"interviewType": "On-site interview",
"jobType": "0",
"locationId": 200000071,
"roundId": 1,
"roundName": "1st round",
"roundEnglishName": "1st round",
"createAt": "2021-01-29T09:35:26.000Z",
"startTime": "2021-01-29T10:00:00.000Z",
"duration": 30,
"interviewFeedbackUrl": "https://staging003.mokahr.com/api/outer/ats-interview/interview/interview-applications/exportPdf/withKey?sign=63e0ef16f4e98d56dedca33c83e2cec9&appSecret=dc07abc6-ad14-4fa6-ba4a-51bf83a0e343&applicationId=200012943&userId=&orgId=sdicfund×tamp=1626263174366",
"locationCityId": 110108,
"locationCountry": "中国",
"locationAddress": "北京City 海淀District 国投创新的地址",
"stageId": 200000087,
"cancelReason": null,
"signInStatus": null,
"locationInfo": null,
"meetingRoomId": null,
"meetingRoomName": null,
"interviewArranger": {
"name": "简彦明",
"email": "jianyanming@mokahr.com",
"employeeId": "",
"phone": null,
"number": null
},
"interviewerFeedbacks": [
{
"interviewer": {
"phone": "18734837688",
"name": "耿凯凯",
"employeeId": "",
"id": 200000307,
"email": "1581904186@qq.com"
},
"participated": "未填写反馈",
"resultName": null,
"resultType": null,
"feedback": null,
"feedbackTemplateResult": null,
"items": null
}
]
},
{
"noInterview": false,
"applicationId": 200012943,
"groupInterviewId": 200003334,
"groupId": "d61f4e46171d44c18980a3128bf861033efc8fe67c544c3db0e2c1d10883919c",
"status": "Finished",
"CandidateAttendStatus": "Accepted",
"interviewType": "On-site interview",
"jobType": "0",
"locationId": 200002114,
"roundId": 2,
"roundName": "2nd round",
"roundEnglishName": "2nd round",
"createAt": "2021-01-29T09:35:36.000Z",
"startTime": "2021-01-29T10:00:00.000Z",
"duration": 30,
"interviewFeedbackUrl": "https://staging003.mokahr.com/api/outer/ats-interview/interview/interview-applications/exportPdf/withKey?sign=63e0ef16f4e98d56dedca33c83e2cec9&appSecret=dc07abc6-ad14-4fa6-ba4a-51bf83a0e343&applicationId=200012943&userId=&orgId=sdicfund×tamp=1626263174366",
"locationCityId": 310101,
"locationCountry": "中国",
"locationAddress": "上海City 黄浦District 黄浦江",
"stageId": 200000087,
"cancelReason": null,
"signInStatus": null,
"locationInfo": null,
"meetingRoomId": null,
"meetingRoomName": null,
"interviewArranger": {
"name": "简彦明",
"email": "jianyanming@mokahr.com",
"employeeId": "",
"phone": null,
"number": null
},
"interviewerFeedbacks": [
{
"interviewer": {
"name": "张乔",
"employeeId": "",
"id": 200000317,
"email": "zhangqiao@mokahr.com"
},
"resultName": " Satisfaction",
"resultType": 1,
"feedback": "综合评价",
"participated": "已填写反馈",
"feedbackTemplateResult": null,
"items": null
}
]
},
{
"noInterview": false,
"applicationId": 200012943,
"groupInterviewId": 200003355,
"groupId": "d50dca4d81364ca0a2d3f6a0d91f118a245e3afbe8f74a63bd45493b302f7fb1",
"status": "Cancelled",
"CandidateAttendStatus": "No feedback",
"interviewType": "On-site interview",
"jobType": "0",
"locationId": 200002114,
"roundId": 2,
"roundName": "2nd round",
"roundEnglishName": "2nd round",
"createAt": "2021-02-01T11:33:43.000Z",
"startTime": "2021-02-01T12:00:00.000Z",
"duration": 30,
"interviewFeedbackUrl": "https://staging003.mokahr.com/api/outer/ats-interview/interview/interview-applications/exportPdf/withKey?sign=63e0ef16f4e98d56dedca33c83e2cec9&appSecret=dc07abc6-ad14-4fa6-ba4a-51bf83a0e343&applicationId=200012943&userId=&orgId=sdicfund×tamp=1626263174366",
"locationCityId": 310101,
"locationCountry": "中国",
"locationAddress": "上海City 黄浦District 黄浦江",
"stageId": 200000087,
"cancelReason": null,
"signInStatus": null,
"locationInfo": null,
"meetingRoomId": null,
"meetingRoomName": null,
"interviewArranger": {
"name": "简彦明",
"email": "jianyanming@mokahr.com",
"employeeId": "",
"phone": null,
"number": null
},
"interviewerFeedbacks": [
{
"interviewer": {
"phone": "15565761890",
"name": "马田",
"employeeId": "",
"id": 200000188,
"email": "matian@sdicfund.com"
},
"participated": "未填写反馈",
"resultName": null,
"resultType": null,
"feedback": null,
"feedbackTemplateResult": null,
"items": null
}
]
},
{
"noInterview": true,
"applicationId": 200012943,
"createAt": "2021-02-01T12:23:01.000Z",
"interviewFeedbackUrl": "https://staging003.mokahr.com/api/outer/ats-interview/interview/interview-applications/exportPdf/withKey?sign=63e0ef16f4e98d56dedca33c83e2cec9&appSecret=dc07abc6-ad14-4fa6-ba4a-51bf83a0e343&applicationId=200012943&userId=&orgId=sdicfund×tamp=1626263174366",
"cancelReason": null,
"groupInterviewId": null,
"groupId": null,
"status": null,
"CandidateAttendStatus": null,
"signInStatus": null,
"interviewType": null,
"jobType": null,
"locationId": null,
"locationInfo": null,
"meetingRoomId": null,
"meetingRoomName": null,
"roundId": null,
"roundName": null,
"roundEnglishName": null,
"startTime": null,
"duration": null,
"locationCityId": null,
"locationCountry": null,
"locationAddress": null,
"stageId": null,
"interviewArranger": null,
"interviewerFeedbacks": [
{
"interviewer": {
"phone": "13480783214",
"name": "houlei",
"employeeId": "",
"id": 200012438,
"email": "houlei@mokahr.com"
},
"resultName": " Satisfaction",
"resultType": 1,
"feedback": "None面试反馈",
"feedbackTemplateResult": null,
"items": null,
"participated": null
}
]
},
{
"noInterview": true,
"applicationId": 200012943,
"createAt": "2021-04-19T06:00:13.000Z",
"interviewFeedbackUrl": "https://staging003.mokahr.com/api/outer/ats-interview/interview/interview-applications/exportPdf/withKey?sign=4917ef78e9becbc120cd1a3a9947b554&appSecret=dc07abc6-ad14-4fa6-ba4a-51bf83a0e343&applicationId=200012943&userId=&orgId=sdicfund×tamp=1626263174367",
"cancelReason": null,
"groupInterviewId": null,
"groupId": null,
"status": null,
"CandidateAttendStatus": null,
"signInStatus": null,
"interviewType": null,
"jobType": null,
"locationId": null,
"locationInfo": null,
"meetingRoomId": null,
"meetingRoomName": null,
"roundId": null,
"roundName": null,
"roundEnglishName": null,
"startTime": null,
"duration": null,
"locationCityId": null,
"locationCountry": null,
"locationAddress": null,
"stageId": null,
"interviewArranger": null,
"interviewerFeedbacks": [
{
"interviewer": {
"name": "简彦明",
"employeeId": "",
"id": 200001549,
"email": "jianyanming@mokahr.com"
},
"resultName": " Satisfaction",
"resultType": 1,
"feedback": "",
"feedbackTemplateResult": {
"description": "带系数",
"id": 410004382,
"items": [
{
"calcScoreType": "total",
"description": "",
"resultScore": 2,
"subjects": [
{
"arrangeType": 0,
"description": "",
"isRequired": false,
"needReason": true,
"result": 1,
"scoreType": 5,
"title": "第一个题目",
"type": 1
},
{
"arrangeType": 0,
"description": "",
"isRequired": false,
"needReason": false,
"result": 1,
"scoreType": 5,
"title": "第二个题目",
"type": 1
}
],
"title": "一般"
},
{
"description": "没有系数,不计算得分",
"subjects": [
{
"arrangeType": 0,
"description": "",
"isRequired": false,
"needReason": true,
"reason": "123",
"result": 1,
"scoreType": 5,
"title": "没有系数第一题",
"type": 1
},
{
"arrangeType": 0,
"description": "",
"isRequired": false,
"needReason": false,
"result": 1,
"scoreType": 5,
"title": "第二题",
"type": 1
}
],
"title": "第二个大模块"
},
{
"calcScoreType": "avg",
"description": "Average",
"resultScore": 1,
"subjects": [
{
"arrangeType": 0,
"description": "",
"isRequired": false,
"needReason": false,
"result": 1,
"scoreType": 5,
"title": "平均第一题",
"type": 1
},
{
"arrangeType": 0,
"description": "",
"isRequired": false,
"needReason": false,
"result": 1,
"scoreType": 5,
"title": "平均第二题",
"type": 1
}
],
"title": "第三个大模块"
}
],
"name": " 一般评价表",
"totalWeightScore": 0,
"version": "1.0"
},
"items": null,
"participated": null
}
]
}
],
"shigongInfo": null,
"examInfo": {
"applicationId": 200012943,
"exams": [
{
"applicationId": 200012943,
"createTime": "2021-02-01T03:36:38.000Z",
"examAttachments": [
{
"attachmentName": "创建录用流程并获取url接口Illustration_csx(2)(1).docx",
"attachmentUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/bf7eba37-760b-4487-954f-9fa5975e272e.docx?Expires=1626266774&OSSAccessKeyId=LTAIoEXIQWCGUAZO&Signature=DZVROJ%2FFDPCfLu1%2FZ3E61PwbTcM%3D&response-content-disposition=attachment%3B%20filename%3D%25E5%2588%259B%25E5%25BB%25BA%25E5%25BD%2595%25E7%2594%25A8%25E6%25B5%2581%25E7%25A8%258B%25E5%25B9%25B6%25E8%258E%25B7%25E5%258F%2596url%25E6%258E%25A5%25E5%258F%25A3%25E8%25AF%25B4%25E6%2598%258E_csx%282%29%281%29.docx%3B%20×tamp=1626263174386",
"jobId": "0978992c-2f09-465f-926d-50c9bc38ec36",
"applicationId": 200012943
}
],
"jobId": "0978992c-2f09-465f-926d-50c9bc38ec36",
"name": "地点",
"result": "33",
"source": "手动上传考试",
"type": "exam"
}
],
"surveys": [
{
"name": "这Yes被调",
"date": "2021-02-01T03:35:43.000Z",
"result": "ok",
"attachmentName": "创建录用流程并获取url接口Illustration_csx(2)(1).docx",
"attachmentUrl": "https://moka-test.oss-cn-beijing.aliyuncs.com/c8d0da08-3ea6-4cf2-a05a-7a18257be4c1.docx?Expires=1626266774&OSSAccessKeyId=LTAIoEXIQWCGUAZO&Signature=ighV1nN%2B3JeS%2BiCiix%2BiqGoAV6k%3D&response-content-disposition=attachment%3B%20filename%3D%25E5%2588%259B%25E5%25BB%25BA%25E5%25BD%2595%25E7%2594%25A8%25E6%25B5%2581%25E7%25A8%258B%25E5%25B9%25B6%25E8%258E%25B7%25E5%258F%2596url%25E6%258E%25A5%25E5%258F%25A3%25E8%25AF%25B4%25E6%2598%258E_csx%282%29%281%29.docx%3B%20×tamp=1626263174386",
"jobId": "0978992c-2f09-465f-926d-50c9bc38ec36",
"applicationId": 200012943,
"source": null
}
]
},
"jobInfo": {
"id": "0978992c-2f09-465f-926d-50c9bc38ec36",
"headcountInfo": [
{
"customFields": [],
"id": 200001747,
"jobId": "0978992c-2f09-465f-926d-50c9bc38ec36",
"name": "hc",
"number": "1111",
"status": "ongoing"
}
],
"mjCode": "MJ000008",
"jobRanksInfo": [
{
"level": 2,
"name": "资深"
}
],
"hireMode": 1,
"title": "测试,etc.,etc.",
"commitment": " Full-time",
"number": null,
"status": "open",
"attributeId": null,
"attributeName": null,
"label": null,
"category": null,
"jobDescription": "
<p>
赛拉开地方啦地方那可能地方
</p>
",
"openedAt": "2020-08-02T16:00:00.000Z",
"campusSiteIds": [],
"campusSites": [],
"finishedAt": null,
"department": {
"info": {
"departmentName": "国投公司",
"departmentPath": "国投公司",
"id": "200031249"
},
"name": "国投公司",
"parentId": null
},
"stores": [],
"customFields": [
{
"name": "Salary",
"value": ""
},
{
"name": "Education",
"value": ""
},
{
"name": "内推金额",
"value": ""
},
{
"name": "job时间2",
"value": "2021-06-09"
},
{
"name": "所属公司",
"value": ""
},
{
"name": "job时间",
"value": "2019-01"
}
],
"jobManager": {
"name": "刘江伟",
"phone": null,
"number": null,
"email": "liujiangwei@mokahr.com",
"employeeId": ""
},
"jobAssistants": [
{
"name": "简彦明",
"phone": null,
"number": null,
"email": "jianyanming@mokahr.com",
"employeeId": ""
}
],
"jobHiringManagers": [],
"jobInterviewers": []
}
}
],
"next": "eyJsaW1pdCI6MSwibmV4dElkIjoyMDAwMjM0ODksIm5leHRVcGRhdGVBdCI6IjIwMjEtMDctMDFUMTc6NDU6NTAiLCJvcmdJZCI6InNkaWNmdW5kIn0="
}
Request body parameter(application/json)
| Field | Required | Type | Description |
|---|---|---|---|
| No | string | Candidate email | |
| applicationIds | No | array[integer] | Application id |
| invitationUpdateStatus | No | integer | Invitation to update status |
| limit | No | integer | Number of entries per page for paging, default 20, max 20. |
| next | No | string | Paging parameter, only pass one |
| phone | No | string | Candidate phone |
| offerAttachment | No | boolean | The offer attachment download link is only responded when true, and is valid for one hour. |
| applicationForm | No | boolean | Only respond the Candidate custom registration form if it is true |
| pipelineIds | No | array[integer] | Process ids |
| stageIds | No | array[integer] | Stage ids |
| updateAtStartTime | No | string | Update start time, pass Beijing time in format YYYY-MM-DDTHH:mm:ss.sssZ |
| updateAtEndTime | No | string | Update end time, pass Beijing time in format YYYY-MM-DDTHH:mm:ss.sssZ |
| needAttachment | No | boolean | Whether to respond attachment, default is true. If true respond attachment, if false not respond attachment. |
| archived | No | boolean | Whether to archive application. true/false(true archived,false not archived) |
| hireMode | No | integer | Recruitment mode. 1/2 (1 experienced hires, 2 campus recruitment, pass others means not pass) |
| applicationCreateStartTime | No | long | Data create begin time (timestamp format, refers to the time when the application was first saved to the database) |
| applicationCreateEndTime | No | long | Data create end time(timestamp format, refers to the time when the application was first saved to the database) |
| applicationAppliedAtStartTime | No | long | Application create begin time(timestamp format, refers to the application date displayed in the system) |
| applicationAppliedAtEndTime | No | long | Application create end time(timestamp format, refers to the application date displayed in the system) |
Response
Response body in JSON
| Field | Type | Description |
|---|---|---|
| code | integer | Return code: non-200 means error |
| msg | string | Error info |
| next | string | If it returns, it will be automatically paginated next time it is requested |
| data | array | Returned data details |
| data[].basicInfo | Object | Candidate application info |
| data[].basicInfo.CandidateId | integer | The unique id of Candidate in Moka |
| data[].basicInfo.pipelineId | long | Recruitment process id of the application |
| data[].basicInfo.stageId | long | Stage id of the application |
| data[].basicInfo.sourceId | long | Source id of the application |
| data[].basicInfo.applicationId | integer | Candidate application ID |
| data[].basicInfo.aimWorkCity | string | Candidate preferred city |
| data[].basicInfo.name | string | Name |
| data[].basicInfo.phone | string | Phone number |
| data[].basicInfo.prefixPhone | string | Country calling code |
| data[].basicInfo.email | string | |
| data[].basicInfo.gender | string | Gender, one of the values: male, female |
| data[].basicInfo.birthDate | string | Birthdate |
| data[].basicInfo.ethnic | string | Ethnicity |
| data[].basicInfo.certificateType | integer | Certificate type Optional values are: 1: id card 2: Hong Kong id card3: Macau id card4:Taiwan id card 5: Passport6: Other identity document7: Exit-Entry Permit for Travelling to and from Hong Kong and Macau (EEP)8: The Mainland Travel Permit for Taiwan Residents9: Foreigners' Work Permit 10`:Residence Permit for Foreigner |
| data[].basicInfo.citizenId | string | identification No. |
| data[].basicInfo.nationality | string | Country/Region |
| data[].basicInfo.nativePlace | string | Birthplace |
| data[].basicInfo.experience | integer | Work experienceOptional values are:0:Graduates-1:Current studentsOthersNumber:represents specific year |
| data[].basicInfo.skill | string | Skill |
| data[].basicInfo.awards | string | Awards |
| data[].basicInfo.personalInterests | string | Hobby |
| data[].basicInfo.lastWorkedJobTitle | string | Current position |
| data[].basicInfo.graduateDate | string | Graduation time |
| data[].basicInfo.personal | string | Self- description |
| data[].basicInfo.location | string | Location,such as Beijing |
| data[].basicInfo.academicDegree | string | Highest degree, one of the followings: Bachelor, Master, Doctor, Senior high school, Junior college, Technical secondary school, MBA, Others |
| data[].basicInfo.lastCompany | string | Recent company,optional values are:nullno recent company,xxxServed company name |
| data[].basicInfo.lastSpeciality | string | Recent graduate major |
| data[].basicInfo.industry | string | Industry |
| data[].basicInfo.forwardIndustry | string | Preferred industry |
| data[].basicInfo.startFrom | string | On-duty time |
| data[].basicInfo.salary | string | Current salary |
| data[].basicInfo.aimSalary | string | Preferred salary |
| data[].basicInfo.forwardLocation | string | Preferred city |
| data[].basicInfo.ethnicCode | integer | Ethnicity code(null if Ethnicity is empty, see attachment for code details) |
| data[].basicInfo.nativePlaceCode | integer | Birthplace code (null if native place is empty, see attachment for code details) |
| data[].basicInfo.nationalityCode | integer | Nationality code(null if nationality is empty, see attachment for code details) |
| data[].basicInfo.genderCode | integer | Gender code(null if gender is empty, see attachment for code details) |
| data[].basicInfo.academicDegreeCode | integer | Recent graduate major |
| data[].basicInfo.lastUpdate | string | Update resume time |
| data[].basicInfo.blacklistTags | string | Blacklist tag(only in blacklist talent pool) |
| data[].basicInfo.blacklistDetail | string | Blacklist reason(only in blacklist talent pool) |
| data[].basicInfo.married | string | Marital status Optional values are:'Married' 'Single' 'Divorced' 'Widowed' 'CIVILUNION' 'COHABITATING' 'MARRIED' 'DIVORCED' 'ENGAGED' 'SEPARATED' 'SINGLE' 'WIDOWED' |
| data[].basicInfo.political | string | Political status |
| data[].basicInfo.customFields | array | Custom field list |
| data[].basicInfo.customFields[].builtinInfoId | Long | Locate the custom information and its module, such as which specific work experience or education experience corresponds to a certain custom information, etc. |
| data[].basicInfo.customFields[].customFieldId | Long | Custom fieldID |
| data[].basicInfo.customFields[].name | String | Custom field name |
| data[].basicInfo.customFields[].value | Booleanor*String* | Custom field values, which return different types of values based on the field type |
| data[].basicInfo.customFields[].now | String | This field exists when the custom field is a time period, indicating whether the end time is "today". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| data[].basicInfo.customFields[].section | String | Field attribution, the declaration is a custom field under which of the followings custom field: basicInfo Basic information jobIntention Preferred jobexperienceInfo Work experience educationInfo Educational background practiceInfo Intern experienceprojectInfo Project experience languageInfo Language skill selfDescription Self- description awardInfo Awards |
| data[].basicInfo.customFields[].index | number | Index. For modules with multiple data such as experienceInfo, educationInfo or custom modules (e.g. emergency contacts), index indicates that this field is the custom field information of which piece of data. |
| data[].basicInfo.customFields[].codes | array['String'] | The code of options value of choice question |
| data[].basicInfo.label | array | Candidate tag |
| data[].basicInfo.label[].id | integer | Tag id |
| data[].basicInfo.label[].label | string | Tag name |
| data[].basicInfo.label[].type | number | TagType Optional values are: 1:Smart tag2:Manual tag |
| data[].basicInfo.educationInfo[] | array | Education experience |
| data[].basicInfo.educationInfo[].id | string | Education experience id |
| data[].basicInfo.educationInfo[].startDate | string | School start date,accurate to month. , such as2010-09, 2008 |
| data[].basicInfo.educationInfo[].endDate | string | School end date,accurate to month. , such as2010-09, 2008 |
| data[].basicInfo.educationInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now,now=true, the value of endDate may be any value at this time, just ignore endDate |
| data[].basicInfo.educationInfo[].school | string | School |
| data[].basicInfo.educationInfo[].speciality | string | Major |
| data[].basicInfo.educationInfo[].academicDegree | string | Degree, one of the followings: Bachelor, Master, Doctor, Senior high school, Junior college, Technical secondary school, MBA, Others |
| data[].basicInfo.awardInfo[] | array | Awards |
| data[].basicInfo.awardInfo[].id | string | Awards id |
| data[].basicInfo.awardInfo[].awardDate | string | Winning date |
| data[].basicInfo.awardInfo[].awardName | string | Award name |
| data[].basicInfo.projectInfo | array | Project experience |
| data[].basicInfo.projectInfo[].id | string | Project experience id |
| data[].basicInfo.projectInfo[].startDate | string | Project start date,accurate to month. , such as2010-09, 2008 |
| data[].basicInfo.projectInfo[].endDate | string | Project end date,accurate to month. , such as2010-09, 2008 |
| data[].basicInfo.projectInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| data[].basicInfo.projectInfo[].projectName | string | Project name |
| data[].basicInfo.projectInfo[].title | string | Job title and duty |
| data[].basicInfo.projectInfo[].projectDescription | string | Project description |
| data[].basicInfo.projectInfo[].responsibilities | string | Responsibility in project |
| data[].basicInfo.languageInfo | array | Language skill |
| data[].basicInfo.languageInfo[].id | string | Language skill id |
| data[].basicInfo.languageInfo[].language | string | Language type |
| data[].basicInfo.languageInfo[].level | string | Proficiency |
| data[].basicInfo.languageInfo[].listenAndSpeak | string | Listening and speaking |
| data[].basicInfo.languageInfo[].readAndWrite | string | Reading and writing |
| data[].basicInfo.practiceInfo[] | array | Intern experience |
| data[].basicInfo.practiceInfo[].id | string | Intern experience id |
| data[].basicInfo.practiceInfo[].startDate | string | Intern start time |
| data[].basicInfo.practiceInfo[].endDate | string | Intern end time |
| data[].basicInfo.practiceInfo[].company | string | Company name |
| data[].basicInfo.practiceInfo[].title | string | Job title |
| data[].basicInfo.practiceInfo[].location | string | Work location |
| data[].basicInfo.practiceInfo[].industry | string | Industry |
| data[].basicInfo.practiceInfo[].leader | string | Report to |
| data[].basicInfo.practiceInfo[].department | string | Department |
| data[].basicInfo.practiceInfo[].salary | string | Salary |
| data[].basicInfo.practiceInfo[].summary | string | Job responsibility |
| data[].basicInfo.practiceInfo[].type | string | Company type |
| data[].basicInfo.practiceInfo[].size | string | Company size |
| data[].basicInfo.interestSource[].id | Ingeger | id |
| data[].basicInfo.interestSource[].name | string | name |
| data[].basicInfo.interestSource[].email | string | |
| data[].basicInfo.experienceInfo[] | array | Work experience |
| data[].basicInfo.experienceInfo[].id | string | Work experience id |
| data[].basicInfo.experienceInfo[].startDate | string | Work start time,accurate to month. , such as2010-09, 2008 |
| data[].basicInfo.experienceInfo[].endDate | string | Work end time,accurate to month. , such as2010-09, 2008 |
| data[].basicInfo.experienceInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| data[].basicInfo.experienceInfo[].company | string | Company name |
| data[].basicInfo.experienceInfo[].title | string | Job title |
| data[].basicInfo.experienceInfo[].location | string | Work location |
| data[].basicInfo.experienceInfo[].industry | string | Industry |
| data[].basicInfo.experienceInfo[].department | string | Department |
| data[].basicInfo.experienceInfo[].leader | string | Reporting person |
| data[].basicInfo.experienceInfo[].salary | string | Salary |
| data[].basicInfo.experienceInfo[].summary | string | Job responsibility |
| data[].basicInfo.experienceInfo[].reasonForLeaving | string | Reason for resignation |
| data[].basicInfo.experienceInfo[].underlingNumber | string | No.of subordinate |
| data[].basicInfo.experienceInfo[].type | string | Company type |
| data[].basicInfo.experienceInfo[].size | string | Company size |
| data[].basicInfo.archived | boolean | Whether to archive the application |
| data[].basicInfo.archivedAt | string | Archive application time |
| data[].basicInfo.archiveReasonId | integer | Reason for archiveID |
| data[].basicInfo.archiveReasons | string | Reason for archive |
| data[].basicInfo.archiveReasonsDetails | string | Reason for archive details |
| data[].basicInfo.talentPoolsList | Array | Candidate's talent pool |
| data[].basicInfo.talentPoolsList[].talentPoolId | integer | Talent pool id |
| data[].basicInfo.talentPoolsList[].name | string | Talent pool name |
| data[].basicInfo.talentPoolsList[].description | string | Talent pool description |
| data[].basicInfo.personalUrl | string | Personal link |
| data[].basicInfo.portraitUrl | string | The link of Candidate's portrait is valid for 1 hour |
| data[].basicInfo.standardResumeUrl | string | Download link of standard resume |
| data[].basicInfo.resumeUrl | string | Download link of original resume |
| data[].basicInfo.ehrCandidateExternalLink | string | The link of candidate details can be opened and viewed directly in the browser, and the link is valid for 14 days by default |
| data[].basicInfo.invitationUpdateStatus | integer | Invitation to update status Optional values are: 0:Not invited1: not update2: updated |
| data[].basicInfo.movedAt | string | Stage moving time |
| data[].basicInfo.createdAt | string | Candidate application created time |
| data[].basicInfo.updatedAt | string | Candidate application update time |
| data[].basicInfo.appliedAt | string | apply time |
| data[].basicInfo.campusSiteId | number | The campus recruitment site ID of the application exists when hireMode=2 |
| data[].basicInfo.referrer | object | Referrer info |
| data[].basicInfo.referrer.name | string | Referrer name |
| data[].basicInfo.referrer.email | string | Referrer email |
| data[].basicInfo.referrer.phone | string | Referrer phone |
| data[].basicInfo.referrer.number | string | Employee No. of referrer,optional values are:null no employee No.,xxxEmployee No. |
| data[].basicInfo.referrer.employeeId | string | Employee No. of referrer2 |
| data[].basicInfo.assignments[] | array | Referrer info |
| data[].basicInfo.assignments[].assigneeId | Long | Referee |
| data[].basicInfo.assignments[].assignerId | Long | Referrer |
| data[].basicInfo.assignments[].result | string | Referral result |
| data[].basicInfo.assignments[].sentAt | date | The time when the notification was sent to the forwarded person |
| data[].basicInfo.campusSiteId | integer | Campus recruitment website ID for application |
| data[].basicInfo.sourceType | integer | From Optional values are: 1:represents Active search2:represents Direct delivery3:represents Talent recommendation. |
| data[].basicInfo.sourceList | Array | Source level,the group will in numerical order, such as Tier-1 source, Tier-2 level, Tier-3 level |
| data[].basicInfo.sourceList[].id | integer | Source id (Tier-1 level doesn't exist) |
| data[].basicInfo.sourceList[].name | string | Source name |
| data[].basicInfo.sourceList[].isBuiltin | number | Whether the system has a built-in channel |
| data[].basicInfo.hireMode | integer | Recruitment mode Optional value: 1:experienced hires2:Campus recruitment |
| data[].basicInfo.pipeline | object | application of the process |
| data[].basicInfo.pipeline.name | string | Process name |
| data[].basicInfo.pipeline.id | integer | Process id |
| data[].basicInfo.stage | object | Stage |
| data[].basicInfo.stage.id | integer | Stage id |
| data[].basicInfo.stage.name | string | Stage name (after archiving is the stage name before archiving) |
| data[].basicInfo.stage.type | integer | Current stage type Optional values are: 100:Initial screen101:Offer102:To be onboarded200:Selected201:Interview202:Test205:No type206:Work trail |
| data[].basicInfo.probation | integer | Probationary period |
| data[].basicInfo.headcountId | integer | Onboarding HC ID |
| data[].basicInfo.headcountNumber | string | Onboarding HC code |
| data[].basicInfo.headcountName | string | Onboarding HC name |
| data[].basicInfo.attachments | array | The Candidate's attachment |
| data[].basicInfo.attachments[].applicationId | integer | Application id |
| data[].basicInfo.attachments[].name | string | The doc. name of Candidate's attachment(with file suffix) |
| data[].basicInfo.attachments[].applyFormId | number Registration form template id |
|
| data[].basicInfo.attachments[].size | integer | Candidate attachment size |
| data[].basicInfo.attachments[].createTime | string | Attachment upload or generation time |
| data[].basicInfo.attachments[].url | string | The download url of Candidate attachment |
| data[].basicInfo.attachments[].customFieldId | integer | Custom attachment field ID |
| data[].basicInfo.attachments[].customFieldName | string | Custom attachment field names |
| data[].basicInfo.attachments[].type | string | Candidate attachment type Optional values are: Candidate_UPLOAD_ATTACHMENT Upload by candidateUPLOAD_PORTRAIT Candidate portraitHR_UPLOAD_ATTACHMENT Upload manually by HRHM_UPLOAD_ATTACHMENT Manual upload on the HR sideINTERVIEW_ACCEPT Attachment of the registration form generated by the candidate accepted interviewINTERVIEW_SIGNIN Registration form attachment generated by candidate interview sign-inOFFER_ACCEPT Attachment of the registration form generated by the candidate accepted offerMERGE_APPLICATION_ATTACHMENT Attachments generated by mergering candidatesINVITE_UPDATE_RESUME Invite Candidates to update the registration form for resume generation |
| data[].basicInfo.remarks | array | Candidate note |
| data[].basicInfo.remarks[].creator | object | The creator info of note |
| data[].basicInfo.remarks[].creator.name | string | The creator name of note |
| data[].basicInfo.remarks[].creator.phone | string | The creator phone of note |
| data[].basicInfo.remarks[].creator.email | string | The creator email of note |
| data[].basicInfo.remarks[].creator.number | string | The creator's employee No. of note |
| data[].basicInfo.remarks[].creator.employeeId | string | The creator's employee No. of note2 |
| data[].basicInfo.remarks[].content | string | Note content |
| data[].basicInfo.remarks[].targets | array | The information of the person who mentioned by '@' in the note, which format is the same as the creator' s information |
| data[].basicInfo.remarks[].isPrivate | boolean | Whether the not is private |
| data[].basicInfo.remarks[].type | string | Note type: manually |
| data[].basicInfo.remarks[].createdAt | string | Time for creating note |
| data[].basicInfo.owner | object | Candidate owner |
| data[].basicInfo.owner.name | string | Candidate owner name |
| data[].basicInfo.owner.phone | string | Candidate owner phone |
| data[].basicInfo.owner.email | string | Candidate owner email |
| data[].basicInfo.owner.number | string | Candidate owner employee No. |
| data[].basicInfo.owner.employeeId | string | Candidate owner employee No.2 |
| data[].basicInfo.idCardFrontList | string | Upload id card picture (portrait side) |
| data[].basicInfo.idCardBackList | string | Upload id card picture (national emblem side) |
| data[].basicInfo.idCardSignOrganization | string | Issuing authority of id card |
| data[].basicInfo.idCardValidity | string | id card validity period |
| customAttachmentList | obj | All attachments of Candidate's standard resume |
| customAttachmentList.customUpload+customId | ary | The key of the attachment of the Candidate's standard resume is composed of customUpload (fixed string) + customid |
| customAttachmentList.customUpload+customId[].attachmentName | string | Attachment name |
| customAttachmentList.customUpload+customId[].attachmentSize | number | Attachment size (byte) |
| customAttachmentList.customUpload+customId[].CandidateId | number | Candidate id |
| customAttachmentList.customUpload+customId[].customId | number | Custom field id |
| customAttachmentList.customUpload+customId[].downloadUrl | string | The download address will invalid in 24 hours |
| customAttachmentList.customUpload+customId[].createdAt | string | Created time of attachment (timestamp format) |
| data[].offerInfo | object | Offer info |
| data[].offerInfo.applicationId | integer | Application id |
| data[].offerInfo.approvalStatus | string | Approval status Optional values are: UNINITIATED: UninitiatedINPROGRESS: In processAPPROVED: ApprovedREJECTED: DeniedRECALLED: Withdrawn |
| data[].offerInfo.status | string | Optional values are:notCreated: To be createdpending : To be sentsent:Pendingaccepted : Acceptedrejected: Rejected |
| data[].offerInfo.finishedAt | string | Accept offer time |
| data[].offerInfo.checkinDate | string | Estimated start time |
| data[].offerInfo.creator | object | Offer creator info |
| data[].offerInfo.creator.name | string | Offer creator name |
| data[].offerInfo.creator.email | string | Offer creator email |
| data[].offerInfo.creator.phone | string | offer creator phone number |
| data[].offerInfo.creator.number | string | offerCreator employee No. |
| data[].offerInfo.creator.employeeId | string | offerCreator employee No.2 |
| data[].offerInfo.attachment | array | Offer attachment list |
| data[].offerInfo.attachment[].name | string | Offer attachment name |
| data[].offerInfo.attachment[].size | number | Offer attachment size |
| data[].offerInfo.attachment[].downloadUrl | string | The offer attachment download link is valid for one hour. |
| data[].offerInfo.attachment[].attachmentType | integer | Offer attachment type Optional values are: 0:Attachment for Candidate1:Attachments sent to approvers2:Offer attachment |
| data[].offerInfo.offerHistoryList | array | offer sending record |
| data[].offerInfo.offerHistoryList[].sentAt | string | offer sending time |
| data[].offerInfo.offerHistoryList[].sentUser | object | offer sender info |
| data[].offerInfo.offerHistoryList[].sentUser.name | string | offer sender name |
| data[].offerInfo.offerHistoryList[].sentUser.email | string | offer sender email |
| data[].offerInfo.offerHistoryList[].sentUser.phone | string | offer sender phone number |
| data[].offerInfo.offerHistoryList[].sentUser.number | string | offer sender employee No. |
| data[].offerInfo.offerHistoryList[].sentUser.employeeId | string | offer sender employee No.2 |
| data[].offerInfo.offerHistoryList[].status | string | Accepted: acceptedRejected: rejected |
| data[].offerInfo.offerHistoryList[].operationType | integer | Operation type Optional values are: 1:Candidate2:Manual mark by HR3:API mark |
| data[].offerInfo.hcInfo | object | The headcount info selected by offer |
| data[].offerInfo.hcInfo.id | integer | The headcount id selected by offer |
| data[].offerInfo.hcInfo.number | string | The headcount code selected by offer |
| data[].offerInfo.hcInfo.name | string | The headcount name selected by offer |
| data[].offerInfo.hcInfo.status | string | The headcount status selected by offer |
| data[].offerInfo.hcInfo.ownerEmployeeId | string | The headcount selected by the offer is responsible for the manual number |
| data[].offerInfo.hcInfo.department | object | Offer selected Headcount department information |
| data[].offerInfo.hcInfo.department.departmentName | string | Department name |
| data[].offerInfo.hcInfo.department.departmentCode | string | Department code |
| data[].offerInfo.hcInfo.department.departmentPath | string | Department path |
| data[].offerInfo.hcInfo.department.parentAPICode | string | Upper-department code |
| data[].offerInfo.hcInfo.manager | object | Information about the person in charge of the Headcount selected by the offer |
| data[].offerInfo.hcInfo.manager.name | string | Name |
| data[].offerInfo.hcInfo.manager.email | string | |
| data[].offerInfo.hcInfo.manager.phone | string | Phone number |
| data[].offerInfo.hcInfo.manager.number | string | Employee No. |
| data[].offerInfo.hcInfo.manager.employeeId | string | Employee No.2 |
| data[].offerInfo.locationString | string | Onboard Location |
| data[].offerInfo.dutyLevelName | string | Position level name |
| data[].offerInfo.createdAt | string | Offer creation time |
| data[].offerInfo.finishedAt | string | Offer acceptance time |
| data[].offerInfo.jobRankType | string | Job level type |
| data[].offerInfo.jobRankLevel | number | Job level |
| data[].offerInfo.jobRankName | string | Job level title |
| data[].offerInfo.salaryType | integer | Salary type Optional value 1: Hourly salary2: Daily salary3:Hourly salary4:Annual salary |
| data[].offerInfo.salaryNumber | string | Salary value |
| data[].offerInfo.department | object | onboarded department info |
| data[].offerInfo.department.id | string | onboarded department id |
| data[].offerInfo.department.departmentName | string | Onboarding department name |
| data[].offerInfo.department.departmentCode | string | onboarded department code |
| data[].offerInfo.department.departmentPath | string | The full path of onboarding department |
| data[].offerInfo.department.parentAPICode | string | Parent department code |
| data[].offerInfo.customFields | array | Offer custom field |
| data[].offerInfo.customFields[].name | string | Offer custom field name |
| data[].offerInfo.customFields[].value | string | Offer custom field value |
| data[].offerInfo.customFields[].codes | string | Custom code for multiple choice questions (valid for multiple choice questions with code) |
| data[].offerInfo.attachmentList | array | Offer attachment list |
| data[].offerInfo.attachmentList[].name | string | Offer attachment name |
| data[].offerInfo.attachmentList[].size | number | Offer attachment size |
| data[].offerInfo.attachmentList[].downloadUrl | string | The download link of offer attachment,only valid for 1 hour |
| data[].offerInfo.attachmentList[].attachmentType | number | Offer attachment type Optional values are: 0:Attachment for Candidate1:Attachment sent to approver2:Offer attachment |
| data[].interviewInfo | array | Interview info |
| data[].interviewInfo[].applicationId | number | Application id |
| data[].interviewInfo[].groupInterviewId | number | Interview id |
| data[].interviewInfo[].groupId | string | Interview group id |
| data[].interviewInfo[].noInterview | boolean | Whether there is no interview feedback |
| data[].interviewInfo[].status | string | Interview status:Cancelled, unfinished, Finished |
| data[].interviewInfo[].attendStatus | string | CandidateInterview status:No feedback, No show, Rejected, Accepted |
| data[].interviewInfo[].signInStatus | string | Interview check-in status: signed in, not signed in |
| data[].interviewInfo[].jobType | string | Video interview package type eg: 'technical', 'non-technical', etc. |
| data[].interviewInfo[].interviewType | integer | Interview type. 1:On-site interview 3:Phone interview 4、Video interview |
| data[].interviewInfo[].jobType | string | Video interview package -> When the interview type is video interview, this item may have a value |
| data[].interviewInfo[].locationId | integer | Interview location ID |
| data[].interviewInfo[].locationCountry | string | Interview location -Country |
| data[].interviewInfo[].locationAddress | string | Interview location -Full address |
| data[].interviewInfo[].locationCityId | integer | Interview location -CityID |
| data[].interviewInfo[].meetingRoomId | integer | Meeting room ID |
| data[].interviewInfo[].meetingRoomName | string | Meeting room title |
| data[].interviewInfo[].participated | string | Interview Feedback Category -> Interview Not Conducted, Feedback Filled, Feedback Not Filled |
| data[].interviewInfo[].roundId | integer | Interview roundsID |
| data[].interviewInfo[].roundName | string | Interview rounds title |
| data[].interviewInfo[].roundEnglishName | string | Round English title |
| data[].interviewInfo[].createAt | string | Time for creating interview |
| data[].interviewInfo[].startTime | string | Interview start time |
| data[].interviewInfo[].duration | integer | Interview duration |
| data[].interviewInfo[].interviewArranger | object | Interview IC |
| data[].interviewInfo[].interviewArranger.name | string | Interview IC name |
| data[].interviewInfo[].interviewArranger.email | string | Interview IC email |
| data[].interviewInfo[].interviewArranger.phone | string | Interview IC phone number |
| data[].interviewInfo[].interviewArranger.number | string | Interview IC employee No. |
| data[].interviewInfo[].interviewArranger.employeeId | string | Interview IC employee No. 2 |
| data[].interviewInfo[].satisfactionRecord | object | Information about interview satisfaction |
| data[].interviewInfo[].satisfactionRecord.sendTime | string | The sending time of interview satisfaction evaluation |
| data[].interviewInfo[].satisfactionRecord.isAnonymous | Boolean | Whether to anonymously evaluate |
| data[].interviewInfo[].satisfactionRecord.content | string | Evaluation content, json format: {"customFields":[{"options":[//options"option 1","option 2","option 3"],"subTitle":"single-choice question description 111", //Subtitle "title": "Multiple-choice question", //Title "type": "single", //Type single multiple-choice question, mutiSelect multiple-response question, describe description question "value": "0"// Single choice value (subscript starts from 0)},{"options":["option 11","option 22","option 33","option 44"],"subTitle":"Multiple response description 333 ","title":"multiple response","type":"mutiSelect",//multiple response "value":"[0,2,1]"//multiple response value (subscript starts from 0, Unordered)},{"subTitle":"Description question description 4444","title":"Description question","type":"describe",//Description question "value":"Description question result"//Description The value of the title}],"essaySectionTitle":"Other evaluations",//Other evaluations (can be displayed through the switch configuration when setting the evaluation table) "essayValue":"Other evaluation results"//The corresponding value of other evaluations} |
| data[].interviewInfo[].satisfactionRecord.satisfactionDimensions | array | array of dimensions (interview process) |
| data[].interviewInfo[].satisfactionRecord[].name | string | Dimension name |
| data[].interviewInfo[].satisfactionRecord[].name | string | Dimension corresponded value |
| data[].interviewInfo[].interviewerFeedbacks | array | Interviewer feedback list |
| data[].interviewInfo[].interviewerFeedbacks[].interviewer | object | Interviewer info |
| data[].interviewInfo[].interviewerFeedbacks[].interviewer.name | string | Interviewer name |
| data[].interviewInfo[].interviewerFeedbacks[].interviewer.email | string | Interviewer email |
| data[].interviewInfo[].interviewerFeedbacks[].interviewer.phone | string | Interviewer phone |
| data[].interviewInfo[].interviewerFeedbacks[].interviewer.employeeId | string | Interviewer employee No.2 |
| data[].interviewInfo[].interviewerFeedbacks[].interviewer.number | string | Interviewer employee No. |
| data[].interviewInfo[].interviewerFeedbacks[].resultName | string | Interview feedback |
| data[].interviewInfo[].interviewerFeedbacks[].resultType | integer | Type of interview feedback result 0: Dissatisfied 1: Satisfaction |
| data[].interviewInfo[].interviewerFeedbacks[].feedback | string | Interview feedback content |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTime | string | Interview feedback time |
| data[].interviewInfo[].interviewerFeedbacks[].totalWeightScore | string | Weight interview evaluation form total score |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult | array | Information of interview evaluation |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].title | string | Module title |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].description | string | Template description |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].result | string | Module score |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].calcScoreType | string | avg: Average, total: Total score (valid when type=1 ) |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects | array | Information for each sub-question under the module |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].type | integer | Question type Optional value: 1:Scoring question2: Multiple choice3: Description4: Multiple response |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].title | string | Sub-question title |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].description | string | Sub-question description |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].result | integer | Sub-question results: Scoring title is the value of the selected score; single-choice question is the index value of the option, starting from 0; description title is the string of description; multiple-choice question is an array of index values. type=2 single-choice question, return Value is "result": 0, question type=4 multiple-choice question return value is "result": [1,2] |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].reason | string | Score review |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].options | array | Array of option strings (valid when type is 2) |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].ratio | double | Common evaluation form coefficient |
| data[].interviewInfo[].interviewerFeedbacks[].feedbackTemplateResult[].subjects[].weight | integer | Weights |
| data[].interviewInfo[].interviewFeedbackUrl | string | The interview feedback summary file (only includes the interview feedback generated by the candidate under this application) download link, HTTP GET request to this URL can download the interview feedback summary file, this link is time-sensitive, the expiration time is 1 hour, and needs to be received Download and save on server as soon as possible after request |
| data[].shigongInfo | object | Work trial info |
| data[].shigongInfo.applicationId | integer | Application id |
| data[].shigongInfo.shigongs | array | Work trial info |
| data[].shigongInfo.shigongs[].startTime | string | Work trial start time |
| data[].shigongInfo.shigongs[].endTime | string | Work trial end time |
| data[].shigongInfo.shigongs[].location | string | Work trial location |
| data[].shigongInfo.shigongs[].manager | object | Work trial IC info |
| data[].shigongInfo.shigongs[].manager.name | string | Work trial IC name |
| data[].shigongInfo.shigongs[].manager.email | string | Work trial IC email |
| data[].shigongInfo.shigongs[].manager.phone | string | Work trial IC Phone number |
| data[].shigongInfo.shigongs[].manager.number | string | Work trial IC employee No. |
| data[].shigongInfo.shigongs[].manager.employeeId | string | Work trial IC employee No. 2 |
| data[].shigongInfo.shigongs[].shigongStatus | string | Work trial status Not scheduled Waiting feedback Satisfaction Dissatisfied |
| data[].shigongInfo.shigongs[].feedback | string | Work trial feedback info |
| data[].shigongInfo.shigongs[].protocolStatus | string | Work trial agreement status |
| data[].shigongInfo.shigongs[].signStatus | string | Check-in status |
| data[].examInfo | object | Exam info |
| data[].examInfo.applicationId | integer | Application id |
| data[].examInfo.exams | array | Exam&assessment info |
| data[].examInfo.exams[].name | string | Exam&assessment name |
| data[].examInfo.exams[].createTime | string | Exam start time |
| data[].examInfo.exams[].type | string | Exam&assessment Typeexamevaluation |
| data[].examInfo.exams[].source | string | Exam&assessment agency |
| data[].examInfo.exams[].result | String | Exam&assessment result |
| data[].examInfo.exams[].detailResult | string | Exam&assessment details result |
| data[].examInfo.exams[].examAttachments | array | Exam&assessment attachment |
| data[].examInfo.exams[].examAttachments[].attachmentName | string | Exam&assessment Attachment name |
| data[].examInfo.exams[].examAttachments[].attachmentUrl | string | Exam&assessment attachment link |
| data[].examInfo.exams[].examAttachments[].jobId | string | The position id that initiated exam&assessment |
| data[].examInfo.exams[].examAttachments[].applicationId | string | The application id that initiated exam&assessment |
| data[].examInfo.exams[].examAttachments[].result | string | Exam&assessment result |
| data[].examInfo.exams[].examAttachments[].detailResult | string | Exam&assessment details result |
| data[].examInfo.exams[].reportLinks | array | Exam&assessment report link |
| data[].examInfo.exams[].reportLinks[].applicationId | string | The application id that initiated exam&assessment |
| data[].examInfo.exams[].reportLinks[].jobId | string | The position id that initiated exam&assessment |
| data[].examInfo.exams[].reportLinks[].name | string | Exam&assessment Title |
| data[].examInfo.exams[].reportLinks[].reportLink | string | Exam&assessment report link |
| data[].examInfo.exams[].reportLinks[].result | string | Exam&assessment result |
| data[].examInfo.exams[].reportLinks[].detailResult | string | Exam&assessment details result |
| data[].examInfo.exams[].reportLinks[].type | string | Exam type (Exam or assessment) |
| data[].examInfo.surveys | array | Pre-employment screening (PES) info |
| data[].examInfo.surveys[].name | string | Pre-employment screening (PES) name |
| data[].examInfo.surveys[].date | string | Pre-employment screening (PES) date |
| data[].examInfo.surveys[].source | string | Pre-employment screening (PES) agency |
| data[].examInfo.surveys[].result | string | Pre-employment screening (PES) result |
| data[].examInfo.surveys[].url | string | The link of PES report |
| data[].examInfo.surveys[].attachmentName | string | Pre-employment screening (PES) attachment |
| data[].examInfo.surveys[].attachments[] | array | PES multiple attachments (the new version of the single attachment and multiple attachments are in this attachment collection. The original single attachment results are only used for historical compatibility) |
| data[].examInfo.surveys[].attachments[].url | string | The link of PES report |
| data[].examInfo.surveys[].attachments[].attachmentName | string | Attachment name |
| data[].jobInfo | object | Position info |
| data[].jobInfo.id | string | Position id |
| data[].jobInfo.mjCode | string | Position No.,publishing to external systems remains the same |
| data[].jobInfo.title | string | Job title |
| data[].jobInfo.department | object | Department |
| data[].jobInfo.department.info | object | Department details info |
| data[].jobInfo.department.info.departmentCode | string | Department code,department id in the client system |
| data[].jobInfo.department.info.id | string | DepartmentID,department id in the Moka system |
| data[].jobInfo.department.info.departmentName | string | Department name |
| data[].jobInfo.department.info.departmentPath | string | The full path of the department where the position is located, from superior to subordinate, separated by / |
| data[].jobInfo.department.name | string | Parent department name |
| data[].jobInfo.department.parentId | string | Parent department ID,department id in the Moka system |
| data[].jobInfo.commitment | string | Employment type Optional value: Full-timePart-timeInternshipOther |
| data[].jobInfo.stores | array | Store name |
| data[].jobInfo.number | number | No.of vacancy |
| data[].jobInfo.status | string | Position status Optional value open:openclosed:Close |
| data[].jobInfo.jobRanksInfo[].name | string | Job level name |
| data[].jobInfo.jobRanksInfo[].type | string | Job level type |
| data[].jobInfo.jobRanksInfo[].level | number | Job level grade |
| data[].jobInfo.priorityId | integer | Job priority id |
| data[].jobInfo.priorityName | string | Job priority title |
| data[].jobInfo.competencyType | string | Function type |
| data[].jobInfo.category | string | Job category |
| data[].jobInfo.jobDescription | string | Job description |
| data[].jobInfo.customFields | array | job custom field |
| data[].jobInfo.customFields[].name | string | job custom field name |
| data[].jobInfo.customFields[].value | string | job custom field value |
| data[].jobInfo.startTime | string | Start recruitment time |
| data[].jobInfo.completeTime | string | Estimated finish time |
| data[].jobInfo.jobManager | object | Recruiter |
| data[].jobInfo.jobManager.name | string | Recruiter name |
| data[].jobInfo.jobManager.phone | string | The phone of position leader |
| data[].jobInfo.jobManager.email | string | Position leader email |
| data[].jobInfo.jobManager.number | string | Position leader phone employee No. |
| data[].jobInfo.jobManager.employeeId | string | Position leader phone employee No.2 |
| data[].jobInfo.jobAssistants | array | Position assistant |
| data[].jobInfo.jobAssistants[].name | string | Position assistant name |
| data[].jobInfo.jobAssistants[].phone | string | Position assistant phone |
| data[].jobInfo.jobAssistants[].email | string | Position assistant email |
| data[].jobInfo.jobAssistants[].number | string | Position assistant employee No. |
| data[].jobInfo.jobAssistants[].employeeId | string | Position assistant employee No.2 |
| data[].jobInfo.jobHiringManager | array | Hiring manager |
| data[].jobInfo.jobHiringManager[].name | string | Hiring manager name |
| data[].jobInfo.jobHiringManager[].email | string | Hiring manager email |
| data[].jobInfo.jobHiringManager[].phone | string | Hiring manager phone |
| data[].jobInfo.jobHiringManager[].number | string | Hiring manager employee No. |
| data[].jobInfo.jobHiringManager[].employeeId | string | Hiring manager employee No.2 |
| data[].jobInfo.jobInterviewers | array | Interviewer |
| data[].jobInfo.jobInterviewers[].name | string | Interviewer name |
| data[].jobInfo.jobInterviewers[].email | string | Interviewer email |
| data[].jobInfo.jobInterviewers[].phone | string | Interviewer phone |
| data[].jobInfo.jobInterviewers[].number | string | Interviewer employee No. |
| data[].jobInfo.jobInterviewers[].employeeId | string | Interviewer employee No.2 |
| data[].jobInfo.campusSiteIds | array | Campus recruitment station id |
| data[].jobInfo.campusSites | array | Campus recruitment station |
| data[].jobInfo.hireMode | integer | Recruitment mode Optional values are: 1:experienced hires2:Campus recruitment |
| data[].jobInfo.headcountInfo | array | HC information associated with the position |
| data[].jobInfo.headcountInfo[].id | number | Headcount ID |
| data[].jobInfo.headcountInfo[].number | string | Headcount code |
| data[].jobInfo.headcountInfo[].name | string | Headcount name |
| data[].jobInfo.headcountInfo[].status | string | Headcount status |
| data[].jobInfo.headcountInfo[].customFields[].name | string | HCCustom field name |
| data[].jobInfo.headcountInfo[].customFields[].value | string | HCCustom field value |
| data[].activities.operator | object | Operator info |
| data[].activities.operator.id | integer | Operator id in Moka |
| data[].activities.operator.name | string | Operator name |
| data[].activities.operator.email | string | Operator infoEmail |
| data[].activities.operator.phone | string | Operator info Phone number |
| data[].activities.operator.number | string | Operator No.1 |
| data[].activities.operator.employeeId | string | Operator No.2 |
| data[].activities.type | string | Log Type Optional values are: ADD_Candidate: Add candidateMOVE_STAGE: Moving stage |
| data[].activities.createAt | string | Event start time |
| data[].activities.toStageName | string | Stage name after moving |
| data[].activities.fromStageName | string | Stage name before moving |
| data[].activities.toStageId | integer | Stage id after moving |
| data[].activities.fromStageId | integer | Stage id before moving |
| data[].activities.source | string | applicationFrom |
| data[].customstyleAttachments | object | Custom application registration form |
| data[].customstyleAttachments.type | string | attachment type |
| data[].customstyleAttachments.createTime | string | Time string |
| data[].customstyleAttachments.customFieldName | string | CustomAttachment name |
| data[].customstyleAttachments.url | string | Download link of attachment |
Get all candidate info of each stages
This interface only returns basic information and does not return attachment links.
> Request example
$ curl https://api.mokahr.com/api-platform/v1/data/moved_applications
> Response example
[
{
"applicationId": 23191,
"CandidateId": 12552,
"moved_at": "2019-01-25T10:25:36.000Z",
"name": "曹大帅",
"phone": "15013186607",
"email": "1170616425@qq.com",
"gender": "Male",
"birthYear": 1991,
"birthDate": "2020-03-17T00:00:00.000Z",
"nationality": null,
"experience": 2,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": "湖北-武汉",
"source": "智联",
"sourceType": 2,
"academicDegree": "Master degree",
"lastSpeciality": "人力资源管理",
"married": "Single",
"jobCommitment": " Full-time",
"hireMode": 1,
"departmentCode": null,
"parentDepartmentCode": null,
"resumeKey": "1f0f3d5f-17d4-4e21-a135-a8dbb8648297.html",
"stageName": "用人Department筛选",
"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": "Master degree",
"startTime": 1409500800,
"endTime": 1496246400,
"now": false
},
{
"id": 35765,
"startDate": "2010-09",
"endDate": "2014-06",
"school": "长江大学",
"speciality": "人力资源管理",
"academicDegree": "Bachelor degree",
"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.了解荆州City农村人口占全City的比for example. \r\n2.了解荆州City农村土地流转的面积. \r\n3.了解荆州City土地流转的模式. \r\n4.了解荆州City农村农户进行土体流转出现的问题和法律纠纷. \r\n5.整理相关文献资料,利用搜集到的土地流转资料撰写论文,总结分析出农户土地流转出现的问题,并找到其应对的措施. ",
"responsibilities": "深入到农村基层,通过与农户的交谈和问卷调研方式,了解荆州City农村土地的流转情况,土地流转的面积、模式,考察荆州City农村居民土地流转出现的问题,以及它们的解决方式,另外考察当地政府对土地流转的支持力度. ",
"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": "Male",
"birthYear": 1989,
"nationality": null,
"experience": null,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": null,
"source": "智联",
"sourceType": 1,
"academicDegree": "Bachelor degree",
"lastSpeciality": "人力资源管理",
"married": null,
"jobCommitment": " Full-time",
"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": "哈Yes的",
"academicDegree": "Bachelor degree",
"startTime": null,
"endTime": null,
"now": false
}
],
"experienceInfo": [],
"awardInfo": [],
"customFields": [
{
"codes": "",
"name": "EthnicityCustom",
"value": "维吾尔族",
"section": "basicInfo"
}
],
"referrer": null,
"headcountInfo": [
{
"id": 5,
"number": "3",
"name": "测试HCUpdate1"
}
],
"jobRanksInfo": [],
"offer": null,
"projectInfo": [],
"languageInfo": [],
"invitationUpdateStatus": 1
}
]
This interface will return all candidate information in all stages in the specified condition When called for the first time, it will return all candidate information in the specified stage, and then mark the candidate. After marking, the data cannot be obtained through this interface before the candidate moves If the candidate moves during this stage, the data can be retrieved, and a maximum of 100 pieces of data can be returned each time
HTTP request
GET https://api.mokahr.com/api-platform/v1/data/moved_applications
Query
| Field | Required | Type | Description |
|---|---|---|---|
| stage | No | string | The stage name of pre-archiveall:All stages preliminary_filter:Initial screen offer:Offer stagepending_checkin:To be onboarded filter:filterinterview:Interviewexam:Exam evaluationnone:none: No typeshigong:be on probation |
| fromTime | No | string | Data start time Such as 2018-1-1 |
Response
| Field | Type | Description |
|---|---|---|
| CandidateId | integer | The unique id of Candidate in Moka |
| applicationId | integer | The unique id of Candidate's application in Moka |
| name | string | Name |
| phone | string | Phone |
| string | ||
| gender | string | Gender,optional values are:Male,Female |
| birthYear | integer | Birthyear,, such as1990 |
| birthDate | string | Birthdate |
| ethnic | string | Ethnicity |
| certificateType | integer | Certificate type Optional values are: 1: id card2: Hong Kong id card3: Macau id card4:Taiwan id card 5: Passport 6: Other identity document 7: Exit-Entry Permit for Travelling to and from Hong Kong and Macau (EEP)8: The Mainland Travel Permit for Taiwan Residents 9: Foreigners' Work Permit10:Residence Permit for Foreigner |
| citizenId | string | identification No. |
| nationality | string | Nationality |
| nativePlace | string | Birthplace |
| hireMode | integer | Recruitment mode Optional values are: 1: experienced hires2: Campus recruitment |
| source | string | Source,Such as, 'Lagou' |
| sourceType | integer | From Optional values are: 1: Active search,2:Direct delivery,3:Talent recommendation |
| stageName | string | Current stage name |
| stageType | number | Current stage type Optional values are: 100 :Initial screen101 :Offer102 :To be onboarded200 :Selected201 :Interview202: Test205 :No type206 :Work trail |
| location | string | Location,Such as, 'Beijing'academicDegree |
| married | string | Marital status Optional value 'Married', 'Single', 'Divorced', 'Widowed', 'CIVILUNION', 'COHABITATING', 'MARRIED', 'DIVORCED', 'ENGAGED', 'SEPARATED', 'SINGLE', 'WIDOWED' |
| nativePlaceCode | integer | Birthplace code(null when Birthplace is empty,Code details refer to attachment) |
| nationalityCode | integer | Nationality code(null when Nationality is empty,Code details refer to attachment) |
| genderCode | integer | Gender code(null if gender is empty, see attachment for code details) |
| academicDegreeCode | integer | Recent graduate major |
| ethnicCode | integer | Ethnicity code(null if Ethnicity is empty, see attachment for code details) |
| educationInfo[] | array | Education experience |
| educationInfo[].startDate | string | School start date,accurate to month. , such as2010-09, 2008 |
| educationInfo[].endDate | string | School end date,accurate to month. , such as2010-09, 2008 |
| educationInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| educationInfo[].school | string | School |
| educationInfo[].speciality | string | Major |
| educationInfo[].academicDegree | string | Education Optional values are: Bachelor degree,Master degree,Doctor degree,Senior high school,Junior college,Technical secondary school,MBA,Others |
| experienceInfo[] | array | Work experience |
| experienceInfo[].startDate | string | Work start time,accurate to month. , such as2010-09, 2008 |
| experienceInfo[].endDate | string | Work end time,accurate to month. , such as2010-09, 2008 |
| experienceInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| experienceInfo[].company | string | Company name |
| experienceInfo[].title | string | Job title |
| experienceInfo[].summary | string | Job responsibility |
| experienceInfo[].reasonForLeaving | string | Reason for resignation |
| experienceInfo[].underlingNumber | string | No.of subordinate |
| awardInfo[] | array | Awards |
| awardInfo[].awardDate | datetime | Winning date |
| awardInfo[].awardName | string | Award name |
| job | object | Position info |
| job.title | string | Job title |
| job.department | string | Department |
| job.departmentPath | string | The full path of the Department, from the upper level to the lower level, separated by / |
| job.departmentCode | string | Department code |
| job.parentDepartmentCode | string | Upper-department code |
| job.competencyType | string | Function type |
| job.customFields | array | job custom field |
| job.customFields[].name | string | job custom field name |
| job.customFields[].value | string | job custom field value |
| ehrCustomFields[] | array | ehr custom exported fields collection |
| referrer | object | Referrer info |
| referrer.name | string | Referrer name |
| referrer.email | string | Referrer email |
| referrer.phone | string | Referrer phone |
| jobRanksInfo[].name | string | Job level name |
| jobRanksInfo[].type | string | Job level type |
| jobRanksInfo[].level | string | Job level grade |
| headcountInfo[].id | number | Headcount ID |
| headcountInfo[].number | string | Headcount code |
| headcountInfo[].name | string | Headcount name |
| customFields[] | array | Candidate custom fields, containing only the custom fields set in the standard resume |
| customFields[].name | string | Custom field name |
| customFields[].value | string | Custom field value. For yes or no question type Optional values are: 1:Yes0:No. |
| customFields[].now | boolean | This field exists when the custom field is a time period, indicating whether the end time is "today". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| customFields[].section | string | Name of the module where the custom field is located, the module can be a built-in module (e.g. experienceInfo) or a custom module (e.g. emergency contact) |
| customFields[].index | string | For modules with multiple pieces of data such as experienceInfo, educationInfo, or custom modules (such as emergency contacts), index indicates which field is the custom field information of which piece of data |
| customFields[].codes | string | Custom code for multiple choice questions (valid for multiple choice questions with code) |
| offer | object | Offer info |
| offer.salaryNumber | number | Salary and compensation |
| offer.checkinDate | string | Onboarding date |
| offer.location | string | Work location after hired |
| offer.creator | object | Offer creator info |
| offer.creator.name | string | Offer creator name |
| offer.creator.email | string | Offer creator email |
| offer.finishedAt | string | Accept offer time. Date format is: ISO8601 |
| offer.customFields | array | Offer custom field |
| offer.customFields[].name | string | Offer custom field name |
| offer.customFields[].value | string | Offer custom field value |
| offer.departmentName | string | Onboarding department name |
| offer.departmentCode | number | Onboarding department code |
| offer.parentDepartmentCode | number | The upper department of onboarding department code |
| offer.departmentPath | string | The full path of Onboarding department |
| offer.offerLastSentAt | string | Last offer time |
| projectInfo | array | Project experience |
| projectInfo[].startDate | string | Project start date,accurate to month. , such as2010-09, 2008 |
| projectInfo[].endDate | string | Project end date,accurate to month. , such as2010-09, 2008 |
| projectInfo[].projectName | string | Project name |
| projectInfo[].title | string | Job title and duty |
| projectInfo[].projectDescript | string | Project description |
| projectInfo[].responsibilities | string | Responsibility in project |
| projectInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| languageInfo | array | Language skill |
| languageInfo[].language | string | Language type |
| languageInfo[].level | string | Proficiency |
| languageInfo[].listenAndSpeak | string | Listening and speaking |
| languageInfo[].readAndWrite | string | Reading and writing |
| invitationUpdateStatus | integer | Invitation to update status Optional values are: 0:Not invited1: not update2: updated |
GET All stage Candidate info(paging)
> Request example
$ curl https://api.mokahr.com/api-platform/v1/data/movedApplications
> Response example
{
"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": "Male",
"birthYear": 1991,
"nationality": null,
"experience": 2,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": "湖北-武汉",
"source": "智联",
"sourceType": 2,
"academicDegree": "Master degree",
"lastSpeciality": "人力资源管理",
"married": "Single",
"jobCommitment": " Full-time",
"hireMode": 1,
"departmentCode": null,
"parentDepartmentCode": null,
"resumeKey": "1f0f3d5f-17d4-4e21-a135-a8dbb8648297.html",
"stageName": "用人Department筛选",
"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": "Master degree",
"startTime": 1409500800,
"endTime": 1496246400,
"now": false
},
{
"id": 35765,
"startDate": "2010-09",
"endDate": "2014-06",
"school": "长江大学",
"speciality": "人力资源管理",
"academicDegree": "Bachelor degree",
"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.了解荆州City农村人口占全City的比for example. \r\n2.了解荆州City农村土地流转的面积. \r\n3.了解荆州City土地流转的模式. \r\n4.了解荆州City农村农户进行土体流转出现的问题和法律纠纷. \r\n5.整理相关文献资料,利用搜集到的土地流转资料撰写论文,总结分析出农户土地流转出现的问题,并找到其应对的措施. ",
"responsibilities": "深入到农村基层,通过与农户的交谈和问卷调研方式,了解荆州City农村土地的流转情况,土地流转的面积、模式,考察荆州City农村居民土地流转出现的问题,以及它们的解决方式,另外考察当地政府对土地流转的支持力度. ",
"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": "Male",
"birthYear": 1989,
"nationality": null,
"experience": null,
"ethnic": null,
"citizenId": null,
"nativePlace": "",
"location": null,
"source": "智联",
"sourceType": 1,
"academicDegree": "Bachelor degree",
"lastSpeciality": "人力资源管理",
"married": null,
"jobCommitment": " Full-time",
"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": "哈Yes的",
"academicDegree": "Bachelor degree",
"startTime": null,
"endTime": null,
"now": false
}
],
"experienceInfo": [],
"awardInfo": [],
"customFields": [
{
"codes": "",
"name": "EthnicityCustom",
"value": "维吾尔族",
"section": "basicInfo"
}
],
"referrer": null,
"headcountInfo": [
{
"id": 5,
"number": "3",
"name": "测试HCUpdate1"
}
],
"jobRanksInfo": [],
"offer": null,
"projectInfo": [],
"languageInfo": []
}
]
}
This interface will respond all candidates info of all stages under specific condition
HTTP request
GET https://api.mokahr.com/api-platform/v1/data/movedApplications
Query
| Field | Required | Type | Description |
|---|---|---|---|
| stage | No | string | The stage name of pre-archiveall:All stagespreliminary_filter:Initial screenoffer:offerpending_checkin:To be onboarded filter:Selectedinterview:Interview exam:Testnone:none: No typeshigong:Work trail |
| fromTime | Yes | string | The start time of the data, the fromTime parameter is only included in the first request, and does not need to be included in subsequent requests, that is, only one of next and fromTime needs to be included.Such as 2018-1-1 ASC Search from this time to new data |
| next | Yes | string | Paging parameter, if there is more data to be pulled, there will be a next field in the response json, and the next request only needs to add this next parameter to the query. The fromTime parameter is only included in the first request, and does not need to be included in subsequent requests, that is, only one of next and fromTime needs to be included. If there is no next field in the response, it means that there is no more data |
| reqType | No | string | all: full amount, ignore the mark, and return all to the caller update: update and variable (default), each request will return unmarked data to the caller, and mark the returned data |
| limit | No | string | Number of entries per page for paging, default 20, max 20. |
Response
| Field | Type | Description |
|---|---|---|
| CandidateId | integer | The unique id of Candidate in Moka |
| applicationId | integer | The unique id of Candidate's application in Moka |
| name | string | Name |
| phone | string | Phone |
| string | ||
| gender | string | Gender,optional values are:Male,Female |
| birthYear | integer | Birthyear,, such as1990 |
| birthDate | string | Birthdate |
| ethnic | string | Ethnicity Optional values are: 1: id card2: Hong Kong id card3: Macau id card4:Taiwan id card5: Passport6: Other identity document7: Exit-Entry Permit for Travelling to and from Hong Kong and Macau (EEP)8: The Mainland Travel Permit for Taiwan Residents 9: Foreigners' Work Permit 10:Residence Permit for Foreigner |
| citizenId | string | identification No. |
| nationality | string | Nationality |
| nativePlace | string | Birthplace |
| hireMode | integer | Recruitment mode Optional value 1: experienced hires2: Campus |
| recruitmentsource | string | Source,Such as, 'Lagou' |
| sourceType | integer | From Optional values are: 1: Active search,2:Direct delivery,3:Talent recommendation |
| stageName | string | Current stage name |
| stageType | number | Current stage typ Optional values are: 100 :Initial screen101 :Offer102 :To be onboarded200 :Selected201 :Interview202: Test205 :No type206 :Work trail |
| location | string | Location,Such as, 'Beijing' |
| academicDegree | string | Highest education Optional values are: Bachelor degree,Master degree,Doctor degree,Senior high school,Junior college,Technical secondary school,MBA,Others |
| married | string | Marital status Optional values are: 'Married', 'Single', 'Divorced', 'Widowed', 'CIVILUNION', 'COHABITATING', 'MARRIED', 'DIVORCED', 'ENGAGED', 'SEPARATED', 'SINGLE', 'WIDOWED' |
| nativePlaceCode | integer | Birthplace code(null when birthplace is empty, code details refer to attachment) |
| nationalityCode | integer | Nationality code(null when nationality is empty, code details refer to attachment) |
| genderCode | integer | Gender code(null if gender is empty, see attachment for code details) |
| academicDegreeCode | integer | Recent graduate major |
| ethnicCode | integer | Ethnicity code(null if Ethnicity is empty, see attachment for code details) |
| educationInfo[] | array | Education experience |
| educationInfo[].startDate | string | School start date,accurate to month. , such as2010-09, 2008 |
| educationInfo[].endDate | string | School end date,accurate to month. , such as2010-09, 2008 |
| educationInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| educationInfo[].school | string | School |
| educationInfo[].speciality | string | Major |
| educationInfo[].academicDegree | string | Education Optional values are: Bachelor degree,Master degree,Doctor degree,Senior high school,Junior college,Technical secondary school,MBA,Others |
| experienceInfo[] | array | Work experience |
| experienceInfo[].startDate | string | Work start time,accurate to month. , such as2010-09, 2008 |
| experienceInfo[].endDate | string | Work end time,accurate to month. , such as2010-09, 2008 |
| experienceInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| experienceInfo[].company | string | Company name |
| experienceInfo[].title | string | Job title |
| experienceInfo[].summary | string | Job responsibility |
| experienceInfo[].reasonForLeaving | string | Reason for resignation |
| experienceInfo[].underlingNumber | string | No.of subordinate |
| awardInfo[] | array | Awards |
| awardInfo[].awardDate | datetime | Winning date |
| awardInfo[].awardName | string | Award name |
| job | object | Position info |
| job.title | string | Job title |
| job.department | string | Department |
| job.departmentPath | string | The full path of the Department, from the upper level to the lower level, separated by / |
| job.departmentCode | string | Department code |
| job.parentDepartmentCode | string | Upper-department code |
| job.competencyType | string | Function type |
| job.customFields | array | job custom field |
| job.customFields[].name | string | job custom field name |
| job.customFields[].value | string | job custom field value |
| ehrCustomFields[] | array | ehr custom exported fields collection |
| idCardFrontList | array | Upload id card picture (portrait side) |
| idCardBackList | string | Upload id card picture (national emblem side) |
| idCardSignOrganization | string | Issuing authority of id card |
| idCardValidity | string | id card validity period |
| customAttachmentList | obj | All attachments of Candidate's standard resume |
| customAttachmentList.customUpload+customId | array | The key of the attachment of the Candidate's standard resume is composed of customUpload (fixed string) + customid |
| customAttachmentList.customUpload+customId[].attachmentName | string | Attachment name |
| customAttachmentList.customUpload+customId[].attachmentSize | number | Attachment size (byte) |
| customAttachmentList.customUpload+customId[].CandidateId | number | Candidate id |
| customAttachmentList.customUpload+customId[].customId | number | Custom field id |
| customAttachmentList.customUpload+customId[].downloadUrl | string | The download address will invalid in 24 hours |
| customAttachmentList.customUpload+customId[].createdAt | string | Created time of attachment (timestamp format) |
| referrer | object | Referrer info |
| referrer.name | string | Referrer name |
| referrer.email | string | Referrer email |
| referrer.phone | string | Referrer phone |
| jobRanksInfo[].name | string | Job level name |
| jobRanksInfo[].type | string | Job level type |
| jobRanksInfo[].level | string | Job level grade |
| headcountInfo[].id | number | Headcount ID |
| headcountInfo[].number | string | Headcount code |
| headcountInfo[].name | string | Headcount name |
| customFields[] | array | Candidate custom fields, containing only the custom fields set in the standard resume |
| customFields[].name | string | Custom field name |
| customFields[].value | string | Custom field value. For yes or no question type Optional values are: 1:Yes0:No. |
| customFields[].now | boolean | |
| customFields[].section | string | Name of the module where the custom field is located, the module can be a built-in module (e.g. experienceInfo) or a custom module (e.g. emergency contact) |
| customFields[].index | string | For modules with multiple pieces of data such as experienceInfo, educationInfo, or custom modules (such as emergency contacts), index indicates which field is the custom field information of which piece of data |
| customFields[].codes | string | Custom code for multiple choice questions (valid for multiple choice questions with code) |
| offer | object | Offer info |
| offer.salaryNumber | number | Salary and compensation |
| offer.checkinDate | string | Onboarding date |
| offer.location | string | Work location after hired |
| offer.creator | object | Offer creator info |
| offer.creator.name | string | Offer creator name |
| offer.creator.email | string | Offer creator email |
| offer.finishedAt | string | Accept offer time. Date format is: ISO8601 |
| offer.customFields | array | Offer custom field |
| offer.customFields[].name | string | Offer custom field name |
| offer.customFields[].value | string | Offer custom field value |
| offer.departmentName | string | Onboarding department name |
| offer.departmentCode | number | Onboarding department code |
| offer.parentDepartmentCode | number | The upper department of onboarding department code |
| offer.departmentPath | string | The full path of Onboarding department |
| offer.offerLastSentAt | string | Last offer time |
| projectInfo | array | Project experience |
| projectInfo[].startDate | string | Project start date,accurate to month. , such as2010-09, 2008 |
| projectInfo[].endDate | string | Project end date,accurate to month. , such as2010-09, 2008 |
| projectInfo[].projectName | string | Project name |
| projectInfo[].title | string | Job title and duty |
| projectInfo[].projectDescript | string | Project description |
| projectInfo[].responsibilities | string | Responsibility in project |
| projectInfo[].now | boolean | Identifies whether the end time is "to date". When the end time is now, now=true, the value of endDate may be any value at this time, just ignore endDate |
| languageInfo | array | Language skill |
| languageInfo[].language | string | Language type |
| languageInfo[].level | string | Proficiency |
| languageInfo[].listenAndSpeak | string | Listening and speaking |
| languageInfo[].readAndWrite | string | Reading and writing |
| invitationUpdateStatus | integer | Invitation to update status Optional values are: 0:Not invited1: not update2: updated |
Organizational structureAPI
Organizational structure related API
Organizational structure full synchronization
The Moka system will synchronize the departments in the current system according to the requested list (add, update, mark delete).
The synchronization uses department_code as the primary key, and compares it with the department_code in the system to allow synchronization of organizations with the same name under different department_codes:
1、The current system does not have it, but it does exist during synchronization: add a new department
2、The current system has it, and it also has it during synchronization: update the existing department information. If there is during synchronization, the current system department status is marked as deleted, and after updating, the status changes to normal.
3、If the current system has it, but not during synchronization: the department marking has been deleted, and you need to manually enter the Moka system to merge the department into other departments for deletion。
HTTP request
PUT https://api.mokahr.com/api-platform/v1/departments
Request example
$curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/departments' \
--header 'Authorization: Basic Vl*********8*888888*' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"sequence": 1.68,
"parent_code": "",
"department_code": "110",
"name": "api测试"
},
{
"sequence": 0.92,
"parent_code": "",
"department_code": "112",
"name": "api测试2",
"type": 1
},
{
"sequence": 0.06,
"department_code": "120",
"name": "技术支持测试",
"parent_code": "110",
"type": 1
}
]'
Operation successful
{
"success": true,
"result": {
"new": 0,
"delete": 0,
"update": 0
}
}
Operation failed
{
"success": false,
"errorMessage": "Error info "
}
Request body parameter
| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Department name |
| department_code | Yes | string | Department id in client system |
| parent_code | Yes | string | The unique id of the department's parent department, if it is null, it is the first-level department |
| type | No | number | Department type: Optional value: 1: General department(Default is)2:Store department(If the name of the store is the same as the name of the store department in the organizational structure, it will be associated with the corresponding store with the same name) |
| sequence | No | number | Specific department sorting Data range:Supports numbers between 0 and 10000, accurate to two decimal places. Rule:The sorting is from small to large numbers, and the same numbers are sorted from first to last according to creation time. If the value is empty, it will be sorted last by default. |
Possible error info
| errorMessage | Description |
|---|---|
| Duplicated department ID | Re-use of department_code in request list |
| Duplicated department | There is the same Parent department in the request list,Title的Department |
| Parent department not found | The department's parent department not found in the list |
| A department's parent department cannot be itself directly (indirectly) | A department's parent department (of parent department...) cannot be itself |
Add organizational structure
Add organization structure, which is not allowed to synchronize any organization with the same name, no matter whether the organization is under the same department_code or not.
Note: Incremental synchronization of organizational structure must use POST request. If PUT request is used, it is full synchronization. If the department is not provided in the request, the department will be marked as deleted.
HTTP request
POST https://api.mokahr.com/api-platform/v1/departments/sync/incremental
Request example
$ curl 'https://api.mokahr.com/api-platform/v1/departments/sync/incremental' \
-u 'your_api-keys:' \
-X POST \
-d '[
{ "department_code": "ididid1", "name": "namenamename1", "parent_code": "ididid1", "sequence": 0 },
{ "department_code": "ididid2", "name": "namenamename2", "parent_code": "ididid2" },
{ "department_code": "ididid2", "name": "Department2", "parent_code": "ididid2", "type": 2 },
]'
Operation successful
{
"success": true
}
Operation failed
{
"success": false,
"errorMessage": "Error info "
}
Request body parameter
| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Department name |
| department_code | Yes | string | Department id in client system |
| parent_code | Yes | string | The unique id of the parent department. If it is null, it is the first-level department |
| type | No | number | Department type: Optional value: 1: General department(Default is)2:Store department |
| sequence | No | number | Specific department sorting Data range:Arrays between 0 and 10000 are supported, accurate to two decimal places. Rule:The sorting is from small to large numbers, and the same numbers are sorted from first to last according to creation time. If the value is empty, it will be sorted last by default. |
response field
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the operation is successful Optional value: true:Successfulfalse:Failed |
| errorMessage | string | The error reason of operation failed |
Possible error info
| errorMessage | Description |
|---|---|
| There are currently pending organizational updates, please try again later | |
| Department name: XXX, The department number of number XXX is duplicated | There are duplicate department data in the request list or there are duplicate departments in the request list that have been synchronized to the system |
| Parent department not found | The department's parent department not found in the list |
| A department's parent department cannot be itself directly (indirectly) | A department's parent department (of parent department...) cannot be itself |
| Department name XXX, the department name of parent number XXX already exists | A department with the same name exists under a department |
| ... |
Update organizational structure
Update organizational structure information for designated departments Note: update with department_code as the primary key. If you need to update department_code, you need to pass in department_id, and department_code will be updated with department_id as the primary key.
HTTP request
POST https://api.mokahr.com/api-platform/v1/departments
Request example
curl 'https://api.mokahr.com/api-platform/v1/departments' \
-X POST \
-u 'your_api_keys' \
-d '[
{
"department_code": "ididid111123",
"name": "namenamename1221",
"parent_code": null,
"sequence": 0
},
{
"department_code": "ididid211123",
"name": "namenamename21_testhema",
"parent_code": "ididid31112"
},
{
"department_code": "ididid311123",
"name": "namenamename222test_hema",
"parent_code": "huangtiandi",
"type": 2,
"department_id": 387
}
]'
Operation successful
{
"code": 0,
"msg": "Successful",
"success": true,
"errorMessage": "",
"data": {}
}
Operation failed
{
"code": 625011,
"msg": "department_code(3213232888)在系统中已存在",
"success": false,
"errorMessage": "department_code(323232888)在系统中已存在",
"data": {}
}
Request body parameter
| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Department name |
| department_code | Yes | string | Department id in client system |
| parent_code | Yes | string | The unique id of the parent department. If it is null, it is the first-level department |
| type | No | number | Department type: Optional value: 1:General department(Default is)2:Store department |
| department_id | No | number | The department id in the Moka system. When this parameter exists, the department that matches this parameter will be given priority. |
| sequence | No | number | Specific department sorting,Supports two decimal places from 0 to 10000, if empty, it will be sorted last by default. Sort from small to large, creation time from first to last |
Response json field
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the operation is successful |
| errorMessage | string | The error reason of operation failed |
Possible error info
| errorMessage | Description |
|---|---|
| There are currently pending organizational updates, please try again later | |
| Department name: XXX, The department number of number XXX is duplicated | There are duplicate department data in the request list or there are duplicate departments in the request list that have been synchronized to the system |
| Parent department not found | The department's parent department not found in the list |
| A department's parent department cannot be itself directly (indirectly) | A department's parent department (of parent department...) cannot be itself |
| Department name XXX, the department name of parent number XXX already exists | A department with the same name exists under a department |
| ... |