Candidate Object Schema

The candidate object contains the metadata about a candidate

FieldField TypeDescription
idIntegerUnique ID of the candidate
first_nameStringFirst name of the candidate
last_nameStringLast name of the candidate
emailStringEmail ID of the candidate
phoneStringPhone number of the candidate
descriptionStringA brief description about the candidate.
resume.file_nameStringFile name of the resume.
resume.contentStringContents of the file in a Base64 encoded format. This field is available only for creating and editing resumes on a candidate.
resume.file_urlUrl
(readonly)
A hyperlink which links to location where the resume can be downloaded.

For example:

Response Headers: Content-Disposition: attachment
created_dateTimestamp

(read only)
Timestamp of when the candidate was added to Trakstar Hire
updated_dateTimestamp

(read only)
Timestamp of when the candidate details were last updated.
profile_dataArray of objectsIn addition to the details above, Trakstar Hire allows you to add custom metadata to candidates.

For example, you want to specify a candidate's github profile, or his salary expectation, then the the profile data will look like

[{ "name" : "github profile", "value": "https://github.com/johndoe" }]

Please note that editing the profile data via PATCH request will result in an automatic change of the field type to large_text.
source StringThis represents the source to which a candidate is attributed to in Trakstar Hire. For example, if the candidate came from a job board called Acme Inc. then the source will be Acme Inc.
source_type String
(read only)
Represents the source type.
In cases when a candidate is created using the api, it will be API
created_byObject
(read only)
An object representing the user who created the candidate which is the form
{ "id": 1, "email": "john@doe.com", "name": "John Doe" }
assigned_toObject
(read only)
An object representing the user who is assigned to the candidate
opening_id IntegerUnique Id of the Opening to which the candidate belongs
stage_id IntegerUnique Id of the Stage to which the candidate belongs
stage_name String (read only)Name of the Stage to which the candidate belongs
state String (read only)Describes the state in which the candidate is. Can be one of ['in_process' 'hired' 'rejected' 'declined_offer' 'onhold' 'withdrawn' 'spam' 'archived' 'onhold_prospecting' 'did_not_convert']
state_metadata Object (read only)Additional information pertaining to a state. Like, HIRED or REJECTED are end states for a candidate. So, once you mark a candidate as one of the two states, you normally would have a reason. All the more important when you reject the said candidate.
The state_metadata holds that extra reason and explanation information.
"state_metadata": { "reason": "Not a fit", "explanation": "Underqualified" },

Example Candidate Object

{ "updated_date": 1473159406, "first_name": "richard", "last_name": "hendricks", "description": "Test from API", "resume": { "content": "SGVsbG8gbXkgbmFtZSBpcyBhc2h3aW4uIGdpdmUgbWUgYSBqb2Iu", "file_name": "hendricks resume.txt" }, "email": "rhendricks@piedpiper.com", "opening_id": 136691, "created_date": 1473159405, "source": "Email", "source_type": "Upload", "id": 11200501, "stage_id": 12, "stage_name": "Screening", "assigned_to": { "email": "hannibal@hooli.com", "id": 129021, "name": "Hannibal Smith" }, "state_metadata": { "reason": "Not a fit", "explanation": "Underqualified" }, "created_by": null, "phone": "8011290883", "state": "in_process", "profile_data": [ { "name": "Linkedin", "value": "https://www.linkedin.com/us/rhendricks" }, { "name": "Twitter", "value": "https://twitter.com/rhendricks" }, { "name": "Current Location", "value": "Silicon Valley, California" } ] }