0% found this document useful (0 votes)
106 views59 pages

Dotin-Ceipal API Document - Rev1.24

Uploaded by

raghu.raghu489
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views59 pages

Dotin-Ceipal API Document - Rev1.24

Uploaded by

raghu.raghu489
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59

Dotin-Ceipal API Integration Document

Revision 1.24 Document Id dot/api/001

Created Date 31/01/2020 Last Updated Date 29/03/2022

Created By Prashant Reviewed By Prasad Dangat


Rajkotiya(dotin) (dotin)

Revision History

1.0 Created and Added basic APIs

1.2 Sub-Task Creation

1.3 Account creation, account status, and Unlock sourcing profile

1.4 API for Team Synergy and Talent Analytics

1.5 Create Account, Account Balance and Account Renewal, Account


usage logs

1.6 Added customerName property with Account

1.7 Added Quick Insight Report

1.8 Added Production URL

1.9 Adding skills parameter in Sourcing task creation

1.10 Ability to store meta-data along with create task request and
push notification

1.11 Contact API + Updated account APIs to include credits tracking


for contact unlocking

1.12 Added skills attribute in sourcing result profiles

1.13 Filter parameter to get just profiles having Contact + Work From
Home post-filter to find candidates who can work from home

1
1.14 Added Download Resume API

1.15 Update Unlock Api to include contact information + removed


ContactApi + removing contact credit logic

1.16 Preview flag in generate Resume PDF + updated sourcing create


task api to allow AND/OR in skill tags

1.17 Added API for uploading resume and getting individual report of
the resume

1.17.1 Added API for person gender and person ethnicity

1.18 Radius search included in Create Sourcing Task API

1.19 ExperienceLevels filter parameter inclusion in Create Task API

1.20 Gender and ethnicity batch APIs

1.21 Sourcing New Workflow APIs

1.22 Changes in Search API + detailed/quick insight report API for new
sourcing workflow

1.23 Updated contact info + added social links

1.24 Location Filter and Title Suggestion

2
Index

Server Detail 4

Authentication 4

Response Format 5

User Registration 5

User Assessment: Using Images 6

User Assessment: Using Resume 7

User Individual Report 7

User Incentives 9

User Export Individual Report as PDF 9

Create Ideal Model 10

Get Prioritized List 10

Get How to Deal Attributes 11

Job Creation 12

Sourcing Task Creation 13

Sub-Task Creation 16

Push Notification for Task Completion 17

Get Task Details 18

Get Task Result - Prioritized List of Candidates 19

Create Account for getting sourcing profiles 21

Get Account Balance Status (check validity & credits) 22

Account Renewal (add credits to existing account) 23

Account Credit Usage Logs (credit usage inventory) 24

Unlock Sourcing Profile 25

Get PDF Reports for Sourcing Profiles 27

3
Team Synergy 28

Talent Analytics 33

Quick Insight Report 40

Generate Resume PDF of Sourcing Profile 41

Upload Resume and Get Individual Report 43

Person Gender 44

Person Ethnicity
Note: For now, only for US 45

Person Gender(Batch) 46

Person Ethnicity (Batch)


Note: For now, only for US 47

Sourcing New Workflow APIs 48

Search Profiles API 48

Unlock Profiles API 51

Mark/Select Profile for AI match 53

Get Prioritized List of Matched Profiles 53

Detailed / Quick Insight PDF Report for Sourcing Profile 56

Sourcing: Location filter values 57

Sourcing: Title Suggestion API 58

4
Server Detail
Sandbox http://sandbox-ceipal-mapi.dotin.us/api

Production https://ceipal-mapi.dotin.us/api

Authentication
Type Basic Auth

UserName [email protected]

Password admin@123

Note Please pass basic authentication with every request.

Response Format
Success API will return Http Status code from 2XX series on successful
operation.

Failure In case of any failure API will throw an exception with status
code from 4XX series.

Error format:
{
"timestamp": "timestamp",
"message": "message from server",
"details": "other detail"
}

Example:
{
"timestamp": "2018-12-06T11:26:34.549+0000",
"message": "field userName should not be empty.",
"details": "uri=/api/register/user"
}

Common Failures:
400 BAD_REQUEST

5
422 UNPROCESSABLE_ENTITY

User Registration
API /register/user

Request Method POST

Request
Payload
Field Type Constraint

name String Compulsory

email String Compulsory

userName String Compulsory

password String Compulsory

Sample Json Request Payload:

{
"name": "string",
"email": "string",
"userName": "string",
"password": "string"
}

Responses

201 {
CREATED "userId": 1
}

400 {
BAD_REQUEST "timestamp": "2018-12-06T11:26:34.549+0000",
"message": "field userName should not be empty.",
"details": "uri=/api/register/user"
}

422 {
UNPROCESSABLE_ "timestamp": "2018-12-06T11:26:34.549+0000",
ENTITY "message": "User already exist with given userName:
string",
"details": "uri=/api/register/user"
}

6
User Assessment: Using Images
API /users/{userId}/images

Request Method POST

Request
Payload
Field Type Type

userId Long Path Parameter

files List<MultipartFile> Body

Responses

200
OK

422 Possible errors:


UNPROCESSABLE_ - Requested user not found
ENTITY - User already finished assessment by uploading resume

User Assessment: Using Resume


API /users/{userId}/resume

Request Method POST

Request
Payload
Field Type Type

userId Long Path Parameter

file MultipartFile Body

Responses

200
OK

7
422 Possible errors:
UNPROCESSABLE_ - Requested user not found
ENTITY - User already finished assessment by uploading image

User Individual Report


API /reports/individuals/{userId}

Request Method GET

Responses

200 {
OK "holland": [
[{
"name": "name",
"weight": "0.2363",
"description": "description"
}]
],
"gardner": [
[{
"name": "name",
"weight": "0.2363",
"description": "description"
}]
]
"dominant": [
[{
"name": "name",
"weight": "0.2363",
"description": "description"
}]
]
"compatibility": [
[{
"name": "name",
"weight": "0.2363",
"description": "description"
}]
],
"user": {
"id": 3,
"name": "User 1",

8
"username": "[email protected]",
"reportGenerated": false,
"reportGeneratedDate": null
}
}

422 Possible errors:


UNPROCESSABLE_ - Requested user not found
ENTITY

User Incentives
API /users/{userId}/incentives

Request Method GET

Responses

200 [
OK {
"category": "Training",
"title": "Personal Growth",
"details": "Provide your employees..."
},
{
"category": "Compensation and Benefits",
"title": "Flexible Schedule",
"details": "Infuse some creativity..."
},
{
"category": "Employee Engagement",
"title": "Television, board games ...",
"details": "Build a fun..."
}
]

422 Possible errors:


UNPROCESSABLE_ - Requested user not found
ENTITY

9
User Export Individual Report as PDF
API /reports/pdf/download?id={userId}

Request Method GET

Responses

200 "https://storage.googleapis.com/individual-reports/sandbox/hr
OK tool/5d2ee1b36ca3350a164f48e1/20190717085509/Individual_Repor
t_User%201.pdf?GoogleAccess..."

This api will return the public link to download PDF.

422 Possible errors:


UNPROCESSABLE_ - Requested user not found
ENTITY

Create Ideal Model


API /idealmodels/job?name={Ideal_Model_Name}

Request Method POST

