{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Candidate",
  "type": "object",
  "description": "A job candidate with personal details, resume information, and application data retrieved from Indeed.",
  "properties": {
    "id": {
      "type": "string",
      "description": "A unique candidate identifier. For Indeed Apply applications, this corresponds to the apply_id, a unique 64-character identifier linking the employer, candidate, and job posting."
    },
    "name": {
      "type": "string",
      "description": "The candidate's full name."
    },
    "firstName": {
      "type": "string",
      "description": "The candidate's first name."
    },
    "lastName": {
      "type": "string",
      "description": "The candidate's last name."
    },
    "email": {
      "type": "string",
      "description": "The candidate's email address."
    },
    "phoneNumber": {
      "type": "string",
      "description": "The candidate's phone number."
    },
    "location": {
      "type": "string",
      "description": "The candidate's location as a freeform string."
    },
    "coverLetter": {
      "type": "string",
      "description": "The candidate's cover letter text, if provided."
    },
    "applicationStatus": {
      "type": "string",
      "description": "The current status of the candidate's application. Must map to one of Indeed's predefined disposition categories."
    },
    "screenerQuestionResponses": {
      "type": "array",
      "description": "Responses to screener questions configured on the job posting."
    },
    "appliedAt": {
      "type": "string",
      "description": "The timestamp when the candidate submitted the application."
    },
    "source": {
      "type": "string",
      "description": "The source of the application, such as Indeed Apply, organic application, or other channels."
    },
    "jobPostingId": {
      "type": "string",
      "description": "The identifier of the job posting the candidate applied to."
    }
  }
}