Ashby is an all-in-one recruiting platform that combines an applicant tracking system (ATS), CRM, scheduling, and analytics to help teams hire more effectively.
With Ashby, you can:
- List and search candidates: Browse your full candidate pipeline or search by name and email to quickly find specific people
- Create candidates: Add new candidates to your Ashby organization with contact details
- View candidate details: Retrieve full candidate profiles including tags, email, phone, and timestamps
- Add notes to candidates: Attach notes to candidate records to capture feedback, context, or follow-up items
- List and view jobs: Browse all open, closed, and archived job postings with location and department info
- List applications: View all applications across your organization with candidate and job details, status tracking, and pagination
The Ashby block also supports webhook triggers that automatically start workflows in response to Ashby events. Available triggers include Application Submitted, Candidate Stage Change, Candidate Hired, Candidate Deleted, Job Created, and Offer Created. Webhooks are fully managed — Sim automatically creates the webhook in Ashby when you save the trigger and deletes it when you remove it, so there's no manual webhook configuration needed. Just provide your Ashby API key (with apiKeysWrite permission) and select the event type.
In Sim, the Ashby integration enables your agents to programmatically manage your recruiting pipeline. Agents can search for candidates, create new candidate records, add notes after interviews, and monitor applications across jobs. This allows you to automate recruiting workflows like candidate intake, interview follow-ups, pipeline reporting, and cross-referencing candidates across roles.
Integrate Ashby into the workflow. Manage candidates (list, get, create, update, search, tag), applications (list, get, create, change stage), jobs (list, get), job postings (list, get), offers (list, get), notes (list, create), interviews (list), and reference data (sources, tags, archive reasons, custom fields, departments, locations, openings, users).
Adds a tag to a candidate in Ashby and returns the updated candidate.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to add the tag to |
tagId | string | Yes | The UUID of the tag to add |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Moves an application to a different interview stage. Requires an archive reason when moving to an Archived stage.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
applicationId | string | Yes | The UUID of the application to update the stage of |
interviewStageId | string | Yes | The UUID of the interview stage to move the application to |
archiveReasonId | string | No | Archive reason UUID. Required when moving to an Archived stage, ignored otherwise |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Creates a new application for a candidate on a job. Optionally specify interview plan, stage, source, and credited user.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to consider for the job |
jobId | string | Yes | The UUID of the job to consider the candidate for |
interviewPlanId | string | No | UUID of the interview plan to use (defaults to the job default plan) |
interviewStageId | string | No | UUID of the interview stage to place the application in (defaults to first Lead stage) |
sourceId | string | No | UUID of the source to set on the application |
creditedToUserId | string | No | UUID of the user the application is credited to |
createdAt | string | No | ISO 8601 timestamp to set as the application creation date (defaults to now) |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Creates a new candidate record in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
name | string | Yes | The candidate full name |
email | string | No | Primary email address for the candidate |
phoneNumber | string | No | Primary phone number for the candidate |
linkedInUrl | string | No | LinkedIn profile URL |
githubUrl | string | No | GitHub profile URL |
website | string | No | Personal website URL |
sourceId | string | No | UUID of the source to attribute the candidate to |
creditedToUserId | string | No | UUID of the Ashby user to credit with sourcing this candidate |
createdAt | string | No | Backdated creation timestamp in ISO 8601 (e.g. 2024-01-01T00:00:00Z). Defaults to now. |
alternateEmailAddresses | json | No | Array of additional email address strings to add to the candidate, e.g. ["a@x.com","b@y.com"] |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Creates a note on a candidate in Ashby. Supports plain text and HTML content (bold, italic, underline, links, lists, code).
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to add the note to |
note | string | Yes | The note content. If noteType is text/html, supports: <b>, <i>, <u>, <a>, <ul>, <ol>, <li>, <code>, <pre> |
noteType | string | No | Content type of the note: text/plain (default) or text/html |
sendNotifications | boolean | No | Whether to send notifications to subscribed users (default false) |
isPrivate | boolean | No | Whether the note is private (only visible to the author) |
createdAt | string | No | Backdated creation timestamp in ISO 8601 (e.g. 2024-01-01T00:00:00Z). Defaults to now. |
| Parameter | Type | Description |
|---|
id | string | Created note UUID |
createdAt | string | ISO 8601 creation timestamp |
isPrivate | boolean | Whether the note is private |
content | string | Note content |
author | object | Author of the note |
↳ id | string | Author user UUID |
↳ firstName | string | Author first name |
↳ lastName | string | Author last name |
↳ email | string | Author email |
Retrieves full details about a single application by its ID.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
applicationId | string | Yes | The UUID of the application to fetch |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Retrieves full details about a single candidate by their ID.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to fetch |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Retrieves full details about a single job by its ID.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
jobId | string | Yes | The UUID of the job to fetch |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Retrieves full details about a single job posting by its ID.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
jobPostingId | string | Yes | The UUID of the job posting to fetch |
jobBoardId | string | No | Optional job board UUID. If omitted, returns posting for the external job board. |
expandJob | boolean | No | Whether to expand and include the related job object in the response |
| Parameter | Type | Description |
|---|
id | string | Job posting UUID |
title | string | Job posting title |
descriptionPlain | string | Full description in plain text |
descriptionHtml | string | Full description in HTML |
descriptionSocial | string | Shortened description for social sharing (max 200 chars) |
descriptionParts | object | Description broken into opening, body, and closing sections |
↳ descriptionOpening | object | Opening (from Job Boards theme settings) |
↳ html | string | HTML content |
↳ plain | string | Plain text content |
↳ descriptionBody | object | Main description body |
↳ html | string | HTML content |
↳ plain | string | Plain text content |
↳ descriptionClosing | object | Closing (from Job Boards theme settings) |
↳ html | string | HTML content |
↳ plain | string | Plain text content |
departmentName | string | Department name |
teamName | string | Team name |
teamNameHierarchy | array | Hierarchy of team names from root to team |
jobId | string | Associated job UUID |
locationName | string | Primary location name |
locationIds | object | Primary and secondary location UUIDs |
↳ primaryLocationId | string | Primary location UUID |
↳ secondaryLocationIds | array | Secondary location UUIDs |
address | object | Postal address of the posting location |
↳ postalAddress | object | Structured postal address |
↳ addressCountry | string | Country |
↳ addressRegion | string | State or region |
↳ addressLocality | string | City or locality |
↳ postalCode | string | Postal code |
↳ streetAddress | string | Street address |
isRemote | boolean | Whether the posting is remote |
workplaceType | string | Workplace type (OnSite, Remote, Hybrid) |
employmentType | string | Employment type (FullTime, PartTime, Intern, Contract, Temporary) |
isListed | boolean | Whether publicly listed on the job board |
suppressDescriptionOpening | boolean | Whether the theme opening is hidden on this posting |
suppressDescriptionClosing | boolean | Whether the theme closing is hidden on this posting |
publishedDate | string | ISO 8601 published date |
applicationDeadline | string | ISO 8601 application deadline |
externalLink | string | External link to the job posting |
applyLink | string | Direct apply link |
compensation | object | Compensation details for the posting |
↳ compensationTierSummary | string | Human-readable tier summary |
↳ summaryComponents | array | Structured compensation components |
↳ summary | string | Component summary |
↳ compensationTypeLabel | string | Component type label (Salary, Commission, Bonus, Equity, etc.) |
↳ interval | string | Payment interval (e.g. annual, hourly) |
↳ currencyCode | string | ISO 4217 currency code |
↳ minValue | number | Minimum value |
↳ maxValue | number | Maximum value |
↳ shouldDisplayCompensationOnJobBoard | boolean | Whether compensation is shown on the job board |
applicationLimitCalloutHtml | string | HTML callout shown when the application limit is reached |
updatedAt | string | ISO 8601 last update timestamp |
job | object | The expanded job object, only present when the request was made with expandJob=true |
Retrieves full details about a single offer by its ID.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
offerId | string | Yes | The UUID of the offer to fetch |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Lists all applications in an Ashby organization with pagination and optional filters for status, job, and creation date.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default 100) |
status | string | No | Filter by application status: Active, Hired, Archived, or Lead |
jobId | string | No | Filter applications by a specific job UUID |
candidateId | string | No | Filter applications by a specific candidate UUID |
createdAfter | string | No | Filter to applications created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
| Parameter | Type | Description |
|---|
applications | array | List of applications |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all archive reasons configured in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
includeArchived | boolean | No | Whether to include archived archive reasons in the response (default false) |
| Parameter | Type | Description |
|---|
archiveReasons | array | List of archive reasons |
↳ id | string | Archive reason UUID |
↳ text | string | Archive reason text |
↳ reasonType | string | Reason type (RejectedByCandidate, RejectedByOrg, Other) |
↳ isArchived | boolean | Whether the reason is archived |
Lists all candidate tags configured in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
includeArchived | boolean | No | Whether to include archived candidate tags (default false) |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
syncToken | string | No | Sync token from a previous response to fetch only changed results |
perPage | number | No | Number of results per page (default 100) |
| Parameter | Type | Description |
|---|
tags | array | List of candidate tags |
↳ id | string | Tag UUID |
↳ title | string | Tag title |
↳ isArchived | boolean | Whether the tag is archived |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
syncToken | string | Sync token to use for incremental updates in future requests |
Lists all candidates in an Ashby organization with cursor-based pagination.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default 100) |
createdAfter | string | No | Only return candidates created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
| Parameter | Type | Description |
|---|
candidates | array | List of candidates |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all custom field definitions configured in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default and max 100) |
syncToken | string | No | Opaque token from a prior sync to fetch only items changed since then |
includeArchived | boolean | No | When true, includes archived custom fields in results (default false) |
| Parameter | Type | Description |
|---|
customFields | array | List of custom field definitions |
↳ id | string | Custom field UUID |
↳ title | string | Custom field title |
↳ isPrivate | boolean | Whether the custom field is private |
↳ fieldType | string | Field data type (MultiValueSelect, NumberRange, String, Date, ValueSelect, Number, Currency, Boolean, LongText, CompensationRange) |
↳ objectType | string | Object type the field applies to (Application, Candidate, Employee, Job, Offer, Opening, Talent_Project) |
↳ isArchived | boolean | Whether the custom field is archived |
↳ isRequired | boolean | Whether a value is required |
↳ selectableValues | array | Selectable values for MultiValueSelect fields (empty for other field types) |
↳ label | string | Display label |
↳ value | string | Stored value |
↳ isArchived | boolean | Whether archived |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
syncToken | string | Opaque sync token returned after the last page; pass on next sync |
Lists all departments in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default and max 100) |
syncToken | string | No | Opaque token from a prior sync to fetch only items changed since then |
includeArchived | boolean | No | When true, includes archived departments in results (default false) |
| Parameter | Type | Description |
|---|
departments | array | List of departments |
↳ id | string | Department UUID |
↳ name | string | Department name |
↳ externalName | string | Candidate-facing name used on job boards |
↳ isArchived | boolean | Whether the department is archived |
↳ parentId | string | Parent department UUID |
↳ createdAt | string | ISO 8601 creation timestamp |
↳ updatedAt | string | ISO 8601 last update timestamp |
↳ extraData | json | Free-form key-value metadata |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
syncToken | string | Opaque sync token returned after the last page; pass on next sync |
Lists interview schedules in Ashby, optionally filtered by application or interview stage.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
applicationId | string | No | The UUID of the application to list interview schedules for |
interviewStageId | string | No | The UUID of the interview stage to list interview schedules for |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default 100) |
createdAfter | string | No | Only return interview schedules created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
| Parameter | Type | Description |
|---|
interviewSchedules | array | List of interview schedules |
↳ id | string | Interview schedule UUID |
↳ status | string | Schedule status (NeedsScheduling, WaitingOnCandidateBooking, Scheduled, Complete, Cancelled, OnHold, etc.) |
↳ applicationId | string | Associated application UUID |
↳ interviewStageId | string | Interview stage UUID |
↳ createdAt | string | ISO 8601 creation timestamp |
↳ updatedAt | string | ISO 8601 last update timestamp |
↳ interviewEvents | array | Scheduled interview events on this schedule |
↳ id | string | Event UUID |
↳ interviewId | string | Interview template UUID |
↳ interviewScheduleId | string | Parent schedule UUID |
↳ interviewerUserIds | array | User UUIDs of interviewers assigned to the event |
↳ createdAt | string | Event creation timestamp |
↳ updatedAt | string | Event last updated timestamp |
↳ startTime | string | Event start time |
↳ endTime | string | Event end time |
↳ feedbackLink | string | URL to submit feedback for the event |
↳ location | string | Physical location |
↳ meetingLink | string | Virtual meeting URL |
↳ hasSubmittedFeedback | boolean | Whether any feedback has been submitted |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all job postings in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
location | string | No | Filter by location name (case sensitive) |
department | string | No | Filter by department name (case sensitive) |
listedOnly | boolean | No | When true, only returns listed (publicly visible) job postings (default false) |
jobBoardId | string | No | UUID of a specific job board to filter postings to. If omitted, returns postings on the primary external job board. |
| Parameter | Type | Description |
|---|
jobPostings | array | List of job postings |
↳ id | string | Job posting UUID |
↳ title | string | Job posting title |
↳ jobId | string | Associated job UUID |
↳ departmentName | string | Department name |
↳ teamName | string | Team name |
↳ locationName | string | Primary location display name |
↳ locationIds | object | Primary and secondary location UUIDs |
↳ primaryLocationId | string | Primary location UUID |
↳ secondaryLocationIds | array | Secondary location UUIDs |
↳ workplaceType | string | Workplace type (OnSite, Remote, Hybrid) |
↳ employmentType | string | Employment type (FullTime, PartTime, Intern, Contract, Temporary) |
↳ isListed | boolean | Whether the posting is publicly listed |
↳ publishedDate | string | ISO 8601 published date |
↳ applicationDeadline | string | ISO 8601 application deadline |
↳ externalLink | string | External link to the job posting |
↳ applyLink | string | Direct apply link for the job posting |
↳ compensationTierSummary | string | Compensation tier summary for job boards |
↳ shouldDisplayCompensationOnJobBoard | boolean | Whether compensation is shown on the job board |
↳ updatedAt | string | ISO 8601 last update timestamp |
Lists all jobs in an Ashby organization. By default returns Open, Closed, and Archived jobs. Specify status to filter.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default 100) |
status | string | No | Filter by job status: Open, Closed, Archived, or Draft |
createdAfter | string | No | Only return jobs created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
openedAfter | string | No | Only return jobs opened after this ISO 8601 timestamp |
openedBefore | string | No | Only return jobs opened before this ISO 8601 timestamp |
closedAfter | string | No | Only return jobs closed after this ISO 8601 timestamp |
closedBefore | string | No | Only return jobs closed before this ISO 8601 timestamp |
| Parameter | Type | Description |
|---|
jobs | array | List of jobs |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all locations configured in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default and max 100) |
syncToken | string | No | Opaque token from a prior sync to fetch only items changed since then |
includeArchived | boolean | No | When true, includes archived locations in results (default false) |
includeLocationHierarchy | boolean | No | When true, includes location hierarchy components/regions (default false) |
| Parameter | Type | Description |
|---|
locations | array | List of locations |
↳ id | string | Location UUID |
↳ name | string | Location name |
↳ externalName | string | Candidate-facing name used on job boards |
↳ isArchived | boolean | Whether the location is archived |
↳ isRemote | boolean | Whether the location is remote (use workplaceType instead) |
↳ workplaceType | string | Workplace type (OnSite, Hybrid, Remote) |
↳ parentLocationId | string | Parent location UUID |
↳ type | string | Location component type (Location, LocationHierarchy) |
↳ address | object | Location postal address |
↳ addressCountry | string | Country |
↳ addressRegion | string | State or region |
↳ addressLocality | string | City or locality |
↳ postalCode | string | Postal code |
↳ streetAddress | string | Street address |
↳ extraData | json | Free-form key-value metadata |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
syncToken | string | Opaque sync token returned after the last page; pass on next sync |
Lists all notes on a candidate with pagination support.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to list notes for |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page |
| Parameter | Type | Description |
|---|
notes | array | List of notes on the candidate |
↳ id | string | Note UUID |
↳ content | string | Note content |
↳ isPrivate | boolean | Whether the note is private |
↳ author | object | Note author |
↳ id | string | Author user UUID |
↳ firstName | string | First name |
↳ lastName | string | Last name |
↳ email | string | Email address |
↳ createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all offers with their latest version in an Ashby organization.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page |
createdAfter | string | No | Only return offers created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
syncToken | string | No | Opaque token from a prior sync to fetch only items changed since then |
applicationId | string | No | Return only offers for the specified application UUID |
| Parameter | Type | Description |
|---|
offers | array | List of offers |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all openings in Ashby with pagination.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default 100) |
createdAfter | string | No | Only return openings created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
| Parameter | Type | Description |
|---|
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Lists all candidate sources configured in Ashby.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
includeArchived | boolean | No | When true, includes archived sources in results (default false) |
| Parameter | Type | Description |
|---|
sources | array | List of sources |
↳ id | string | Source UUID |
↳ title | string | Source title |
↳ isArchived | boolean | Whether the source is archived |
↳ sourceType | object | Source type grouping |
↳ id | string | Source type UUID |
↳ title | string | Source type title |
↳ isArchived | boolean | Whether archived |
Lists all users in Ashby with pagination.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
cursor | string | No | Opaque pagination cursor from a previous response nextCursor value |
perPage | number | No | Number of results per page (default 100) |
includeDeactivated | boolean | No | When true, includes deactivated users in results (default false) |
| Parameter | Type | Description |
|---|
users | array | List of users |
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
Removes a tag from a candidate in Ashby and returns the updated candidate.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to remove the tag from |
tagId | string | Yes | The UUID of the tag to remove |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |
Searches for candidates by name and/or email with AND logic. Results are limited to 100 matches. Use candidate.list for full pagination.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
name | string | No | Candidate name to search for (combined with email using AND logic) |
email | string | No | Candidate email to search for (combined with name using AND logic) |
| Parameter | Type | Description |
|---|
candidates | array | Matching candidates (max 100 results) |
Updates an existing candidate record in Ashby. Only provided fields are changed.
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | The UUID of the candidate to update |
name | string | No | Updated full name |
email | string | No | Updated primary email address |
phoneNumber | string | No | Updated primary phone number |
linkedInUrl | string | No | LinkedIn profile URL |
githubUrl | string | No | GitHub profile URL |
websiteUrl | string | No | Personal website URL |
alternateEmail | string | No | An additional email address to add to the candidate |
sourceId | string | No | UUID of the source to attribute the candidate to |
creditedToUserId | string | No | UUID of the Ashby user to credit with sourcing this candidate |
createdAt | string | No | Backdated creation timestamp in ISO 8601. Only updatable if originally backdated. |
sendNotifications | boolean | No | Whether to send a notification when the source is updated (default true) |
socialLinks | json | No | Array of social link objects to set on the candidate, e.g. [{"type":"LinkedIn","url":"https://..."}]. Replaces existing social links. |
| Parameter | Type | Description |
|---|
candidates | json | List of candidates with rich fields (id, name, primaryEmailAddress, primaryPhoneNumber, emailAddresses[], phoneNumbers[], socialLinks[], linkedInUrl, githubUrl, profileUrl, position, company, school, timezone, location with locationComponents[], tags[], applicationIds[], customFields[], resumeFileHandle, fileHandles[], source with sourceType, creditedToUser, fraudStatus, createdAt, updatedAt) |
jobs | json | List of jobs (id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds[], customFields[], jobPostingIds[], customRequisitionId, brandId, hiringTeam[], author, createdAt, updatedAt, openedAt, closedAt, location with address, openings[] with latestVersion) |
applications | json | List of applications (id, status, customFields[], candidate summary, currentInterviewStage, source with sourceType, archiveReason with customFields[], archivedAt, job summary, creditedToUser, hiringTeam[], appliedViaJobPostingId, submitterClientIp, submitterUserAgent, createdAt, updatedAt) |
notes | json | List of notes (id, content, author, isPrivate, createdAt) |
offers | json | List of offers (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with id/startDate/salary/createdAt/openingId/customFields[]/fileHandles[]/author/approvalStatus) |
archiveReasons | json | List of archive reasons (id, text, reasonType [RejectedByCandidate/RejectedByOrg/Other], isArchived) |
sources | json | List of sources (id, title, isArchived, sourceType {id, title, isArchived}) |
customFields | json | List of custom field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}) |
departments | json | List of departments (id, name, externalName, isArchived, parentId, createdAt, updatedAt) |
locations | json | List of locations (id, name, externalName, isArchived, isRemote, workplaceType, parentLocationId, type, address with addressCountry/Region/Locality/postalCode/streetAddress) |
jobPostings | json | List of job postings (id, title, jobId, departmentName, teamName, locationName, locationIds, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, updatedAt) |
openings | json | List of openings (id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, latestVersion with identifier/description/authorId/createdAt/teamId/jobIds[]/targetHireDate/targetStartDate/isBackfill/employmentType/locationIds[]/hiringTeam[]/customFields[]) |
users | json | List of users (id, firstName, lastName, email, globalRole, isEnabled, updatedAt) |
interviewSchedules | json | List of interview schedules (id, applicationId, interviewStageId, interviewEvents[] with interviewerUserIds/startTime/endTime/feedbackLink/location/meetingLink/hasSubmittedFeedback, status, scheduledBy, createdAt, updatedAt) |
tags | json | List of candidate tags (id, title, isArchived) |
id | string | Resource UUID |
name | string | Resource name |
title | string | Job title or job posting title |
status | string | Status |
candidate | json | Candidate summary (id, name, primaryEmailAddress, primaryPhoneNumber). For full candidate fields use the candidates list output or the get/create/update candidate operations. |
job | json | Job details (id, title, status, employmentType, locationId, departmentId, hiringTeam[], author, location, openings[], createdAt, updatedAt) |
application | json | Application details (id, status, customFields[], candidate, currentInterviewStage, source, archiveReason, job, hiringTeam[], createdAt, updatedAt) |
offer | json | Offer details (id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion) |
jobPosting | json | Job posting details (id, title, descriptionPlain, descriptionHtml, descriptionSocial, descriptionParts, departmentName, teamName, teamNameHierarchy[], jobId, locationName, locationIds, address, isRemote, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensation, updatedAt, job [included when expandJob=true]) |
content | string | Note content |
author | json | Note author (id, firstName, lastName, email) |
isPrivate | boolean | Whether the note is private |
createdAt | string | ISO 8601 creation timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
syncToken | string | Sync token for incremental updates |