Responses

Request {
Payload "title": "JOB_TITLE",
"description": "JOB_DESCRIPTION"
}

200 {
OK "idealModelId": 1
}

422
UNPROCESSABLE_
ENTITY

10
Get Prioritized List
API /reports/prioritized/{idealModelId}/v3

Request Method POST

Responses

Request [userId1, userId2, … , userIdn]


Payload

200 {
OK "techScoreExists": true,
"prioritizedList": [{
"uid": 2,
"name": "User 1",
"score": 0.6485692858695984,
"percentageScore": 65,
"techScore": 0.5038843750953674,
"techPercentageScore": 50
},
{
"uid": 3,
"name": "User 2",
"score": 0.6485692858695984,
"percentageScore": 65,
"techScore": 0.5038843750953674,
"techPercentageScore": 50
}
]
}

Note:
● Score: Returns actual Cultural Fit (Between 0 - 1)
● percentageScore: Returns Cultural Fit in Percentage
(Between 0-100)
● techScore: Returns actual Tech Score (Between 0 - 1)
● techPercentageScore: Returns Tech Score in Percentage
(Between 0-100)

422
UNPROCESSABLE_
ENTITY

11
Get How to Deal Attributes
API /users/attributes/howtodeal

Request Method GET

Responses

200 Refer Attached File: how_to_deal_response.json


OK

422
UNPROCESSABLE_
ENTITY

Job Creation
API /jobs

Request Method POST

Request
Payload
Field Type Constraint

{ Object Compulsory - this


"description": "string", is the job against
"title": "string" which the
} prioritized list
is created

{
"description": "Job Summary.We are looking for a talented
Web Designer to create amazing user experiences. The ideal
candidate should have an eye for clean and artful web design.
They should also have superior user interface design
skills.Responsibilities and Duties.Execute all visual design
stages from concept to final hand-off to engineering.
Conceptualize original website design ideas that bring
simplicity and user friendliness to complex roadblocks.
Create wireframes, storyboards, user flows, process flows and

12
site maps to communicate interaction and design ideas.
Present and defend designs and key deliverables to peers and
executive level stakeholders. Establish and promote design
guidelines, best practices and standards.Required Experience
and Qualifications.Proven work experience as a web designer.
Demonstrable graphic design skills with a strong portfolio.
Solid experience in creating wireframes, storyboards, user
flows, process flows and site maps. Proficiency in Photoshop,
Illustrator or other visual design and wire-framing tools.
Proficiency in HTML, CSS and JavaScript for rapid
prototyping. Experience working in an Agile/Scrum development
process. Excellent visual design skills with sensitivity to
user-system interaction. Ability to solve problems creatively
and effectively. Up-to-date with the latest Web trends,
techniques and technologies. BS/MS in Human-Computer
Interaction, Interaction Design or a Visual Arts subjectWho
can apply? Candidate having relevant experience of 0 to 2
years can applyJob Type: Full-timeSalary: ₹12,000.00 to
₹40,000.00 /monthExperience:Wordpress: 1 year
(Preferred).work: 1 year (Preferred).web designing: 1 year
(Preferred).total work: 1 year
(Preferred).Education:Bachelor's
(Preferred).Location:Ahmedabad, Gujarat
(Preferred).Industry:Software Development",
"title": "Web designer"
}

Responses

200 {
OK "data": {
"id": 2
},
"message": "Record saved successfully."
}

422 {
UNPROCESSABLE_ "timestamp": "2018-12-06T11:26:34.549+0000",
ENTITY "message": "can not create job",
"details": "uri=/jobs"
}

13
Sourcing Task Creation
API /jobs/{jobId}/sourcing/v1.3/tasks

Request POST
Method

Request
Payload
Field Type Constraint

jobId Long Path Parameter


Compulsory - this is the job
against which the prioritized
list is created

"filters": { Objec ‘country’ and ‘titles’ are


"country": "string", t compulsory.
"states": ["string"],
"cities": ["string"], radius: in miles.
"radius" : Integer radius search will work with
"titles": ["string"], single state and single city.
"industries": So while using radius search,
["string" only single state and city
], must be provided. Ideal value
"skills": ["string"], would be <200 miles.
“skillOperation” :
boolean skillOperation : “AND” / “OR”
"hasContacts": true,
"experienceLevels": experienceLevels:
["Senior"], “Entry”/”Mid”/”Senior”

} hasContacts is optional
parameter send it only when
you want to get only
candidates who are having
contact info

resultSize Integ Optional


er

"metaData": { Map Key-Value pair for storing


"String":"String" additional information
}

