Ashby · Schema

Ashby Candidate

Schema for the Ashby Candidate resource — the central CRM entity in Ashby's all-in-one recruiting platform. Surface for candidate.create, candidate.info, candidate.list, candidate.update, candidate.search, candidate.anonymize, candidate.merge, and webhook payloads (candidateHire, candidateMerge, candidateDelete, candidateStageChange).

ATSApplicant Tracking SystemRecruitingTalent AcquisitionSourcingCRMSchedulingAnalyticsHiringHR TechAI

Properties

Name Type Description
id string Ashby-assigned candidate identifier.
createdAt string ISO 8601 timestamp when the candidate record was created in Ashby.
updatedAt string ISO 8601 timestamp of the last update to the candidate record.
name string Candidate's full name.
primaryEmailAddress object
emailAddresses array
primaryPhoneNumber object
phoneNumbers array
socialLinks array
tags array Candidate tags. Managed via candidate.addTag, candidate.removeTag, candidateTag.create/list/archive.
position string Most recent or current job title (free-form).
company string Most recent or current company (free-form).
school string Most recent school (free-form).
locationSummary string Free-form location summary.
primaryLocation object
source object
creditedToUser object User credited with sourcing the candidate.
applicationIds array
fileHandles array Files attached to the candidate (resumes, portfolios, etc.).
resumeFileHandle object Most recent resume on file.
customFields array
linkedInUrl string
githubUrl string
websiteUrl string
profileUrl string URL to the candidate profile inside the Ashby app.
isAnonymized boolean True after candidate.anonymize has scrubbed PII for retention compliance.
fraudCheck object Optional candidate fraud-check status surfaced when the AI fraud-detection feature is enabled.
View JSON Schema on GitHub

JSON Schema

ashby-candidate-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.com/schemas/ashby-hq/ashby-candidate-schema.json",
  "title": "Ashby Candidate",
  "description": "Schema for the Ashby Candidate resource — the central CRM entity in Ashby's all-in-one recruiting platform. Surface for candidate.create, candidate.info, candidate.list, candidate.update, candidate.search, candidate.anonymize, candidate.merge, and webhook payloads (candidateHire, candidateMerge, candidateDelete, candidateStageChange).",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Ashby-assigned candidate identifier."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the candidate record was created in Ashby."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp of the last update to the candidate record."
    },
    "name": {
      "type": "string",
      "description": "Candidate's full name."
    },
    "primaryEmailAddress": {
      "type": "object",
      "properties": {
        "value": { "type": "string", "format": "email" },
        "type": { "type": "string", "enum": ["Personal", "Work", "Other"] },
        "isPrimary": { "type": "boolean" }
      }
    },
    "emailAddresses": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "value": { "type": "string", "format": "email" },
          "type": { "type": "string" },
          "isPrimary": { "type": "boolean" }
        }
      }
    },
    "primaryPhoneNumber": {
      "type": "object",
      "properties": {
        "value": { "type": "string" },
        "type": { "type": "string", "enum": ["Mobile", "Home", "Work", "Other"] },
        "isPrimary": { "type": "boolean" }
      }
    },
    "phoneNumbers": {
      "type": "array",
      "items": { "$ref": "#/properties/primaryPhoneNumber" }
    },
    "socialLinks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": { "type": "string", "format": "uri" },
          "type": { "type": "string", "description": "e.g., LinkedIn, GitHub, X" }
        }
      }
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "title": { "type": "string" }
        }
      },
      "description": "Candidate tags. Managed via candidate.addTag, candidate.removeTag, candidateTag.create/list/archive."
    },
    "position": {
      "type": "string",
      "description": "Most recent or current job title (free-form)."
    },
    "company": {
      "type": "string",
      "description": "Most recent or current company (free-form)."
    },
    "school": {
      "type": "string",
      "description": "Most recent school (free-form)."
    },
    "locationSummary": {
      "type": "string",
      "description": "Free-form location summary."
    },
    "primaryLocation": {
      "type": "object",
      "properties": {
        "locationSummary": { "type": "string" },
        "locationComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": ["AdministrativeAreaLevel1", "AdministrativeAreaLevel2", "Country", "Locality", "PostalCode"]
              },
              "name": { "type": "string" }
            }
          }
        },
        "timezone": { "type": "string" }
      }
    },
    "source": {
      "type": "object",
      "properties": {
        "id": { "type": "string", "format": "uuid" },
        "title": { "type": "string" },
        "isArchived": { "type": "boolean" },
        "sourceType": {
          "type": "object",
          "properties": {
            "id": { "type": "string", "format": "uuid" },
            "title": { "type": "string" }
          }
        }
      }
    },
    "creditedToUser": {
      "type": "object",
      "description": "User credited with sourcing the candidate.",
      "properties": {
        "id": { "type": "string", "format": "uuid" },
        "name": { "type": "string" },
        "email": { "type": "string", "format": "email" }
      }
    },
    "applicationIds": {
      "type": "array",
      "items": { "type": "string", "format": "uuid" }
    },
    "fileHandles": {
      "type": "array",
      "description": "Files attached to the candidate (resumes, portfolios, etc.).",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "name": { "type": "string" },
          "handle": { "type": "string", "description": "Opaque file handle used with file.info." }
        }
      }
    },
    "resumeFileHandle": {
      "type": "object",
      "properties": {
        "id": { "type": "string", "format": "uuid" },
        "name": { "type": "string" },
        "handle": { "type": "string" }
      },
      "description": "Most recent resume on file."
    },
    "customFields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "title": { "type": "string" },
          "value": {},
          "valueType": {
            "type": "string",
            "enum": ["Boolean", "Date", "Number", "String", "ValueSelect", "MultiValueSelect", "LongText", "Currency", "EncryptedString"]
          }
        }
      }
    },
    "linkedInUrl": { "type": "string", "format": "uri" },
    "githubUrl": { "type": "string", "format": "uri" },
    "websiteUrl": { "type": "string", "format": "uri" },
    "profileUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL to the candidate profile inside the Ashby app."
    },
    "isAnonymized": {
      "type": "boolean",
      "description": "True after candidate.anonymize has scrubbed PII for retention compliance."
    },
    "fraudCheck": {
      "type": "object",
      "description": "Optional candidate fraud-check status surfaced when the AI fraud-detection feature is enabled.",
      "properties": {
        "status": {
          "type": "string",
          "enum": ["NotStarted", "InProgress", "Flagged", "Clear"]
        },
        "outcome": { "type": "string" }
      }
    }
  },
  "required": ["id", "createdAt", "updatedAt", "name"]
}