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": "[email protected]", "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": "[email protected]",
  "opening_id": 136691,
  "created_date": 1473159405,
  "source": "Email",
  "source_type": "Upload",
  "id": 11200501,
  "stage_id": 12,
  "stage_name": "Screening",
  "assigned_to": {
    "email": "[email protected]",
    "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"
    }
  ]
}