Jobs
Job Sync enables the user to manage jobs (view, create, update and delete jobs) in the Phenom database.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/v1/jobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs
This API retrieves a list of jobs based on search.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | query | string | false |
| locale | query | string | false |
| category | query | string | false |
| siteType | query | string | false |
| offset | query | string | false |
| limit | query | string | false |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobsListSuccessResponse |
| 201 | OK | JobsListSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs
This API creates a Job in Phenom that reflects in their respective career site.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"job": {
"JobRequestDTO": {
"required": {
"0": "description",
"1": "jobId",
"2": "reqId",
"3": "title"
},
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
},
"postings": {
"type": "array",
"items": {
"Posting": {
"type": "object",
"required": {
"0": "locale",
"1": "siteType"
},
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"siteType": {
"type": "string",
"description": "SiteType of the job."
},
"category": {
"type": "string",
"description": "Category of the job."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"description": {
"type": "string",
"description": "Description of the job."
},
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
}
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | PostPayload |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobsListSuccessResponse |
| 201 | OK | JobsListSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/v1/jobs/{referenceId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs/{referenceId}
This API retrieves all the details of a job using its unique reference ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| referenceId | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"errorCode": {
"type": "string",
"description": "Error Code."
},
"errorDesc": {
"type": "string",
"description": "Error Description."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobSuccessResponse |
| 201 | OK | JobSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | CustomError |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//jobs-api/v1/jobs/{referenceId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /jobs-api/v1/jobs/{referenceId}
This API is used to delete a job using its unique reference ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| referenceId | path | string | true |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobSuccessResponse |
| 201 | OK | JobSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//jobs-api/v1/jobs/{referenceId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /jobs-api/v1/jobs/{referenceId}
This API is used to update a job using its unique reference ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"description": {
"type": "string",
"description": "ATS job description."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| referenceId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | PatchPayload |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"data": {
"type": "object",
"description": "Job.",
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"errorCode": {
"type": "string",
"description": "Error Code."
},
"errorDesc": {
"type": "string",
"description": "Error Description."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobSuccessResponse |
| 201 | OK | JobSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | CustomError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/v1/closedJobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/closedJobs
This API retrieves a list of closed jobs based on search or query parameters like locale, site type, job ID, and category.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | query | string | false |
| locale | query | string | false |
| category | query | string | false |
| siteType | query | string | false |
| offset | query | string | false |
| limit | query | string | false |
Response
OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
]OK
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"offset": {
"type": "integer",
"description": "Parameter defines from which point to query for jobs."
},
"limit": {
"type": "integer",
"description": "Parameter defines how many jobs to query."
},
"totalRecordsCount": {
"type": "integer",
"description": "Total number of jobs for given query."
},
"data": {
"type": "array",
"description": "List of jobs.",
"items": {
"JobResponseDTO": {
"type": "object",
"properties": {
"applyUrl": {
"type": "string",
"description": "Apply url of the job."
},
"category": {
"type": "string",
"description": "Phenom job category."
},
"externalApply": {
"type": "boolean",
"description": "To have Apply Button for job"
},
"companyName": {
"type": "string",
"description": "Tenant name."
},
"description": {
"type": "string",
"description": "ATS job description."
},
"jobId": {
"type": "string",
"description": "ATS jobId."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country)."
},
"reqId": {
"type": "string",
"description": "ATS requisition id."
},
"siteType": {
"type": "string",
"description": "Persona that the job belongs to."
},
"title": {
"type": "string",
"description": "ATS job title."
},
"employmentType": {
"type": "string",
"description": "Type that the job belongs to."
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email of hiring manager associated to the job."
},
"hiringManagerName": {
"type": "string",
"description": "Name of hiring manager associated to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"source": {
"type": "string",
"description": "Job source."
},
"displayCareerSite": {
"type": "boolean",
"description": "To display the job on career site or not."
},
"multiLocation": {
"type": "array",
"description": "All job posting locations, includes /excludes primary posting location.",
"items": {
"LocationDTO": {
"type": "object",
"properties": {
"cityState": {
"type": "string",
"description": "City State of Job"
},
"cityCountry": {
"type": "string",
"description": "City Country of Job"
},
"cityStateCountry": {
"type": "string",
"description": "City State Country of Job"
},
"stateCountry": {
"type": "string",
"description": "State Country of Job"
},
"locationDisplay": {
"type": "string",
"description": "Display Location of Job"
},
"city": {
"type": "string",
"description": "ATS job posting city name."
},
"state": {
"type": "string",
"description": "ATS job posting state name."
},
"country": {
"type": "string",
"description": "ATS job posting country name."
},
"address": {
"type": "string",
"description": "ATS job posting address."
},
"postalCode": {
"type": "string",
"description": "ATS job posting location zip code."
}
}
}
}
},
"multiCategory": {
"type": "array",
"description": "All categories that the job belongs to.",
"items": {
"Category": {
"required": {
"0": "category"
},
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Phenom job category."
}
}
}
}
},
"multiRecruiter": {
"type": "array",
"description": "Data of recruiters assigned to the job(array).",
"items": {
"Recruiter": {
"required": {
"0": "recruiterEmail",
"1": "recruiterName"
},
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter assigned to the job."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter assigned to the job."
}
}
}
}
},
"additionalFields": {
"type": "object",
"description": "Additional fields associated to the job."
},
"referenceId": {
"type": "string",
"description": "Reference Id of the Job"
},
"visibilityLocale": {
"type": "array",
"description": "All locales that the job belongs to.",
"items": {
"type": "string"
}
},
"visibilitySiteType": {
"type": "array",
"description": "All personas that the jobs belongs to.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK | JobsListSuccessResponse |
| 201 | OK | JobsListSuccessResponse |
| 400 | Bad Request | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
Job Activities
These API's allows you to perform activities on Jobs
Hiring Team
These API's allows you to perform operations on Hiring Team.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/activities/v1/jobs/{jobId}/hiring-team
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /jobs-api/activities/v1/jobs/{jobId}/hiring-team
This API fetches the Hiring Team for the mentioned JobId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hiringTeamList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "Role or position of a member in the hiring team."
},
"createdDate": {
"type": "number",
"description": "Timestamp indicating when the member was created in the hiring team."
},
"read": {
"type": "string",
"description": "Read status or permission of the member."
},
"name": {
"type": "string",
"description": "Name of the member in the hiring team."
},
"emailId": {
"type": "string",
"description": "Email address of the member in the hiring team."
},
"source": {
"type": "string",
"description": "Source or origin of the member in the hiring team."
}
},
"required": {
"0": "role",
"1": "createdDate",
"2": "read",
"3": "name",
"4": "emailId",
"5": "source"
}
}
}
},
"required": {
"0": "hiringTeamList"
}
},
"description": "Array of objects containing information about the hiring team members."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the operation result."
},
"status": {
"type": "string",
"description": "Indicates the status of the operation (e.g., success, failure)."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the operation was performed."
}
},
"required": {
"0": "data",
"1": "message",
"2": "status",
"3": "timestamp"
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | HiringTeam |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//jobs-api/activities/v1/jobs/{jobId}/hiring-team
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /jobs-api/activities/v1/jobs/{jobId}/hiring-team
Updates the Hiring Team for the Job with given JobId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"opType": {
"type": "string",
"description": "The operation type for updating the hiring team."
},
"hiringTeamList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of a member in the hiring team."
},
"emailId": {
"type": "string",
"description": "The email address of a member in the hiring team."
},
"role": {
"type": "string",
"description": "The role of a member in the hiring team."
}
},
"required": {
"0": "name",
"1": "emailId",
"2": "role"
},
"description": "Details of a member in the hiring team."
},
"description": "An array containing details of members in the hiring team for the update."
}
},
"required": {
"0": "opType",
"1": "hiringTeamList"
},
"description": "Request object for updating the hiring team of jobs."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateJobsHiringTeamRequest |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the success of the update operation on the hiring team."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the update operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the update operation on the hiring team occurred."
}
},
"description": "Response object for a successful update of the hiring team."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating that the requested resource was not found."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for an error when the requested resource is not found."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating an internal server error."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for an internal server error."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | UpdateHiringTeamResponse |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerErrorResponse |
Job Attachments
These API's allows you to fetch Job attachments.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/activities/v1/jobs/{jobId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /jobs-api/activities/v1/jobs/{jobId}/attachments
Fetches Job Attachments for the given JobId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the success of the operation to fetch job attachments."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the fetch operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the fetch operation for job attachments occurred."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attachmentDate": {
"type": "string",
"description": "The date when the attachment was added to the job."
},
"createdByUserName": {
"type": "string",
"description": "The name of the user who added the attachment to the job."
},
"attachmentName": {
"type": "string",
"description": "The name of the attachment."
},
"attachmentId": {
"type": "string",
"description": "The unique identifier for the attachment."
},
"createdByUserEmail": {
"type": "string",
"description": "The email address of the user who added the attachment to the job."
}
}
},
"description": "An array containing details of job attachments."
}
},
"description": "Response object for a successful fetch of job attachments."
}
]No Data found
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]Bad Request Response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API on which the error has occurred."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
}
}
}
},
"description": "Response object for a bad request, containing details about errors."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetJobAttachmentsResponse |
| 204 | No Data found | NoContentResponse |
| 400 | Bad Request Response | BadRequestError |
Job Category
These API's allows you to fetch the Job Categories.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/activities/v1/category
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /jobs-api/activities/v1/category
Fetches All the available Job Categories.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| locale | query | string | false |
| from | query | integer | false |
| limit | query | integer | false |
| keyword | query | string | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the success of the operation to fetch job categories."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the fetch operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the fetch operation for job categories occurred."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "The number of job categories in the current response."
},
"from": {
"type": "number",
"description": "The index from which the job categories are being retrieved."
},
"totalCount": {
"type": "number",
"description": "The total number of job categories available."
}
},
"description": "Pagination details for the list of job categories."
},
"data": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "The name of a job category."
}
},
"description": "Details of an individual job category within the array."
}
}
}
},
"description": "Response object for a successful fetch of job categories."
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API on which the error has occurred."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
}
}
}
},
"description": "Response object for a bad request, containing details about errors."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetJobCategories |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
Job Notes
These API's allows you to operate on notes related to Jobs.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/activities/v1/jobs/{jobId}/notes
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /jobs-api/activities/v1/jobs/{jobId}/notes
Fetches Job Notes for the mentioned JobId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
| recruiterEmail | query | string | false |
| includePrivateNotes | query | string | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the success of the operation to fetch job notes."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the fetch operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the fetch operation for job notes occurred."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "The number of notes in the current response."
},
"from": {
"type": "number",
"description": "The index from which the notes are being retrieved."
},
"totalCount": {
"type": "number",
"description": "The total number of notes available for the job."
}
},
"description": "Pagination details for the list of notes."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"updatedDate": {
"type": "string",
"description": "The date when the note was last updated."
},
"jobId": {
"type": "string",
"description": "The identifier for the job associated with the note."
},
"createdDate": {
"type": "string",
"description": "The date when the note was created."
},
"taggedRecruiters": {
"type": "array",
"items": {},
"description": "An array containing details of recruiters tagged to the note."
},
"name": {
"type": "string",
"description": "The name associated with the note."
},
"notes": {
"type": "string",
"description": "The content of the note."
}
}
},
"description": "An array containing details of job notes."
}
},
"description": "Response object for a successful fetch of job notes."
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API on which the error has occurred."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
}
}
}
},
"description": "Response object for a bad request, containing details about errors."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating that the requested resource was not found."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for an error when the requested resource is not found."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetJobNotesResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/activities/v1/jobs/{jobId}/notes
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /jobs-api/activities/v1/jobs/{jobId}/notes
Creates Job Notes for the mentioned Job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"taggedRecruiters": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of recruiter IDs to be tagged to the job note."
},
"entityType": {
"type": "string",
"description": "The type of entity associated with the job note."
},
"noteText": {
"type": "string",
"description": "The text content of the job note."
},
"asPrivate": {
"type": "boolean",
"description": "A boolean indicating whether the job note should be marked as private, which restricts the visibility of the note to the user who created it."
}
},
"description": "Request object for creating job notes."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | CreateJobNoteRequest |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the success of the operation to create job notes."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the creation of job notes."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the creation of job notes occurred."
}
},
"description": "Response object for a successful creation of job notes."
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API on which the error has occurred."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
}
}
}
},
"description": "Response object for a bad request, containing details about errors."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating that the requested resource was not found."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for an error when the requested resource is not found."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | CreateJobNoteResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
Search
These APIs helps to find relevant job listings matching specific keywords.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/search/
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/search/
This API assist in discovering job listings that align with particular keywords or search terms.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request to Search Jobs.",
"properties": {
"keywords": {
"type": "string",
"description": "Keyword to search."
},
"from": {
"type": "integer",
"description": "Starting point from which the data should be retrieved."
},
"size": {
"type": "integer",
"description": "Size of the response."
},
"booleanOperator": {
"type": "string",
"description": "Search operator accepts \"and\" / \"or\"."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"userType": {
"type": "string",
"description": "Type of the user - Internal or External User."
},
"orderBy": {
"type": "string",
"description": "Resultant order of jobs."
},
"facets": {
"type": "object",
"description": "Attributes and it's corresponding values to filter jobs.",
"properties": {
"city": {
"type": "array",
"items": {
"type": "string"
},
"description": "City filter will be applied based on the values present in the list."
},
"state": {
"type": "array",
"items": {
"type": "string"
},
"description": "State filter will be applied based on the values present in the list."
},
"country": {
"type": "array",
"items": {
"type": "string"
},
"description": "Country filter will be applied based on the values present in the list."
},
"category": {
"type": "array",
"items": {
"type": "string"
},
"description": "Category filter will be applied based on the values present in the list."
}
}
},
"ip": {
"type": "string",
"description": "User IP Address."
},
"locationData": {
"LocationData": {
"type": "object",
"properties": {
"latlong": {
"type": "string",
"description": "Latitude, Longitude of the location."
},
"location": {
"type": "string",
"description": "Location Value."
},
"radius": {
"type": "integer",
"description": "Radius to consider from the entered location."
},
"radiusUnit": {
"type": "string",
"description": "Radius unit to consider."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JobSearchRequest |
Response
Returns filtered jobs.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"data": {
"type": "object",
"description": "Job Search Response data.",
"properties": {
"jobs": {
"type": "array",
"items": {
"JobNode": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the Job."
},
"jobId": {
"type": "string",
"description": "Job ID - unique field to identify the job."
},
"city": {
"type": "string",
"description": "City value where the job is posted."
},
"state": {
"type": "string",
"description": "State value where the job is posted."
},
"country": {
"type": "string",
"description": "Country value where the job is posted."
},
"location": {
"type": "string",
"description": "Location of the job posted."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"jobUpdatedDate": {
"type": "string",
"description": "Timestamp where the latest update was pushed to the job."
},
"createdDate": {
"type": "string",
"description": "Timestamp when the job was created."
},
"category": {
"type": "string",
"description": "Job Category."
},
"multiCategory": {
"type": "array",
"description": "List of categories where the job is posted to.",
"items": {
"type": "string",
"description": "category where the job is posted to."
}
},
"multiLocation": {
"type": "array",
"description": "List of locations where the job is posted.",
"items": {
"type": "string",
"description": "locations where the job is posted."
}
}
}
}
}
}
}
}
}
}
]Bad Request.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered jobs. | JobSearchResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/v1/jobs/search/suggestions
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs/search/suggestions
This API offers automatic suggestions for job titles based on entered keywords or search terms.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| searchBy | query | string | true |
| limit | query | string | false |
| prefix | query | string | true |
Response
Typeahead results filtered based on input prefix.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"data": {
"type": "object",
"description": "Response.",
"properties": {
"titles": {
"type": "array",
"description": "List of Titles.",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the job."
},
"jobId": {
"type": "string",
"description": "Job ID - Unique Identifier of the job."
},
"titleHtml": {
"type": "string",
"description": "Title of the job with highlighted tags."
}
}
}
}
}
}
}
}
]Bad Request.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Typeahead results filtered based on input prefix. | JobTitlesResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
Recommendations
These APIs provide job suggestions based on your profile, akin job listings, and nearby job opportunities tailored to your qualifications.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/recommendation/profile-matched
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/recommendation/profile-matched
This API provides job recommendations for a profile.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"default": "external",
"description": "Persona Value - Example: Internal, External."
},
"userType": {
"type": "string",
"default": "external",
"description": "Type of the user - Internal or External User."
},
"userId": {
"type": "string",
"description": "Unique identified for a user."
},
"userProfile": {
"UserProfile": {
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "string",
"description": "List of categories from which the recommendations should be provided."
}
},
"skills": {
"type": "array",
"items": {
"type": "string",
"description": "Skill set of the user."
}
},
"title": {
"type": "string",
"description": "Recent designation of the user."
},
"yearsOfExperience": {
"type": "string",
"example": "0-5",
"description": "Total number of years of experience of the user."
},
"preferredLocations": {
"type": "array",
"items": {
"PreferredLocations": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Preferred location of the user."
},
"latlong": {
"type": "object",
"properties": {
"lon": {
"type": "number",
"format": "double",
"description": "Longitude of the preferred location provided by user."
},
"lan": {
"type": "number",
"format": "double",
"description": "Latitude of the preferred location provided by user."
}
}
}
}
}
}
}
}
}
},
"maxRecommendationSize": {
"type": "integer",
"description": "Maximum recommendations to be provided in response."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JobRecommendation |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"default": "200",
"description": "HTTP Status code determining the response status."
},
"totalCount": {
"type": "integer",
"description": "Total recommendations identified by the service."
},
"jobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the recommended job."
},
"category": {
"type": "string",
"description": "Category to which the recommended job belongs to."
},
"jobId": {
"type": "string",
"description": "Unique identifier for a job."
},
"city": {
"type": "string",
"description": "Primary city of the job's location."
},
"state": {
"type": "string",
"description": "Primary state of the job's location."
},
"country": {
"type": "string",
"description": "Primary country of the job's location."
},
"applyUrl": {
"type": "string",
"description": "Apply url for the job."
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | ProfileMatchingResponse |
| 400 | Bad Request | BadRequest |
| 500 | Server Error | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/recommendation/similarjobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/recommendation/similarjobs
This API provides similar jobs to the given job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"userType": {
"type": "string",
"description": "Type of the user - Internal or External User."
},
"size": {
"type": "integer",
"description": "Size of the response."
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | query | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | SimilarJobsRequest |
Response
found the api
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "HTTP Status code determining the response status."
},
"hits": {
"type": "integer",
"description": "No of hits."
},
"data": {
"type": "object",
"properties": {
"similarJobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the recommended job."
},
"jobId": {
"type": "string",
"description": "Job ID - unique field to identify the job."
},
"category": {
"type": "string",
"description": "Category to which the job belongs to."
},
"city": {
"type": "string",
"description": "City of the Location to which the job belongs to."
},
"state": {
"type": "string",
"description": "State of the Location to which the job belongs to."
},
"country": {
"type": "string",
"description": "Country of the Location to which the job belongs to."
},
"applyUrl": {
"type": "string",
"description": "Apply Url of the job."
}
}
}
}
}
}
}
}
]Some exception occured while extracting features.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | found the api | SimilarJobsResponse |
| 400 | Some exception occured while extracting features. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//jobs-api/v1/jobs/recommendation/nearby
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /jobs-api/v1/jobs/recommendation/nearby
This API provides job listings nearby, using location as a parameter for the search.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| latitude | query | number | true |
| longitude | query | number | true |
| radius | query | integer |
Response
Returns Locations matching with given keyword.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "HTTP Status code determining the response status."
},
"data": {
"type": "object",
"description": "Near By Jobs Response data.",
"properties": {
"nearbyjobs": {
"type": "array",
"items": {
"JobNode": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the Job."
},
"jobId": {
"type": "string",
"description": "Job ID - unique field to identify the job."
},
"city": {
"type": "string",
"description": "City value where the job is posted."
},
"state": {
"type": "string",
"description": "State value where the job is posted."
},
"country": {
"type": "string",
"description": "Country value where the job is posted."
},
"location": {
"type": "string",
"description": "Location of the job posted."
},
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"description": "Persona Value - Example: Internal, External."
},
"jobUpdatedDate": {
"type": "string",
"description": "Timestamp where the latest update was pushed to the job."
},
"createdDate": {
"type": "string",
"description": "Timestamp when the job was created."
},
"category": {
"type": "string",
"description": "Job Category."
},
"multiCategory": {
"type": "array",
"description": "List of categories where the job is posted to.",
"items": {
"type": "string",
"description": "category where the job is posted to."
}
},
"multiLocation": {
"type": "array",
"description": "List of locations where the job is posted.",
"items": {
"type": "string",
"description": "locations where the job is posted."
}
}
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns Locations matching with given keyword. | NearByJobsResponse |
| 400 | Bad Request | BadRequest |
| 500 | Server Error | ErrorResponse |
Candidates
These Candidate APIs allow you to add, update and delete candidates.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates
The Get Candidate Details API is used to fetch candidate details based on candidateId, email, atsId or linkedInProfileUrl.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | query | string | false |
| query | string | false | |
| atsId | query | string | false |
| linkedInProfileUrl | query | string | false |
Response
Successfully fetched the candidate details.
copied![
{
"type": "object",
"description": "An object representing candidate-related information.",
"properties": {
"data": {
"type": "object",
"description": "An object containing candidate data.",
"properties": {
"attachments": {
"type": "array",
"description": "Array containing details of attachments associated with the candidate.",
"items": {
"AttachmentDetail": {
"type": "object",
"description": "An object containing details about a candidate attachment.",
"properties": {
"resumeFileName": {
"type": "string",
"description": "Name of the resume file."
},
"attachmentId": {
"type": "string",
"description": "ID of the attachment file."
},
"attachmentName": {
"type": "string",
"description": "Name of the attachment file."
},
"isCreatedFromCandidates": {
"type": "boolean",
"description": "Indicates whether the attachment is created from candidates."
},
"documentType": {
"type": "string",
"description": "Type of the document."
},
"attachmentType": {
"type": "string",
"description": "Type of the attachment."
}
}
}
}
},
"education": {
"type": "array",
"description": "Array containing objects representing the educational background.",
"items": {
"EducationDetail": {
"type": "object",
"description": "Object representing an educational background entry.",
"properties": {
"degree": {
"type": "string",
"description": "The degree obtained."
},
"fieldOfStudy": {
"type": "string",
"description": "The field of study or major."
},
"schoolName": {
"type": "string",
"description": "The name of the school."
},
"schoolAndUniversity": {
"type": "string",
"description": "Combined name of the school and university."
},
"state": {
"type": "string",
"description": "The state where the institution is located."
},
"country": {
"type": "string",
"description": "The country where the institution is located."
},
"startDate": {
"type": "number",
"description": "The start date of the program."
},
"endDate": {
"type": "number",
"description": "The end date of the program."
},
"isHighEducation": {
"type": "boolean",
"description": "Indicates if this is higher education."
}
}
}
}
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"candidateId": {
"type": "string",
"description": "Unique identifier for the user or candidate."
},
"lastUpdateTimestamp": {
"type": "number",
"description": "Timestamp indicating the last update time of the profile."
},
"employeeId": {
"type": "string",
"description": "Employee profile ID associated with the candidate."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of skills possessed by the candidate."
},
"linkedInProfileURL": {
"type": "string",
"description": "URL to the candidate's LinkedIn profile."
},
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"company": {
"type": "string",
"description": "The name of the company associated with the candidate."
},
"createdDate": {
"type": "number",
"description": "Timestamp indicating when the profile was created."
},
"address": {
"type": "array",
"description": "An array representing a list of addresses associated with the candidate.",
"items": {
"LocationDetail": {
"type": "object",
"description": "An object representing a geographic location.",
"properties": {
"city": {
"type": "string",
"description": "The city."
},
"state": {
"type": "string",
"description": "The state."
},
"country": {
"type": "string",
"description": "The country."
},
"zipCode": {
"type": "string",
"description": "The zipcode."
}
}
}
}
},
"updatedDate": {
"type": "number",
"description": "The date when the information was last updated."
},
"preferredCommunicationMode": {
"CommunicationPreferences": {
"type": "object",
"description": "An object representing preferred communication modes.",
"properties": {
"sms": {
"type": "boolean",
"description": "Is SMS a preferred communication mode."
},
"email": {
"type": "boolean",
"description": "Is email a preferred communication mode."
}
}
}
},
"emailList": {
"type": "array",
"description": "An array representing an email list.",
"items": {
"EmailDetail": {
"type": "object",
"description": "An object representing details of an email entry.",
"properties": {
"email": {
"type": "string",
"description": "The email address."
},
"type": {
"type": "string",
"description": "The type of email entry."
},
"status": {
"type": "string",
"description": "The status of the email entry."
}
}
}
}
},
"experience": {
"type": "array",
"description": "An array representing professional experiences.",
"items": {
"ExperienceDetail": {
"type": "object",
"description": "An object representing details of a professional experience.",
"properties": {
"company": {
"type": "string",
"description": "Name of the company."
},
"jobTitle": {
"type": "string",
"description": "The job title."
},
"industry": {
"type": "string",
"description": "Industry associated with the experience."
},
"role": {
"type": "string",
"description": "Role in the experience."
},
"jobLocation": {
"type": "string",
"description": "Location of the job."
},
"startDate": {
"type": "number",
"description": "Start date of the experience."
},
"endDate": {
"type": "number",
"description": "End date of the experience."
},
"isCurrent": {
"type": "boolean",
"description": "Indicates if the experience is current."
},
"companyUrl": {
"type": "string",
"description": "URL of the company."
},
"jobSummary": {
"type": "string",
"description": "Summary of the job experience."
}
}
}
}
},
"contacts": {
"type": "array",
"description": "An array representing contact information.",
"items": {
"ContactDetail": {
"type": "object",
"description": "An object containing details of a contact entry.",
"properties": {
"phoneNumber": {
"type": "string",
"description": "The phone number."
},
"countryCode": {
"type": "string",
"description": "The country code."
},
"status": {
"type": "string",
"description": "The status of the contact entry."
},
"type": {
"type": "string",
"description": "The type of contact entry."
}
}
}
}
},
"lastName": {
"type": "string",
"description": "Last name of the individual."
},
"internal": {
"type": "boolean",
"description": "Indicates whether the individual is internal."
},
"atsId": {
"type": "string",
"description": "Unique identifier associated with the ATS."
},
"firstProfileSourceList": {
"type": "array",
"description": "Array representing the first source of the candidate's profile.",
"items": {
"type": "string"
}
},
"profileSourceList": {
"type": "array",
"description": "Array representing all the sources of the candidate's profile.",
"items": {
"type": "string"
}
},
"linkedInUrnId": {
"type": "string",
"description": "LinkedIn URN ID of the candidate."
},
"linkedInSyncStatus": {
"type": "string",
"description": "Status of LinkedIn sync."
},
"linkedInLastSyncDate": {
"type": "integer",
"description": "When the candidate profile was synced with LinkedIn."
},
"location": {
"description": "Primary address associated with the candidate.",
"LocationDetail": {
"type": "object",
"description": "An object representing a geographic location.",
"properties": {
"city": {
"type": "string",
"description": "The city."
},
"state": {
"type": "string",
"description": "The state."
},
"country": {
"type": "string",
"description": "The country."
},
"zipCode": {
"type": "string",
"description": "The zipcode."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "integer",
"description": "Status code of the request."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Could not find candidate for given identifier.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the candidate details. | Candidate |
| 400 | Wrong request format or parameters missing. | ErrorResponse |
| 404 | Could not find candidate for given identifier. | ErrorResponse |
| 500 | Exception occurred. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//candidates-api/v1/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'POST /candidates-api/v1/candidates
The create candidate profile API creates a new profile record in the system.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"required": {
"0": "firstName",
"1": "lastName",
"2": "profileSources"
},
"properties": {
"firstName": {
"type": "string",
"description": "The first name of the candidate."
},
"lastName": {
"type": "string",
"description": "The last name of the candidate."
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"linkedInProfileURL": {
"type": "string",
"description": "The LinkedIn profile URL of the candidate."
},
"internal": {
"type": "boolean",
"description": "Indicates whether the candidate is internal."
},
"profileSources": {
"type": "array",
"description": "Array of profile sources associated with the candidate.",
"items": {
"type": "string"
}
},
"languagePreference": {
"type": "string",
"description": "The language preference of the candidate."
},
"languageKnown": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of languages known by the candidate."
},
"createdDate": {
"type": "string",
"format": "date-time",
"description": "The date and time when the candidate was created in the ATS."
},
"updatedDate": {
"type": "string",
"format": "date-time",
"description": "The date and time when the candidate record was last updated in the ATS."
},
"emailList": {
"type": "array",
"description": "Array of email addresses associated with the candidate.",
"items": {
"type": "object",
"description": "Email details for the candidate.",
"required": {
"0": "email",
"1": "type",
"2": "status"
},
"properties": {
"email": {
"type": "string",
"description": "The email address of the candidate. (Example: xyz@gmail.com)"
},
"type": {
"type": "string",
"description": "The type of email (e.g., 'Primary' or 'Secondary')."
},
"status": {
"type": "string",
"description": "The status of the email (e.g., 'Primary' or 'Secondary').",
"enum": {
"0": "Primary",
"1": "Secondary"
}
}
}
}
},
"contacts": {
"type": "array",
"description": "Array of contact details associated with the candidate.",
"items": {
"type": "object",
"description": "Contact details for the candidate.",
"required": {
"0": "type",
"1": "phoneNumber",
"2": "status",
"3": "countryCode"
},
"properties": {
"type": {
"type": "string",
"description": "The type of contact (e.g., 'Primary' or 'Secondary')."
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"status": {
"type": "string",
"description": "The status of the contact (e.g., 'Primary' or 'Secondary').",
"enum": {
"0": "Primary",
"1": "Secondary"
}
},
"countryCode": {
"type": "string",
"description": "The country code associated with the contact."
}
}
}
},
"atsId": {
"type": "string",
"description": "The ATS (Applicant Tracking System) identifier associated with the candidate."
},
"employeeId": {
"type": "string",
"description": "The employee identifier associated with the candidate."
}
},
"anyOf": {
"0": {
"required": {
"0": "emailList"
}
},
"1": {
"required": {
"0": "contacts"
}
},
"2": {
"required": {
"0": "linkedInProfileURL"
}
},
"3": {
"required": {
"0": "employeeId"
}
}
},
"description": "Schema defining the structure of the request body for creating a candidate profile.<br/><br/><b>Validation Rules:</b><ul><li><code>firstName</code>, <code>lastName</code>, and <code>profileSources</code> are always mandatory.</li><li>You must also provide <b>at least one</b> of the following: <code>emailList</code>, <code>contacts</code>, <code>linkedInProfileURL</code>, or <code>employeeId</code>.</li></ul>"
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateCandidateRequest |
Response
Candidate profile created successfully
copied![
{
"type": "object",
"description": "An object representing the response after creating a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the created candidate.",
"properties": {
"cId": {
"type": "string",
"description": "The unique identifier for the created candidate."
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "integer",
"description": "An integer representing the status of the response."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Candidate profile already exists with given identifier.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Candidate profile created successfully | CreateCandidateResponse |
| 400 | Wrong request format or parameters missing. | ErrorResponse |
| 409 | Candidate profile already exists with given identifier. | ErrorResponse |
| 500 | Exception occurred. | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}
This API updates the profile data for a given candidate Id.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "The first name of the candidate."
},
"lastName": {
"type": "string",
"description": "The last name of the candidate."
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"emailList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email address of the candidate."
},
"type": {
"type": "string",
"description": "The type of email (e.g., 'Primary' or 'Secondary')."
},
"status": {
"type": "string",
"description": "The status of the email (e.g., 'Primary' or 'Secondary')."
}
}
},
"description": "Array of email addresses associated with the candidate."
},
"contacts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of contact (e.g., 'Primary' or 'Secondary')."
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"status": {
"type": "string",
"description": "The status of the contact (e.g., 'Primary' or 'Secondary')."
},
"countryCode": {
"type": "string",
"description": "The country code associated with the contact."
}
}
},
"description": "Array of contact details associated with the candidate."
},
"linkedInProfileURL": {
"type": "string",
"description": "The LinkedIn profile URL of the candidate."
},
"atsId": {
"type": "string",
"description": "The ATS (Applicant Tracking System) identifier associated with the candidate."
},
"employeeId": {
"type": "string",
"description": "The employee identifier associated with the candidate."
},
"internal": {
"type": "boolean",
"description": "Indicates whether the candidate is internal."
},
"profileSources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of profile sources associated with the candidate."
},
"createdDate": {
"type": "string",
"description": "The date and time when the candidate was created in the ATS."
},
"updatedDate": {
"type": "string",
"description": "The date and time when the candidate record was last updated in the ATS."
},
"languagePreference": {
"type": "string",
"description": "The language preference of the candidate."
},
"languageKnown": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of languages known by the candidate."
},
"gender": {
"type": "string",
"description": "The gender of the candidate."
},
"designation": {
"type": "string",
"description": "The designation or job title of the candidate."
},
"race": {
"type": "string",
"description": "The race or ethnicity of the candidate."
},
"veteran": {
"type": "string",
"description": "Indicates whether the candidate is a veteran."
},
"disability": {
"type": "string",
"description": "The disability status of the candidate."
},
"ethnicity": {
"type": "string",
"description": "The ethnicity of the candidate."
}
},
"description": "Schema defining the structure of the request body for updating a candidate profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCandidateRequest |
Response
Successfully updated candidate profile
copied![
{
"type": "object",
"description": "An object representing the response after creating a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the created candidate.",
"properties": {
"candidateId": {
"type": "string",
"description": "The unique identifier for the created candidate."
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "An string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Successfully updated candidate profile | CandidateCreateResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//candidates-api/v1/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'x-ph-userId: string'
-H 'Authorization: string'DELETE /candidates-api/v1/candidates/{candidateId}
This API deletes the profile of a given candidate id.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| x-ph-userId | header | string | true |
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully deleted the candidate
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully deleted the candidate | CandidateDetailsUpdateResponse |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/experiences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/experiences
The experiences API is used to fetch experiences on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the experience details for given candidate
copied![
{
"type": "object",
"description": "Schema defining the structure of the experience data for a candidate.",
"properties": {
"data": {
"type": "object",
"description": "Object containing experience-related data.",
"properties": {
"experiences": {
"type": "array",
"description": "List of experience objects.",
"items": {
"type": "object",
"description": "Object representing an individual experience.",
"properties": {
"company": {
"type": "string",
"description": "A string representing the name of the company."
},
"jobTitle": {
"type": "string",
"description": "A string representing the job title."
},
"industry": {
"type": "string",
"description": "A string representing the industry associated with the experience."
},
"role": {
"type": "string",
"description": "A string representing the role in the experience."
},
"jobLocation": {
"type": "string",
"description": "A string representing the location of the job."
},
"startDate": {
"type": "number",
"description": "A number representing the start date of the experience."
},
"endDate": {
"type": "number",
"description": "A number representing the end date of the experience."
},
"isCurrent": {
"type": "boolean",
"description": "A boolean indicating whether the experience is current."
},
"companyUrl": {
"type": "string",
"description": "A string representing the URL of the company."
},
"jobSummary": {
"type": "string",
"description": "A string representing a summary of the job experience."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message or additional information related to the experience data."
},
"status": {
"type": "string",
"description": "Status of the experience data, indicating success or failure."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the experience details for given candidate | Experience |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/experiences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/experiences
The experiences API is used to update experiences on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing existing resource.Accepted values are replace and merge"
},
"experience": {
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "The name of the company where the candidate gained experience."
},
"isCurrent": {
"type": "boolean",
"description": "Indicates whether the candidate is currently employed in this position."
},
"jobTitle": {
"type": "string",
"description": "The job title or position held by the candidate."
},
"jobSummary": {
"type": "string",
"description": "A summary or description of the candidate's job responsibilities."
},
"startMonth": {
"type": "integer",
"description": "The starting month of the candidate's employment."
},
"startYear": {
"type": "integer",
"description": "The starting year of the candidate's employment."
},
"endMonth": {
"type": "integer",
"description": "The ending month of the candidate's employment, if applicable."
},
"endYear": {
"type": "integer",
"description": "The ending year of the candidate's employment, if applicable."
},
"industry": {
"type": "string",
"description": "The industry or sector associated with the candidate's experience."
},
"type": {
"type": "string",
"description": "The type of experience (e.g., 'Full-time', 'Part-time')."
},
"designation": {
"type": "string",
"description": "The designation or role associated with the candidate's experience."
},
"role": {
"type": "string",
"description": "The specific role or function performed by the candidate."
},
"jobLocation": {
"type": "string",
"description": "The location of the job or work associated with the experience."
},
"country": {
"type": "string",
"description": "The country where the candidate gained experience."
},
"state": {
"type": "string",
"description": "The state or region where the candidate gained experience."
},
"city": {
"type": "string",
"description": "The city where the candidate gained experience."
}
}
},
"description": "Array of experiences to be added or updated for the candidate."
}
},
"description": "Schema defining the structure of the request body for adding or updating candidate experiences."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddOrUpdateExperienceRequest |
Response
Successfully added experiences to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added experiences to candidates | CandidateDetailsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/educations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'x-ph-userId: string'
-H 'Authorization: string'GET /candidates-api/v1/candidates/{candidateId}/educations
This API is used to fetch education on candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| x-ph-userId | header | string | true |
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the education for given candidate
copied![
{
"type": "object",
"description": "Object representing education details.",
"properties": {
"data": {
"type": "object",
"description": "Object containing education data.",
"properties": {
"educations": {
"type": "array",
"description": "Array of education items.",
"items": {
"type": "object",
"properties": {
"degree": {
"type": "string",
"description": "The degree obtained by the candidate in their educational background."
},
"fieldOfStudy": {
"type": "string",
"description": "The field of study or major in the candidate's educational background."
},
"schoolName": {
"type": "string",
"description": "The name of the school associated with the candidate's educational background."
},
"schoolAndUniversity": {
"type": "string",
"description": "Combined name of the school and university associated with the candidate's educational background."
},
"state": {
"type": "string",
"description": "The state where the educational institution is located."
},
"country": {
"type": "string",
"description": "The country where the educational institution is located."
},
"startDate": {
"type": "number",
"description": "The start date of the educational program."
},
"endDate": {
"type": "number",
"description": "The end date of the educational program."
},
"isHighEducation": {
"type": "boolean",
"description": "Boolean indicating whether the education is considered high education or not."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the education for given candidate | Education |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/educations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/educations
This API is used to update education on candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"education": {
"type": "array",
"description": "List of education details to be added or updated for the candidate.",
"items": {
"type": "object",
"properties": {
"degree": {
"type": "string",
"description": "Degree or qualification obtained in the education."
},
"fieldOfStudy": {
"type": "string",
"description": "Field of study or major in the education."
},
"schoolName": {
"type": "string",
"description": "Name of the educational institution or school."
},
"startMonth": {
"type": "integer",
"description": "Start month of the education (numeric value)."
},
"startYear": {
"type": "integer",
"description": "Start year of the education (numeric value)."
},
"endMonth": {
"type": "integer",
"description": "End month of the education (numeric value)."
},
"endYear": {
"type": "integer",
"description": "End year of the education (numeric value)."
},
"isHighEducation": {
"type": "boolean",
"description": "Boolean indicating whether the education is a high education level."
},
"city": {
"type": "string",
"description": "City where the educational institution is located."
},
"state": {
"type": "string",
"description": "State or region where the educational institution is located."
},
"country": {
"type": "string",
"description": "Country where the educational institution is located."
},
"universityName": {
"type": "string",
"description": "Name of the university associated with the education."
}
}
}
}
},
"description": "Schema defining the structure of the request body for adding or updating education details for a candidate."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddOrUpdateEducationRequest |
Response
Successfully added education to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added education to candidates | CandidateDetailsUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/skills
This API is used to fetch skills on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the skills of a candidate
copied![
{
"type": "object",
"description": "Object representing skills.",
"properties": {
"data": {
"type": "object",
"description": "Object containing skills data.",
"properties": {
"skills": {
"type": "array",
"description": "Array of skill items.",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The skill value."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the skills of a candidate | Skills |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/v1/candidates/{candidateId}/skills
The skills API is used to update skills on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"skillList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The skill value or name to be added to the candidate's skill list."
}
}
},
"description": "Array of skills to be added to the candidate's skill list."
}
},
"description": "Schema defining the structure of the request body for adding skills to a candidate."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddSkillsRequest |
Response
Successfully added skills to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added skills to candidates | CandidateDetailsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/awards
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/awards
This API is used to fetch awards on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the awards of a candidate
copied![
{
"type": "object",
"description": "Object representing awards.",
"properties": {
"data": {
"type": "object",
"description": "Object containing awards data.",
"properties": {
"awards": {
"type": "array",
"description": "Array of award items.",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description of the award."
},
"title": {
"type": "string",
"description": "Title of the award."
},
"awardedOn": {
"type": "object",
"description": "Object representing the date when the award was awarded.",
"properties": {
"year": {
"type": "number",
"description": "Year of the award."
},
"month": {
"type": "number",
"description": "Month of the award."
},
"day": {
"type": "number",
"description": "Day of the award."
}
}
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the awards of a candidate | Award |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/awards
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/awards
This API is used to update awards on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"awards": {
"type": "array",
"description": "List of awards to be updated or added to the candidate's profile.",
"items": {
"type": "object",
"properties": {
"awardedOn": {
"type": "object",
"description": "Date when the award was received.",
"properties": {
"year": {
"type": "integer",
"description": "The year when the award was issued."
},
"month": {
"type": "integer",
"description": "The month when the award was issued."
}
}
},
"title": {
"type": "string",
"description": "Title of the award."
},
"description": {
"type": "string",
"description": "Description or details of the award."
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating or adding awards to a candidate's profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateAwardsRequest |
Response
Successfully added awards to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added awards to candidates | CandidateDetailsUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/certifications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/certifications
This API is used to fetch certifications on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the certifications of a candidate
copied![
{
"type": "object",
"description": "Object representing certifications.",
"properties": {
"data": {
"type": "object",
"description": "Object containing certifications data.",
"properties": {
"certifications": {
"type": "array",
"description": "Array of certification items.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the certification."
},
"certificationNumber": {
"type": "string",
"description": "The unique certification number."
},
"institute": {
"type": "string",
"description": "The institution or organization that issued the certification."
},
"startDate": {
"type": "number",
"description": "The numeric representation of the certification start date."
},
"issuedDate": {
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "The year when the certification was issued."
},
"month": {
"type": "number",
"description": "The month when the certification was issued."
},
"day": {
"type": "number",
"description": "The day when the certification was issued."
}
},
"description": "The date when the certification was officially issued."
},
"expiryDate": {
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "The year when the certification expires."
},
"month": {
"type": "number",
"description": "The month when the certification expires."
},
"day": {
"type": "number",
"description": "The day when the certification expires."
}
},
"description": "The date when the certification expires."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the certifications of a candidate | Certification |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/certifications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/certifications
This API is used to update certifications on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"certifications": {
"type": "array",
"description": "List of certifications to be updated or added to the candidate's profile.",
"items": {
"type": "object",
"properties": {
"certificationNumber": {
"type": "string",
"description": "Unique identifier or number associated with the certification."
},
"name": {
"type": "string",
"description": "Name or title of the certification."
},
"institute": {
"type": "string",
"description": "Institute or organization that issued the certification."
},
"description": {
"type": "string",
"description": "Description or details of the certification."
},
"state": {
"type": "string",
"description": "State or location where the certification was issued."
},
"issuedDate": {
"type": "object",
"description": "Date when the certification was issued.",
"properties": {
"year": {
"type": "integer",
"description": "The year when the certification was issued."
},
"month": {
"type": "integer",
"description": "The month when the certification was issued."
}
}
},
"expiryDate": {
"type": "object",
"description": "Date when the certification is set to expire.",
"properties": {
"year": {
"type": "integer",
"description": "The year when the certification is set to expire.."
},
"month": {
"type": "integer",
"description": "The month when the certification is set to expire.."
}
}
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating or adding certifications to a candidate's profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCertificationRequest |
Response
Successfully added certifications to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added certifications to candidates | CandidateDetailsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/preferred-locations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/preferred-locations
Updates candidate preferred locations for a job
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"title": "UpdatePreferredLocationRequest",
"properties": {
"action": {
"type": "string",
"description": "Action to perform on the preferred locations. Valid values: 'add', 'remove', 'replace'."
},
"preferredLocationList": {
"type": "array",
"description": "List of preferred locations to be added, removed, or replaced.",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Name or identifier of the preferred location."
},
"latLong": {
"type": "string",
"description": "Latitude and longitude coordinates of the preferred location."
},
"city": {
"type": "string",
"description": "City of the preferred location."
},
"state": {
"type": "string",
"description": "State or region of the preferred location."
},
"country": {
"type": "string",
"description": "Country of the preferred location."
},
"zipCode": {
"type": "string",
"description": "ZIP code of the preferred location."
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating preferred locations on a candidate's profile."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdatePreferredLocationRequest |
Response
Successfully updated Preferred Locations for given candidate
copied![
{
"type": "object",
"description": "An object representing the response after updating preferred locations for a candidate.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated Preferred Locations for given candidate | PreferredLocationUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/preferred-locations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/v1/candidates/{candidateId}/preferred-locations
This API is used to get preferred locations on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the preferred locations of a candidate
copied![
{
"type": "object",
"description": "An object representing preferred locations associated with a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to preferred locations.",
"properties": {
"preferredLocationList": {
"type": "array",
"description": "An array representing a list of preferred locations.",
"items": {
"type": "object",
"description": "An object containing details about a preferred location.",
"properties": {
"location": {
"type": "string",
"description": "A string representing the preferred location."
},
"city": {
"type": "string",
"description": "A string representing the city of the preferred location."
},
"country": {
"type": "string",
"description": "A string representing the country of the preferred location."
},
"state": {
"type": "string",
"description": "A string representing the state of the preferred location."
},
"zipCode": {
"type": "string",
"description": "A string representing the ZIP code of the preferred location."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the request or response."
},
"status": {
"type": "string",
"description": "A string representing the status of the request or response, indicating success, failure, or another state."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the preferred locations of a candidate | PreferredLocation |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/address
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/address
This api updates address of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Indicates modifying or replacing of existing resource.Accepted values are replace and merge"
},
"addressLogs": {
"type": "array",
"description": "List of address logs to be updated for the candidate.",
"items": {
"type": "object",
"properties": {
"addressLines": {
"type": "array",
"description": "Address line of the address.",
"items": {
"type": "string"
}
},
"city": {
"type": "string",
"description": "City of the address."
},
"state": {
"type": "string",
"description": "State or region of the address."
},
"country": {
"type": "string",
"description": "Country of the address."
},
"location": {
"type": "string",
"description": "General location information (e.g., city center, suburban)."
},
"latLong": {
"type": "string",
"description": "Latitude and longitude coordinates of the address."
},
"zipCode": {
"type": "string",
"description": "Postal or ZIP code of the address."
}
}
}
}
},
"description": "Schema defining the structure of the request body for updating address information for a candidate."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateAddressRequest |
Response
Successfully updated address of candidate
copied![
{
"type": "object",
"description": "An object representing the response related to the update of candidate addresses.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated address of candidate | AddressUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/address
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/address
This api fetches address of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the address of a candidate
copied![
{
"type": "object",
"description": "An object representing address information associated with a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the candidate's address.",
"properties": {
"address": {
"type": "array",
"description": "An array representing a list of addresses associated with the candidate.",
"items": {
"type": "object",
"description": "An object containing details about a specific address.",
"properties": {
"city": {
"type": "string",
"description": "A string representing the city of the address."
},
"state": {
"type": "string",
"description": "A string representing the state of the address."
},
"country": {
"type": "string",
"description": "A string representing the country of the address."
},
"zipCode": {
"type": "string",
"description": "A string representing the ZIP code of the address."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the address of a candidate | Address |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/recommendations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'PATCH /candidates-api/v1/candidates/{candidateId}/recommendations
This api updates recommendations of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema defining the structure of the request body for updating recommendations for a candidate.",
"properties": {
"recommendations": {
"type": "array",
"description": "List of recommendation objects.",
"items": {
"type": "object",
"description": "Object representing an individual recommendation.",
"properties": {
"recommendationText": {
"type": "string",
"description": "Text of the recommendation."
},
"relation": {
"type": "string",
"description": "Relationship or association with the candidate."
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateRecommendationsRequest |
Response
Successfully updated recommendations of candidate
copied![
{
"type": "object",
"description": "An object representing the response after updating recommendations for a candidate.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated recommendations of candidate | RecommendationsUpdateResponse |
| 400 | wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/recommendations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/recommendations
This API gets recommendations of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the recommendations of a candidate
copied![
{
"type": "object",
"description": "Object representing recommendations.",
"properties": {
"data": {
"type": "object",
"description": "Object containing recommendations data.",
"properties": {
"recommendations": {
"type": "array",
"description": "Array of recommendation items.",
"items": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "First name of the person providing the recommendation."
},
"lastName": {
"type": "string",
"description": "Last name of the person providing the recommendation."
},
"text": {
"type": "string",
"description": "Text or content of the recommendation."
},
"type": {
"type": "string",
"description": "Type or category of the recommendation."
},
"relation": {
"type": "string",
"description": "Relationship of the person providing the recommendation to the candidate."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the recommendations of a candidate | Recommendations |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/v1/candidates/{candidateId}/additional-fields
This api updates specific additional fields of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Schema defining the structure of the request body for updating additional fields for a candidate.",
"properties": {
"additionalFields": {
"type": "object",
"description": "Object containing additional fields to be updated for the candidate.",
"properties": {}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateAdditionalFieldsRequest |
Response
Successfully updated tenant specific additional fields of a candidate
copied![
{
"type": "object",
"description": "An object representing the response after updating additional fields for a candidate.",
"properties": {
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated tenant specific additional fields of a candidate | AdditionalFieldsUpdateResponse |
| 400 | Wrong request format or parameters missing | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/v1/candidates/{candidateId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/v1/candidates/{candidateId}/additional-fields
This api fetches specific additional fields of candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the tenant specific additional fields of a candidate
copied![
{
"type": "object",
"description": "An object representing additional fields related to employee information.",
"properties": {
"data": {
"type": "object",
"description": "An object containing additional data fields.",
"properties": {
"additionalFields": {
"type": "object",
"description": "An object containing specific additional fields.",
"properties": {}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the request or response."
},
"status": {
"type": "string",
"description": "A string representing the status of the request or response, indicating success, failure, or another state."
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the tenant specific additional fields of a candidate | AdditionalFields |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
Candidate Attachments
These Candidate APIs allow you to add, update, and delete candidate attachments.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/files/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/files/v1/candidates/{candidateId}/attachments
This API is used to fetch Attachments on the candidate profiles based on candidateId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the attachments of the candidate
copied![
{
"type": "object",
"description": "Object representing attachments.",
"properties": {
"attachments": {
"type": "array",
"description": "Array of attachment items.",
"items": {
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"description": "Unique identifier for the attachment."
},
"resumeFileName": {
"type": "string",
"description": "Name of the attachment."
},
"attachmentType": {
"type": "string",
"description": "Type of the attachment."
},
"fieldID": {
"type": "string",
"description": "fieldId of the attachment."
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "integer",
"description": "Status code of the response."
}
}
}
]No attachments
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the attachments of the candidate | Attachment |
| 204 | No attachments | EmptyMessage |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/files/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/files/v1/candidates/{candidateId}/attachments
This API is used to update Attachments on the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"attachment": {
"type": "string",
"format": "binary",
"description": "File to be upload."
},
"isParsableResume": {
"type": "boolean",
"description": "Flag indicating whether the attachment is parsable."
}
},
"description": "Schema defining the structure of the request body for adding attachments."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| multipart/form-data | AddAttachmentsRequest |
Response
Successfully added attachments to candidates
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"literalId": {
"type": "string",
"description": "Unique identifier for providing details about the response."
},
"literalValues": {
"type": "object",
"description": "Unique values for providing details about the response."
},
"data": {
"type": "object",
"description": "Provides details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully added attachments to candidates | AttachmentUpdateResponse |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//candidates-api/files/v1/candidates/{candidateId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'DELETE /candidates-api/files/v1/candidates/{candidateId}/attachments
This API is used to delete Attachments from the candidate profiles.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"attachments": {
"type": "array",
"items": {
"allOf": {
"0": {
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"description": "The MD5 checksum of the attachment to be deleted."
},
"resumeFileName": {
"type": "string",
"description": "The name of the attachment to be deleted."
},
"fieldId": {
"type": "string",
"description": "The ID of the attachment field to be deleted."
}
}
},
"1": {
"anyOf": {
"0": {
"required": {
"0": "fieldId"
}
},
"1": {
"required": {
"0": "attachmentId"
}
},
"2": {
"required": {
"0": "resumeFileName"
}
}
}
}
},
"description": "Attachment object — at least one of fieldId, attachmentId, or resumeFileName is required."
},
"description": "Array of attachments to be deleted."
}
},
"description": "Schema defining the structure of the request body for deleting attachments."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | DeleteAttachmentRequest |
Response
Successfully deleted attachments from candidate
copied![
{
"type": "object",
"description": "Response object for updating candidate details.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the response status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"literalId": {
"type": "string",
"description": "Unique identifier for providing details about the response."
}
}
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully deleted attachments from candidate | AttachmentDeleteResponse |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}
This API gets the attachment based on attachmentId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| attachmentId | path | string | true |
Response
Successfully downloaded attachment
copied![
{}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]The web server could not find the requested page or resource
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]File size exceeded
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occured
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully downloaded attachment | |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 404 | The web server could not find the requested page or resource | ErrorMessage |
| 413 | File size exceeded | ErrorMessage |
| 500 | Exception occured | ErrorMessage |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}/pre-signed-url
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/files/v1/candidates/{candidateId}/attachments/{attachmentId}/pre-signed-url
This API is used to fetch Attachment on the candidate profiles based on candidateId and attachmentId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| attachmentId | path | string | true |
Response
Successfully fetched the attachments of the candidate.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the result of the operation."
},
"fileUrl": {
"type": "string",
"description": "URL pointing to the location of the file which is valid only for 5 minutes."
},
"message": {
"type": "string",
"description": "Description or message providing additional information about the result."
},
"fileName": {
"type": "string",
"description": "Name of the file associated with the operation."
},
"fileSize": {
"type": "integer",
"description": "The size of the file associated with the operation in KBs."
}
},
"required": {
"0": "status",
"1": "fileUrl",
"2": "message",
"3": "fileName",
"4": "fileSize"
},
"description": "Schema defining the structure of the response body for presigned url."
}
]Wrong request format or parameters missing
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occured
copied![
{
"type": "object",
"description": "Object representing an error message.",
"properties": {
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the attachments of the candidate. | PreSignedUrl |
| 400 | Wrong request format or parameters missing | ErrorMessage |
| 500 | Exception occured | ErrorMessage |
Candidate Activities
The Note APIs allows you to Add, Get, Update and Delete Notes.
Candidate Notes
These APIs allows you to Add, Update, Get and Delete Notes.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/notes
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/activities/v1/candidates/{candidateId}/notes
This API fetches the notes of a Candidate based on candidateId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
| requestType | query | string | false |
| recruiterEmail | query | string | false |
| includePrivateNotes | query | boolean | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"description": "The response status.",
"type": "string"
},
"message": {
"description": "The text to indicate the response.",
"type": "string"
},
"timestamp": {
"type": "string",
"description": "The text to indicate the timeStamp when the request is invoked."
},
"pagination": {
"description": "Data to represent the pagination parameters, such as from, size and the total notes available.",
"type": "object",
"properties": {
"total": {
"description": "The total Number of notes available.",
"type": "number"
},
"size": {
"description": "The number of notes fetched as part of this request.",
"type": "number"
},
"from": {
"description": "The number of notes skipped from start, before starting to fetch.",
"type": "number"
}
},
"required": {
"0": "total",
"1": "size",
"2": "from"
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"decision_status": {
"type": "string",
"description": "The decision status."
},
"jobId": {
"description": "The unique identifier for job.",
"type": "string"
},
"noteType": {
"description": "The type of note.",
"type": "string"
},
"recruiterEmail": {
"description": "The email of the recruiter.",
"type": "string"
},
"recruiterName": {
"description": "The name of the recruiter.",
"type": "string"
},
"fromName": {
"description": "From Name.",
"type": "string"
},
"updatedDate": {
"description": "The date on which the note has been updated.",
"type": "string"
},
"createdDate": {
"description": "The date on which note has been created.",
"type": "string"
},
"notes": {
"description": "The Notes.",
"type": "string"
}
},
"required": {
"0": "decision_status",
"1": "jobId",
"2": "noteType",
"3": "recruiterEmail",
"4": "recruiterName",
"5": "fromName",
"6": "updatedDate",
"7": "createdDate",
"8": "notes"
}
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
}
}
]204 response
copied![
{
"type": "object",
"description": "The response to indicate that no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a bad request or failure status."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the error occurred. This helps in tracking the timing of the error."
},
"errorAPI": {
"type": "string",
"description": "A string representing the specific API or endpoint where the error occurred."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the nature of the error and potential solutions."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
}
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "An error response indicating a bad request, with details about the encountered errors."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'not found' error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'not found' error. It may include details about the resource or item that could not be located."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'not found' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested resource or item was not found, with details about the encountered issues."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | FetchCandidateNotes |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/notes
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'POST /candidates-api/activities/v1/candidates/{candidateId}/notes
This API adds Note to a Candidate based on CandidateId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | false |
Body Parameter
copied![
{
"type": "object",
"properties": {
"noteType": {
"description": "The type of the note that is being created. This field specifies the category of the note.",
"type": "string"
},
"noteText": {
"description": "The text content of the note. This field holds the actual content or information of the note.",
"type": "string"
},
"asPrivate": {
"description": "A boolean flag indicating whether the note is private or not. If true, the note is intended to be visible only to individuals who created it.",
"type": "boolean"
},
"jobId": {
"description": "The unique identifier (ID) associated with the job related to the note. This field links the note to a specific job or task.",
"type": "string"
},
"taggedRecruiters": {
"description": "An object containing ids about recruiters tagged in the note.",
"type": "object"
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AddNotes |
Response
Note added success.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the operation (e.g., success, failure)."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the operation result."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the operation was performed."
},
"id": {
"type": "string",
"description": "Unique Identifier for the Note that has been created."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "id"
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a bad request or failure status."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the error occurred. This helps in tracking the timing of the error."
},
"errorAPI": {
"type": "string",
"description": "A string representing the specific API or endpoint where the error occurred."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the nature of the error and potential solutions."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
}
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "An error response indicating a bad request, with details about the encountered errors."
}
]Note not found.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'not found' error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'not found' error. It may include details about the resource or item that could not be located."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'not found' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested resource or item was not found, with details about the encountered issues."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Note added success. | CreateNoteSuccess |
| 400 | Wrong request format or parameters missing. | BadRequestError |
| 404 | Note not found. | NotFoundError |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/notes/{noteId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'DELETE /candidates-api/activities/v1/candidates/{candidateId}/notes/{noteId}
This API Deletes the Note for a Candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| noteId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the delete operation. It could be a success or failure status."
},
"message": {
"type": "string",
"description": "A readable message providing additional information about the delete operation."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating the moment when the delete operation was performed. This helps in tracking the timing of the operation."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
}
}
]403 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'forbidden' error, indicating that the requested action is not allowed."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'forbidden' error. It includes details about the action that is not permitted."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'forbidden' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested action is forbidden, with details about the encountered issues."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'not found' error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'not found' error. It may include details about the resource or item that could not be located."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'not found' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested resource or item was not found, with details about the encountered issues."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents an internal server error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the internal server error. It may include details about the nature of the error and potential solutions."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the internal server error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating an internal server error, with details about the encountered issues."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | DeleteNoteSuccess |
| 403 | 403 response | ForbiddenError |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
put
copied!# You can also use wgetcurl -X PUT https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/notes/{noteId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PUT /candidates-api/activities/v1/candidates/{candidateId}/notes/{noteId}
This API Updates the Note for a Candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"noteType": {
"type": "string",
"description": "The type of the candidate note. Specifies the category of the note associated with the candidate."
},
"noteText": {
"type": "string",
"description": "The text content of the candidate note."
},
"asPrivate": {
"type": "boolean",
"description": "A boolean flag indicating whether the candidate note is private. If true, the note is intended to be visible only to individuals who created it."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter updating the candidate note. This field identifies the recruiter associated with the modification."
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| noteId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCandidateNote |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the response. It could be a success or failure status."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the response. It may include details about the success or failure."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating the moment when the response was generated. This helps in tracking the timing of the response."
}
}
}
]403 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'forbidden' error, indicating that the requested action is not allowed."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'forbidden' error. It includes details about the action that is not permitted."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'forbidden' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested action is forbidden, with details about the encountered issues."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'not found' error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'not found' error. It may include details about the resource or item that could not be located."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'not found' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested resource or item was not found, with details about the encountered issues."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents an internal server error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the internal server error. It may include details about the nature of the error and potential solutions."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the internal server error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating an internal server error, with details about the encountered issues."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | SuccessResponse |
| 403 | 403 response | ForbiddenError |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/activities/v1/jobs/{jobId}/candidates/{candidateId}/notes
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/activities/v1/jobs/{jobId}/candidates/{candidateId}/notes
This API fetches the notes of a Candidate based on candidateId for given jobId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
| candidateId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating whether the fetch is success or not."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "The user id of the recruiter."
},
"companyName": {
"type": "string",
"description": "The Name of the Company."
},
"newNoteDisplayText": {
"description": "The text on the note.",
"type": "string"
},
"updatedDate": {
"description": "The date on which the note has been updated.",
"type": "string"
},
"userId": {
"description": "The Id of the candidate.",
"type": "string"
},
"jobId": {
"description": "The Id of the Job.",
"type": "string"
},
"noteType": {
"description": "The Type of the current Note.",
"type": "string"
},
"createdDate": {
"description": "The Date on which the note has been created.",
"type": "string"
},
"recruiterName": {
"description": "The Name of the recruiter who created the note.",
"type": "string"
},
"newNoteText": {
"description": "The Text on the note.",
"type": "string"
},
"_id": {
"description": "The unique identifier for the Note.",
"type": "string"
},
"parent": {
"description": "The unique identifier for candidate.",
"type": "string"
},
"taggedRecruiters": {
"description": "The id of the user who are tagged in the note.",
"type": "array",
"items": {
"type": "string"
}
},
"asPrivate": {
"description": "The Boolean value to represent the visibility of note.",
"type": "boolean"
}
}
}
}
}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]401 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"default": "failure",
"description": "Indicates the status of the error response. It typically represents an 'unauthorized' request."
},
"error": {
"type": "string",
"default": "UNAUTHORIZED",
"description": "A string representing the type of error. It is set to 'UNAUTHORIZED' to indicate that the request lacks proper authorization."
},
"message": {
"type": "string",
"default": "You are not authorized",
"description": "A human readable message providing additional information about the 'unauthorized' error. It informs the user that they do not have the necessary authorization for the requested action."
}
},
"description": "An error response indicating that the request lacks proper authorization, with details about the encountered issues."
}
]403 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"default": "failure",
"description": "Indicates the status of the error response. It typically represents a 'forbidden' request."
},
"error": {
"type": "string",
"default": "ACCESS_DENIED",
"description": "A string representing the type of error. It is set to 'ACCESS_DENIED' to indicate that the request is forbidden."
},
"message": {
"type": "string",
"default": "Forbidden, You're not allowed to access this resource / Required flags are not enabled / Required permissions are missing",
"description": "A human readable message providing additional information about the 'forbidden' error. It informs the user that they are not allowed to access the specified resource."
}
},
"description": "An error response indicating that the request is forbidden, with details about the encountered issues."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"default": "failure",
"description": "Indicates the status of the error response. It typically represents an internal server error."
},
"message": {
"type": "string",
"default": "Internal Server Error",
"description": "A human readable message providing additional information about the 'internal server error.' It indicates that there was an issue on the server side."
}
},
"description": "An error response indicating an internal server error, with details about the encountered issues."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetCandidateJobNotes |
| 400 | 400 response | BadRequest |
| 401 | 401 response | UnauthorizedRequest |
| 403 | 403 response | Forbidden |
| 500 | 500 response | InternalServerErrorResponse |
Candidate Activities
These APIs allows you to get all the candidate activities.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/note-activities
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/activities/v1/candidates/{candidateId}/note-activities
This API fetches Note-Activities for a Candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the response. It could be a success or failure status."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the response. It may include details about the success or failure."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating the moment when the response was generated. This helps in tracking the timing of the response."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "The number of activities per page in the pagination."
},
"from": {
"type": "number",
"description": "The starting index of the activities in the current page."
},
"totalCount": {
"type": "number",
"description": "The total count of activities across all pages."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Information about pagination, including size, start index, and total count."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "The user ID of the recruiter associated with the activity."
},
"actionType": {
"type": "string",
"description": "The type of action performed, such as 'create', 'update', or 'delete'."
},
"createdDate": {
"type": "string",
"description": "The timestamp when the activity was created."
},
"candidateId": {
"type": "string",
"description": "The ID of the candidate related to the activity."
},
"actionValue": {
"type": "string",
"description": "The value associated with the action."
},
"addedNewValue": {
"type": "string",
"description": "The new value added during the update action."
},
"scopeAttr": {
"type": "object",
"properties": {
"scopeId": {
"type": "string",
"description": "The ID representing the scope of the activity."
}
},
"required": {
"0": "scopeId"
},
"description": "Information about the scope of the activity."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter associated with the activity."
}
},
"required": {
"0": "recruitersUserId",
"1": "actionType",
"2": "createdDate",
"3": "candidateId",
"4": "actionValue",
"5": "addedNewValue",
"6": "scopeAttr",
"7": "recruiterName"
}
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
}
}
]204 response
copied![
{
"type": "object",
"description": "The response to indicate that no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a bad request or failure status."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the error occurred. This helps in tracking the timing of the error."
},
"errorAPI": {
"type": "string",
"description": "A string representing the specific API or endpoint where the error occurred."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the nature of the error and potential solutions."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
}
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "An error response indicating a bad request, with details about the encountered errors."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the error response. It typically represents a 'not found' error."
},
"message": {
"type": "string",
"description": "A human readable message providing additional information about the 'not found' error. It may include details about the resource or item that could not be located."
},
"timestamp": {
"type": "string",
"description": "A timestamp indicating when the 'not found' error occurred. This helps in tracking the timing of the error."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "An error response indicating that the requested resource or item was not found, with details about the encountered issues."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetNoteActivities |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/profile-update-activities
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'x-ph-userId: string'
-H 'Authorization: string'GET /candidates-api/activities/v1/candidates/{candidateId}/profile-update-activities
This apis Fetches all the profile update activities.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| x-ph-userId | header | string | true |
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched profile update activities for given candidate
copied![
{
"type": "object",
"description": "An object representing profile update activities associated with a candidate.",
"properties": {
"pagination": {
"type": "object",
"description": "An object containing pagination details for the profile update activities.",
"properties": {
"size": {
"type": "number",
"description": "The size of the page in the pagination."
},
"from": {
"type": "number",
"description": "The starting index of the page in the pagination."
},
"totalCount": {
"type": "number",
"description": "The total count of profile update activities."
}
}
},
"data": {
"type": "array",
"description": "An array representing profile update activity details.",
"items": {
"type": "object",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "The user ID of the recruiter associated with the profile update activity."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter associated with the profile update activity."
},
"candidateId": {
"type": "string",
"description": "The ID of the candidate associated with the profile update activity."
},
"actionType": {
"type": "string",
"description": "The type of action performed in the profile update activity."
},
"createdDate": {
"type": "number",
"description": "The date when the profile update activity was created."
},
"requestSource": {
"type": "string",
"description": "The source from which the profile update activity request originated."
},
"additionalFieldName": {
"type": "string",
"description": "The name of the additional field associated with the profile update activity."
},
"previousValue": {
"type": "string",
"description": "The previous value of the updated field."
},
"updatedValue": {
"type": "string",
"description": "The updated value of the field in the profile update activity."
},
"actionValue": {
"type": "string",
"description": "The value associated with the action performed in the profile update activity."
},
"subject": {
"type": "string",
"description": "The subject or topic associated with the profile update activity."
},
"content": {
"type": "string",
"description": "The content or details of the profile update activity."
},
"categoryName": {
"type": "string",
"description": "The name of the category associated with the profile update activity."
},
"emailResponse": {
"type": "string",
"description": "The email response associated with the profile update activity."
},
"fromEmail": {
"type": "string",
"description": "The email address from which the profile update activity originated."
},
"fromName": {
"type": "string",
"description": "The name associated with the sender of the profile update activity."
},
"toEmail": {
"type": "string",
"description": "The email address of the recipient in the profile update activity."
},
"toName": {
"type": "string",
"description": "The name of the recipient in the profile update activity."
},
"recipeName": {
"type": "string",
"description": "The name of the recipe associated with the profile update activity."
},
"addedNewValue": {
"type": "string",
"description": "The newly added value in the profile update activity."
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
},
"timestamp": {
"type": "string",
"description": "A string representing the timestamp associated with the profile update activities."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched profile update activities for given candidate | ProfileUpdateActivities |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/activities/v1/candidates/{candidateId}/profile-action-activities
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'x-ph-userId: string'
-H 'Authorization: string'GET /candidates-api/activities/v1/candidates/{candidateId}/profile-action-activities
This api allows you to fetch all the profile action activities.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| x-ph-userId | header | string | true |
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched profile action activities for given candidate
copied![
{
"type": "object",
"description": "An object representing profile action activities associated with a candidate.",
"properties": {
"pagination": {
"type": "object",
"description": "An object containing pagination details for the profile action activities.",
"properties": {
"size": {
"type": "number",
"description": "The size of the page in the pagination."
},
"from": {
"type": "number",
"description": "The starting index of the page in the pagination."
},
"totalCount": {
"type": "number",
"description": "The total count of profile action activities."
}
}
},
"data": {
"type": "array",
"description": "An array representing profile action activity details.",
"items": {
"type": "object",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "The user ID of the recruiter associated with the profile action activity."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter associated with the profile action activity."
},
"candidateId": {
"type": "string",
"description": "The ID of the candidate associated with the profile action activity."
},
"actionType": {
"type": "string",
"description": "The type of action performed in the profile action activity."
},
"createdDate": {
"type": "number",
"description": "The date when the profile action activity was created."
},
"requestSource": {
"type": "string",
"description": "The source from which the profile action activity request originated."
},
"additionalFieldName": {
"type": "string",
"description": "The name of the additional field associated with the profile action activity."
},
"previousValue": {
"type": "string",
"description": "The previous value of the updated field."
},
"updatedValue": {
"type": "string",
"description": "The updated value of the field in the profile action activity."
},
"actionValue": {
"type": "string",
"description": "The value associated with the action performed in the profile action activity."
},
"source": {
"type": "string",
"description": "The source or origin of the profile action activity."
},
"reason": {
"type": "string",
"description": "The reason or justification for the profile action activity."
},
"fromName": {
"type": "string",
"description": "The name associated with the sender of the profile action activity."
},
"toName": {
"type": "string",
"description": "The name of the recipient in the profile action activity."
},
"categoryName": {
"type": "string",
"description": "The name of the category associated with the profile action activity."
},
"email": {
"type": "string",
"description": "The email associated with the profile action activity."
},
"event": {
"type": "string",
"description": "The event or occurrence associated with the profile action activity."
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
},
"timestamp": {
"type": "string",
"description": "A string representing the timestamp associated with the profile action activities."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched profile action activities for given candidate | ProfileActionActivities |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
Candidate Onboarding
These Candidate APIs allow you to add, update and delete candidates.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/onboarding/v1/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/onboarding/v1/candidates/{candidateId}
The Onboarding data API is used to fetch onboarding data for the candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched the onboarding details for the given candidate.
copied![
{
"type": "object",
"description": "Schema defining the structure of the onboarding data for a candidate.",
"properties": {
"address": {
"Address": {
"type": "object",
"description": "An object representing address information associated with a candidate.",
"properties": {
"data": {
"type": "object",
"description": "An object containing data related to the candidate's address.",
"properties": {
"address": {
"type": "array",
"description": "An array representing a list of addresses associated with the candidate.",
"items": {
"type": "object",
"description": "An object containing details about a specific address.",
"properties": {
"city": {
"type": "string",
"description": "A string representing the city of the address."
},
"state": {
"type": "string",
"description": "A string representing the state of the address."
},
"country": {
"type": "string",
"description": "A string representing the country of the address."
},
"zipCode": {
"type": "string",
"description": "A string representing the ZIP code of the address."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "A string representing a message or communication associated with the response."
},
"status": {
"type": "string",
"description": "A string representing the status of the response, indicating success, failure, or another state."
}
}
}
},
"identificationDetails": {
"IdentificationDetails": {
"type": "object",
"description": "Structure describing identification details for a candidate.",
"properties": {
"identificationDetails": {
"type": "array",
"description": "Detailed identification data.",
"items": {
"IdentificationDetail": {
"type": "object",
"description": "Structure describing a single identification entry.",
"properties": {
"type": {
"type": "string",
"description": "Type of identification provided."
},
"idNumber": {
"type": "string",
"description": "Identification number associated with the specified type."
},
"tenantSpecificFields": {
"TenantSpecificFields": {
"type": "object",
"description": "Structure representing tenant specific fields."
}
}
}
}
}
}
}
}
},
"educationDetails": {
"EducationDetails": {
"type": "object",
"description": "Structure describing education details for a candidate.",
"properties": {
"education": {
"type": "array",
"description": "Detailed education data.",
"items": {
"Education": {
"type": "object",
"description": "Object representing education details.",
"properties": {
"data": {
"type": "object",
"description": "Object containing education data.",
"properties": {
"educations": {
"type": "array",
"description": "Array of education items.",
"items": {
"type": "object",
"properties": {
"degree": {
"type": "string",
"description": "The degree obtained by the candidate in their educational background."
},
"fieldOfStudy": {
"type": "string",
"description": "The field of study or major in the candidate's educational background."
},
"schoolName": {
"type": "string",
"description": "The name of the school associated with the candidate's educational background."
},
"schoolAndUniversity": {
"type": "string",
"description": "Combined name of the school and university associated with the candidate's educational background."
},
"state": {
"type": "string",
"description": "The state where the educational institution is located."
},
"country": {
"type": "string",
"description": "The country where the educational institution is located."
},
"startDate": {
"type": "number",
"description": "The start date of the educational program."
},
"endDate": {
"type": "number",
"description": "The end date of the educational program."
},
"isHighEducation": {
"type": "boolean",
"description": "Boolean indicating whether the education is considered high education or not."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
}
}
}
}
},
"offerDetails": {
"OfferDetails": {
"type": "object",
"description": "Structure describing offer details for a candidate.",
"properties": {
"tenantSpecificFields": {
"TenantSpecificFields": {
"type": "object",
"description": "Structure representing tenant specific fields."
}
}
}
}
},
"experienceDetails": {
"ExperienceDetails": {
"type": "object",
"description": "Structure describing employment experience details for a candidate.",
"properties": {
"currentCompany": {
"Experience": {
"type": "object",
"description": "Schema defining the structure of the experience data for a candidate.",
"properties": {
"data": {
"type": "object",
"description": "Object containing experience-related data.",
"properties": {
"experiences": {
"type": "array",
"description": "List of experience objects.",
"items": {
"type": "object",
"description": "Object representing an individual experience.",
"properties": {
"company": {
"type": "string",
"description": "A string representing the name of the company."
},
"jobTitle": {
"type": "string",
"description": "A string representing the job title."
},
"industry": {
"type": "string",
"description": "A string representing the industry associated with the experience."
},
"role": {
"type": "string",
"description": "A string representing the role in the experience."
},
"jobLocation": {
"type": "string",
"description": "A string representing the location of the job."
},
"startDate": {
"type": "number",
"description": "A number representing the start date of the experience."
},
"endDate": {
"type": "number",
"description": "A number representing the end date of the experience."
},
"isCurrent": {
"type": "boolean",
"description": "A boolean indicating whether the experience is current."
},
"companyUrl": {
"type": "string",
"description": "A string representing the URL of the company."
},
"jobSummary": {
"type": "string",
"description": "A string representing a summary of the job experience."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message or additional information related to the experience data."
},
"status": {
"type": "string",
"description": "Status of the experience data, indicating success or failure."
}
}
}
},
"experience": {
"type": "array",
"description": "List of previous experiences.",
"items": {
"Experience": {
"type": "object",
"description": "Schema defining the structure of the experience data for a candidate.",
"properties": {
"data": {
"type": "object",
"description": "Object containing experience-related data.",
"properties": {
"experiences": {
"type": "array",
"description": "List of experience objects.",
"items": {
"type": "object",
"description": "Object representing an individual experience.",
"properties": {
"company": {
"type": "string",
"description": "A string representing the name of the company."
},
"jobTitle": {
"type": "string",
"description": "A string representing the job title."
},
"industry": {
"type": "string",
"description": "A string representing the industry associated with the experience."
},
"role": {
"type": "string",
"description": "A string representing the role in the experience."
},
"jobLocation": {
"type": "string",
"description": "A string representing the location of the job."
},
"startDate": {
"type": "number",
"description": "A number representing the start date of the experience."
},
"endDate": {
"type": "number",
"description": "A number representing the end date of the experience."
},
"isCurrent": {
"type": "boolean",
"description": "A boolean indicating whether the experience is current."
},
"companyUrl": {
"type": "string",
"description": "A string representing the URL of the company."
},
"jobSummary": {
"type": "string",
"description": "A string representing a summary of the job experience."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message or additional information related to the experience data."
},
"status": {
"type": "string",
"description": "Status of the experience data, indicating success or failure."
}
}
}
}
},
"skills": {
"type": "array",
"description": "List of skills.",
"items": {
"type": "string"
}
},
"certifications": {
"type": "array",
"description": "List of certifications.",
"items": {
"Certification": {
"type": "object",
"description": "Object representing certifications.",
"properties": {
"data": {
"type": "object",
"description": "Object containing certifications data.",
"properties": {
"certifications": {
"type": "array",
"description": "Array of certification items.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the certification."
},
"certificationNumber": {
"type": "string",
"description": "The unique certification number."
},
"institute": {
"type": "string",
"description": "The institution or organization that issued the certification."
},
"startDate": {
"type": "number",
"description": "The numeric representation of the certification start date."
},
"issuedDate": {
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "The year when the certification was issued."
},
"month": {
"type": "number",
"description": "The month when the certification was issued."
},
"day": {
"type": "number",
"description": "The day when the certification was issued."
}
},
"description": "The date when the certification was officially issued."
},
"expiryDate": {
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "The year when the certification expires."
},
"month": {
"type": "number",
"description": "The month when the certification expires."
},
"day": {
"type": "number",
"description": "The day when the certification expires."
}
},
"description": "The date when the certification expires."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
}
}
}
}
},
"jobDetails": {
"JobDetails": {
"type": "object",
"description": "Structure describing job assignment details for the candidate.",
"properties": {
"jobLocation": {
"type": "string",
"description": "Location of the job assignment."
},
"recruiterEmail": {
"type": "string",
"description": "Email address of the recruiter."
},
"hiringManagerEmail": {
"type": "string",
"description": "Email address of the hiring manager."
},
"jobTitle": {
"type": "string",
"description": "Title of the job."
},
"jobId": {
"type": "string",
"description": "Identifier of the job."
},
"jobCategory": {
"type": "string",
"description": "Category of the job."
},
"atsId": {
"type": "string",
"description": "Applicant tracking system identifier."
}
}
}
},
"userDetails": {
"UserDetails": {
"type": "object",
"description": "Structure describing user specific details for the candidate.",
"properties": {
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"lastName": {
"type": "string",
"description": "Last name of the candidate."
},
"secondaryEmail": {
"type": "string",
"description": "Secondary email address of the candidate."
},
"secondaryContactNumber": {
"type": "string",
"description": "Secondary contact number of the candidate."
},
"middleName": {
"type": "string",
"description": "Middle name of the candidate."
},
"dateOfBirth": {
"type": "string",
"description": "Date of birth of the candidate."
},
"emailId": {
"type": "string",
"description": "Primary email address of the candidate."
},
"primaryContactNumber": {
"PrimaryContactNumber": {
"type": "object",
"description": "Structure describing the primary contact number details.",
"properties": {
"countryPhoneCode": {
"type": "string",
"description": "Country phone code associated with the number."
},
"phoneNumber": {
"type": "string",
"description": "Primary phone number of the candidate."
}
}
}
},
"gender": {
"type": "string",
"description": "Gender of the candidate."
},
"joiningDate": {
"type": "string",
"description": "Joining date represented as a string."
},
"tenantSpecificFields": {
"TenantSpecificFields": {
"type": "object",
"description": "Structure representing tenant specific fields."
}
}
}
}
}
}
}
]No content found for the given request.
copied![
{
"type": "object",
"description": "No content in the response"
}
]Invalid candidate ID.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "string",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the onboarding details for the given candidate. | OnboardingData |
| 204 | No content found for the given request. | ContentNotFound |
| 404 | Invalid candidate ID. | Error |
| 500 | Exception occurred. | Error |
Candidate Search
These APIs helps to find relevant candidates matching specific keywords or filters.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//candidates-api/v1/candidates/search/
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'POST /candidates-api/v1/candidates/search/
This API assist in discovering candidates that align with applied filters
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"from": {
"type": "integer",
"description": "Starting point from which the data should be retrieved."
},
"size": {
"type": "integer",
"description": "Size of the response."
},
"searchkeyword": {
"type": "string",
"description": "Searching entered keyword in candidate profile."
},
"filters": {
"type": "array",
"description": "Apply one or multiple filters(String, Boolean, Date, or Enum) of below types to refine results.",
"items": {
"oneOf": {
"0": {
"StringFilter": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"description": "String representing the values of field."
}
},
"operator": {
"type": "string",
"enum": {
"0": "Is",
"1": "Is not",
"2": "Contains",
"3": "Does not contain",
"4": "Starts with",
"5": "Ends with"
},
"description": "Operator for filtering strings."
},
"field": {
"type": "string",
"enum": {
"0": "firstName",
"1": "currentCompany.jobTitle",
"2": "skillList.value",
"3": "trafficSourceList.sourceShortName",
"4": "experience.jobLocation",
"5": "experience.jobTitle",
"6": "education.degree",
"7": "highestEducation.degree",
"8": "education.fieldOfStudy",
"9": "preferredLocationList.location",
"10": "newLocation.city",
"11": "newLocation.country",
"12": "emailList.email",
"13": "languageKnown",
"14": "lastName",
"15": "newLocation.state",
"16": "newLocation.zipCode"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "values",
"1": "operator"
}
}
},
"1": {
"BooleanFilter": {
"type": "object",
"properties": {
"value": {
"type": "boolean",
"description": "The boolean value to filter by."
},
"operator": {
"type": "string",
"enum": {
"0": "True",
"1": "False"
},
"description": "Operator for filtering booleans."
},
"field": {
"type": "string",
"enum": {
"0": "internal"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "value",
"1": "operator"
}
}
},
"2": {
"DateFilter": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"format": "date",
"description": "String representing the values of date filter."
}
},
"operator": {
"type": "string",
"enum": {
"0": "Equal to",
"1": "Not equal to",
"2": "Before",
"3": "After",
"4": "Between"
},
"description": "Operator for filtering dates."
},
"field": {
"type": "string",
"enum": {
"0": "updatedDate",
"1": "dateCreated"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "values",
"1": "operator"
}
}
},
"3": {
"EnumFilter": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"description": "String representing the values of field."
}
},
"operator": {
"type": "string",
"enum": {
"0": "In",
"1": "Not in"
},
"description": "Operator for filtering enums."
},
"field": {
"type": "string",
"enum": {
"0": "applySources",
"1": "language"
},
"description": "Name of the data attribute to be filtered with values."
}
},
"required": {
"0": "values",
"1": "operator"
}
}
}
}
}
},
"filtersOperator": {
"type": "string",
"enum": {
"0": "AND",
"1": "OR"
},
"description": "Search operator accepts \"AND\" / \"OR\"."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateSearchRequest |
Response
Returns filtered Candidates.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"data": {
"type": "array",
"description": "Candidate Search Response data.",
"items": {
"CandidateResponse": {
"type": "object",
"description": "An object representing candidate-related information.",
"properties": {
"currentjobTitle": {
"type": "string",
"description": "A string representing job title of the current company for a given individual."
},
"middleName": {
"type": "string",
"description": "The middle name of the candidate."
},
"candidateId": {
"type": "string",
"description": "Unique identifier for the user or candidate."
},
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"dateCreated": {
"type": "number",
"description": "A timestamp indicating the date and time when the candidate profile was created."
},
"updatedDate": {
"type": "number",
"description": "The date when the information was last updated."
},
"emailList": {
"type": "array",
"description": "An array representing an email list.",
"items": {
"Email": {
"type": "object",
"description": "An object representing email-related information.",
"properties": {
"email": {
"type": "string",
"description": "String representing the email address in the list."
},
"type": {
"type": "string",
"description": "String representing the type of email entry."
},
"status": {
"type": "string",
"description": "String representing the status of the email entry."
}
}
}
}
},
"contacts": {
"type": "array",
"description": "An array representing contact information for the individual.",
"items": {
"Contact": {
"type": "object",
"description": "An object representing contact-related information.",
"properties": {
"phoneNumber": {
"type": "string",
"description": "String representing the phone number in the contact entry."
},
"countryCode": {
"type": "string",
"description": "String representing the country code of the phone number."
},
"status": {
"type": "string",
"description": "String representing the status of the contact entry."
},
"type": {
"type": "string",
"description": "String representing the type of contact entry."
}
}
}
}
},
"lastName": {
"type": "string",
"description": "A string representing the last name of the individual."
},
"location": {
"type": "string",
"description": "A string representing the location detail of the individual."
},
"internal": {
"type": "boolean",
"description": "A boolean indicating whether the individual is internal to the organization."
}
}
}
}
},
"totalCount": {
"type": "integer",
"description": "Total number of candidates matching the search criteria."
},
"startIndex": {
"type": "integer",
"description": "Starting index of the returned candidates."
},
"paginationSize": {
"type": "integer",
"description": "The maximum number of candidates to be returned per page"
}
}
}
]Bad Request.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Error Message."
}
}
}
]Server Error.
copied![
{
"type": "object",
"description": "Object representing an error response.",
"properties": {
"status": {
"type": "integer",
"description": "HTTP status code indicating the error status."
},
"message": {
"type": "string",
"description": "Description or message providing details about the error."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered Candidates. | CandidateSearchResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
Employee
The employee profile APIs are used to create, access, update and delete employee profile and preferences.
Employee Profile
The employee profile APIs are used to create, access, update and delete employee profile in an organisation.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/v1/employees
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/v1/employees
This API takes the employee information like name, email, skills, location, designation e.t.c., and creates a profile.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to create an employee profile.",
"properties": {
"profile": {
"type": "object",
"description": "Employee profile object.",
"EmployeeProfile": {
"type": "object",
"description": "Employee profile details schema.",
"properties": {
"employeeId": {
"type": "string",
"description": "Employee Id - unique field to identify the employee.",
"default": "1002345"
},
"firstName": {
"type": "string",
"description": "First name of the employee.",
"default": "John"
},
"lastName": {
"type": "string",
"description": "Last name of the employee.",
"default": "Doe"
},
"email": {
"type": "string",
"description": "Company email of the employee.",
"default": "test.email@example.com"
},
"designation": {
"type": "string",
"description": "Designation of the employee in the company.",
"default": "Software Developer"
},
"location": {
"type": "string",
"description": "Location of the employee.",
"default": "Princeton,New Jersey,USA"
},
"pictureUrl": {
"type": "string",
"description": "Picture of the employee.",
"default": "https://assets.client.com/CareerConnectResources/pp/CLIENTID/wallpaper_preview.jpg"
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateEmployeeProfile |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for employee API operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeesAPISuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/v1/employees/{employeeId}
This API takes the Employee ID as input and gives the employee profile.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema with employee profile data.",
"properties": {
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"data": {
"type": "object",
"description": "Employee profile data object.",
"EmployeeProfile": {
"type": "object",
"description": "Employee profile details schema.",
"properties": {
"employeeId": {
"type": "string",
"description": "Employee Id - unique field to identify the employee.",
"default": "1002345"
},
"firstName": {
"type": "string",
"description": "First name of the employee.",
"default": "John"
},
"lastName": {
"type": "string",
"description": "Last name of the employee.",
"default": "Doe"
},
"email": {
"type": "string",
"description": "Company email of the employee.",
"default": "test.email@example.com"
},
"designation": {
"type": "string",
"description": "Designation of the employee in the company.",
"default": "Software Developer"
},
"location": {
"type": "string",
"description": "Location of the employee.",
"default": "Princeton,New Jersey,USA"
},
"pictureUrl": {
"type": "string",
"description": "Picture of the employee.",
"default": "https://assets.client.com/CareerConnectResources/pp/CLIENTID/wallpaper_preview.jpg"
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeeProfileSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//employees-api/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /employees-api/v1/employees/{employeeId}
This API takes the Employee ID as input and deletes the profile.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for employee API operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeesAPISuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//employees-api/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /employees-api/v1/employees/{employeeId}
This API takes the updated employee details like designation, skills e.t.c., as input and updates the profile.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to update an employee profile.",
"properties": {
"data": {
"type": "object",
"description": "Updated employee profile data.",
"EmployeeProfile": {
"type": "object",
"description": "Employee profile details schema.",
"properties": {
"employeeId": {
"type": "string",
"description": "Employee Id - unique field to identify the employee.",
"default": "1002345"
},
"firstName": {
"type": "string",
"description": "First name of the employee.",
"default": "John"
},
"lastName": {
"type": "string",
"description": "Last name of the employee.",
"default": "Doe"
},
"email": {
"type": "string",
"description": "Company email of the employee.",
"default": "test.email@example.com"
},
"designation": {
"type": "string",
"description": "Designation of the employee in the company.",
"default": "Software Developer"
},
"location": {
"type": "string",
"description": "Location of the employee.",
"default": "Princeton,New Jersey,USA"
},
"pictureUrl": {
"type": "string",
"description": "Picture of the employee.",
"default": "https://assets.client.com/CareerConnectResources/pp/CLIENTID/wallpaper_preview.jpg"
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateEmployeeProfile |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for employee API operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeesAPISuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
Employee Preferences
The employee preferences APIs are used to create, access, update and delete preferences in a employee profile in an organisation.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/v1/employees/{employeeId}/preferences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/v1/employees/{employeeId}/preferences
This API takes the employee preferences like interests, locations and creates employee preferences.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to create employee preferences.",
"properties": {
"data": {
"type": "object",
"description": "Employee preference data object.",
"EmployeePreference": {
"type": "object",
"description": "Employee preference details schema.",
"properties": {
"interests": {
"type": "array",
"description": "The areas in which the employee is interested.",
"items": {
"type": "string",
"description": "Interest area preferred by employee."
}
},
"locations": {
"type": "array",
"description": "The locations in which the employee is interested.",
"items": {
"type": "string",
"description": "Location preferred by employee."
}
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | CreateEmployeePreference |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for employee API operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeesAPISuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/v1/employees/{employeeId}/preferences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/v1/employees/{employeeId}/preferences
This API takes the Employee Id as input and provides the employee preferences.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema with employee preference data.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"data": {
"type": "object",
"description": "Employee preference data object.",
"EmployeePreference": {
"type": "object",
"description": "Employee preference details schema.",
"properties": {
"interests": {
"type": "array",
"description": "The areas in which the employee is interested.",
"items": {
"type": "string",
"description": "Interest area preferred by employee."
}
},
"locations": {
"type": "array",
"description": "The locations in which the employee is interested.",
"items": {
"type": "string",
"description": "Location preferred by employee."
}
}
}
}
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeePreferenceSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//employees-api/v1/employees/{employeeId}/preferences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /employees-api/v1/employees/{employeeId}/preferences
This API takes the updated employee details like interests, locations as input and updates the employee profile preferences.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to update employee preferences.",
"properties": {
"data": {
"type": "object",
"description": "Updated employee preference data.",
"EmployeePreference": {
"type": "object",
"description": "Employee preference details schema.",
"properties": {
"interests": {
"type": "array",
"description": "The areas in which the employee is interested.",
"items": {
"type": "string",
"description": "Interest area preferred by employee."
}
},
"locations": {
"type": "array",
"description": "The locations in which the employee is interested.",
"items": {
"type": "string",
"description": "Location preferred by employee."
}
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateEmployeePreference |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for employee API operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeesAPISuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//employees-api/v1/employees/{employeeId}/preferences
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /employees-api/v1/employees/{employeeId}/preferences
This API takes the Employee Id as input and resets the employee preferences.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for employee API operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | EmployeesAPISuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
Employee Career Path
The Employee career path APIs are related to the career pathing that an employee can use them for upskilling in an organisation.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/careerpath/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/careerpath/v1/employees/{employeeId}
This API takes the employee career role in an organisation and creates a career path based on the target role skills.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Information needed to update an existing career path for an employee.",
"properties": {
"path": {
"type": "array",
"description": "List of job profiles in the career path.",
"items": {
"type": "object",
"description": "Job profile item.",
"PathItemRequest": {
"type": "object",
"description": "Represents a job role included in a career path request.",
"properties": {
"jobTitle": {
"description": "Job Title of the preferred job position.",
"type": "string",
"default": "IT Solutions Lead"
},
"jobProfileId": {
"description": "JobProfileId- unique field to identify the job position.",
"type": "string",
"default": "POS50003728"
}
}
}
}
},
"currentJobProfile": {
"type": "object",
"description": "Current job profile of the employee.",
"CurrentJobProfileRequest": {
"type": "object",
"description": "Details of the employee’s current role when creating or updating a career path.",
"properties": {
"jobTitle": {
"description": "Job Title of the current job position.",
"type": "string",
"default": "Software Developer"
},
"jobProfileId": {
"description": "JobProfileId- unique field to identify the job position.",
"type": "string",
"default": "POS30003965"
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | CreateCareerPath |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for career path operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CareerPathSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/careerpath/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/careerpath/v1/employees/{employeeId}
This API takes the candidate ID as input and gives the career path of the employee in an organisation, if previously created by an employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema with career path data.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"data": {
"type": "object",
"description": "Career path data object.",
"CareerPathData": {
"type": "object",
"description": "Details of an employee’s career path, including roles, IDs, and timestamps.",
"properties": {
"pathId": {
"type": "string",
"description": "Path Id - unique field to identify the careerPath of the employee.",
"default": "100038"
},
"userId": {
"type": "string",
"description": "User Id - unique field to identify the employee.",
"default": "1002345"
},
"jobProfiles": {
"type": "array",
"description": "List of job profiles in the career path.",
"items": {
"type": "object",
"description": "Job profile item.",
"PathItem": {
"type": "object",
"description": "Job profile item in a career path.",
"properties": {
"jobProfileId": {
"description": "JobProfileId- unique field to identify the job position.",
"type": "string",
"default": "POS50003728"
},
"jobTitle": {
"description": "Job Title of the preferred job position.",
"type": "string",
"default": "IT Solutions Lead"
},
"roleStartTime": {
"description": "Role start time in milliseconds.",
"type": "integer"
},
"selectedIndex": {
"description": "Selected index of the job profile.",
"type": "integer"
}
}
}
}
},
"currentJobProfile": {
"type": "object",
"description": "Current job profile of the employee.",
"CurrentJobProfile": {
"type": "object",
"description": "Current job profile details of the employee.",
"properties": {
"jobProfileId": {
"description": "JobProfileId- unique field to identify the job position.",
"type": "string",
"default": "POS30003965"
},
"jobTitle": {
"description": "Job Title of the current job position.",
"type": "string",
"default": "Software Developer"
},
"selectedIndex": {
"description": "Selected index of the current job profile.",
"type": "integer"
},
"level": {
"description": "Level of the current job position.",
"type": "string",
"default": {
"type": "object",
"description": "Schema reference not found"
}
},
"roleStartTime": {
"description": "Role start time in milliseconds.",
"type": "integer"
},
"roleDisplayName": {
"description": "Display name of the role.",
"type": "string",
"default": {
"type": "object",
"description": "Schema reference not found"
}
},
"jobCode": {
"description": "Job code of the current position.",
"type": "string",
"default": {
"type": "object",
"description": "Schema reference not found"
}
}
}
}
},
"createdAt": {
"type": "integer",
"description": "Career path creation timestamp in milliseconds."
},
"lastModifiedAt": {
"type": "integer",
"description": "Career path last modified timestamp in milliseconds."
},
"primary": {
"type": "boolean",
"description": "Flag indicating if this is the primary career path."
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CareerPathSuccessResponseWithData |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//employees-api/careerpath/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /employees-api/careerpath/v1/employees/{employeeId}
This API takes the updated career path details from the employee like role/position and updates the Career path details for given employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to update a career path for an employee.",
"properties": {
"path": {
"type": "array",
"description": "Updated list of job profiles in the career path.",
"items": {
"type": "object",
"description": "Job profile item.",
"PathItemRequest": {
"type": "object",
"description": "Represents a job role included in a career path request.",
"properties": {
"jobTitle": {
"description": "Job Title of the preferred job position.",
"type": "string",
"default": "IT Solutions Lead"
},
"jobProfileId": {
"description": "JobProfileId- unique field to identify the job position.",
"type": "string",
"default": "POS50003728"
}
}
}
}
},
"currentJobProfile": {
"type": "object",
"description": "Updated current job profile of the employee.",
"CurrentJobProfileRequest": {
"type": "object",
"description": "Details of the employee’s current role when creating or updating a career path.",
"properties": {
"jobTitle": {
"description": "Job Title of the current job position.",
"type": "string",
"default": "Software Developer"
},
"jobProfileId": {
"description": "JobProfileId- unique field to identify the job position.",
"type": "string",
"default": "POS30003965"
}
}
}
},
"pathId": {
"type": "string",
"description": "Path Id - unique field to identify the careerPath of the employee.",
"default": "100038"
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCareerPath |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for career path operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CareerPathSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
Employee Courses
The Employee Course APIs are related to that an employee can use them for create, access, update and delete courses in an organisation.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/courses/v1/courses
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/courses/v1/courses
This API takes the course details like description, image, duration, skills e.t.c and creates a course.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to create a course.",
"properties": {
"course": {
"type": "object",
"description": "Course object containing course details.",
"Course": {
"type": "object",
"description": "Course details schema.",
"properties": {
"id": {
"description": "Id - unique field to identify the Course.",
"type": "string"
},
"title": {
"description": "Title of the Course.",
"type": "string"
},
"imageUrl": {
"description": "Image URL of the Course.",
"type": "string"
},
"url": {
"description": "URL of the Course to access.",
"type": "string"
},
"category": {
"description": "Category the Course belongs to.",
"type": "string"
},
"provider": {
"description": "Provider of the Course. Ex: Coursera.",
"type": "string"
},
"assetType": {
"description": "AssetType of the Course.",
"type": "string"
},
"skillsAcquired": {
"type": "array",
"description": "List of skills which will be acquired from the course.",
"items": {
"type": "string",
"description": "Skill name."
}
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateCourse |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for course operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/courses/v1/courses/{courseId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/courses/v1/courses/{courseId}
This API takes the course ID as input and gives all the course information to the employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| courseId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema with course data.",
"properties": {
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"data": {
"type": "object",
"description": "Course data object.",
"Course": {
"type": "object",
"description": "Course details schema.",
"properties": {
"id": {
"description": "Id - unique field to identify the Course.",
"type": "string"
},
"title": {
"description": "Title of the Course.",
"type": "string"
},
"imageUrl": {
"description": "Image URL of the Course.",
"type": "string"
},
"url": {
"description": "URL of the Course to access.",
"type": "string"
},
"category": {
"description": "Category the Course belongs to.",
"type": "string"
},
"provider": {
"description": "Provider of the Course. Ex: Coursera.",
"type": "string"
},
"assetType": {
"description": "AssetType of the Course.",
"type": "string"
},
"skillsAcquired": {
"type": "array",
"description": "List of skills which will be acquired from the course.",
"items": {
"type": "string",
"description": "Skill name."
}
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesSuccessResponseWithData |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//employees-api/courses/v1/courses/{courseId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /employees-api/courses/v1/courses/{courseId}
This API takes the course ID as input and deletes the course data from data base if exists.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| courseId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for course operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//employees-api/courses/v1/courses/{courseId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'PATCH /employees-api/courses/v1/courses/{courseId}
This API takes the updated course details and based on course ID the course details will be updated.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to update a course.",
"properties": {
"data": {
"type": "object",
"description": "Updated course data.",
"Course": {
"type": "object",
"description": "Course details schema.",
"properties": {
"id": {
"description": "Id - unique field to identify the Course.",
"type": "string"
},
"title": {
"description": "Title of the Course.",
"type": "string"
},
"imageUrl": {
"description": "Image URL of the Course.",
"type": "string"
},
"url": {
"description": "URL of the Course to access.",
"type": "string"
},
"category": {
"description": "Category the Course belongs to.",
"type": "string"
},
"provider": {
"description": "Provider of the Course. Ex: Coursera.",
"type": "string"
},
"assetType": {
"description": "AssetType of the Course.",
"type": "string"
},
"skillsAcquired": {
"type": "array",
"description": "List of skills which will be acquired from the course.",
"items": {
"type": "string",
"description": "Skill name."
}
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| courseId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCourse |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for update course operations with data payload.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "success"
},
"data": {
"type": "object",
"description": "Updated course data summary.",
"UpdateCourseDetailsData": {
"type": "object",
"description": "Data object returned on successful course update.",
"properties": {
"courseUID": {
"type": "string",
"description": "Unique identifier of the updated course.",
"default": "string"
},
"updated": {
"type": "boolean",
"description": "Flag indicating if the course details were successfully updated."
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesUpdateSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/courses/v1/employees/{employeeId}/courses/{courseId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/courses/v1/employees/{employeeId}/courses/{courseId}
This API takes the courseId, employeeId and saves the course in the saved courses collection for that employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to save a course for an employee.",
"properties": {
"collectionIds": {
"type": "array",
"description": "List of collection IDs to save the course to.",
"items": {
"type": "string",
"description": "Collection ID."
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| courseId | path | string | true |
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | SaveCourse |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for course operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//employees-api/courses/v1/employees/{employeeId}/courses/{courseId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'DELETE /employees-api/courses/v1/employees/{employeeId}/courses/{courseId}
This API takes the courseId and unsaved the course in the saved courses collection.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| courseId | path | string | true |
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for course operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/courses/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/courses/v1/employees/{employeeId}
This API takes the employee ID as input and gives all the saved course information to the employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Response schema containing all saved courses for an employee.",
"properties": {
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "success"
},
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"data": {
"type": "object",
"description": "Saved courses data grouped by collection.",
"properties": {
"default": {
"type": "object",
"description": "The default saved courses collection.",
"properties": {
"displayName": {
"type": "string",
"description": "Display Name of the Saved courses collection.",
"default": "My Saved Courses"
},
"courseUids": {
"type": "array",
"description": "List of course UIDs in the collection.",
"items": {
"type": "string",
"description": "Course ID.",
"default": "1000269"
}
},
"courses": {
"type": "array",
"description": "Detailed list of course objects.",
"items": {
"Course": {
"type": "object",
"description": "Course details schema.",
"properties": {
"id": {
"description": "Id - unique field to identify the Course.",
"type": "string"
},
"title": {
"description": "Title of the Course.",
"type": "string"
},
"imageUrl": {
"description": "Image URL of the Course.",
"type": "string"
},
"url": {
"description": "URL of the Course to access.",
"type": "string"
},
"category": {
"description": "Category the Course belongs to.",
"type": "string"
},
"provider": {
"description": "Provider of the Course. Ex: Coursera.",
"type": "string"
},
"assetType": {
"description": "AssetType of the Course.",
"type": "string"
},
"skillsAcquired": {
"type": "array",
"description": "List of skills which will be acquired from the course.",
"items": {
"type": "string",
"description": "Skill name."
}
}
}
}
}
}
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | GetAllSavedCourses |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/courses/v1/employees/{employeeId}/courses/{courseId}/status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/courses/v1/employees/{employeeId}/courses/{courseId}/status
This API takes the employeeId and courseId and updates the course status for an employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to update course status for an employee.",
"properties": {
"courseStatus": {
"description": "Current progress status of a Course for a particular user.",
"type": "string"
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| courseId | path | string | true |
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateCourseStatus |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for course operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | CoursesSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/courses/v1/employees/{employeeId}/status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/courses/v1/employees/{employeeId}/status
This API takes the employee ID as input and gives all the completed courses of the employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Response schema containing completed courses data as an array of course UIDs.",
"properties": {
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "success"
},
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"data": {
"type": "array",
"description": "List of completed courses, represented by their UIDs.",
"items": {
"type": "object",
"CourseUIDData": {
"type": "object",
"description": "Object containing only the course UID.",
"properties": {
"courseUID": {
"type": "string",
"description": "Unique identifier for a course.",
"default": "string"
}
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | GetCompletedCoursesData |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
Employee Referrals
The employee referral APIs are used to refer, track and recommend jobs to external candidates.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/referral/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/referral/v1/employees/{employeeId}
This API takes the candidate data and job information as input and create a employee referral to the candidate only if the candidate haven't applied or referred before to the particular job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to create an employee referral.",
"properties": {
"data": {
"type": "object",
"description": "Referral data object.",
"ReferralData": {
"type": "object",
"description": "Referral data containing candidate and job information.",
"properties": {
"jobId": {
"description": "Job Id - unique field to identify the job.",
"type": "string",
"default": "12121"
},
"category": {
"description": "Category of the job that employee is making a referral.",
"type": "string",
"default": "Engineering"
},
"firstName": {
"description": "FirstName of the candidate which employee is referring.",
"type": "string",
"default": "John"
},
"lastName": {
"description": "LastName of the candidate which employee is referring.",
"type": "string",
"default": "Deal"
},
"email": {
"description": "Email of the candidate which employee is referring.",
"type": "string",
"default": "test@mailinator.com"
},
"phone": {
"description": "Phone Number of the candidate which employee is referring.",
"type": "string",
"default": "919181912122"
},
"message": {
"description": "Personal Message to the candidate which employee is referring.",
"type": "string",
"default": "APPLY NOW"
},
"questionnaire": {
"type": "object",
"description": "Questionnaire response of the candidate which is used while making a referral.",
"properties": {}
}
}
}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | CreateEmployeeReferral |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for referral operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | ReferralSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/referral/v1/employees/{employeeId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/referral/v1/employees/{employeeId}
This API takes the employee ID as input and returns all the referrals made by the employee.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema containing employee referrals.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"totalReferralsCount": {
"type": "integer",
"description": "Total count of the referred candidates of an employee."
},
"candidates": {
"type": "array",
"description": "List of referred candidates.",
"items": {
"type": "object",
"description": "Candidate details.",
"properties": {
"firstName": {
"description": "FirstName of the candidate which employee is referred.",
"type": "string"
},
"lastName": {
"description": "LastName of the candidate which employee is referred.",
"type": "string"
},
"email": {
"description": "Email of the candidate which employee is referred.",
"type": "string"
},
"referrals": {
"type": "array",
"description": "List of referrals for this candidate.",
"items": {
"type": "object",
"description": "Referral details.",
"ReferralData": {
"type": "object",
"description": "Referral data containing candidate and job information.",
"properties": {
"jobId": {
"description": "Job Id - unique field to identify the job.",
"type": "string",
"default": "12121"
},
"category": {
"description": "Category of the job that employee is making a referral.",
"type": "string",
"default": "Engineering"
},
"firstName": {
"description": "FirstName of the candidate which employee is referring.",
"type": "string",
"default": "John"
},
"lastName": {
"description": "LastName of the candidate which employee is referring.",
"type": "string",
"default": "Deal"
},
"email": {
"description": "Email of the candidate which employee is referring.",
"type": "string",
"default": "test@mailinator.com"
},
"phone": {
"description": "Phone Number of the candidate which employee is referring.",
"type": "string",
"default": "919181912122"
},
"message": {
"description": "Personal Message to the candidate which employee is referring.",
"type": "string",
"default": "APPLY NOW"
},
"questionnaire": {
"type": "object",
"description": "Questionnaire response of the candidate which is used while making a referral.",
"properties": {}
}
}
}
}
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | GetEmployeeReferralSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/referral/v1/employees/jobs/resume
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/referral/v1/employees/jobs/resume
This API takes the resume as a 'file' input and give the referral recommendations to the employee based on the resume file data.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to get referral recommendations with resume.",
"properties": {
"file": {
"description": "Resume file of the candidate which employee is looking for job recommendations to refer.",
"type": "string",
"format": "binary"
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | GetReferralRecommendationsWithResume |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema containing job recommendations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"recommendations": {
"type": "array",
"description": "List of job recommendations.",
"items": {
"type": "object",
"description": "Job recommendation details.",
"JobRecommendations": {
"type": "object",
"description": "Job recommendation details.",
"properties": {
"jobId": {
"description": "JobId- unique field to identify the job.",
"type": "string"
},
"title": {
"description": "Title of the job.",
"type": "string"
}
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | GetReferralRecommendationsResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/referral/v1/employees/{employeeId}/jobs
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/referral/v1/employees/{employeeId}/jobs
This API give the referral recommendations to the employee based on the employee ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| employeeId | path | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema containing job recommendations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"recommendations": {
"type": "array",
"description": "List of job recommendations.",
"items": {
"type": "object",
"description": "Job recommendation details.",
"JobRecommendations": {
"type": "object",
"description": "Job recommendation details.",
"properties": {
"jobId": {
"description": "JobId- unique field to identify the job.",
"type": "string"
},
"title": {
"description": "Title of the job.",
"type": "string"
}
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | GetReferralRecommendationsResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//employees-api/referral/v1/questionnaire
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /employees-api/referral/v1/questionnaire
This API takes the questionnaire data like questions, message and create a referral form which is used to ask employee when referring the external candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request schema to create a referral questionnaire.",
"properties": {
"data": {
"type": "object",
"description": "Questionnaire data object.",
"Questionnaire": {
"type": "object",
"description": "Questionnaire schema for referral process.",
"properties": {
"questionnaire": {
"type": "array",
"description": "Questionnaire to the candidate which is used while making a referral.",
"items": {
"type": "object",
"description": "Question item in the questionnaire.",
"properties": {
"id": {
"description": "Question Id.",
"type": "string"
},
"questionText": {
"description": "Question description text.",
"type": "string"
},
"type": {
"description": "Type of the answer format for question.",
"type": "string",
"default": "success"
},
"options": {
"type": "array",
"description": "Answer options to choose for given questions.",
"items": {
"type": "object",
"description": "Answer option details.",
"properties": {
"ansId": {
"description": "Answer Id.",
"type": "string"
},
"ansText": {
"description": "Answer text value.",
"type": "string"
}
}
},
"default": {}
}
}
}
},
"showPersonalMessage": {
"description": "Flag whether to give personal message field to employee or not while making a referral.",
"type": "boolean"
},
"message": {
"description": "Default message to show when personal message flag is enabled.",
"type": "string",
"default": "Hello Friend! I hope this jobs suits your skill set"
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateEmployeeReferralQuestionnaire |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema for referral operations.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | ReferralSuccessResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//employees-api/referral/v1/questionnaire
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'GET /employees-api/referral/v1/questionnaire
This API gives the referral questionnaire when employee referring a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Response
200 response.
copied![
{
"type": "object",
"description": "Success response schema containing questionnaire data.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Status of the API call whether it is success or failure.",
"type": "string",
"default": "string"
},
"data": {
"type": "object",
"description": "Questionnaire data object.",
"Questionnaire": {
"type": "object",
"description": "Questionnaire schema for referral process.",
"properties": {
"questionnaire": {
"type": "array",
"description": "Questionnaire to the candidate which is used while making a referral.",
"items": {
"type": "object",
"description": "Question item in the questionnaire.",
"properties": {
"id": {
"description": "Question Id.",
"type": "string"
},
"questionText": {
"description": "Question description text.",
"type": "string"
},
"type": {
"description": "Type of the answer format for question.",
"type": "string",
"default": "success"
},
"options": {
"type": "array",
"description": "Answer options to choose for given questions.",
"items": {
"type": "object",
"description": "Answer option details.",
"properties": {
"ansId": {
"description": "Answer Id.",
"type": "string"
},
"ansText": {
"description": "Answer text value.",
"type": "string"
}
}
},
"default": {}
}
}
}
},
"showPersonalMessage": {
"description": "Flag whether to give personal message field to employee or not while making a referral.",
"type": "boolean"
},
"message": {
"description": "Default message to show when personal message flag is enabled.",
"type": "string",
"default": "Hello Friend! I hope this jobs suits your skill set"
}
}
}
}
}
}
]Invalid request params.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Something went wrong.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | GetReferralQuestionnaireResponse |
| 400 | Invalid request params. | BadRequest |
| 500 | Something went wrong. | ErrorResponse |
Search
These APIs helps in searching and providing suggestions based on keywords within employee profiles.
Employee Search
These APIs performs keyword-based searches within employee profiles, offering suggestions.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/search/
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/search/
This API searches Employee profiles based on keyword.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "Keyword to search."
},
"common": {
"CommonNode": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "User ID."
},
"userType": {
"type": "string",
"description": "Specify the user type - External or Internal user."
}
}
}
},
"from": {
"type": "integer",
"description": "Starting point from which the data should be retrieved."
},
"size": {
"type": "integer",
"description": "Size of the response."
},
"filters": {
"FiltersNode": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "Attribute to filter response."
},
"value": {
"type": "array",
"items": {
"type": "string",
"description": "To refine results based on these values with the attribute mentioned above."
}
}
}
}
}
},
"tabInfo": {
"TabInfoNode": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Field name to populate fields based on this attribute."
},
"type": {
"type": "string",
"description": "Accepted Value - Custom."
},
"mutualHistory": {
"type": "boolean",
"description": "True or False based on Profiles Settings."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | EmployeeSearchRequest |
Response
Returns filtered employee profiles.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"totalHits": {
"type": "integer",
"description": "Total number of hits."
},
"data": {
"type": "object",
"description": "Search Response Data.",
"properties": {
"employees": {
"type": "array",
"items": {
"EmployeeNode": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "Employee's First Name."
},
"lastName": {
"type": "string",
"description": "Employee's Last Name."
},
"candidateID": {
"type": "string",
"description": "Employee's ID."
}
}
}
}
},
"facets": {
"type": "array",
"items": {
"FacetsNode": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "Attribute passed in the request to fetch aggregations."
},
"key": {
"type": "string",
"description": "Key passed in the request."
},
"value": {
"type": "object",
"description": "Value of the respective attribute."
}
}
}
}
}
}
},
"query": {
"type": "object",
"description": "Represents internal database query."
}
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Server Error.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered employee profiles. | EmployeeSearchResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/search/suggestions
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/search/suggestions
This API searches Employee profiles based on keyword and shows suggestions.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "Keyword to search."
},
"common": {
"CommonNode": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "User ID."
},
"userType": {
"type": "string",
"description": "Specify the user type - External or Internal user."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | EmployeeTypeAheadRequest |
Response
Returns filtered employee profiles.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"hits": {
"type": "integer",
"description": "Hits."
},
"totalHits": {
"type": "integer",
"description": "Total number of hits."
},
"data": {
"type": "object",
"description": "Typeahead response data.",
"properties": {
"employees": {
"type": "array",
"items": {
"EmployeeNode": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "Employee's First Name."
},
"lastName": {
"type": "string",
"description": "Employee's Last Name."
},
"candidateID": {
"type": "string",
"description": "Employee's ID."
}
}
}
}
}
}
},
"query": {
"type": "object",
"description": "Represents internal database query."
}
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Server Error.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered employee profiles. | EmployeeTypeaheadResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/search/suggestions/aggregations
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/search/suggestions/aggregations
This API conducts searches within employee profiles using keywords and provides aggregated counts based on the search criteria.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "Keyword to search."
},
"common": {
"CommonNode": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "User ID."
},
"userType": {
"type": "string",
"description": "Specify the user type - External or Internal user."
}
}
}
},
"aggregations": {
"AggregationsNode": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "Attribute to consolidate and compute values."
},
"size": {
"type": "integer",
"description": "Size of the aggregations response."
}
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | EmployeeAggregationRequest |
Response
Returns filtered employee profiles and aggregated counts.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"hits": {
"type": "integer",
"description": "Hits."
},
"totalHits": {
"type": "integer",
"description": "Total number of hits."
},
"data": {
"type": "object",
"description": "API Response."
},
"query": {
"type": "object",
"description": "Represents internal database query."
}
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Server Error.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered employee profiles and aggregated counts. | EmployeeAggregationResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
Mentor
This API conducts keyword-based searches in mentor profiles and offers relevant suggestions.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//jobs-api/v1/jobs/search/suggestions/mentor
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /jobs-api/v1/jobs/search/suggestions/mentor
This API performs searches within mentor profiles using keywords and generates relevant suggestions based on the search criteria.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "Keyword to search."
},
"common": {
"CommonNode": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "User ID."
},
"userType": {
"type": "string",
"description": "Specify the user type - External or Internal user."
}
}
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | MentorTypeAheadRequest |
Response
Returns filtered Mentor Profiles.
copied![
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "Status returned by the API."
},
"hits": {
"type": "integer",
"description": "Hits."
},
"totalHits": {
"type": "integer",
"description": "Total number of hits."
},
"data": {
"type": "object",
"description": "Mentor Typeahead response data.",
"properties": {
"employees": {
"type": "array",
"items": {
"EmployeeNode": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "Employee's First Name."
},
"lastName": {
"type": "string",
"description": "Employee's Last Name."
},
"candidateID": {
"type": "string",
"description": "Employee's ID."
}
}
}
}
}
}
},
"query": {
"type": "object",
"description": "Represents internal database query."
}
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Error response schema for 400 bad request errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Server Error.
copied![
{
"type": "object",
"description": "Error response schema for 500 internal server errors.",
"properties": {
"status": {
"description": "HTTP Status code determining the response status.",
"type": "integer"
},
"message": {
"description": "Error message describing what went wrong.",
"type": "string",
"default": "string"
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Returns filtered Mentor Profiles. | MentorTypeaheadResponse |
| 400 | Bad Request. | BadRequest |
| 500 | Server Error. | ErrorResponse |
Applicants
These APIs helps in fetching the required data for applicants.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/jobs/{jobId}/applicants
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/jobs/{jobId}/applicants
This API fetches Applicants for a Job Based on JobId
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| jobId | path | string | true |
| from | query | integer | true |
| size | query | integer | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination information for the list of candidates.",
"properties": {
"total": {
"type": "number",
"description": "Total number of candidates in the dataset."
},
"size": {
"type": "number",
"description": "Number of candidates returned in the current response."
},
"from": {
"type": "number",
"description": "Index of the first candidate in the current result set."
}
}
},
"data": {
"type": "object",
"description": "Data object containing information about the candidates.",
"properties": {
"candidates": {
"type": "array",
"description": "Array of candidate objects containing their details.",
"items": {
"type": "object",
"description": "Details of an individual candidate.",
"properties": {
"emails": {
"type": "array",
"description": "Array of email addresses associated with the candidate.",
"items": {
"type": "string"
}
},
"lastName": {
"type": "string",
"description": "Last name of the candidate."
},
"firstName": {
"type": "string",
"description": "First name of the candidate."
},
"dateCreated": {
"type": "string",
"description": "Date when the candidate record was created."
},
"hiringStatus": {
"type": "string",
"description": "Current hiring status of the candidate."
},
"updatedDate": {
"type": "string",
"description": "Date when the candidate record was last updated."
},
"userId": {
"type": "string",
"description": "Unique identifier for the candidate user."
},
"contacts": {
"type": "array",
"description": "Array of contact details associated with the candidate.",
"items": {
"type": "object",
"description": "Details of an individual contact associated with the candidate.",
"properties": {
"originalNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the contact."
},
"phoneNumberWithoutCountryCode": {
"type": "string",
"description": "The phone number without country code"
},
"countryCode": {
"type": "string",
"description": "The country code associated with the contact."
}
}
}
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Additional information or a message related to the response."
},
"status": {
"type": "string",
"description": "The status of the response, indicating success or failure."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a bad request scenario with an associated error message.",
"properties": {
"message": {
"type": "string",
"description": "Error message indicating the nature of the bad request."
}
}
}
]Could not find candidate or job.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | Applicants |
| 400 | Wrong request format or parameters missing. | BadRequest |
| 404 | Could not find candidate or job. | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/applications
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/applications
This API fetches list of all Applications for a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Applications fetched successfully
copied![
{
"type": "object",
"description": "Response containing candidate application details.",
"properties": {
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "number",
"description": "Status code of the response."
},
"data": {
"type": "object",
"description": "Data related to the candidate applications.",
"properties": {
"applications": {
"type": "array",
"description": "List of applications for the candidate.",
"items": {
"Application": {
"type": "object",
"description": "Details of a single application.",
"properties": {
"jobId": {
"type": "string",
"description": "ID of the job associated with the application."
},
"jobTitle": {
"type": "string",
"description": "Title of the job associated with the application."
},
"jobAssociationType": {
"type": "string",
"description": "Indicates how a candidate is related to a job, based on their level of engagement (e.g., Applied)."
},
"hiringStatus": {
"HiringStatusDetail": {
"type": "object",
"description": "Detailed information regarding the current hiring status and workflow step.",
"properties": {
"value": {
"type": "string",
"description": "A string related to the value of the hiring status."
},
"step": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"hiringStatusCode": {
"type": "string",
"description": "A string related to the code of the hiring status value."
},
"hiringStepCode": {
"type": "string",
"description": "A string related to the value of the hiring status step."
},
"disposition": {
"type": "string",
"description": "A string related to the disposition of the hiring status."
},
"previousValue": {
"type": "string",
"description": "A string related to the previous value of the hiring status."
},
"previousStep": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date of the hiring status."
},
"workFlowStepId": {
"type": "string",
"description": "A string related to the work flow step id of the hiring status."
},
"hsPriority": {
"type": "number",
"description": "A string related to the hiring status priority."
},
"previousWorkFlowStepId": {
"type": "string",
"description": "A string related to the previous work flow step id of the hiring status."
},
"rejectionReason": {
"type": "string",
"description": "A string related to the rejection reason."
},
"rejectionReasonId": {
"type": "string",
"description": "A string related to the rejection reason id."
},
"previousHiringStatusCode": {
"type": "string",
"description": "A string related to the previous hiring status code."
},
"previousHiringStepCode": {
"type": "string",
"description": "A string related to the previous hiring status step code."
},
"previousRejectionReason": {
"type": "string",
"description": "A string related to the previous rejection reason."
},
"previousRejectionReasonId": {
"type": "string",
"description": "A string related to the previous rejection reason id."
},
"isRejected": {
"type": "boolean",
"description": "A boolean related to the rejection status."
}
}
}
},
"candidateId": {
"type": "string",
"description": "ID of the user associated with the application."
},
"jobCategory": {
"type": "string",
"description": "Category of the job associated with the application."
},
"crmJobSeekerId": {
"type": "string",
"description": "CRM ID of the job seeker."
},
"phApplicationId": {
"type": "string",
"description": "Phenom application ID."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date."
},
"atsId": {
"type": "string",
"description": "A string related to the ats id."
},
"applicationId": {
"type": "string",
"description": "A string related to the application id."
},
"isConfidential": {
"type": "boolean",
"description": "A boolean related to the confidential status."
},
"appliedEmail": {
"type": "string",
"description": "A string related to the applied email."
},
"trafficSourceList": {
"type": "array",
"description": "Array of traffic sources for this application.",
"items": {
"TrafficSourceDetail": {
"type": "object",
"description": "Details about the source of traffic or referral.",
"properties": {
"sourceShortName": {
"type": "string",
"description": "A string related to the source short name."
},
"sourceFullname": {
"type": "string",
"description": "A string related to the source full name."
},
"referralType": {
"type": "string",
"description": "A string related to the referral type."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"activityTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array related to the activity types."
},
"utmMedium": {
"type": "string",
"description": "A string related to the UTM medium."
},
"utmCampaign": {
"type": "string",
"description": "A string related to the UTM campaign."
}
}
}
}
}
}
}
}
}
}
}
}
}
]Enter valid details
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Candidate does not exist.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Applications fetched successfully | CandidateApplications |
| 400 | Enter valid details | ErrorMessage |
| 404 | Candidate does not exist. | ErrorMessage |
| 500 | Exception occurred. | ErrorMessage |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
This API updates job specific additional fields.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"jobSpecificAdditionalFields": {
"type": "object",
"properties": {}
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AdditionalFieldsUpdateRequest |
Response
Successfully updated job specific additional fields of a candidate
copied![
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {},
"description": "Additional data related to the update response, specific details may be included here."
},
"message": {
"type": "string",
"description": "A message providing additional information about the response status or outcome."
},
"status": {
"type": "string",
"description": "The status of the additional fields update response, indicating success or failure."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully updated job specific additional fields of a candidate | AdditionalFieldsUpdateResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/additional-fields
This API fetches job specific additional fields.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
Successfully fetched the job specific additional fields of a candidate
copied![
{
"type": "object",
"description": "Response object for additional fields, typically related to job-specific information.",
"properties": {
"data": {
"type": "object",
"description": "Data object for additional fields information.",
"properties": {
"jobSpecificAdditionalFields": {
"type": "object",
"description": "Additional fields specific to a job."
}
}
},
"message": {
"type": "string",
"description": "A message related to the additional fields."
},
"status": {
"type": "string",
"description": "The overall status of the additional fields response."
}
}
}
]Invalid candidateId and/or jobId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the job specific additional fields of a candidate | AdditionalFields |
| 404 | Invalid candidateId and/or jobId | Error |
| 500 | Exception occurred | Error |
Hiring Status
The Candidate APIs allows you to add and update Hiring Status of a candidate.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/get-hiring-status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/get-hiring-status
This API fetches candidate hiring status for a job
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
To know if candidate got associated to the Job and his hiring status.
copied![
{
"type": "object",
"description": "Information related to the hiring status.",
"properties": {
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "number",
"description": "Status of the response."
},
"data": {
"description": "Data related to the hiring status.",
"Application": {
"type": "object",
"description": "Details of a single application.",
"properties": {
"jobId": {
"type": "string",
"description": "ID of the job associated with the application."
},
"jobTitle": {
"type": "string",
"description": "Title of the job associated with the application."
},
"jobAssociationType": {
"type": "string",
"description": "Indicates how a candidate is related to a job, based on their level of engagement (e.g., Applied)."
},
"hiringStatus": {
"HiringStatusDetail": {
"type": "object",
"description": "Detailed information regarding the current hiring status and workflow step.",
"properties": {
"value": {
"type": "string",
"description": "A string related to the value of the hiring status."
},
"step": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"hiringStatusCode": {
"type": "string",
"description": "A string related to the code of the hiring status value."
},
"hiringStepCode": {
"type": "string",
"description": "A string related to the value of the hiring status step."
},
"disposition": {
"type": "string",
"description": "A string related to the disposition of the hiring status."
},
"previousValue": {
"type": "string",
"description": "A string related to the previous value of the hiring status."
},
"previousStep": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date of the hiring status."
},
"workFlowStepId": {
"type": "string",
"description": "A string related to the work flow step id of the hiring status."
},
"hsPriority": {
"type": "number",
"description": "A string related to the hiring status priority."
},
"previousWorkFlowStepId": {
"type": "string",
"description": "A string related to the previous work flow step id of the hiring status."
},
"rejectionReason": {
"type": "string",
"description": "A string related to the rejection reason."
},
"rejectionReasonId": {
"type": "string",
"description": "A string related to the rejection reason id."
},
"previousHiringStatusCode": {
"type": "string",
"description": "A string related to the previous hiring status code."
},
"previousHiringStepCode": {
"type": "string",
"description": "A string related to the previous hiring status step code."
},
"previousRejectionReason": {
"type": "string",
"description": "A string related to the previous rejection reason."
},
"previousRejectionReasonId": {
"type": "string",
"description": "A string related to the previous rejection reason id."
},
"isRejected": {
"type": "boolean",
"description": "A boolean related to the rejection status."
}
}
}
},
"candidateId": {
"type": "string",
"description": "ID of the user associated with the application."
},
"jobCategory": {
"type": "string",
"description": "Category of the job associated with the application."
},
"crmJobSeekerId": {
"type": "string",
"description": "CRM ID of the job seeker."
},
"phApplicationId": {
"type": "string",
"description": "Phenom application ID."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date."
},
"atsId": {
"type": "string",
"description": "A string related to the ats id."
},
"applicationId": {
"type": "string",
"description": "A string related to the application id."
},
"isConfidential": {
"type": "boolean",
"description": "A boolean related to the confidential status."
},
"appliedEmail": {
"type": "string",
"description": "A string related to the applied email."
},
"trafficSourceList": {
"type": "array",
"description": "Array of traffic sources for this application.",
"items": {
"TrafficSourceDetail": {
"type": "object",
"description": "Details about the source of traffic or referral.",
"properties": {
"sourceShortName": {
"type": "string",
"description": "A string related to the source short name."
},
"sourceFullname": {
"type": "string",
"description": "A string related to the source full name."
},
"referralType": {
"type": "string",
"description": "A string related to the referral type."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"activityTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array related to the activity types."
},
"utmMedium": {
"type": "string",
"description": "A string related to the UTM medium."
},
"utmCampaign": {
"type": "string",
"description": "A string related to the UTM campaign."
}
}
}
}
}
}
}
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Could not find candidate or job.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | To know if candidate got associated to the Job and his hiring status. | HiringStatus |
| 400 | Wrong request format or parameters missing. | ErrorMessage |
| 404 | Could not find candidate or job. | ErrorMessage |
| 500 | Exception occurred. | ErrorMessage |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/next-hiring-status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/next-hiring-status
This API fetches next hiring status of a candidate for the given job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
Successfully got the next hiring status for given candidate
copied![
{
"type": "object",
"description": "Represents information about the next hiring status.",
"properties": {
"data": {
"type": "object",
"description": "Details related to the hiring status data.",
"properties": {
"hiringStatusList": {
"type": "array",
"description": "List of hiring statuses and their properties.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the hiring status."
},
"isRejected": {
"type": "boolean",
"description": "Flag indicating whether the hiring status is rejected."
},
"isDefault": {
"type": "boolean",
"description": "Flag indicating whether the hiring status is the default."
},
"statusCode": {
"type": "string",
"description": "Status code of the hiring status."
},
"step": {
"type": "string",
"description": "Current step in the workflow for the hiring status."
},
"transitionStatuses": {
"type": "array",
"description": "List of transition statuses for the current hiring status.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the transition status."
},
"statusCode": {
"type": "string",
"description": "Status code of the transition status."
},
"isRejected": {
"type": "boolean",
"description": "Flag indicating whether the transition status is rejected."
},
"isDefault": {
"type": "boolean",
"description": "Flag indicating whether the transition status is the default."
},
"step": {
"type": "string",
"description": "Current step in the workflow for the transition status."
}
}
}
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Could not find candidate/Job for given identifier
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully got the next hiring status for given candidate | NextHiringStatus |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Could not find candidate/Job for given identifier | Error |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/update-hiring-status
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/update-hiring-status
This API updates the candidate hiring status for the job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"previousHiringStatus": {
"type": "string",
"description": "The previous hiring status of the candidate."
},
"previousStep": {
"type": "string",
"description": "The previous step in the hiring process."
},
"hiringStatus": {
"type": "string",
"description": "The current hiring status of the candidate."
},
"hiringStep": {
"type": "string",
"description": "The current step in the hiring process."
},
"isRejected": {
"type": "boolean",
"description": "A boolean indicating whether the candidate has been rejected."
},
"rejectionReason": {
"type": "string",
"description": "The reason for candidate rejection."
},
"rejectionReasonId": {
"type": "string",
"description": "The unique identifier for the rejection reason."
},
"rejectCode": {
"type": "string",
"description": "The rejection code associated with the rejection."
},
"workflowStepId": {
"type": "string",
"description": "The unique identifier for the current workflow step."
},
"hiringStatusUpdateDate": {
"type": "string",
"description": "The date when the hiring status was last updated."
},
"currentStatusCode": {
"type": "string",
"description": "The current status code of the hiring process."
},
"currentStepCode": {
"type": "string",
"description": "The current step code of the hiring process."
},
"destinationStatusCode": {
"type": "string",
"description": "The destination status code for the next step in the hiring process."
},
"twoWayRequest": {
"type": "boolean",
"description": "A boolean indicating whether the hiring status update is a two-way request."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter making the hiring status update."
},
"recruiterEmail": {
"type": "string",
"description": "The email address of the recruiter making the hiring status update."
},
"recruiterUserId": {
"type": "string",
"description": "The unique identifier for the recruiter making the hiring status update."
}
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | HiringStatusUpdateRequest |
Response
To update the hiring status of the candidate.
copied![
{
"type": "object",
"description": "Response object for updating hiring status.",
"properties": {
"data": {
"type": "object",
"description": "Empty data object for hiring status update response.",
"properties": {}
},
"message": {
"type": "string",
"description": "A message related to the hiring status update."
},
"status": {
"type": "string",
"description": "The overall status of the hiring status update process."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Invalid JobId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | To update the hiring status of the candidate. | HiringStatusUpdateResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 404 | Invalid JobId | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/hiring-status-activities
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/hiring-status-activities
This API fetches hiring status activities of a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Successfully fetched hiring status activities for given candidate
copied![
{
"type": "object",
"description": "Response object for hiring status activities, including pagination details and activity data.",
"properties": {
"pagination": {
"type": "object",
"description": "Pagination details for the hiring status activities.",
"properties": {
"size": {
"type": "number",
"description": "Number of items per page."
},
"from": {
"type": "number",
"description": "Starting index of the items in the current page."
},
"totalCount": {
"type": "number",
"description": "Total count of hiring status activities across all pages."
}
}
},
"data": {
"type": "array",
"description": "Array of hiring status activity data.",
"items": {
"type": "object",
"description": "Details of a hiring status activity.",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "User ID of the recruiter associated with the activity."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter associated with the activity."
},
"candidateId": {
"type": "string",
"description": "ID of the candidate associated with the activity."
},
"actionType": {
"type": "string",
"description": "Type of action performed in the activity."
},
"createdDate": {
"type": "number",
"description": "Date when the activity was created."
},
"requestSource": {
"type": "string",
"description": "Source of the activity request."
},
"additionalFieldName": {
"type": "string",
"description": "Name of the additional field associated with the activity."
},
"previousValue": {
"type": "string",
"description": "Previous value of the additional field."
},
"updatedValue": {
"type": "string",
"description": "Updated value of the additional field."
},
"actionValue": {
"type": "string",
"description": "Value associated with the action."
},
"subject": {
"type": "string",
"description": "Subject of the activity."
},
"content": {
"type": "string",
"description": "Content of the activity."
},
"categoryName": {
"type": "string",
"description": "Name of the category associated with the activity."
},
"emailResponse": {
"type": "string",
"description": "Email response associated with the activity."
},
"fromEmail": {
"type": "string",
"description": "Email address from which the activity originated."
},
"fromName": {
"type": "string",
"description": "Name associated with the sender of the activity."
},
"toEmail": {
"type": "string",
"description": "Email address of the recipient of the activity."
},
"toName": {
"type": "string",
"description": "Name of the recipient of the activity."
},
"recipeName": {
"type": "string",
"description": "Name of the recipe associated with the activity."
},
"addedNewValue": {
"type": "string",
"description": "New value added in the activity."
}
}
}
},
"message": {
"type": "string",
"description": "A message related to the hiring status activities."
},
"status": {
"type": "string",
"description": "The overall status of the hiring status activities response."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the response was generated."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched hiring status activities for given candidate | HiringStatusActivities |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
Leads
These APIs helps in assigning of multiple candidates as leads for a job.
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//candidates-api/applications/v1/jobs/assign-candidates-to-job
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /candidates-api/applications/v1/jobs/assign-candidates-to-job
This API helps in assigning multiple candidates to a job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of candidate IDs to be assigned to the specified job."
},
"jobId": {
"type": "string",
"description": "The unique identifier of the job to which candidates are to be assigned."
},
"syncToATS": {
"type": "boolean",
"description": "A boolean indicating whether the assignment should be synchronized with the Applicant Tracking System (ATS)."
},
"pushToATS": {
"type": "boolean",
"description": "A boolean indicating whether the assigned candidates should be pushed to the Applicant Tracking System (ATS)."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | AssignCandidatesToJobRequest |
Response
Successfully assigned candidates to job
copied![
{
"type": "object",
"description": "Response object for assigning candidates to a job.",
"properties": {
"data": {
"type": "object",
"description": "Data object for additional information related to the assignment of candidates to a job."
},
"message": {
"type": "string",
"description": "A message related to the assignment of candidates to the job."
},
"status": {
"type": "string",
"description": "The overall status of the assignment process."
}
}
}
]Wrong request format or parameters missing.
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully assigned candidates to job | AssignCandidatesToJobResponse |
| 400 | Wrong request format or parameters missing. | Error |
| 500 | Exception occurred | Error |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/leads
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /candidates-api/applications/v1/candidates/{candidateId}/leads
This API fetches list of all Leads for a candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
Response
Activities fetched successfully
copied![
{
"type": "object",
"description": "Response containing candidate lead details.",
"properties": {
"message": {
"type": "string",
"description": "Message associated with the response."
},
"status": {
"type": "number",
"description": "Status code of the response."
},
"data": {
"type": "object",
"description": "Data related to the candidate leads.",
"properties": {
"activities": {
"type": "array",
"description": "List of leads for the candidate.",
"items": {
"Leads": {
"type": "object",
"description": "Details of a single lead.",
"properties": {
"jobId": {
"type": "string",
"description": "ID of the job associated with the lead."
},
"jobTitle": {
"type": "string",
"description": "Title of the job associated with the lead."
},
"jobAssociationType": {
"type": "string",
"description": "Indicates how a candidate is related to a job, based on their level of engagement (e.g., Applied)."
},
"hiringStatus": {
"type": "object",
"description": "Details of the hiring status for the activity.",
"properties": {
"value": {
"type": "string",
"description": "A string related to the value of the hiring status."
},
"step": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"hiringStatusCode": {
"type": "string",
"description": "A string related to the code of the hiring status value."
},
"hiringStepCode": {
"type": "string",
"description": "A string related to the value of the hiring status step."
},
"disposition": {
"type": "string",
"description": "A string related to the disposition of the hiring status."
},
"previousValue": {
"type": "string",
"description": "A string related to the previous value of the hiring status."
},
"previousStep": {
"type": "string",
"description": "A string related to the step value of the hiring status."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date of the hiring status."
},
"workFlowStepId": {
"type": "string",
"description": "A string related to the work flow step id of the hiring status."
},
"hsPriority": {
"type": "number",
"description": "A string related to the hiring status priority."
},
"previousWorkFlowStepId": {
"type": "string",
"description": "A string related to the previous work flow step id of the hiring status."
},
"rejectionReason": {
"type": "string",
"description": "A string related to the rejection reason."
},
"rejectionReasonId": {
"type": "string",
"description": "A string related to the rejection reason id."
},
"previousHiringStatusCode": {
"type": "string",
"description": "A string related to the previous hiring status code."
},
"previousHiringStepCode": {
"type": "string",
"description": "A string related to the previous hiring status step code."
},
"previousRejectionReason": {
"type": "string",
"description": "A string related to the previous rejection reason."
},
"previousRejectionReasonId": {
"type": "string",
"description": "A string related to the previous rejection reason id."
},
"isRejected": {
"type": "boolean",
"description": "A boolean related to the rejection status."
}
}
},
"candidateId": {
"type": "string",
"description": "ID of the user associated with the activity."
},
"jobCategory": {
"type": "string",
"description": "Category of the job associated with the activity."
},
"crmJobSeekerId": {
"type": "string",
"description": "CRM ID of the job seeker."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"updatedDate": {
"type": "number",
"description": "A number related to the updated date."
},
"atsId": {
"type": "string",
"description": "A string related to the ats id."
},
"applicationId": {
"type": "string",
"description": "A string related to the application id."
},
"isConfidential": {
"type": "boolean",
"description": "A boolean related to the confidential status."
},
"trafficSourceList": {
"type": "array",
"description": "Array of traffic sources for this activity.",
"items": {
"type": "object",
"properties": {
"sourceShortName": {
"type": "string",
"description": "A string related to the source short name."
},
"sourceFullname": {
"type": "string",
"description": "A string related to the source full name."
},
"referralType": {
"type": "string",
"description": "A string related to the referral type."
},
"createdDate": {
"type": "number",
"description": "A number related to the created date."
},
"activityTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array related to the activity types."
},
"utmMedium": {
"type": "string",
"description": "A string related to the UTM medium."
},
"utmCampaign": {
"type": "string",
"description": "A string related to the UTM campaign."
}
}
}
}
}
}
}
}
}
}
}
}
]Enter valid details
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Candidate does not exist
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "integer",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Activities fetched successfully | CandidateLeads |
| 400 | Enter valid details | ErrorMessage |
| 404 | Candidate does not exist | ErrorMessage |
| 500 | Exception occurred | ErrorMessage |
Candidate Attachments
These Candidate APIs allow you to add, update, and delete candidate attachments.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/attachments
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /candidates-api/applications/v1/candidates/{candidateId}/jobs/{jobId}/attachments
This API is used to fetch Attachments on the candidate profiles based on candidateId and jobId
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
| applicationId | query | string | false |
Response
Successfully fetched the attachments of the associated job on candidate
copied![
{
"type": "object",
"description": "Object representing attachments.",
"properties": {
"data": {
"type": "object",
"description": "Object containing attachment data.",
"properties": {
"attachments": {
"type": "array",
"description": "Array of attachment items.",
"items": {
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"description": "Unique identifier for the attachment."
},
"attachmentName": {
"type": "string",
"description": "Name of the attachment."
},
"attachmentType": {
"type": "string",
"description": "Type of the attachment."
}
}
}
}
}
},
"message": {
"type": "string",
"description": "Description or message providing details about the response."
},
"status": {
"type": "string",
"description": "Status of the response."
}
}
}
]Invalid candidateId
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Exception occurred
copied![
{
"type": "object",
"description": "Represents a general error scenario with status information and an associated error message.",
"properties": {
"status": {
"type": "string",
"description": "Status code or identifier indicating the nature of the error."
},
"message": {
"type": "string",
"description": "Error message providing details about the encountered issue."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successfully fetched the attachments of the associated job on candidate | Attachment |
| 404 | Invalid candidateId | Error |
| 500 | Exception occurred | Error |
AI Matching
AI matching FitScore provides a concise assessment indicating how well a candidate aligns with a job based on their skills, experience, and qualifications.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//ai-matching/v1/candidates/job-fitscore
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /ai-matching/v1/candidates/job-fitscore
This API provides fitscore of a profile with respect to a job.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to get fitscore results.",
"properties": {
"locale": {
"type": "string",
"description": "Locale of the site (Language_Country) - Example: en_US."
},
"siteType": {
"type": "string",
"default": "external",
"description": "Persona Value - Example: Internal, External."
},
"userId": {
"type": "string",
"description": "User id of a job."
},
"userProfile": {
"UserProfileFitScore": {
"type": "object",
"description": "It contains user profile details.",
"properties": {
"skills": {
"type": "array",
"description": "User's skills.",
"items": {
"type": "string",
"description": "List of skills."
}
},
"title": {
"type": "string",
"description": "Title of a job."
},
"yearsOfExperience": {
"type": "string",
"description": "Users's years of experience.",
"example": "0-5"
},
"preferredLocations": {
"type": "array",
"description": "Users's preferred locations.",
"items": {
"PreferredLocations": {
"type": "object",
"description": "It has details of preferred location.",
"properties": {
"location": {
"type": "string",
"description": "Preferred location name."
},
"latlong": {
"type": "object",
"description": "Latitude and longitude of preferred location.",
"properties": {
"lon": {
"type": "number",
"format": "double",
"description": "Longitude of preferred location."
},
"lan": {
"type": "number",
"format": "double",
"description": "Latitude of preferred location."
}
}
}
}
}
}
}
}
}
},
"jobIds": {
"type": "array",
"description": "Job ids to check fitscore.",
"items": {
"type": "string",
"description": "List of Job IDs."
}
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | FitScoreRequest |
Response
200 response
copied![
{
"type": "object",
"description": "Fitscore Response.",
"properties": {
"status": {
"type": "integer",
"description": "Status code of response.",
"default": "200"
},
"result": {
"type": "array",
"description": "Obtained results.",
"items": {
"type": "object",
"description": "Results of fitscore.",
"properties": {
"jobId": {
"type": "string",
"description": "Job Id for which fitscore is calculated."
},
"fitLevel": {
"type": "string",
"description": "Shows how well the user fits the job."
},
"titleFit": {
"type": "string",
"description": "Shows how well the user title fits the job."
},
"skillFit": {
"type": "string",
"description": "Shows how well the user skills fits the job."
},
"experienceFit": {
"type": "string",
"description": "Shows how well the user experience fits the job."
},
"locationFit": {
"type": "string",
"description": "Shows how well the user location fits the job."
},
"skillGap": {
"type": "object",
"description": "Evaluates user skills.",
"properties": {
"exactMatch": {
"type": "array",
"description": "Exact Matched Skills.",
"items": {
"type": "string",
"description": "List of skills which matched exactly."
}
},
"semanticMatch": {
"type": "array",
"description": "Semantically Matched Skills.",
"items": {
"type": "string",
"description": "List of skills which matched semantically."
}
},
"noMatch": {
"type": "array",
"description": "UnMatched Skills.",
"items": {
"type": "string",
"description": "List of skills which are unmatched."
}
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"type": "object",
"description": "Fitscore bad request details.",
"properties": {
"status": {
"type": "integer",
"description": "Status code of bad request."
},
"message": {
"type": "string",
"description": "Bad request message."
}
}
}
]Server Error
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "integer",
"description": "Status code of encountered error."
},
"message": {
"type": "string",
"description": "Encountered error message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | FitscoreResponse |
| 400 | Bad Request | FitscoreBadRequest |
| 500 | Server Error | ErrorResponse |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//ai-matching/v1/candidates/{candidateId}/jobs/{jobId}/matching-skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userId: string'GET /ai-matching/v1/candidates/{candidateId}/jobs/{jobId}/matching-skills
This API returns exact matching skills between job and candidate.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userId | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| jobId | path | string | true |
Response
OK response.
copied![
{
"type": "object",
"description": "Response of the given request.",
"properties": {
"matchingSkills": {
"type": "array",
"description": "List of matched skills.",
"items": {
"type": "string"
}
},
"matchingSkillsCount": {
"type": "integer",
"description": "Count of matched skills."
},
"unmatchingSkills": {
"type": "array",
"description": "List of unmatched skills.",
"items": {
"type": "string"
}
},
"unmatchingSkillsCount": {
"type": "integer",
"description": "Count of unmatched skills."
},
"totalJobSkills": {
"type": "integer",
"description": "Count of total job skills."
},
"status": {
"type": "string",
"description": "Status of fitscore processing."
}
}
}
]Bad Request.
copied![
{
"type": "object",
"description": "Required Parameters are missing to process the request.",
"properties": {
"ErrorResponseMessage": {
"type": "string",
"description": "Error Response Message."
}
}
}
]Internal Server Error.
copied![
{
"type": "object",
"description": "Issue in processing the request.",
"properties": {
"ErrorResponseMessage": {
"type": "string",
"description": "Error Response Message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | OK response. | SkillMatchingResponse |
| 400 | Bad Request. | SkillMatchingBadRequest |
| 500 | Internal Server Error. | SkillMatchingErrorResponse |
Resume Parsing
The process of extracting important information about a candidate from the resume is called Resume Parsing. Information such as candidate’s details, education, experience, etc. mentioned in the resume.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//parser/resume/v1/parse
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /parser/resume/v1/parse
This API takes ‘file name’ and ‘datastream’ as input keys to extract the candidate's information such as name, contact information, email id, education, work experience, and skills etc.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to parse resume using stream.",
"properties": {
"filename": {
"type": "string",
"description": "Resume file name."
},
"datastream": {
"type": "string",
"description": "Base64 encoded value."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | ResumeRequest |
Response
200 response.
copied![
{
"type": "object",
"description": "Response object after parsing resume.",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Message string."
},
"messageKey": {
"type": "string",
"description": "Message key."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"data": {
"type": "object",
"description": "Data object which contains all the parsed fields.",
"properties": {
"resumedata": {
"type": "object",
"description": "Resumedata object which contains all the parsed fields.",
"properties": {
"personname": {
"type": "object",
"description": "Candidate personal details.",
"properties": {
"fullname": {
"type": "string",
"description": "Full name of Candidate."
},
"firstname": {
"type": "string",
"description": "First name of Candidate."
},
"middlename": {
"type": "string",
"description": "Middle name of Candidate."
},
"lastname": {
"type": "string",
"description": "Last name of Candidate."
}
}
},
"mobile": {
"type": "array",
"description": "Candidate contact details.",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "Mobile number of Candidate."
},
"formattednumber": {
"type": "string",
"description": "Formatted number of Candidate."
}
}
}
},
"emailaddress": {
"type": "string",
"description": "Email address of Candidate."
},
"altemailaddress": {
"type": "string",
"description": "Alternate Email other than primary mail."
},
"internetaddress": {
"type": "array",
"description": "Candidate Internet address details.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Internet address type."
},
"url": {
"type": "string",
"description": "Internet address URL."
}
}
}
},
"postaladdress": {
"type": "array",
"description": "Candidate postal details.",
"items": {
"type": "object",
"properties": {
"fulladdress": {
"type": "string",
"description": "Complete postal address."
},
"city": {
"type": "string",
"description": "City mentioned in address."
},
"state": {
"type": "string",
"description": "State mentioned in address."
},
"country": {
"type": "string",
"description": "Country."
},
"zipcode": {
"type": "string",
"description": "Zipcode."
},
"ispresent": {
"type": "string",
"description": "Is it the current address of the candidate."
}
}
}
},
"resumelanguage": {
"type": "string",
"description": "Language of resume content."
},
"languageknown": {
"type": "string",
"description": "Language known by candidate."
},
"experiencesummary": {
"type": "object",
"description": "Candidate experience summary.",
"properties": {
"currentemployer": {
"type": "string",
"description": "Candidate working in current Company."
},
"currentrole": {
"type": "string",
"description": "Current role of candidate."
},
"gapperiod": {
"type": "string",
"description": "Time frame for which candidate is not working."
},
"longeststay": {
"type": "string",
"description": "Longest time frame in a Company."
},
"averagestay": {
"type": "string",
"description": "Average stay."
},
"totalexperienceinmonths": {
"type": "integer",
"description": "Total experience in months."
},
"totalexperienceinyear": {
"type": "string",
"description": "Total experience in year."
}
}
},
"filename": {
"type": "string",
"description": "Attached file name."
},
"resumetext": {
"type": "string",
"description": "Resume Content."
},
"summary": {
"type": "string",
"description": "Summary."
},
"resumeskills": {
"type": "string",
"description": "Resume skills."
},
"skilltaxonomy": {
"type": "array",
"description": "Candidate skills history.",
"items": {
"type": "object",
"properties": {
"skillname": {
"type": "string",
"description": "Skill name."
},
"lastused": {
"type": "string",
"description": "Last used."
},
"monthsused": {
"type": "string",
"description": "Months used."
},
"availability": {
"type": "string",
"description": "Availability."
}
}
}
},
"educationhistory": {
"description": "Candidate education info.",
"type": "array",
"items": {
"type": "object",
"properties": {
"school": {
"type": "string",
"description": "College name."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "state"
},
"country": {
"type": "string",
"description": "Country."
},
"degree": {
"type": "string",
"description": "Degree."
},
"startdate": {
"type": "string",
"description": "Joining date."
},
"enddate": {
"type": "string",
"description": "End date."
},
"aggregate": {
"type": "string",
"description": "Aggregate values."
}
}
}
},
"workhistory": {
"description": "Candidate work or experience details.",
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "Company name."
},
"title": {
"type": "string",
"description": "Candidate Title."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "State."
},
"country": {
"type": "string",
"description": "Country."
},
"startdate": {
"type": "string",
"description": "Start date"
},
"description": {
"type": "string",
"description": "Experience description."
},
"enddate": {
"type": "string",
"description": "End date."
},
"skill": {
"type": "array",
"description": "Experience section skills.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
]400 response.
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "string",
"description": "Status code of encountered error."
},
"errors": {
"type": "array",
"description": "Error details.",
"items": {
"type": "object",
"description": "Error details.",
"properties": {
"errorAPI": {
"type": "string",
"description": "Status returned by the API."
},
"errorCode": {
"type": "string",
"description": "ErrorCode by the API."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"message": {
"type": "string",
"description": "Error message."
},
"messageKey": {
"type": "string",
"description": "Error message key."
}
}
}
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | ResumeResponse |
| 400 | 400 response. | ErrorResponse |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//parser/resume/v1/parse/file
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /parser/resume/v1/parse/file
This API takes ‘file’ (resume) as input to extract the candidate's information such as name, contact information, email id, education, work experience, and skills etc.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to parse resume using file.",
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "Resume upload."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| multipart/form-data | ResumeFileRequest |
Response
200 response.
copied![
{
"type": "object",
"description": "Response object after parsing resume.",
"properties": {
"status": {
"type": "string",
"description": "Status returned by the API."
},
"message": {
"type": "string",
"description": "Message string."
},
"messageKey": {
"type": "string",
"description": "Message key."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"data": {
"type": "object",
"description": "Data object which contains all the parsed fields.",
"properties": {
"resumedata": {
"type": "object",
"description": "Resumedata object which contains all the parsed fields.",
"properties": {
"personname": {
"type": "object",
"description": "Candidate personal details.",
"properties": {
"fullname": {
"type": "string",
"description": "Full name of Candidate."
},
"firstname": {
"type": "string",
"description": "First name of Candidate."
},
"middlename": {
"type": "string",
"description": "Middle name of Candidate."
},
"lastname": {
"type": "string",
"description": "Last name of Candidate."
}
}
},
"mobile": {
"type": "array",
"description": "Candidate contact details.",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "Mobile number of Candidate."
},
"formattednumber": {
"type": "string",
"description": "Formatted number of Candidate."
}
}
}
},
"emailaddress": {
"type": "string",
"description": "Email address of Candidate."
},
"altemailaddress": {
"type": "string",
"description": "Alternate Email other than primary mail."
},
"internetaddress": {
"type": "array",
"description": "Candidate Internet address details.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Internet address type."
},
"url": {
"type": "string",
"description": "Internet address URL."
}
}
}
},
"postaladdress": {
"type": "array",
"description": "Candidate postal details.",
"items": {
"type": "object",
"properties": {
"fulladdress": {
"type": "string",
"description": "Complete postal address."
},
"city": {
"type": "string",
"description": "City mentioned in address."
},
"state": {
"type": "string",
"description": "State mentioned in address."
},
"country": {
"type": "string",
"description": "Country."
},
"zipcode": {
"type": "string",
"description": "Zipcode."
},
"ispresent": {
"type": "string",
"description": "Is it the current address of the candidate."
}
}
}
},
"resumelanguage": {
"type": "string",
"description": "Language of resume content."
},
"languageknown": {
"type": "string",
"description": "Language known by candidate."
},
"experiencesummary": {
"type": "object",
"description": "Candidate experience summary.",
"properties": {
"currentemployer": {
"type": "string",
"description": "Candidate working in current Company."
},
"currentrole": {
"type": "string",
"description": "Current role of candidate."
},
"gapperiod": {
"type": "string",
"description": "Time frame for which candidate is not working."
},
"longeststay": {
"type": "string",
"description": "Longest time frame in a Company."
},
"averagestay": {
"type": "string",
"description": "Average stay."
},
"totalexperienceinmonths": {
"type": "integer",
"description": "Total experience in months."
},
"totalexperienceinyear": {
"type": "string",
"description": "Total experience in year."
}
}
},
"filename": {
"type": "string",
"description": "Attached file name."
},
"resumetext": {
"type": "string",
"description": "Resume Content."
},
"summary": {
"type": "string",
"description": "Summary."
},
"resumeskills": {
"type": "string",
"description": "Resume skills."
},
"skilltaxonomy": {
"type": "array",
"description": "Candidate skills history.",
"items": {
"type": "object",
"properties": {
"skillname": {
"type": "string",
"description": "Skill name."
},
"lastused": {
"type": "string",
"description": "Last used."
},
"monthsused": {
"type": "string",
"description": "Months used."
},
"availability": {
"type": "string",
"description": "Availability."
}
}
}
},
"educationhistory": {
"description": "Candidate education info.",
"type": "array",
"items": {
"type": "object",
"properties": {
"school": {
"type": "string",
"description": "College name."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "state"
},
"country": {
"type": "string",
"description": "Country."
},
"degree": {
"type": "string",
"description": "Degree."
},
"startdate": {
"type": "string",
"description": "Joining date."
},
"enddate": {
"type": "string",
"description": "End date."
},
"aggregate": {
"type": "string",
"description": "Aggregate values."
}
}
}
},
"workhistory": {
"description": "Candidate work or experience details.",
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "Company name."
},
"title": {
"type": "string",
"description": "Candidate Title."
},
"city": {
"type": "string",
"description": "City."
},
"state": {
"type": "string",
"description": "State."
},
"country": {
"type": "string",
"description": "Country."
},
"startdate": {
"type": "string",
"description": "Start date"
},
"description": {
"type": "string",
"description": "Experience description."
},
"enddate": {
"type": "string",
"description": "End date."
},
"skill": {
"type": "array",
"description": "Experience section skills.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
]400 response.
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "string",
"description": "Status code of encountered error."
},
"errors": {
"type": "array",
"description": "Error details.",
"items": {
"type": "object",
"description": "Error details.",
"properties": {
"errorAPI": {
"type": "string",
"description": "Status returned by the API."
},
"errorCode": {
"type": "string",
"description": "ErrorCode by the API."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"message": {
"type": "string",
"description": "Error message."
},
"messageKey": {
"type": "string",
"description": "Error message key."
}
}
}
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response. | ResumeResponse |
| 400 | 400 response. | ErrorResponse |
Job Parsing
The process of extracting important information from the raw job description is called Job Parsing. This information can include things like job titles, required skills, required experience, job duties, and qualifications.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//parser/job/v1/parse
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /parser/job/v1/parse
This API extract various features, such as job titles, required skills, required experience, etc. from the raw job descriptions. It also enhances these extracted features and stores them in a database for use in Phenom AI systems.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request data information.",
"properties": {
"jobDescription": {
"type": "string",
"description": "Raw job description."
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | JDRequest |
Response
found the API.
copied![
{
"type": "object",
"description": "Response data information.",
"properties": {
"status": {
"type": "integer"
},
"skills": {
"type": "array",
"description": "All extracted skills deemed important by skills importance.",
"items": {
"type": "string"
}
},
"skillRanking": {
"type": "array",
"description": "Importantness of extracted skills.",
"items": {
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "Extracted skill name."
},
"score": {
"type": "number",
"format": "float",
"description": "Extracted skill importance score."
}
}
}
},
"jobTeaser": {
"type": "string",
"description": "Job teaser from description."
},
"jobExperience": {
"type": "object",
"description": "Extracted experience information.",
"properties": {
"minOverallExp": {
"type": "integer",
"description": "Minimum experience required."
},
"maxOverallExp": {
"type": "integer",
"description": "Maximum experience required."
}
}
},
"language": {
"type": "string",
"description": "Job language."
},
"requirementSentences": {
"type": "array",
"description": "All requirement sentences.",
"items": {
"type": "string"
}
},
"responsibilitySentences": {
"type": "array",
"description": "All responsibility sentences.",
"items": {
"type": "string"
}
},
"experienceSentences": {
"type": "array",
"description": "All experience sentences.",
"items": {
"type": "string"
}
},
"softSkillsSentences": {
"type": "array",
"description": "All soft skill sentences.",
"items": {
"type": "string"
}
},
"skillsSentences": {
"type": "array",
"description": "All required skills sentences.",
"items": {
"type": "string"
}
},
"educationSentences": {
"type": "array",
"description": "All education/degree related sentences.",
"items": {
"type": "string"
}
},
"jobZone": {
"type": "integer",
"description": "Job zone."
},
"onet": {
"type": "array",
"description": "O*NET information containing onet code, title and score.",
"items": {
"type": "object",
"properties": {
"onetCode": {
"type": "string",
"description": "Job special code according O*NET standard."
},
"onetTitle": {
"type": "string",
"description": "Job special title according O*NET standard."
},
"score": {
"type": "number",
"format": "float",
"description": "O*NET score."
}
}
}
},
"jobPreferredLanguages": {
"type": "string",
"description": "Preferred languages mentioned in the job description."
},
"jobTypeFields": {
"type": "object",
"description": "Information about job experience type.",
"properties": {
"jobType": {
"type": "string",
"description": "Job type part-time/full-time."
},
"isIntern": {
"type": "boolean",
"description": "Is intern job."
},
"experienceType": {
"type": "string",
"description": "Experience Level."
},
"isEntrylevel": {
"type": "boolean",
"description": "Is entry level job."
}
}
},
"cleanedTitle": {
"type": "string",
"description": "Noise free title."
},
"languageFullform": {
"type": "string",
"description": "Job Language full form."
},
"jobDomain": {
"type": "string",
"description": "Job domain."
}
}
}
]Some exception occured while extracting features.
copied![
{
"type": "object",
"description": "Error Response.",
"properties": {
"status": {
"type": "string",
"description": "Status code of encountered error."
},
"errors": {
"type": "array",
"description": "Error details.",
"items": {
"type": "object",
"description": "Error details.",
"properties": {
"errorAPI": {
"type": "string",
"description": "Status returned by the API."
},
"errorCode": {
"type": "string",
"description": "ErrorCode by the API."
},
"timeStamp": {
"type": "string",
"description": "TimeStamp."
},
"message": {
"type": "string",
"description": "Error message."
},
"messageKey": {
"type": "string",
"description": "Error message key."
}
}
}
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | found the API. | JobResponse |
| 400 | Some exception occured while extracting features. | ErrorResponse |
User Management
API endpoints for user management.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//user-management/v1/users/search
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /user-management/v1/users/search
This API searches for users based on given filters.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Flag to indicate if the search functionality is enabled."
},
"searchKeyword": {
"type": "string",
"description": "Keyword to search for in user data."
},
"userIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of user IDs to include in the search."
},
"product": {
"type": "object",
"properties": {
"productTitle": {
"type": "string",
"description": "Title of the product associated with the user."
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of roles associated with the product."
}
},
"description": "Product-related search criteria."
},
"dateFilter": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the date filter."
},
"startDate": {
"type": "string",
"description": "Start date for the date filter."
},
"endDate": {
"type": "string",
"description": "End date for the date filter."
}
}
},
"description": "List of date filters for the search."
},
"usernames": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of usernames to include in the search."
},
"sortColumn": {
"type": "string",
"description": "Column to sort the search results by."
},
"sortOrder": {
"type": "string",
"description": "Order to sort the search results (ascending or descending)."
},
"selectors": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of selectors for the search."
},
"from": {
"type": "string",
"description": "Starting point for paginated results."
},
"size": {
"type": "string",
"description": "Number of results to return per page."
},
"is2FAEnabled": {
"type": "boolean",
"description": "Flag to indicate if 2FA is enabled for the users."
}
},
"description": "Request object for user search."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | SearchRequest |
Response
Successful response
copied![
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the user."
},
"userName": {
"type": "string",
"description": "Username of the user."
},
"firstName": {
"type": "string",
"description": "First name of the user."
},
"lastName": {
"type": "string",
"description": "Last name of the user."
},
"realm": {
"type": "string",
"description": "Realm of the user."
},
"email": {
"type": "string",
"description": "Email address of the user."
},
"userDesc": {
"type": "string",
"description": "Description of the user."
},
"enabled": {
"type": "boolean",
"description": "Flag indicating if the user is enabled."
},
"userType": {
"type": "string",
"description": "Type of the user."
},
"legacyUserId": {
"type": "string",
"description": "Legacy ID of the user."
},
"isEmailVerified": {
"type": "boolean",
"description": "Flag indicating if the user's email is verified."
},
"createdOn": {
"type": "number",
"description": "Timestamp indicating when the user was created."
},
"appAccessCount": {
"type": "number",
"description": "Count of applications the user has access to."
},
"groupCount": {
"type": "number",
"description": "Count of groups the user is a part of."
},
"configureOtp": {
"type": "boolean",
"description": "Flag indicating if OTP is configured for the user."
},
"orgName": {
"type": "string",
"description": "Name of the organization associated with the user."
}
}
},
"description": "List of user data."
},
"status": {
"type": "boolean",
"description": "Status of the search operation."
},
"errorCode": {
"type": "string",
"description": "The HTTP status code."
},
"errorDesc": {
"type": "string",
"description": "Description of the error."
},
"warningDesc": {
"type": "string",
"description": "Description of any warnings."
},
"from": {
"type": "number",
"description": "Starting index of the returned results."
},
"size": {
"type": "number",
"description": "Number of results returned in the response."
},
"total": {
"type": "number",
"description": "Total number of results matching the search criteria."
}
},
"description": "Response object for user search."
}
]Bad request
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"status": {
"type": "integer",
"description": "The HTTP status code."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
}
}
}
]Unauthorized
copied![
{
"type": "object",
"description": "Unauthorized response schema.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the response."
},
"status": {
"type": "integer",
"description": "The HTTP status code (e.g., 401)."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
},
"path": {
"type": "string",
"description": "The request path that led to this response."
}
}
}
]Forbidden
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"status": {
"type": "integer",
"description": "The HTTP status code."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
}
}
}
]Internal Server Error
copied![
{
"type": "object",
"description": "Error response schema.",
"properties": {
"status": {
"type": "integer",
"description": "The HTTP status code."
},
"error": {
"type": "string",
"description": "The error type or description."
},
"message": {
"type": "string",
"description": "Additional information or error message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Successful response | SearchResponse |
| 400 | Bad request | ErrorResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | ErrorResponse |
| 500 | Internal Server Error | ErrorResponse |
Tags
These API's allows to Create, Update and Delete Tags.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//tags-api/v1/tags
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /tags-api/v1/tags
This API allows you to Create a Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "The name of the tag to be created."
}
},
"required": {
"0": "tag"
},
"description": "Request object for creating a new tag."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateTagRequest |
Response
201 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the tag creation operation."
},
"message": {
"type": "string",
"description": "A human readable message describing the result of the tag creation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag creation operation occurred."
},
"id": {
"type": "string",
"description": "The unique identifier assigned to the newly created tag."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "id"
},
"description": "Response object for the tag creation operation."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]409 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a duplicate tag creation attempt."
},
"message": {
"type": "string",
"description": "A human readable message describing the duplicate tag creation attempt."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the duplicate tag creation attempt occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a duplicate tag creation attempt."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a failure related to tag processing."
},
"message": {
"type": "string",
"description": "A human readable message describing the details of the tag processing failure."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag processing failure occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a failure related to tag processing."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | 201 response | CreateTagResponse |
| 400 | 400 response | BadRequest |
| 409 | 409 response | CreateTagDuplicate |
| 500 | 500 response | TagFailure |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//tags-api/v1/tags
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /tags-api/v1/tags
This API allows you to get all Tags.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| from | query | integer | false |
| size | query | integer | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the get tags operation."
},
"message": {
"type": "string",
"description": "A human readable message describing the result of the get tags operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the get tags operation occurred."
},
"pagination": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of tags available."
},
"size": {
"type": "integer",
"description": "The number of tags in the current response."
},
"from": {
"type": "integer",
"description": "The index from which the tags are being retrieved."
}
},
"required": {
"0": "total",
"1": "size",
"2": "from"
},
"description": "Pagination details for the list of tags."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"description": "The date when the tag was created."
},
"tag": {
"type": "string",
"description": "The name of the tag."
}
},
"required": {
"0": "createdDate",
"1": "tag"
}
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
},
"description": "Response object for the get tags operation."
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetTagsResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequest |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//tags-api/v1/tags/{tag}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'DELETE /tags-api/v1/tags/{tag}
This API Deletes Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| tag | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the result of a tag-related operation."
},
"message": {
"type": "string",
"description": "A human readable message describing the result of the tag-related operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag-related operation occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a tag-related operation."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating that the tag to be deleted was not found."
},
"message": {
"type": "string",
"description": "A human readable message describing that the requested tag was not found for deletion."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the attempt to delete the tag not found occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a tag deletion attempt when the tag was not found."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a failure related to tag processing."
},
"message": {
"type": "string",
"description": "A human readable message describing the details of the tag processing failure."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag processing failure occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a failure related to tag processing."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | TagResponse |
| 400 | 400 response | BadRequest |
| 404 | 404 response | DeleteTagNotFound |
| 500 | 500 response | TagFailure |
put
copied!# You can also use wgetcurl -X PUT https://api.phenom.com//tags-api/v1/tags/{tag}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PUT /tags-api/v1/tags/{tag}
This API facilitates to Update the Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"newTagName": {
"description": "The new name of the tag.",
"type": "string"
}
},
"required": {
"0": "newTagName"
},
"description": "Request object for updating a tag.",
"example": {
"newTagName": "UpdatedTagName"
}
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| tag | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateTagRequest |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the result of a tag-related operation."
},
"message": {
"type": "string",
"description": "A human readable message describing the result of the tag-related operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag-related operation occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a tag-related operation."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a failure related to tag processing."
},
"message": {
"type": "string",
"description": "A human readable message describing the details of the tag processing failure."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag processing failure occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a failure related to tag processing."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | TagResponse |
| 400 | 400 response | BadRequest |
| 500 | 500 response | TagFailure |
Candidates
These API's allows to Add and Remove Tags to Candidates.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//tags-api/v1/tags/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /tags-api/v1/tags/candidates
This API allows you to Associate Tags to Candidates.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of candidate IDs to be associated with the specified tags."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags to be associated with the specified candidates."
}
},
"required": {
"0": "candidateIds",
"1": "tags"
},
"description": "Request object for associating tags with candidate IDs."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateTagsAssociation |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the result of a tag-related operation."
},
"message": {
"type": "string",
"description": "A human readable message describing the result of the tag-related operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag-related operation occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a tag-related operation."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a failure related to tag processing."
},
"message": {
"type": "string",
"description": "A human readable message describing the details of the tag processing failure."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag processing failure occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a failure related to tag processing."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | TagResponse |
| 400 | 400 response | BadRequest |
| 500 | 500 response | TagFailure |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//tags-api/v1/tags/candidates/delete
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /tags-api/v1/tags/candidates/delete
This API allows you to Remove tags from Candidates.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of candidate IDs to be associated with the specified tags."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags to be associated with the specified candidates."
}
},
"required": {
"0": "candidateIds",
"1": "tags"
},
"description": "Request object for associating tags with candidate IDs."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CandidateTagsAssociation |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating the result of a tag-related operation."
},
"message": {
"type": "string",
"description": "A human readable message describing the result of the tag-related operation."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag-related operation occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a tag-related operation."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a failure related to tag processing."
},
"message": {
"type": "string",
"description": "A human readable message describing the details of the tag processing failure."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the tag processing failure occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response object for a failure related to tag processing."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | TagResponse |
| 400 | 400 response | BadRequest |
| 500 | 500 response | TagFailure |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//tags-api/v1/tags/{tag}/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /tags-api/v1/tags/{tag}/candidates
This API allows you to get all CandidateIds for given Tag.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| tag | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the operation (e.g., success, failure)."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the operation result."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the operation was performed."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "Number of candidateIds per page in the paginated response."
},
"from": {
"type": "number",
"description": "Index of the first candidateId in the current response."
},
"totalCount": {
"type": "number",
"description": "Total count of candidateIds."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Pagination information for the response."
},
"data": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of strings containing candidateIds."
}
}
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetTagAssociationsResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequest |
Workflow-Status
The Workflow Status APIs allows you to add, update and delete candidates status.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/workflow-statuses
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/workflow-statuses
This API allows you to get workflow-status with the specified searchKey.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| from | query | integer | false |
| size | query | integer | false |
| searchName | query | string | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "Size of the data in the current response."
},
"from": {
"type": "number",
"description": "Start index of the data in the current response."
},
"totalCount": {
"type": "number",
"description": "Total count of items available."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Pagination information."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"statusId": {
"type": "string",
"description": "ID of the workflow status."
},
"name": {
"type": "string",
"description": "Name of the workflow status."
},
"statusCode": {
"type": "string",
"description": "Code associated with the workflow status."
},
"statusType": {
"type": "string",
"description": "Type of the workflow status."
},
"associatedWorkflows": {
"type": "array",
"items": {},
"description": "List of associated workflows."
},
"createdByRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "Unique identifier of the recruiter."
}
},
"required": {
"0": "recruiterUserId"
},
"description": "Information about the recruiter who created the status."
},
"createdDate": {
"type": "string",
"description": "Date when the status was created."
},
"updatedDate": {
"type": "string",
"description": "Date when the status was last updated."
}
},
"required": {
"0": "statusId",
"1": "name",
"2": "statusCode",
"3": "statusType",
"4": "createdByRecruiterInfo",
"5": "createdDate",
"6": "updatedDate"
},
"description": "Information about a workflow status."
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
},
"description": "Response containing information about all workflow statuses."
}
]204 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the creation response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the creation response."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the creation response occurred."
},
"id": {
"type": "string",
"description": "The identifier associated with the created entity."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "id"
},
"description": "Creation response object."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetAllWorkflowStatusResponse |
| 204 | 204 response | CreationResponse |
| 400 | 400 response | BadRequestError |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//projects-api/v1/workflow-statuses
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /projects-api/v1/workflow-statuses
This API allows you to create a workflow-status.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the workflow status."
},
"statusType": {
"type": "string",
"description": "Type of the workflow status."
},
"statusCode": {
"type": "string",
"description": "Status code of the workflow status."
},
"createdByRecruiterInfo": {
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter who created the workflow status."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter who created the workflow status."
},
"recruiterUserId": {
"type": "string",
"description": "User ID of the recruiter who created the workflow status."
}
},
"required": {
"0": "recruiterName",
"1": "recruiterEmail",
"2": "recruiterUserId"
},
"description": "Information about the recruiter who created the workflow status."
}
},
"required": {
"0": "name",
"1": "statusType",
"2": "statusCode",
"3": "createdByRecruiterInfo"
},
"description": "Object representing the request to create a workflow status."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateWorkflowStatusRequest |
Response
201 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the creation response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the creation response."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the creation response occurred."
},
"id": {
"type": "string",
"description": "The identifier associated with the created entity."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "id"
},
"description": "Creation response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | 201 response | CreationResponse |
| 500 | 500 response | InternalServerError |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//projects-api/v1/workflow-statuses/{statusId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'DELETE /projects-api/v1/workflow-statuses/{statusId}
This API deletes the workflow-status of a given statusId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| statusId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response containing information about the deletion of a workflow status."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | DeleteWorkflowStatusResponse |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/workflow-statuses/{statusId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/workflow-statuses/{statusId}
This API retrieves all the details of a workflow-status using its unique statusId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| statusId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the workflow status."
},
"statusCode": {
"type": "string",
"description": "Status code associated with the workflow status."
},
"statusType": {
"type": "string",
"description": "Type of the workflow status."
},
"associatedWorkflows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workflowName": {
"type": "string",
"description": "Name of the associated workflow."
},
"workflowId": {
"type": "string",
"description": "ID of the associated workflow."
}
},
"required": {
"0": "workflowName",
"1": "workflowId"
}
},
"description": "List of associated workflows."
},
"createdByRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "ID of the recruiter who created the status."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter who created the status."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter who created the status."
}
},
"required": {
"0": "recruiterUserId",
"1": "recruiterName",
"2": "recruiterEmail"
},
"description": "Information about the recruiter who created the status."
},
"createdDate": {
"type": "string",
"description": "Timestamp of when the status was created."
},
"updatedDate": {
"type": "string",
"description": "Timestamp of when the status was last updated."
}
},
"required": {
"0": "name",
"1": "statusCode",
"2": "statusType",
"3": "associatedWorkflows",
"4": "createdByRecruiterInfo",
"5": "createdDate",
"6": "updatedDate"
}
},
"description": "List of workflow status information."
}
},
"description": "Response containing information about workflow status."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetWorkflowStatusResponse |
| 404 | 404 response | BadRequestError |
| 500 | 500 response | InternalServerError |
Workflows
These APIs allows you to create, update and delete Workflows.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/workflows
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/workflows
This API allows you to get workflows with the specified searchKey.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| from | query | integer | false |
| size | query | integer | false |
| searchName | query | string | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the response status."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the response was generated."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"description": "The number of items in the current page."
},
"from": {
"type": "integer",
"description": "The starting index of items in the current page."
},
"totalCount": {
"type": "integer",
"description": "The total number of items available."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Pagination details for the response."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workflowName": {
"type": "string",
"description": "The name of the workflow."
},
"createdDate": {
"type": "string",
"description": "The date when the workflow was created."
},
"updatedDate": {
"type": "string",
"description": "The date when the workflow was last updated."
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the workflow stage."
},
"statusCode": {
"type": "string",
"description": "The status code associated with the stage."
},
"statusId": {
"type": "string",
"description": "The unique identifier for the stage."
},
"furtherTransitionStages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the further transition stage."
},
"statusCode": {
"type": "string",
"description": "The status code associated with the further transition stage."
}
},
"required": {
"0": "name",
"1": "statusCode"
},
"description": "Details of a further transition stage."
}
},
"isRejectionStage": {
"type": "boolean",
"description": "Indicates whether the stage is a rejection stage."
},
"isFinalStage": {
"type": "boolean",
"description": "Indicates whether the stage is a final stage."
},
"isDeletedStage": {
"type": "boolean",
"description": "Indicates whether the stage is a deleted stage."
}
},
"required": {
"0": "name",
"1": "statusCode",
"2": "statusId",
"3": "furtherTransitionStages",
"4": "isRejectionStage",
"5": "isFinalStage",
"6": "isDeletedStage"
},
"description": "Details of an individual workflow stage."
},
"description": "An array containing details of workflow stages."
},
"createdByRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "The unique identifier for the recruiter who created the workflow."
}
},
"required": {
"0": "recruiterUserId"
},
"description": "Details of the recruiter who created the workflow."
},
"workflowId": {
"type": "string",
"description": "The unique identifier for the workflow."
},
"activeStagesCount": {
"type": "integer",
"description": "The number of active stages in the workflow."
}
},
"required": {
"0": "workflowName",
"1": "createdDate",
"2": "updatedDate",
"3": "stages",
"4": "createdByRecruiterInfo",
"5": "workflowId",
"6": "activeStagesCount"
},
"description": "Details of an individual workflow within the array."
},
"description": "An array containing details of workflows."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
},
"description": "Response object for a successful fetch of workflows."
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetAllWorkflowResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//projects-api/v1/workflows
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /projects-api/v1/workflows
This API allows you to create a workflow.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"workflowName": {
"type": "string",
"description": "Name of the workflow to be created."
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the workflow stage."
},
"statusCode": {
"type": "string",
"description": "Status code associated with the workflow stage."
},
"statusId": {
"type": "string",
"description": "ID associated with the status of the workflow stage."
},
"isRejectionStage": {
"type": "boolean",
"description": "Boolean indicating whether the stage is a rejection stage."
},
"isFinalStage": {
"type": "boolean",
"description": "Boolean indicating whether the stage is a final stage."
},
"furtherTransitionStages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the further transition stage."
},
"statusCode": {
"type": "string",
"description": "Status code associated with the further transition stage."
}
},
"required": {
"0": "name",
"1": "statusCode"
}
},
"description": "Array of objects representing further transition stages."
}
},
"required": {
"0": "name",
"1": "statusCode",
"2": "statusId",
"3": "isRejectionStage",
"4": "isFinalStage"
}
},
"description": "Array of objects representing workflow stages."
}
},
"required": {
"0": "workflowName",
"1": "stages"
},
"description": "Object representing the request to create a workflow."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateWorkflowRequest |
Response
201 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the creation response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the creation response."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the creation response occurred."
},
"id": {
"type": "string",
"description": "The identifier associated with the created entity."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "id"
},
"description": "Creation response object."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | 201 response | CreationResponse |
| 400 | 400 response | BadRequestError |
| 500 | 500 response | InternalServerError |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//projects-api/v1/workflows/{workflowId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'DELETE /projects-api/v1/workflows/{workflowId}
This API deletes the workflow of a given workflow id.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| workflowId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
},
"description": "Response confirming the deletion of a workflow."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | DeleteWorkflowResponse |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/workflows/{workflowId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/workflows/{workflowId}
This API retrieves all the details of a workflow using its unique workflow ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| workflowId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workflowName": {
"type": "string",
"description": "Name of the workflow."
},
"createdDate": {
"type": "string",
"description": "Timestamp when the workflow was created."
},
"updatedDate": {
"type": "string",
"description": "Timestamp when the workflow was last updated."
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the workflow stage."
},
"statusCode": {
"type": "string",
"description": "Status code of the workflow stage."
},
"statusId": {
"type": "string",
"description": "ID of the workflow stage."
},
"externalIntegrations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"integrationType": {
"type": "string",
"description": "Name of the integration."
},
"type": {
"type": "string",
"description": "Type of the integration."
},
"name": {
"type": "string",
"description": "Name of the category."
}
},
"description": "External Integrations Details."
}
},
"furtherTransitionStages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the further transition stage."
},
"statusCode": {
"type": "string",
"description": "Status code of the further transition stage."
}
},
"required": {
"0": "name",
"1": "statusCode"
},
"description": "Further transition stage details."
}
},
"isRejectionStage": {
"type": "boolean",
"description": "Indicates if the stage is a rejection stage."
},
"isFinalStage": {
"type": "boolean",
"description": "Indicates if the stage is a final stage."
},
"isDeletedStage": {
"type": "boolean",
"description": "Indicates if the stage is deleted."
}
},
"required": {
"0": "name",
"1": "statusCode",
"2": "statusId",
"3": "furtherTransitionStages",
"4": "isRejectionStage",
"5": "isFinalStage",
"6": "isDeletedStage"
},
"description": "Workflow stage details."
}
},
"createdByRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "ID of the recruiter who created the workflow."
}
},
"required": {
"0": "recruiterUserId"
},
"description": "Information about the recruiter who created the workflow."
},
"workflowId": {
"type": "string",
"description": "ID of the workflow."
},
"associatedProjects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "ID of the associated project."
},
"projectName": {
"type": "string",
"description": "Name of the associated project."
}
},
"required": {
"0": "projectId",
"1": "projectName"
},
"description": "Details of the associated project."
}
},
"updatedByRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "ID of the recruiter who last updated the workflow."
}
},
"required": {
"0": "recruiterUserId"
},
"description": "Information about the recruiter who last updated the workflow."
}
},
"required": {
"0": "workflowName",
"1": "createdDate",
"2": "updatedDate",
"3": "stages",
"4": "createdByRecruiterInfo",
"5": "workflowId",
"6": "associatedProjects",
"7": "updatedByRecruiterInfo"
},
"description": "Details of a workflow."
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "data"
},
"description": "Response containing information about workflows."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetWorkflowResponse |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
put
copied!# You can also use wgetcurl -X PUT https://api.phenom.com//projects-api/v1/workflows/{workflowId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PUT /projects-api/v1/workflows/{workflowId}
This API is used to replace Workflow based on WorkflowId
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"workflowName": {
"type": "string",
"description": "Name of the workflow."
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the workflow stage."
},
"statusCode": {
"type": "string",
"description": "Status code of the workflow stage."
},
"statusId": {
"type": "string",
"description": "Status ID of the workflow stage."
},
"furtherTransitionStages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the further transition stage."
},
"statusCode": {
"type": "string",
"description": "Status code of the further transition stage."
}
},
"required": {
"0": "name",
"1": "statusCode"
},
"description": "Information about further transition stages."
}
},
"isRejectionStage": {
"type": "boolean",
"description": "Flag indicating whether the stage is a rejection stage."
},
"isFinalStage": {
"type": "boolean",
"description": "Flag indicating whether the stage is a final stage."
},
"isDeletedStage": {
"type": "boolean",
"description": "Flag indicating whether the stage is deleted."
}
},
"required": {
"0": "name",
"1": "statusCode",
"2": "statusId"
},
"description": "Information about the workflow stage."
}
}
},
"required": {
"0": "workflowName",
"1": "stages"
},
"description": "Object representing the request to replace a workflow."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| workflowId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | ReplaceWorkflowRequest |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response confirming the update of a workflow."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | UpdateWorkflowResponse |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//projects-api/v1/workflows/{workflowId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /projects-api/v1/workflows/{workflowId}
This API is used to update a workflow using its unique workflowId
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"opType": {
"type": "string",
"description": "Operation type for updating the workflow."
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the workflow stage."
}
},
"required": {
"0": "name"
}
},
"description": "Array of objects representing workflow stages to be updated."
}
},
"required": {
"0": "opType",
"1": "stages"
},
"description": "Object representing the request to update a workflow."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| workflowId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateWorkflowRequest |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response confirming the update of a workflow."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | UpdateWorkflowResponse |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
Projects
These APIs allows you to create, update and delete Projects.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/projects
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/projects
This API allows you to get projects with the specified searchKey.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| from | query | integer | false |
| size | query | integer | false |
| searchKey | query | string | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the response status."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the response was generated."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"description": "The number of items in the current page."
},
"from": {
"type": "integer",
"description": "The starting index of items in the current page."
},
"totalCount": {
"type": "integer",
"description": "The total number of items available."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Pagination details for the response."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"projectName": {
"type": "string",
"description": "The name of the project."
},
"projectId": {
"type": "string",
"description": "The unique identifier for the project."
},
"createdDate": {
"type": "string",
"description": "The date when the project was created."
},
"createdRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "The unique identifier for the recruiter who created the project."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter who created the project."
},
"recruiterEmail": {
"type": "string",
"description": "The email address of the recruiter who created the project."
}
},
"required": {
"0": "recruiterUserId",
"1": "recruiterName",
"2": "recruiterEmail"
},
"description": "Details of the recruiter who created the project."
},
"workflowId": {
"type": "string",
"description": "The unique identifier for the workflow associated with the project."
},
"workflowName": {
"type": "string",
"description": "The name of the workflow associated with the project."
}
},
"required": {
"0": "projectName",
"1": "projectId",
"2": "createdDate",
"3": "createdRecruiterInfo",
"4": "workflowId",
"5": "workflowName"
},
"description": "Details of an individual project within the array."
},
"description": "An array containing details of projects."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
},
"description": "Response object for a successful fetch of projects."
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetAllProjectsResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequestError |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//projects-api/v1/projects
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /projects-api/v1/projects
This API allows you to create a project.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"projectName": {
"type": "string",
"description": "Name of the project."
},
"projectDescription": {
"type": "string",
"description": "Description of the project."
},
"isConfidential": {
"type": "boolean",
"description": "Flag indicating whether the project is confidential."
},
"categoryList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"internalCategoryId": {
"type": "string",
"description": "Internal category ID."
},
"category": {
"type": "string",
"description": "Category name."
}
},
"required": {
"0": "internalCategoryId",
"1": "category"
}
},
"description": "List of project categories."
},
"endDate": {
"type": "string",
"description": "End date of the project."
},
"hiringTeamList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the team member."
},
"emailId": {
"type": "string",
"description": "Email ID of the team member."
},
"type": {
"type": "string",
"description": "Type of the team member."
},
"role": {
"type": "string",
"description": "Role of the team member."
},
"id": {
"type": "string",
"description": "ID of the team member."
}
},
"required": {
"0": "name",
"1": "emailId",
"2": "type",
"3": "role",
"4": "id"
}
},
"description": "List of hiring team members."
},
"projectAttachmentList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fileName": {
"type": "string",
"description": "Name of the attached file."
},
"description": {
"type": "string",
"description": "Description of the attached file."
},
"fileUrl": {
"type": "string",
"description": "URL of the attached file."
},
"uploadedByEmail": {
"type": "string",
"description": "Email of the user who uploaded the file."
},
"uploadedByName": {
"type": "string",
"description": "Name of the user who uploaded the file."
},
"size": {
"type": "integer",
"format": "int32",
"description": "Size of the attached file in bytes."
}
},
"required": {
"0": "fileName",
"1": "description",
"2": "fileUrl",
"3": "uploadedByEmail",
"4": "uploadedByName",
"5": "size"
}
},
"description": "List of project attachments."
},
"workflowId": {
"type": "string",
"description": "ID of the workflow associated with the project."
},
"workflowName": {
"type": "string",
"description": "Name of the workflow associated with the project."
},
"createdRecruiterInfo": {
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Name of the recruiter who created the project."
},
"recruiterEmail": {
"type": "string",
"description": "Email of the recruiter who created the project."
},
"recruiterUserId": {
"type": "string",
"description": "User ID of the recruiter who created the project."
}
},
"description": "Information about the recruiter who created the project."
},
"status": {
"type": "string",
"description": "Status of the project."
}
},
"required": {
"0": "projectName",
"1": "isConfidential",
"2": "hiringTeamList",
"3": "workflowId",
"4": "workflowName",
"5": "createdRecruiterInfo",
"6": "status"
},
"description": "Object representing the request to create a project."
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | CreateProjectRequest |
Response
201 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the creation response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the creation response."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the creation response occurred."
},
"id": {
"type": "string",
"description": "The identifier associated with the created entity."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "id"
},
"description": "Creation response object."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | 201 response | CreationResponse |
| 400 | 400 response | BadRequestError |
| 500 | 500 response | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/projects/{projectId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/projects/{projectId}
This API retrieves all the details of a project using its unique project ID.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| projectId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the response status."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the response was generated."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"projectName": {
"type": "string",
"description": "The name of the project."
},
"projectDescription": {
"type": "string",
"description": "The description of the project."
},
"projectId": {
"type": "string",
"description": "The unique identifier for the project."
},
"createdDate": {
"type": "string",
"description": "The date when the project was created."
},
"updatedDate": {
"type": "string",
"description": "The date when the project was last updated."
},
"endDate": {
"type": "string",
"description": "The end date of the project."
},
"status": {
"type": "string",
"description": "The status of the project."
},
"isConfidential": {
"type": "string",
"description": "Indicates whether the project is confidential."
},
"createdRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "The unique identifier for the recruiter who created the project."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter who created the project."
},
"recruiterEmail": {
"type": "string",
"description": "The email of the recruiter who created the project."
}
},
"description": "Details of the recruiter who created the project."
},
"updatedRecruiterInfo": {
"type": "object",
"properties": {
"recruiterUserId": {
"type": "string",
"description": "The unique identifier for the recruiter who last updated the project."
},
"recruiterName": {
"type": "string",
"description": "The name of the recruiter who last updated the project."
},
"recruiterEmail": {
"type": "string",
"description": "The email of the recruiter who last updated the project."
}
},
"description": "Details of the recruiter who last updated the project."
},
"workflowId": {
"type": "string",
"description": "The unique identifier for the workflow associated with the project."
},
"workflowName": {
"type": "string",
"description": "The name of the workflow associated with the project."
},
"brand": {
"type": "string",
"description": "The brand associated with the project."
},
"source": {
"type": "string",
"description": "The source of the project."
},
"hiringTeamList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of a member in the hiring team."
},
"emailId": {
"type": "string",
"description": "The email address of a member in the hiring team."
},
"role": {
"type": "string",
"description": "The role of a member in the hiring team."
},
"id": {
"type": "string",
"description": "The unique identifier for a member in the hiring team."
},
"type": {
"type": "string",
"description": "The type of a member in the hiring team."
},
"pictureS3Url": {
"type": "string",
"description": "The URL of the picture of a member in the hiring team."
}
}
},
"description": "An array containing details of the hiring team for the project."
},
"categoryList": {
"type": "array",
"items": {},
"description": "An array containing details of categories associated with the project."
},
"projectAttachmentList": {
"type": "array",
"items": {},
"description": "An array containing details of attachments associated with the project."
},
"matchingCriteria": {
"type": "object",
"properties": {
"mustHaveSkills": {
"type": "array",
"items": {},
"description": "An array containing details of must-have skills for the project."
},
"goodToHaveSkills": {
"type": "array",
"items": {},
"description": "An array containing details of good-to-have skills for the project."
},
"locationList": {
"type": "array",
"items": {},
"description": "An array containing details of locations for the project."
},
"yearsOfExperience": {
"type": "object",
"properties": {
"min": {
"type": "number",
"description": "The minimum years of experience required for the project."
},
"max": {
"type": "number",
"description": "The maximum years of experience required for the project."
},
"unit": {
"type": "string",
"description": "The unit of years for the experience requirement (e.g., 'years')."
}
},
"description": "Details of the years of experience required for the project."
},
"distance": {
"type": "object",
"properties": {
"min": {
"type": "number",
"description": "The minimum distance for the project."
},
"max": {
"type": "number",
"description": "The maximum distance for the project."
},
"unit": {
"type": "string",
"description": "The unit of distance for the project (e.g., 'miles')."
}
},
"description": "Details of the distance for the project."
},
"similarJobTitle": {
"type": "string",
"description": "The similar job title for the project."
},
"idealCandidate": {
"type": "object",
"description": "Details of the ideal candidate for the project."
}
},
"description": "Details of the matching criteria for the project."
},
"categoryNames": {
"type": "array",
"items": {},
"description": "An array containing names of categories associated with the project."
},
"confidential": {
"type": "string",
"description": "Indicates whether the project is confidential."
},
"candidateInfos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "The unique identifier for a candidate in the project."
},
"parentId": {
"type": "string",
"description": "The unique identifier for the parent of the candidate in the project."
}
},
"required": {
"0": "userId",
"1": "parentId"
},
"description": "Details of a candidate in the project."
},
"description": "An array containing details of candidates associated with the project."
}
},
"required": {
"0": "projectName",
"1": "projectDescription",
"2": "projectId",
"3": "createdDate",
"4": "updatedDate",
"5": "endDate",
"6": "status",
"7": "isConfidential",
"8": "createdRecruiterInfo",
"9": "updatedRecruiterInfo",
"10": "workflowId",
"11": "workflowName",
"12": "brand",
"13": "source",
"14": "hiringTeamList",
"15": "categoryList",
"16": "projectAttachmentList",
"17": "matchingCriteria",
"18": "categoryNames",
"19": "confidential",
"20": "candidateInfos"
},
"description": "Details of an individual project within the array."
},
"description": "An array containing details of projects."
}
},
"description": "Response object for a successful fetch of projects."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetProjectsResponse |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
patch
copied!# You can also use wgetcurl -X PATCH https://api.phenom.com//projects-api/v1/projects/{projectId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'PATCH /projects-api/v1/projects/{projectId}
This API allows you to update project with the specified projectId.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"projectName": {
"type": "string",
"description": "Updated name of the project."
},
"projectDescription": {
"type": "string",
"description": "Updated description of the project."
},
"isConfidential": {
"type": "boolean",
"description": "Flag indicating whether the project is confidential."
},
"categoryList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"internalCategoryId": {
"type": "string",
"description": "Internal category ID."
},
"category": {
"type": "string",
"description": "Updated category name."
}
},
"required": {
"0": "internalCategoryId",
"1": "category"
}
},
"description": "Updated list of project categories."
},
"endDate": {
"type": "string",
"description": "Updated end date of the project."
},
"updatedRecruiterInfo": {
"type": "object",
"properties": {
"recruiterName": {
"type": "string",
"description": "Updated name of the recruiter."
},
"recruiterEmail": {
"type": "string",
"description": "Updated email of the recruiter."
},
"recruiterUserId": {
"type": "string",
"description": "Updated user ID of the recruiter."
}
},
"description": "Updated information about the recruiter who updated the project."
},
"candidateInfos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "ID of the candidate to be added or updated in the project."
}
},
"required": {
"0": "userId"
}
},
"description": "List of candidate information to be added or updated in the project."
}
},
"description": "Object representing the request to update a project."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| projectId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | UpdateProjectRequest |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the update operation."
},
"message": {
"type": "string",
"description": "Additional message providing information about the update operation."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the update response was generated."
}
},
"required": {
"0": "status",
"1": "timestamp"
},
"description": "Object representing the response to a project update operation."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | UpdateProjectResponse |
| 404 | 404 response | NotFoundError |
| 500 | 500 response | InternalServerError |
Candidates
These APIs allows you to add, update and delete candidates from Projects.
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/candidates/{candidateId}/project-activities
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/candidates/{candidateId}/project-activities
This API allows you to get all the Project Activities for a Candidate
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| candidateId | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "Number of items in the response."
},
"from": {
"type": "number",
"description": "Start index of the items in the response."
},
"totalCount": {
"type": "number",
"description": "Total count of items available."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Pagination information."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recruitersUserId": {
"type": "string",
"description": "User ID of the recruiter."
},
"candidateId": {
"type": "string",
"description": "ID of the candidate."
},
"projectName": {
"type": "string",
"description": "Name of the project."
},
"projectId": {
"type": "string",
"description": "ID of the project."
},
"actionType": {
"type": "string",
"description": "Type of the action."
},
"actionValue": {
"type": "string",
"description": "Value associated with the action."
},
"createdDate": {
"type": "string",
"description": "Timestamp of when the activity was created."
},
"scopeAttr": {
"type": "object",
"properties": {
"scopeId": {
"type": "string",
"description": "ID associated with the scope."
}
},
"required": {
"0": "scopeId"
},
"description": "Scope attribute information."
},
"recruiterName": {
"type": "string",
"description": "Name of the recruiter."
}
},
"required": {
"0": "recruitersUserId",
"1": "candidateId",
"2": "projectName",
"3": "projectId",
"4": "actionType",
"5": "actionValue",
"6": "createdDate",
"7": "scopeAttr",
"8": "recruiterName"
},
"description": "Information about a project activity."
}
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp",
"3": "pagination",
"4": "data"
},
"description": "Response containing information about project activities."
}
]204 response
copied![
{}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]404 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the not found error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the not found error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the not found error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Not found error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetProjectActivitiesResponse |
| 204 | 204 response | |
| 400 | 400 response | BadRequestError |
| 404 | 404 response | NotFoundError |
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//projects-api/v1/projects/{projectId}/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'POST /projects-api/v1/projects/{projectId}/candidates
This API allows you to assign Candidate to a project
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Body Parameter
copied![
{
"type": "object",
"properties": {
"projectName": {
"type": "string",
"description": "Name of the project to which candidates are being assigned."
},
"candidateInfos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "User ID of the candidate being assigned to the project."
}
},
"required": {
"0": "userId"
}
},
"description": "List of candidate information objects."
}
},
"required": {
"0": "projectName",
"1": "candidateInfos"
},
"description": "Object representing the assignment of candidates to a project."
}
]Parameters
| Name | In | Type | Required |
|---|---|---|---|
| projectId | path | string | true |
Request Parameters
| Type | Name |
|---|---|
| application/json | AssignCandidatesToProject |
Response
201 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of the response."
},
"message": {
"type": "string",
"description": "Message associated with the response."
},
"timestamp": {
"type": "string",
"description": "Timestamp of the response."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Response containing information about the assignment of a candidate to a project."
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the error response."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The API or endpoint associated with the error."
},
"message": {
"type": "string",
"description": "A descriptive error message."
}
},
"description": "Details of an individual error within the array."
},
"description": "An array containing details of errors."
}
},
"description": "Error response object for a bad request."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 201 | 201 response | AssignCandidateToProjectResponse |
| 400 | 400 response | BadRequestError |
| 500 | 500 response | InternalServerError |
get
copied!# You can also use wgetcurl -X GET https://api.phenom.com//projects-api/v1/projects/{projectId}/candidates
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'GET /projects-api/v1/projects/{projectId}/candidates
This API allows you to get all CandidateIds for given Project.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| projectId | path | string | true |
| from | query | integer | false |
| size | query | integer | false |
Response
200 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Indicates the status of the operation (e.g., success, failure)."
},
"message": {
"type": "string",
"description": "A human readable message providing details about the operation result."
},
"timestamp": {
"type": "string",
"description": "Timestamp indicating when the operation was performed."
},
"pagination": {
"type": "object",
"properties": {
"size": {
"type": "number",
"description": "Number of candidateIds per page in the paginated response."
},
"from": {
"type": "number",
"description": "Index of the first candidateId in the current response."
},
"totalCount": {
"type": "number",
"description": "Total count of candidateIds."
}
},
"required": {
"0": "size",
"1": "from",
"2": "totalCount"
},
"description": "Pagination information for the response."
},
"data": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of strings containing candidateIds."
}
}
}
]204 response
copied![
{
"type": "object",
"description": "Response indicating no data has been found.",
"properties": {}
}
]400 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status indicating a bad request."
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "The timestamp when the error occurred."
},
"errorAPI": {
"type": "string",
"description": "The specific API error code or identifier."
},
"message": {
"type": "string",
"description": "A human readable error message describing the issue."
}
},
"required": {
"0": "timestamp",
"1": "errorAPI",
"2": "message"
},
"description": "Details of an individual error within the array."
}
}
},
"required": {
"0": "status",
"1": "errors"
},
"description": "Response object for a bad request, containing details about errors."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | GetProjectAssociationsResponse |
| 204 | 204 response | NoContentResponse |
| 400 | 400 response | BadRequest |
delete
copied!# You can also use wgetcurl -X DELETE https://api.phenom.com//projects-api/v1/projects/{projectId}/candidates/{candidateId}
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'
-H 'x-ph-userid: string'DELETE /projects-api/v1/projects/{projectId}/candidates/{candidateId}
This API allows you to delete Candidate from a project
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
| x-ph-userid | header | string | true |
Parameters
| Name | In | Type | Required |
|---|---|---|---|
| projectId | path | string | true |
| candidateId | path | string | true |
Response
200 response
copied![
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "A message related to the deletion of the candidate from the project."
}
},
"required": {
"0": "message"
},
"description": "Response containing information about the deletion of a candidate from a project."
}
]500 response
copied![
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the internal server error response."
},
"message": {
"type": "string",
"description": "A descriptive message associated with the internal server error."
},
"timestamp": {
"type": "string",
"description": "The timestamp indicating when the internal server error occurred."
}
},
"required": {
"0": "status",
"1": "message",
"2": "timestamp"
},
"description": "Internal server error response object."
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | DeleteCandidateFromProject |
| 500 | 500 response | InternalServerError |
Prediction
An API that predicts skills based on job titles and provided skill sets.
post
copied!# You can also use wgetcurl -X POST https://api.phenom.com//prediction/v1/skills
-H 'Content-type: application/json'
-H 'Accept: application/json'
-H 'Authorization: string'POST /prediction/v1/skills
An API that predicts skills based on job titles and provided skill sets.
Headers
| Name | In | Type | Required |
|---|---|---|---|
| Authorization | header | string | true |
Body Parameter
copied![
{
"type": "object",
"description": "Request object to get matching skills for given details.",
"properties": {
"titles": {
"title": "Titles",
"type": "array",
"description": "Titles' List.",
"items": {
"type": "string",
"description": "List of titles."
}
},
"skills": {
"title": "Skills",
"type": "array",
"description": "Skills' List.",
"items": {
"type": "string",
"description": "List of skills."
}
},
"size": {
"title": "Size",
"type": "integer",
"description": "Size of skills to return."
},
"source": {
"title": "Source",
"description": "Source.",
"type": "string"
}
}
}
]Request Parameters
| Type | Name |
|---|---|
| application/json | SkillPredictionRequest |
Response
200 response
copied![
{
"required": {
"0": "status"
},
"description": "Skills prediction response.",
"type": "object",
"properties": {
"status": {
"title": "Status",
"description": "Status of response.",
"type": "string"
},
"totalHits": {
"title": "Totalhits",
"description": "Total number of hits.",
"type": "integer"
},
"data": {
"SkillResults": {
"type": "object",
"description": "Predicted Skills.",
"properties": {
"results": {
"title": "Results",
"type": "array",
"description": "Results details.",
"items": {
"SkillResult": {
"type": "object",
"description": "Details of skills.",
"properties": {
"score": {
"title": "Score",
"description": "Matching score of a skill.",
"type": "number",
"format": "double"
},
"skill": {
"title": "Skill",
"description": "Matching skill.",
"type": "string"
}
}
}
}
}
}
}
}
}
}
]Bad Request
copied![
{
"description": "Bad request details.",
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status of bad request."
},
"message": {
"type": "string",
"description": "Bad request message."
}
}
}
]Server Error
copied![
{
"type": "object",
"description": "Error response details.",
"properties": {
"status": {
"type": "string",
"description": "Status of encountered error."
},
"message": {
"type": "string",
"description": "Error message."
}
}
}
]Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 200 response | SkillPredictionResponse |
| 400 | Bad Request | BadRequest |
| 500 | Server Error | ErrorResponse |