14
Sample Json Request Payload:
{
"filters": {
"country": "united states",
"industries": [
"computer software"
],
"states": [
"california"
],
"cities": ["San Jose"],
"radius":50,
"titles": [
"designer"
],
"Skills":["java","sql"],
"skillOperation":"AND",
"hasContacts": true,
"experienceLevels": ["Senior"]

},

"metaData": {
"CompanyId": "123"
}

Responses

200 {
OK "taskName": null,
"id": "ffa9b27e-b9a6-4292-bbf7-694802bc572b",
"status": "PENDING",
"filters": {
"country": "united states",
"industries": [
"computer software"
],
"titles": [
"designer"
],

15
"states": [
"california"
],
"cities": [
"San Jose"
],
"radius": 50,
"Skills":["java","sql"],
experienceLevels": ["Senior"]
}
}

422 {
UNPROCES "timestamp": "2018-12-06T11:26:34.549+0000",
SABLE_EN "message": "can not create task",
TITY "details": "uri=/sourcing/tasks/v1.0"
}

Sub-Task Creation
A Task by default prepares a prioritized list of 200 candidate profiles. But if for some job, we want more
than 200 profiles and we can create a sub-task on top of the created task. Sub-task is nothing but the
next 200 batch of profiles for the same job with the same filter as the initial task. Sub-task is also one
task, which has taskId that can be used to check the status of the task and get the result of the task.

API /jobs/{jobId}/sourcing/v1.3/tasks/{taskId}/sub-tasks

Request Method POST

Request
Parameter
Field Type Constraint

jobId Long Path Parameter


Compulsory - this
is the job against
which the
prioritized list
is created

taskId String taskId of parent

16
task for which
task is created.

No payload required in the request body.

Responses

200 {
OK "id": "a1ac5732-9fa6-4669-9ed4-142a1657a06f",
"status": "PENDING",
"filters": {
"country": "united states",
"industries": [
"computer software"
],
"titles": [
"designer"
],
"states": [
"california"
],
"skills":["java","sql"]
}
}

422 {
UNPROCESSABLE_ "timestamp": "2018-12-06T11:26:34.549+0000",
ENTITY "message": "can not create task",
"details": "uri=/sourcing/tasks/v1.0"
}

Push Notification for Task Completion


On completion of the above created task (or sub-task), dotin will send the push notification to the
ceipal end-point in the following format.

17
End-Point https://thgcloudstg.ceipal.com/CeipalAssessment/task_update_r
esponse

Request Method POST

Request {
Payload "entityId": "2c2de897-fa53-45f4-b41b-92ec5c0b95a5",
"entityType": "sourcing_task",
"status": "COMPLETED",
"metaData": {
"CompanyId": "123"
},
"timestamp": 1591893389819
}

Get Task Details


API /jobs/{jobId}/sourcing/v1.3/tasks/{taskId}

Request Method GET

Request
Payload
Field Type Type

jobId Long Path Parameter

taskId String Path Parameter -


It is provided in
response to create
task api.

Responses

200 {
OK "taskId": "ffa9b27e-b9a6-4292-bbf7-694802bc572b",
"status": "COMPLETED",
"filters": {
"country": "united states",
"industries": [
"computer software"
],
"titles": [
"designer"

18
],
"states": [
"california"
],
"cities": null,
"Skills":["java","sql"],
experienceLevels": ["Senior"]
}
}

422 Possible errors:


UNPROCESSABLE_ - Task does not exist
ENTITY

Get Task Result - Prioritized List of Candidates


API /jobs/{jobId}/sourcing/v1.3/tasks/{taskId}/profiles

Request Method GET

Request
Payload
Field Type Type Constraint

jobId Long Path Parameter Mandatory

taskId String Path Parameter Mandatory

Page Integer Query Parameter Optional

size Integer Query Parameter Optional

canWFH Boolean Query Parameter Optional - send it


true when you want to
get candidates who
will be better fit for
working from home (out
of batch of 200, there
might be only few
candidates better fit
for WFH)

Responses

19
200 {
OK "content": [
{
"userId": 1361,
"profileId": "5f1575e9525782071657e3b6",
"personId": 438235258,
"name": "Lynn",
"culturalFit": 83,
"teamFit": 0,
"techFit": 59,
"isLocked": false,
"hasContacts": false,
”profileHeader” : “Project Technical Lead,
computer programmer”,
"skills": [
"Administration",
"Customer Service",
"Time Management",
"Accounting",
"Sales Operations",
"Software Documentation",
"Access",
"New Business Development",
"Microsoft Office",
"System Administration",
"Microsoft Excel"
],
“canWFH”:true,
"contact": {
"id": 249407308,
"directdials":
["+12104910291","+12104867532"],
"emails": [
{
"domain": "accusmile.net",
"email": "[email protected]"
},
{
"domain": "gmail.com",
"email": "[email protected]"
}
]
}

},
{
"userId": 1362,

20
"profileId": "5f157600525782071657f797",
"personId": 487018042,
"name": "Matthew",
"culturalFit": 83,
"teamFit": 0,
"techFit": 58,
"isLocked": true,
"hasContacts": true,
"profileHeader":"Computer Software Professional",
"skills": [
"Adobe Acrobat",
"Leadership",
"Sales",
"Outlook",
"Computer Hardware",
"Microsoft Office",
"Office Management",
"Windows",
"Photoshop",
"Microsoft Word",
"Computer Software Training",
"PowerPoint"
],
“canWFH” : false
},
.
.
.
.
],
"totalPages": 1,
"totalElements": 200
}

422 Possible errors:


UNPROCESSABLE_ - Task does not exists
ENTITY

Create Account for getting sourcing profiles


API /accounts

Request Method POST

21
Request
Payload
Field Type Type Constraint

customerName String Request Body Optional - give name


of the customer you
want associate this
account with

credits Intege Request Body Mandatory - credits


r required with account

validityInDays String Request Body Optional - validity of


the account in days.
If not specified
default is 365 days (1
year)

Sample Json request payload:


{
"customerName":"ceipal-client",
"credits" : 1000
}

Responses

200 {
OK "customerName":"ceipal-client",
"accountKey": "c0afd82548cff0f34ed656c956426600",
"totalCredits": 1000,
"usedCredits": 0,
"remainingCredits": 1000,
"validTill": "2021-04-27T15:27:59.262+0000"
}

422 Possible errors:


UNPROCESSABLE_ - Provide proper credits if wrong credits
ENTITY - Error in creating account. Please try again.

Get Account Balance Status (check validity &


credits)
API /accounts/{accountKey}/status

22
Request Method GET

Request
Field Type Type Constraint

accountKey String Path parameter Mandatory - accounkey


of the account

Sample request url:


/accounts/98101b3d93484078b90a474a60a2aa64/status

Responses

200 {
OK "customerName":"ceipal-client",
"accountKey": "98101b3d93484078b90a474a60a2aa64",
"totalCredits": 1000,
"usedCredits": 22,
"remainingCredits": 978,
"validTill": "2021-04-06T01:12:48.415+0000"
}

422 Possible errors:


UNPROCESSABLE_ - Provide proper credits if wrong credits
ENTITY - Error in creating account. Please try again.

Account Renewal (add credits to existing account)


API /accounts/renew

Request Method POST

Request
Payload
Field Type Type Constraint

accountKey String Request-Bod Mandatory - accounkey


y of the account

23
credits Integer Request-Bod Mandatory - credits
y required with account

{
"accountKey":"fb80e825725aa962aa3a131f3ce4a074",
"credits" : 1000
}

Responses

200 {
OK "data": null,
"message": "Credits has been added to the account."
}

422 Possible errors:


UNPROCESSABLE_ - Provide proper credits if wrong credits
ENTITY - Error in creating account. Please try again.

Account Credit Usage Logs (credit usage inventory)


API /accounts/logs

Request Method POST

Request
Payload
Field Type Type Constraint

accountKey String Request Body Mandatory - accounkey


of the account

startDate String( Request Body Mandatory - start date


Date) in format ‘yyyy-MM-dd’

endDate String( Request Body Mandatory - end date


Date) in format ‘yyyy-MM-dd’

24
{
"accountKey":"98101b3d93484078b90a474a60a2aa64",
"startDate" : "2020-04-01",
"endDate" : "2020-04-27"
}

Responses

200 [
OK {
"customerName":"ceipal-client",
"accountKey": "98101b3d93484078b90a474a60a2aa64",
"day": "2020-04-07",
"creditsUsed": 1
},
{
"customerName":"ceipal-client",
"accountKey": "98101b3d93484078b90a474a60a2aa64",
"day": "2020-04-08",
"creditsUsed": 1
},
{
"customerName":"ceipal-client",
"accountKey": "98101b3d93484078b90a474a60a2aa64",
"day": "2020-04-15",
"creditsUsed": 18
}
]

422 Possible errors:


UNPROCESSABLE_ - Wrong Dates
ENTITY - Invalid account

25
Unlock Sourcing Profile
API /jobs/{jobId}/sourcing/v1.3/tasks/{taskId}/profiles/{profileI
d}/unlock

Request Method GET

Request
Payload
Field Type Type Constraint

jobId Long Path Mandatory


Parameter

taskId String Path Mandatory


Parameter

profileId String Path Mandatory - id of the


Parameter profile to unlock

accountKey String Query Mandatory - accounkey


parameter of the account to use
for unlocking profile

Sample request url:


/jobs/123/sourcing/v1.3/tasks/ffa9b27e-b9a6-4292-bbf7-694802b
c572b/profiles/5e300e5052578279ffae5552/unlock?accountKey=e92
c3130bca24621650d9bc6a19d0f31

Responses

200 {
OK "userId": 2336,
"profileId": "5e300e5052578279ffae5552",
"personId": 178022024,
"name": "Mingzhe Li",
"culturalFit": 81,
"teamFit": 0,
"techFit": 49,
"location": "Menlo Park, California",
"profileHeader": "Research Scientist at Facebook",
"isLocked": false,
"hasContacts": true,

26
"skills": [
"High Performance Computing (HPC)",
"Java",
"C++",
"C",
"High Performance Computing",
"MPI",
"Parallel Computing",
"Big Data",
"Distributed Systems",
"Algorithms",
"JavaScript",
"PHP",
"Parallel Programming"
],
"canWFH": false,
"contact": {
"id": 178022024,
"directdials": ["+12104910291","+12104867532"],
"emails": [
{
"domain": "gmail.com",
"email": "[email protected]"
}
]
}
}

422 Possible errors:


UNPROCESSABLE_ - accountKey is invalid. No account exist with accountKey
ENTITY - Please create a new account. Account is expired or no
credit left for this account. accountKey
- Task is not completed. please try again later.
- Profile does not exist with given profile Id.

27
Get PDF Reports for Sourcing Profiles
This api can be used to get the prioritized list of profiles using taskId of task/sub-task.
API /jobs/{jobId}/sourcing/v1.3/tasks/{taskId}/profiles/{profileI
d}/report/download

Request Method GET

Request
Payload
Field Type Type Constraint

jobId Long Path Parameter Mandatory

taskId String Path Parameter Mandatory

profileId String Path Parameter Mandatory

template String Query Parameter Optional


Possible Values : (default value :
“2pager” or “2pager”)
“detailed”

Responses

200 "https://storage.googleapis.com/individual-reports/sandbox/do
OK tin/5e300e6a52578279ffae737f/20200128121546/Admin_Report_Tayl
or_Parker_en_US.pdf?GoogleAccessId=individual-reports-bucket@
virtuoso-icebreakrr.iam.gserviceaccount.com&Expires=166661374
6&Signature=odmA%2F54X4gPLJIeohw6jVI1HmU7PnCMKMRts4DjdOlRcwb%
2BGZtVUf1EvfS0PPJqhqbMvtQqQZ8Vzk0TzsfWDYMuIFd7cdY0UywMtiZOuB1
KbW6RXc5tnZX6kxLll04J2uGx5lnFWcg5VWg8j6L4ht0ZGhDACQ3dKSIMvOsL
ffLbJ8XUEjc%2BHMxsGJLX1H07TRtSkXb5gAR4YHOe%2FX1zwgxS%2FlOV4cO
CEGJhopDRW3gi%2F94bAprSubGVRRUlwKNo41%2BDj2hunAu2Xiuqvc4OVVsp
PaxPImU%2FEm%2BxZ7iOd8gtZhtQOfkZ7y2JOmDk6ejfBJ19nCSAGRV9NG6Ah
ihfpWA%3D%3D"

422 Possible errors:


UNPROCESSABLE_ - Task does not exists
ENTITY

28
Team Synergy
API reports/team

Request Method POST

Responses

Request [userId1, userId2, … , userIdn]


Payload

200 [
OK {
"uid": 4639,
"name": "Hadassah Burks",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"team": [
{
"uid": 4638,
"dotinId": null,
"name": "test",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.7770897150039673,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
},
{
"uid": 6932,
"dotinId": null,
"name": "Sandra Chen",
"image":

29
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.5387341380119324,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
},
{
"uid": 4639,
"dotinId": null,
"name": "Hadassah Burks",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.8468652963638306,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
}
],
"teamAvg": 0.7208963831265768
},
{
"uid": 4638,
"name": "test",

30
"image":
"https://storage.googleapis.com/perfit/dp/default",
"team": [
{
"uid": 4638,
"dotinId": null,
"name": "test",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.8455161452293396,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
},
{
"uid": 6932,
"dotinId": null,
"name": "Sandra Chen",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.5212294459342957,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,

31
"workStyles": null
},
{
"uid": 4639,
"dotinId": null,
"name": "Hadassah Burks",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.7770897150039673,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
}
],
"teamAvg": 0.7146117687225342
},
{
"uid": 6932,
"name": "Sandra Chen",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"team": [
{
"uid": 4638,
"dotinId": null,
"name": "test",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.5212294459342957,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,

32
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
},
{
"uid": 6932,
"dotinId": null,
"name": "Sandra Chen",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.8165847659111023,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
},
{
"uid": 4639,
"dotinId": null,
"name": "Hadassah Burks",
"image":
"https://storage.googleapis.com/perfit/dp/default",
"score": 0.5387341380119324,
"percentageScore": 0,
"roleName": null,
"assessmentLevel": null,
"teamMatchScore": null,
"teamPercentageScore": 0,
"techScore": null,
"techPercentageScore": 0,

33
"linkedInUrl": null,
"city": null,
"userTitle": null,
"header": null,
"pictureUrl": null,
"skills": null,
"isLocked": null,
"workStyles": null
}
]
}
]

422
UNPROCESSABLE_
ENTITY

Talent Analytics
API analytics/topattributes

Request Method POST

Responses

Request [userId1, userId2, … , userIdn]


Payload

200 OK {
"data": [
{
"data": [
{
"img":
"https://storage.googleapis.com/hrtool/public/images/holland/
Enterprising.png",
"weight": 0.6887632381872127,
"title": "Enterprising",
"desc": "Individuals with enterprising..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/holland/
Conventional.png",
"weight": 0.5867309009748953,
"title": "Conventional",

34
"desc": "Individuals with conventional attributes
..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/holland/
Investigative.png",
"weight": 0.32598657725675373,
"title": "Investigative",
"desc": "Employees with investigative attributes
tend to be..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/holland/
Social.png",
"weight": 0.19883357749073435,
"title": "Social",
"desc": "Individuals with Social attributes ..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/holland/
Artistic.png",
"weight": 0.14945012975897443,
"title": "Artistic",
"desc": "Individuals with artistic attributes tend
to be original,..."
}
],
"displayName": "Top Working Styles",
"imgType": "IMG",
"group": "SUMMARY"
},
{
"data": [
{
"img":
"https://storage.googleapis.com/hrtool/public/images/gardner/
LogicalMathematical.png",
"weight": 0.7014406699366683,
"title": "Logical-Mathematical intelligence",
"desc": "Individuals with this attribute prefer
work ..."
},
{
"img":

35
"https://storage.googleapis.com/hrtool/public/images/gardner/
Interpersonal.png",
"weight": 0.574850613203209,
"title": "Interpersonal intelligence",
"desc": "Individuals with this attribute learn
and..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/gardner/
Intrapersonal.png",
"weight": 0.35966996454861855,
"title": "Intrapersonal intelligence",
"desc": "Individuals with this attribute have the
ability ..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/gardner/
VerbalLinguistic.png",
"weight": 0.19109577770690692,
"title": "Verbal-Linguistic intelligence",
"desc": "Individuals with this attribute are
adept..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/gardner/
SpatialVisual.png",
"weight": 0.09706333810684256,
"title": "Spatial-Visual intelligence",
"desc": "These individuals are comfortable..."
}
],
"displayName": "Top Learning Styles",
"imgType": "IMG",
"group": "SUMMARY"
},
{
"data": [
{
"img": null,
"weight": 0.17647058823529413,
"title": "Natural",
"desc": "There is a purity about this ..."
},
{

36
"img": null,
"weight": 0.11764705882352941,
"title": "Elegant",
"desc": "Principled, compassionate, and ..."
},
{
"img": null,
"weight": 0.07269840956719699,
"title": "Intellectual",
"desc": "Focused, quick, and intelligent, ..."
},
{
"img": null,
"weight": 0.06015235537067732,
"title": "Amicable",
"desc": "Committed to serving others, this
individual ..."
},
{
"img": null,
"weight": 0.06015235537067732,
"title": "Courageous",
"desc": "Intelligent and brave, they are always
willing..."
}
],
"displayName": "Top Dominant Attributes",
"imgType": "COUNTER",
"group": "SUMMARY"
},
{
"data": [
{
"img": null,
"weight": 0.13020821481285613,
"title": "Eminent",
"desc": "This individual's high self-esteem is
evident..."
},
{
"img": null,
"weight": 0.10229441266710758,
"title": "Casual",
"desc": "Emotions in check, this individual is
not..."
},
{

37
"img": null,
"weight": 0.09913817606261843,
"title": "Energetic",
"desc": "Charismatic, vital, and creative, these
..."
},
{
"img": null,
"weight": 0.08221982007753831,
"title": "Natural",
"desc": "There is a purity about this
personality..."
},
{
"img": null,
"weight": 0.06466346617685913,
"title": "Elegant",
"desc": "Principled, compassionate, and
amicable..."
}
],
"displayName": "Top Compatibility Attributes",
"imgType": "COUNTER",
"group": "SUMMARY"
},
{
"data": [
{
"img":
"https://storage.googleapis.com/hrtool/public/images/incentiv
e/training.png",
"weight": 2.0,
"title": "Training: Personal Growth",
"desc": "Provide your employees with a set..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/incentiv
e/employee.png",
"weight": 2.0,
"title": "Employee Engagement: Team Retreats",
"desc": "As a reward for meeting quarterly
goals..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/incentiv

38
e/compensation.png",
"weight": 1.0,
"title": "Compensation and Benefits: Telecommuting
Options",
"desc": "Don’t restrict your company or team
members ..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/incentiv
e/compensation.png",
"weight": 1.0,
"title": "Compensation and Benefits: Flexible
Schedule",
"desc": "Infuse some creativity into your..."
}
],
"displayName": "Top Incentives",
"imgType": "IMG",
"group": "INCENTIVES"
},
{
"data": [
{
"img":
"https://storage.googleapis.com/hrtool/public/images/workstyl
e/Persistence.png",
"weight": 1.0,
"title": "Persistence",
"desc": "This individual is persistent in the face
of obstacles."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/workstyl
e/SelfControl.png",
"weight": 1.0,
"title": "Self Control",
"desc": "This individual maintains composure..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/workstyl
e/Dependability.png",
"weight": 1.0,
"title": "Dependability",
"desc": "This individual is reliable, ..."

39
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/workstyl
e/Cooperation.png",
"weight": 1.0,
"title": "Cooperation",
"desc": "This individual is pleasant with..."
},
{
"img":
"https://storage.googleapis.com/hrtool/public/images/workstyl
e/ConcernforOthers.png",
"weight": 1.0,
"title": "Concern for Others",
"desc": "This individual is sensitive ..."
}
],
"displayName": "Top Work Place Values",
"imgType": "IMG",
"group": "WORLPLACE"
}
],
"meta": {
"reportName": null
}
}

422
UNPROCESSABLE_
ENTITY

Quick Insight Report


API reports/pdf/download?id=<DOTIN_ID>&isAdmin=true&locale=en_US&
origin=SOURCING&template=2pager

Request Method POST

Request
Payload {
"culturalFit": 50,

40
"designation": "JOB NAME",
"name": "CANDIDATE NAME",
"teamFit": 50,
"techFit": 50
}

Pass -1 in teamFit and techFit if it’s not there.

Responses

200 "https://storage.googleapis.com/individual-reports/sandbox/ceipal/5e300dd852
OK 578279ffadd1ac/20200513141449/Quick_Insight_Report_Manuel_Olvera_en_US.pdf?G
oogleAccessId=individual-reports-bucket@virtuoso-icebreakrr.iam.gserviceacco
unt.com&Expires=1675779289&Signature=NAdjmGiCm5DT2LhyvHT4I%2Fe5isnXSG4fEjSwT
nENCwgusRFZbsJoehFmEzH%2B7h2tBs5QJt9iRagzVFZ6YXPiHTPs%2Bc%2BqshatCjko6g9PCUa
4BC6UkjVSjY2I8CqCvrJTn3kJK3E6DXEhpSkODHWtevdsarJA5dHCjDQajwG2kUXF9kjAzF27%2B
ASC8KbT9TkPB6IxIUh7eCd3wvXh%2FkeGCAYGY5i2Spq1Rjo5vYhPpPjJcsjRNBM8q0U0YcGa%2B
gb99b%2FOpSN7D%2BJQADS1wRYNaNd4nGHrLfYAxWkhHco261acU8I6mUhpeqEkR5VdNlJLYw5dl
lWLL6ydA29YVEaIvw%3D%3D"

422
UNPROCESSABLE_
ENTITY

Generate Resume PDF of Sourcing Profile


API /reports/resumes/{profileId}

Request Method GET

Request
Payload
Field Type Details

profileId URL Parameter profileId of sourced profile


(Long)

preview Query Parameter true/false. True for base64


(Boolean) String. False for file
download link.

41
Responses

200 Sample request 1:


OK URL: /reports/resumes/5f599f3ac5b2c4131a10ad63
{
"url":
"https://storage.googleapis.com/individual-reports/sandbox/ce
ipal/5e300e7d52578279ffae7f4e/20200831055309/Resume_Brett%20B
enner_en_US.pdf?GoogleAccessId=individual-reports-bucket@virt
uoso-icebreakrr.iam.gserviceaccount.com&Expires=1685253189&Si
gnature=oMvI%2BRMGqU9b3mZX%2BmNRC1POw5uAi%2Bc6fKrccO%2FsNTgdS
uTON4Y0zQwI28urcMw%2BAs5tKPj%2Fr4H9IBWC3SYLZGH1Bnlfpe%2BR5iCz
KqK1xIcd4OizvkFvxBsptBxEk7bKLIz8Qntou7B3fJeXIHhd9YWF5w286yIQ7
%2BuHs%2Bhe0siiTTHOSSzfctN3Yy0wM%2FGlrY%2FMKR%2BcrSqqTSmSeKe6
e8%2FK4NALOS1Eu2tFDbJ3U92wxN9aiMUj%2BXy0fbF55QzWSOLbNZkcx2ptK
fPhvdCh68VC4zzy3rfikWwgFbF0nADJc5WMui%2Bg1V92MvKn2FbQM4eMbkir
XTeFeMbdk98%2B1w%3D%3D"
}

Sample Request 2:
URL : /reports/resumes/5f599f3ac5b2c4131a10ad63?preview=true

{
"base64":
"JVBERi0xLjUKJczVwdTF2NDExgo0IDAgb2JqCjw8IC9UeXBlIC9YT2JqZWN0
IC9TdWJ0eXBlIC9Gb3JtIC9Gb3JtVHlwZSAxIC9CQm94IFsgMCAwIDEwMCAxM
DAgXSAvTWF0cml4IFsgMSAwIDAgMSAwIDAgXSAvUmVzb3VyY2VzIDUgMCBSIC
9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTUgPj4gICAgICAgICAKc3R
yZWFtCnja0w/OUCjO4AIAB/0B8AplbmRzdHJlYW0KZW5kb2JqCjcgMCBvYmoK
PDwgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0Zvcm0gL0Zvcm1UeXBlIDEgL
0JCb3ggWyAwIDAgMTAwIDEwMCBdIC9NYXRyaXggWyAxIDAgMCAxIDAgMCBdIC
9SZXNvdXJjZXMgOCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA
xNSA+PiAgICAgICAgIApzdHJlYW0KeNrTD85QKM7gAgAH/QHwCmVuZHN0cmVh
bQplbmRvYmoKOSAwIG9iago8PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvR
m9ybSAvRm9ybVR5cGUgMSAvQkJveCBbIDAgMCAxMDAgMTAwIF0gL01hdHJpeC
BbIDEgMCAwIDEgMCAwIF0gL1Jlc291cmNlcyAxMCAwIFIgL0ZpbHRlciAvRmx
hdGVEZWNvZGUgL0xlbmd0aCAxNSA+PiAgICAgICAgIApzdHJlYW0KeNrTD85Q
KM7gAgAH/QHwCmVuZHN0cmVhbQplbmRvYmoKMTEgMCBvYmoKPDwgL1R5cGUgL
1hPYmplY3QgL1N1YnR5cGUgL0Zvcm0gL0Zvcm1UeXBlIDEgL0JCb3ggWyAwID
AgMTAwIDEwMCBdIC9NYXRyaXggWyAxIDAgMCAxIDAgMCBdIC9SZXNvdXJjZXM
gMTIgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTUgPj4gICAg
ICAgICAKc3RyZWFtCnja0w/OUCjO4AIAB/0B8AplbmRzdHJlYW0KZW5kb2JqC
jE3IDAgb2JqCjw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9Gb3JtIC9Gb3
JtVHlwZSAxIC9CQm94IFsgMCAwIDEwMCAxMDAgXSAvTWF0cml4IFsgMSAwIDA
gMSAwIDAgXSAvUmVzb3VyY2VzIDE4IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29k

42
ZSAvTGVuZ3RoIDE1ID4+ICAgICAgICAgCnN0cmVhbQp42tMPzlAozuACAAf9A
fAKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8PCAvVHlwZSAvWE9iamVjdC
AvU3VidHlwZSAvRm9ybSAvRm9ybVR5cGUgMSAvQkJveCBbIDAgMCAxMDAgMTA
wIF0gL01hdHJpeCBbIDEgMCAwIDEgMCAwIF0gL1Jlc291cmNlcyAyMSAwIFIg
L0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNSA+PiAgICAgICAgIApzd
HJlYW0KeNrTD85QKM7gAgAH/QHwCmVuZHN0cmVhbQplbmRvYmoKMjMgMCBvYm
oKPDwgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0Zvcm0gL0Zvcm1UeXBlIDE
gL0JCb3ggWyAwIDAgMTAwIDEwMCBdIC9NYXRyaXggWyAxIDAgMCAxIDAgMCBd
IC9SZXNvdXJjZXMgMjQgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5nd
GggMTUgPj4gICAgICAgICAKc3RyZWFtCnja0w/OUCjO4AIAB/0B8AplbmRzdH
JlYW0KZW5kb2JqCjI2IDAgb2JqCjw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXB
lIC9Gb3JtIC9Gb3JtVHlwZSAxIC9CQm94IFsgMCAwIDEwMCAxMDAgXSAvTWF0
cml4IFsgMSAwIDAgMSAwIDAgXSAvUmVzb3VyY2VzIDI3IDAgUiAvRmlsdGVyI
C9GbGF0ZURlY29kZSAvTGVuZ3RoIDE1ID4+ICAgICAgICAgCnN0cmVhbQp42t
MPzlAozuACAAf9AfAKZW5kc3RyZAolJUVPRgo=...",

"fileName": "Resume_Xiaodong_Chu_en_US.pdf",
"fileType": "application/pdf"
}

422 Possible Errors


UNPROCESSABLE_ - No user found for given id.
ENTITY

Upload Resume and Get Individual Report


API /resume?accountKey={accountKey}

Request Method POST

Request
Payload
Field Type Details

accountKey Query parameter Credit consumption

firstName Request Body - firstName of candidate


form-data

lastName Request Body - lastName of candidate


form-data

43
email Request Body - Unique email of
form-data candidate

resume Request Body - Send as multipart file


form-data - as form-data in request
MultipartFile body

Responses

200 Sample request 1:


OK URL :/resume?accountKey=sjskdfahgkadlasfjkdhgakjlkd
HttpMethod : POST

Request Body (form-data) :

Key Value
firstName Neil

lastName Shah

email [email protected]

resume <MultipartFile>

Response :
{
"base64":
"JVBERi0xLjUKJczVwdTF2NDExgo5IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRl
RGVjb2RlIC9MZW5ndGggMjk4ID4+ICAgICAgICAKc3RyZWFtCnjapVPLTsQwD
LznK/wD9dpJnDgS4oBgV3BbqTfEaSU4ddGe+H2cPuiDBQmhxk5ae5KZiUrwBg
QHR5uZLRMwcMQSI2hgLD7DqXMXsKYD9J2OMBQV+ID6eRgTsqlQtbliNUvFMlp
tjOX61MF634vzSOp12Gy5rgycV0GN/eYoXwMg+C2Zptix6axzhEMWv57UGyHH
6+JgskmyUFB7flQMk+RLMePsEX+zM1mGa6soMTtJFUVLyFPk8Xs9v03H5VOBb
q75QmoTps+yXci7jCdLHsKDW0XdZhY98SSLcfU7HVF4FIVGhunYkKzDV3xr1B
Vb3zFYbXDXQAVZ0+B/Bm9j4Rv397sa8ZV9d8fS1ubGNoEj6/eN81L8u40XZo2
1ksz+Hs794j0puySEZuPYKmQjdWhE9JkRLlj0m2z4UZNuSdY/Vb2aVbHpMt3O
wPby5tGTXozf8tRz18A2/ulvO01labpfU2DWFAz+w4rXfjSYexeBJPll1szmD
qlf0Ve5F0g5whwVfi+RiWU7TjA7uYp5kB6MyzTPWuP4PZEF2rgplbmRzdHJlY
W0KZW5kb2JqCjE2OCAwIG9iago8PCAvVHlwZSAvWFJlZiAvSW5kZXggWyAwID
E2OSBdIC9TaXplIDE2OSAvVyBbIDEgMyAxIF0gL1Jvb3QgMTY2IDAgUiAvSW5
mbyAxNjcgMCBSIC9JRCBbIDw5OEEwREY4MzAwMTg4OEY1NUIxQkVBNjdCM0Mx
QTUxRj4gPDk4QTBERjgzMDAxODg4RjU1QjFCRUE2N0IzQzFBNTFGPiBdIC9Ga
Wx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNDY2ID4+ICAgICAgICAKc3RyZW
FtCnjaJdK7TxRRFMfxe2BXEFaR5aWwIOjeGVwURFFRfKDIQ3koD0HUFdRKSIw

44
VpSY2NhdrQ4IxERILo4mNhaUWBigs/RtItjOhU8/32Hxy5p7f3Lkzc5xz7m+R
c8m7cA/y4CRan3RUIk5eWZUQ56qtKoJiJeyB3ZCWTGO/dUugVLLvF+yyDJKSq
flmlxZOUu0CNkjuhX1QLtnNvOUqIAVVUA21UCnZQqdFaiANB6AeMlAnvmzAIg
2wHw5CMxyCRvG1KYu0QJP43AsnfmLa1jxEEEMrHIEcHIXD4lsSFm7jjYTqAWT
F937WrZZ+KW8fK4Wcfs72bQt3wHE4AcfEv/7f6IR28RvbGk53KTMr1jgFp6Eb
Tkr07KU1zvDcSqou6IHzcAEuwiXohctwBfrgKvTDAAzCEFyD6zAMIzAKY3ADb
sI4TMAUnJVo+budahLOwQzchjtwS6KVnxaZ5eD2V6ep7MffhzmYl2h1UV9/dU
t599zueAiPCOvaxzfKp4STeHFJqx/rRAIzGWwmExJtfNHGZpPye9m6zFpgMEO
pRDtj2tj5qhsMrVmXEQ3lkJJ4+IM2RlJK/o91mc5QIfGcnT4wiYHRC4xjqJN4
4YmGnxbcPwHYVzoKZW5kc3RyZWFtCmVuZG9iagpzdGFydHhyZWYKMjU4NDgxM
wolJUVPRgo=........",
"fileName": "Admin_Report_Neil_Shah_en_US.pdf",
"fileType": "application/pdf"
}

422 Possible Errors


UNPROCESSABLE_ - Error in processing resume
ENTITY

Person Gender

API /person/gender

Request Method GET

Request
Parameter
Field Type Details

firstName String

countryCode String (Optional)Country


acronym values
like US, RU

No payload required in the request body.

Responses

45
200 {
OK "gender": "male",
"probability": 1.0
}

Response male, female


possible
values

400 If required input params are not there.


Bad Request

Person Ethnicity
Note: For now, only for US

API /person/ethnicity

Request Method GET

Request
Parameter
Field Type Details

firstName String

lastName String

countryCode String (Optional) Country


acronym values
like US, RU

No payload required in the request body.

Responses

200 {
OK
"ethnicity": "W_NL",

"ethnicityProbability": 78.92,

46
"altEthnicity": "W_NL",

"altEthnicityProbability": 78.92

Response W_NL (white, non latino),


acronym HL (hispano latino),
full-form A (asian, non latino),
B_NL (black, non latino),
AI_AN (American Indian or Alaskan Native*)
PI (Pacific Islander*)

400 If required input params are not there.


Bad Request

Person Gender(Batch)

API /person/gender/batch

Request Method POST

Request Body [
(max 100 names {
in a single "firstName": "rahul",
request) "countryIso2": "IN",
"id": "1"
}
]

Responses

200 [
OK {
"gender": "male",
"probability": 1.0,
"first_name": "rahul",
"country": "IN",
"id": "1"
}
]

413 When request is having more than 100 names.

47
Payload Too
Large

Person Ethnicity (Batch)


Note: For now, only for US

API /person/ethnicity/batch

Request Method POST

Request Body [
(max 100 names {
in a single "id": "8",
request) "firstName": "kevin",
"lastName": "omalley"
}
]

Responses

200 {
OK "id": "8",
"firstName": "kevin",
"lastName": "omalley",
"ethnicity": "W_NL",
"altEthnicity": "AI_AN",
"ethnicityProbability": 0.79180473,
"altEthnicityProbability": 0.8724307
}

Response W_NL (white, non latino),


acronym HL (hispano latino),
full-form A (asian, non latino),
B_NL (black, non latino),
AI_AN (American Indian or Alaskan Native*)
PI (Pacific Islander*)

413 When a request has more than 100 names.


Payload Too
Large

48
Sourcing New Workflow APIs

Search Profiles API

API /api/sourcing/explore/v2.0?size=200&page=0&accountKey={accountKey}

(Note : size must always be multiple of 200. For the first request, use size=200.
To get next batch of profiles use size=400)

Request Method POST

Request
Parameter
Field Type Details

accountKey Query parameter Credit consumption

Request Body {
"job": {
"jobId": "968"
},
"filters": {
"locations": [
{
"country": "United States",
"state": "California",
"city": "San Jose"
}
],
"experienceLevels": [“Senior”],
"titles": [
"Java Developer"
],
"skills": [
"PHP",
"Java",
"spring"
],

49
"hasContacts": false,
"skillOperation": "AND",
"radius": 50
}
}

Responses

200 {
OK "content": [

{
"profileId": null,
"personId": 173099569,
"name": "Hima",
"overallScore": null,
"culturalFit": null,
"techFit": null,
"linkedInUrl": null,
"location": null,
"profileHeader": "Senior Software Engineer at Proofpoint",
"organisation": null,
"profilePicUrl":
"http://media.dotin.us/profilepic/4d4364b7056e791cfdebadb2997c5ec7",
"isLocked": true,
"isContactLocked": null,
"hasContacts": true,
"skills": "Eclipse,HTML,DHTML,Mobile Applications,J2EE
Application Development,MySQL,Swing,HTML
5,Hibernate,Apache,Spring,SOAP,SQL,XSL,Drupal,Linux,Flex,Struts,JPA,EJB,AJAX
,Tomcat,Design Patterns,Ext JS,Ant,Microsoft SQL Server,JBoss Application
Server,PL/SQL,Core
Java,Databases,JavaScript,JDBC,PHP,Scrum,Oracle,Java,CSS,C++,SOA,Front-end,X
SLT,Operating Systems,Java Enterprise Edition,OOP,JMS,NetBeans,jQuery,Web
Design,XHTML,Servlets",
"contacts": null
},
{
"profileId": null,
"personId": 48496487,
"name": "Stanimir",
"overallScore": null,
"culturalFit": null,
"techFit": null,
"linkedInUrl": null,
"location": null,
"profileHeader": "Senior Software Development Engineer at
Amazon",
"organisation": null,

50
"profilePicUrl":
"http://media.dotin.us/profilepic/f8e8fb79c8d8bde5c6cae057a2918edd",
"isLocked": true,
"isContactLocked": null,
"hasContacts": true,
"skills": "EDA,ServiceMix,PostgreSQL,HTML,Cloud
Computing,MySQL,Architecture,SaaS,XSD,Tibco
EMS,Spring,EAI,YUI,SOAP,UNIX,XSL,Linux,MongoDB,Amazon Web Services (AWS),XML
Spy,XML Beans,Web Services,AJAX,Tomcat,WebServices,Apache
Axis,WSDL,WS-*,ESB,JavaScript,PHP,Oracle,Software
Design,Java,CSS,Oxygen,SOA,JBoss,Java Enterprise
Edition,REST,jQuery,UDDI,DB2,XML,jQuery Mobile,LAMP,WS-Basic Profiles,Active
SOAP,Tibco BusinessWorks,Active MQ",
"contacts": null
},

],
"pageable": {
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"offset": 0,
"pageSize": 200,
"pageNumber": 0,
"paged": true,
"unpaged": false
},
"meta": null,
"totalElements": 132,
"totalPages": 1,
"last": true,
"number": 0,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"size": 200,
"first": true,
"numberOfElements": 132,
"empty": false
}

51
Unlock Profiles API

API /api/sourcing/profiles/unlock?accountKey={accountKey}

Request Method POST

Request Body {
"personIds": [
173099569
]
}

Responses

200 [
OK {
"profileId": "60cc58b5c5b2c4a594f0f586",
"personId": 173099569,
"name": "Hima Menon",
"culturalFit": null,
"techFit": null,
"linkedInUrl": "https://linkedin.com/in/hima-menon-2435051a",
"location": "San Jose, California",
"profileHeader": "Senior Software Engineer at Proofpoint",
"organisation": "Proofpoint",
"profilePicUrl":
"http://media.dotin.us/profilepic/4d4364b7056e791cfdebadb2997c5ec7",
"workStyles": null,
"isLocked": false,
"isContactLocked": true,
"hasContacts": true,
"isSaved": false,
"isEmailSent": null,
"emailSentDate": null,
"skills": "Eclipse,HTML,DHTML,Mobile Applications,J2EE Application
Development,MySQL,Swing,HTML
5,Hibernate,Apache,Spring,SOAP,SQL,XSL,Drupal,Linux,Flex,Struts,JPA,EJB,AJAX
,Tomcat,Design Patterns,Ext JS,Ant,Microsoft SQL Server,JBoss Application
Server,PL/SQL,Core
Java,Databases,JavaScript,JDBC,PHP,Scrum,Oracle,Java,CSS,C++,SOA,Front-end,X
SLT,Operating Systems,Java Enterprise Edition,OOP,JMS,NetBeans,jQuery,Web
Design,XHTML,Servlets",
"contactInfo": {
"id": 146915346,
"phones": [
{

52
"phone": "+91 88000 98991",
"type": "mobile",
"tags": null
}
],
"emails": [
{
"domain": null,
"email": "[email protected]",
"type": "personal",
"validity": "valid",
"tags": null
},
{
"domain": null,
"email": "[email protected]",
"type": "personal",
"validity": "valid",
"tags": null
}
],
"links": [
{
"link": "https://www.linkedin.com/in/nishi-kant-gupta-6aba94b",
"type": "linkedin"
},
{
"link": "https://twitter.com/i/user/18100887",
"type": "twitter"
},
{
"link": "https://www.facebook.com/twinbe786",
"type": "facebook"
},
.
.
.
]
}
}
]

53
Mark/Select Profile for AI match

API /api/jobs/{jobId}/sourcing/v1.4/{personId}/match?accountKey={accountKey}

Request Method POST

Path Parameter 1. jobId : id of the job


2. personId : person id of the profile to match

Request Body {}
(empty request body)

Responses

200
OK

Get Prioritized List of Matched Profiles

API /api/jobs/{jobId}/sourcing/v1.4/profiles/prioritized

Request Method POST

Request Body {
"canWFH": false
}

Responses

200 {
OK "content": [
{
"profileId": "60cc58ddc5b2c4a594f1425e",
"personId": 235329133,
"name": "Serhii Oborskyi",
"culturalFit": 68,
"techFit": 72,
"linkedInUrl":
"https://linkedin.com/in/serhii-oborskyi-0aa04039",
"location": "San Jose, California, United States",
"profileHeader": "Software Engineer at Western Digital",

54
"organisation": "Western Digital",
"profilePicUrl":
"http://media.dotin.us/profilepic/466f42490be3d8783568e6b4180d7008",
"hasContacts": true,
"skills": "Unix,JavaSE,Java,Ant,Eclipse,Spring,Core
Java,JUnit,JavaScript,Swing,PHP,JDBC,Servlets",
"contactInfo": {
"id": 146915346,
"phones": [
{
"phone": "+91 88000 98991",
"type": "mobile",
"tags": null
}
],
"emails": [
{
"domain": null,
"email": "[email protected]",
"type": "personal",
"validity": "valid",
"tags": null
},
{
"domain": null,
"email": "[email protected]",
"type": "personal",
"validity": "valid",
"tags": null
}
],
"links": [
{
"link":
"https://www.linkedin.com/in/nishi-kant-gupta-6aba94b",
"type": "linkedin"
},
{
"link": "https://twitter.com/i/user/18100887",
"type": "twitter"
},
{
"link": "https://www.facebook.com/twinbe786",
"type": "facebook"
},
.
.
.
]

55
}

}
],
"pageable": {
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"offset": 0,
"pageSize": 200,
"pageNumber": 0,
"paged": true,
"unpaged": false
},
"meta": null,
"totalElements": 1,
"totalPages": 1,
"last": true,
"number": 0,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"size": 200,
"first": true,
"numberOfElements": 1,
"empty": false
}

Detailed / Quick Insight PDF Report for Sourcing


Profile
API /reports/v1.4/pdf/download?profileId=60cc58ddc5b2c4a594f1425e

Request Method GET

56
Request
Parameters
Field Type Details

profileId Query parameter profileId retrieved from


Unlock API response

template Query parameter Default template is Quick


Insight Report for Detailed
report pass “detailed”

jobId Optional If the profile is Ai-matched


(required if then pass jobId to get quick
scores are insight report with scores
needed in
report)

Responses

200 "https://storage.googleapis.com/individual-reports/sandbox/ceipal/5e300dd852
OK 578279ffadd1ac/20200513141449/Quick_Insight_Report_Manuel_Olvera_en_US.pdf?G
oogleAccessId=individual-reports-bucket@virtuoso-icebreakrr.iam.gserviceacco
unt.com&Expires=1675779289&Signature=NAdjmGiCm5DT2LhyvHT4I%2Fe5isnXSG4fEjSwT
nENCwgusRFZbsJoehFmEzH%2B7h2tBs5QJt9iRagzVFZ6YXPiHTPs%2Bc%2BqshatCjko6g9PCUa
4BC6UkjVSjY2I8CqCvrJTn3kJK3E6DXEhpSkODHWtevdsarJA5dHCjDQajwG2kUXF9kjAzF27%2B
ASC8KbT9TkPB6IxIUh7eCd3wvXh%2FkeGCAYGY5i2Spq1Rjo5vYhPpPjJcsjRNBM8q0U0YcGa%2B
gb99b%2FOpSN7D%2BJQADS1wRYNaNd4nGHrLfYAxWkhHco261acU8I6mUhpeqEkR5VdNlJLYw5dl
lWLL6ydA29YVEaIvw%3D%3D"

422
UNPROCESSABLE_
ENTITY

Sourcing: Location filter values

API /sourcing/location/v2.0?query=<search-term>

Request Method POST

57
Query param query=<search-term>

Request Body <no-body>

Responses

200 Example :
OK Request : /sourcing/location/v2.0?query=mum

Response:
[
{
"country": "India",
"state": "Maharashtra",
"city": "Navi Mumbai"
},
{
"country": "Turkey",
"state": "Ankara",
"city": "Uğur Mumcu Mahallesi"
},
{
"country": "India",
"state": "Maharashtra",
"city": "Mumbai"
},
{
"country": "Kenya",
"state": "Kakamega",
"city": "Mumias"
}
]

Sourcing: Title Suggestion API

API /sourcing/title/enrich?title=<search-term>

Request Method GET

Query param title=<search-term>

Responses

58
200 Example :
OK Request : /sourcing/title/enrich?title=java developer

Response:
[
"Java Developer",
"Java Web Developer",
"Java Application Developer",
"Java Software Developer",
"PLM Developer",
"CRM Developer",
"RPA Developer",
"Jr. Java Developer",
"VBA Developer"
]

59

You might also like