Use Ashby to manage recruiting records and react to hiring events. List Jobs supports incremental sync tokens; custom-field actions annotate jobs, openings, applications, and candidates.
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. Sim creates the webhook when you deploy the workflow. Remove the trigger and redeploy to delete it. Provide an Ashby API key with apiKeysWrite permission and select the event type.
API key permissions
Ashby grants permissions per module rather than per endpoint, and a missing permission fails at runtime, not when you build the workflow.
Check the key before scheduling a workflow: an endpoint permission failure returns HTTP 403 with missing_endpoint_permission.
| Permission | Covers |
|---|---|
jobsRead | List Jobs, Get Job, List Job Postings, Get Job Posting |
candidatesRead | Application and candidate reads |
candidatesWrite | Create Candidate, Create Application, Set Custom Field Value, Set Custom Field Values, Change Application Source, Anonymize Candidate |
candidatesDelete | Delete Application. This is separate from candidatesWrite - a read and write key returns 403 here |
apiKeysWrite | Managed webhook triggers |
candidatesDelete is a module permission, not an endpoint one, and Delete Application sits under the Candidates module.
Two more settings on the API key are checkboxes rather than module scopes, and both are easy to miss:
- Allow access to confidential jobs and projects. Without it, confidential reqs and the candidates on them are invisible to the key entirely - they do not appear in List Jobs at all, rather than appearing with fields hidden.
- Allow access to non-offer private fields. This gates custom fields marked private outside of offers.
Every job returned by List Jobs carries a confidential flag, so you can filter confidential reqs out at sync time before they reach a prompt or a downstream surface.
Ashby API limitations
These are constraints of the Ashby API itself, not of the Sim block:
- Job annotations use custom fields. The note and tag operations here act on candidates. Use Set Custom Field Value to annotate a job. Writing
nullclears a value, so the annotation is reversible. - No pagination on List Job Postings. The endpoint returns every posting in one response, with no cursor, page limit, or sync token. Paginate through List Jobs instead when you need to page.
- No delete, archive, or update operation for custom field definitions is exposed by this integration. Plan field definitions before creating them in a shared organization.
- Note deletion is not exposed by this integration. The note operations create and list candidate notes.
- No candidate deletion endpoint. Anonymize Candidate strips personal information but leaves the record and its applications in place. Use Ashby’s administrative UI and its current retention and permission policy for deletion; anonymization and deletion have different effects.
Use the block
Manage and search candidates, applications, jobs, users, and openings; transfer applications; upload resumes and candidate files; read application history and interview feedback; manage offers, notes, tags, stages, sources, and custom fields; and react to hiring lifecycle webhooks.
Actions
Ashby Add Candidate Tag
Adds a tag to a candidate in Ashby and returns the updated candidate.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
candidateId | string | Yes | The UUID of the candidate to add the tag to |
tagId | string | Yes | The UUID of the tag to add |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Anonymize Candidate
Remove personally identifiable information from an Ashby candidate while retaining the candidate record and its applications. This operation does not delete the candidate. Requires the candidatesWrite permission.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
candidateId | string | Yes | UUID of the candidate to anonymize |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Change Application Source
Changes the source attributed to an existing application, so programmatically created applications report correctly on the recruiting side. Requires the candidatesWrite permission.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
applicationId | string | Yes | UUID of the application whose source should change |
sourceId | string | No | UUID of the source to attribute the application to, as returned by List Sources. Omit only when unsetSource is true. |
unsetSource | boolean | No | Set true to deliberately clear the application source. Required to unset, so that a missing or empty sourceId cannot wipe attribution by accident. |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Change Application Stage
Moves an application to a different interview stage. Requires an archive reason when moving to an Archived stage.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
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 |
archiveEmail | json | No | Archive email configuration with communicationTemplateId and optional sendAt ISO 8601 timestamp. Pass null or omit to send no archive email. |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Create Application
Creates a new application for a candidate on a job. Optionally specify interview plan, stage, source, and credited user.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
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, or FirstPreInterviewScreen (defaults to the 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) |
applicationHistory | json | No | Optional documented application history entries to create with the application |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Create Candidate
Creates a new candidate record in Ashby.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
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"] |
location | json | No | Candidate location object with optional city, region, and country |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Create Note
Creates a note on a candidate in Ashby. Supports plain text and HTML content (bold, italic, underline, links, lists, code).
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
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. |
Output
| 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 |
Ashby Delete Application
Permanently deletes an application in Ashby. Requires the candidatesDelete permission, which is a separate module permission from candidatesWrite - a read and write key returns 403 here. There is no equivalent endpoint for deleting a candidate; candidate deletion is UI-only.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
applicationId | string | Yes | UUID of the application to delete |
Output
| Parameter | Type | Description |
|---|---|---|
applicationId | string | UUID of the deleted application |
Ashby Get Application
Retrieves full details about a single application by its ID.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
applicationId | string | No | The UUID of the application to fetch |
submittedFormInstanceId | string | No | Submitted application-form instance UUID to use instead of applicationId |
expand | json | No | Ashby-supported application expansions to include |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Get Candidate
Retrieves full details about a single candidate by their ID.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | No | The UUID of the candidate to fetch |
externalMappingId | string | No | External mapping ID to use instead of the Ashby candidate UUID |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Get Job
Retrieves full details about a single job by its ID.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
jobId | string | Yes | The UUID of the job to fetch |
includeUnpublishedJobPostingIds | boolean | No | Include IDs for unpublished job postings on this job |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Get Job Posting
Retrieves full details about a single job posting by its ID.
Inputs and outputs
Input
| 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 |
includeUnpublishedJobPostings | boolean | No | Allow retrieval of an unpublished or draft job posting |
Output
| 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 |
Ashby Get Offer
Retrieves full details about a single offer by its ID.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
offerId | string | Yes | The UUID of the offer to fetch |
excludeFormDefinition | boolean | No | Omit the offer form definition from the response |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Get Opening
Retrieves one Ashby headcount opening by UUID.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
openingId | string | Yes | Opening UUID |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby List Application Feedback
Lists submitted interview feedback, optionally for one application, with pagination and incremental sync.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
applicationId | string | No | Application UUID |
cursor | string | No | Pagination cursor |
perPage | number | No | Results per page (1-100) |
syncToken | string | No | Opaque token from a completed prior sync run |
createdAfter | string | No | Only feedback submitted after this ISO 8601 timestamp |
Output
| Parameter | Type | Description |
|---|---|---|
feedback | array | Submitted application feedback |
↳ id | string | Feedback UUID |
↳ formDefinition | json | Feedback form sections and documented field definitions |
↳ feedbackFormDefinitionId | string | Feedback form definition UUID |
↳ applicationId | string | Application UUID |
↳ submittedValues | json | Submitted field values keyed by form field path |
↳ interviewId | string | Interview UUID |
↳ interviewEventId | string | Interview event UUID |
↳ applicationHistoryId | string | Application history UUID |
↳ submittedAt | string | Submission timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Next page cursor |
nextSyncCursor | string | Next incremental sync token |
Ashby List Application History
Lists the full stage history and allowed actions for an application.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
applicationId | string | Yes | Application UUID |
cursor | string | No | Pagination cursor |
perPage | number | No | Results per page (1-100) |
Output
| Parameter | Type | Description |
|---|---|---|
history | array | Application stage history |
↳ id | string | History entry UUID |
↳ stageId | string | Stage UUID |
↳ title | string | Stage title |
↳ enteredStageAt | string | Stage entry timestamp |
↳ leftStageAt | string | Stage exit timestamp |
↳ stageNumber | number | Stage sequence number |
↳ allowedActions | array | Actions permitted at this history point |
↳ actorId | string | Acting user UUID |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Next page cursor |
Ashby List Applications
Lists all applications in an Ashby organization with pagination and optional filters for status, job, and creation date.
Inputs and outputs
Input
| 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 | Application status to include: Active, Hired, Archived, or Lead |
jobId | string | No | Filter applications by a specific job UUID |
createdAfter | string | No | Filter to applications created after this ISO 8601 timestamp (e.g. 2024-01-01T00:00:00Z) |
createdBefore | string | No | Filter to applications created before this ISO 8601 timestamp |
syncToken | string | No | Opaque token from a completed prior sync run |
expand | json | No | Ashby-supported application expansions to request |
Output
| 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 |
nextSyncCursor | string | Opaque token for the next incremental sync, returned on the final page |
Ashby List Archive Reasons
Lists all archive reasons configured in Ashby.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
includeArchived | boolean | No | Whether to include archived archive reasons in the response (default false) |
Output
| 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 |
Ashby List Candidate Tags
Lists all candidate tags configured in Ashby.
Inputs and outputs
Input
| 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) |
Output
| 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 |
nextSyncCursor | string | Sync token to use for incremental updates in future requests |
Ashby List Candidates
Lists all candidates in an Ashby organization with cursor-based pagination.
Inputs and outputs
Input
| 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) |
createdBefore | string | No | Only return candidates created before this ISO 8601 timestamp |
syncToken | string | No | Opaque token from a completed prior sync run |
Output
| 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 |
nextSyncCursor | string | Opaque token for the next incremental sync, returned on the final page |
Ashby List Custom Fields
Lists all custom field definitions configured in Ashby.
Inputs and outputs
Input
| 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) |
Output
| 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 |
nextSyncCursor | string | Opaque sync token returned after the last page; pass on next sync |
Ashby List Departments
Lists all departments in Ashby.
Inputs and outputs
Input
| 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) |
Output
| 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 |
nextSyncCursor | string | Opaque sync token returned after the last page; pass on next sync |
Ashby List Interview Schedules
Lists interview schedules in Ashby, optionally filtered by application or interview stage.
Inputs and outputs
Input
| 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) |
syncToken | string | No | Opaque token from a completed prior sync run |
Output
| 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 |
↳ scheduledBy | object | User summary |
↳ id | string | User UUID |
↳ firstName | string | First name |
↳ lastName | string | Last name |
↳ email | string | |
↳ globalRole | string | Role |
↳ isEnabled | boolean | Whether enabled |
↳ updatedAt | string | Last update timestamp |
↳ managerId | string | User ID of the user's manager |
↳ 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 |
nextSyncCursor | string | Opaque token for the next incremental sync |
Ashby List Interview Plans
Lists Ashby interview plans, including optional archived plans and incremental changes.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
includeArchived | boolean | No | Include archived interview plans |
cursor | string | No | Pagination cursor |
perPage | number | No | Results per page (1-100) |
syncToken | string | No | Opaque token from a completed prior sync run |
Output
| Parameter | Type | Description |
|---|---|---|
interviewPlans | array | Interview plans |
↳ id | string | Interview plan UUID |
↳ title | string | Plan title |
↳ isArchived | boolean | Whether archived |
↳ createdAt | string | Creation timestamp |
↳ updatedAt | string | Last update timestamp |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Next page cursor |
nextSyncCursor | string | Next incremental sync token |
Ashby List Interview Stages
Lists the ordered stages in an Ashby interview plan.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
interviewPlanId | string | Yes | Interview plan UUID |
Output
| Parameter | Type | Description |
|---|---|---|
interviewStages | array | Interview stages in plan order |
↳ id | string | Stage UUID |
↳ title | string | Stage title |
↳ type | string | Stage type |
↳ interviewPlanId | string | Parent plan UUID |
↳ orderInInterviewPlan | number | Zero-based plan order |
↳ interviewStageGroupId | string | Stage group UUID |
Ashby List Job Postings
Lists all job postings in Ashby.
Inputs and outputs
Input
| 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) |
includeUnpublishedJobPostings | boolean | No | When true, also returns unpublished (Draft) job postings. The endpoint already returns both listed and unlisted published postings by default, so this only adds drafts. |
jobBoardId | string | No | UUID of a specific job board to filter postings to. If omitted, returns postings on the primary external job board. |
Output
| 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) |
↳ status | string | Posting status (Draft or Published) |
↳ 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 |
Ashby List Jobs
Lists all jobs in an Ashby organization. By default returns Open, Closed, and Archived jobs. Specify status to filter.
Inputs and outputs
Input
| 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). Ashby silently caps larger values rather than erroring. |
syncToken | string | No | Opaque token from a prior sync to fetch only jobs changed since then. Ashby only returns a new syncToken on the last page, so drain moreDataAvailable/nextCursor before persisting it. |
status | array | No | One job status or an array of statuses to include: 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 |
includeUnpublishedJobPostingsIds | boolean | No | Include IDs for unpublished job postings on each job |
Output
| 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 |
nextSyncCursor | string | Ashby's syncToken for the next incremental run, returned only once the last page is drained. Named as a cursor because that is what it is - an opaque resumption marker, not a credential - so it stays readable in block output alongside nextCursor. |
Ashby List Locations
Lists all locations configured in Ashby.
Inputs and outputs
Input
| 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) |
Output
| 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 |
nextSyncCursor | string | Opaque sync token returned after the last page; pass on next sync |
Ashby List Notes
Lists all notes on a candidate with pagination support.
Inputs and outputs
Input
| 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 (1-100) |
Output
| 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 |
Ashby List Offers
Lists all offers with their latest version in an Ashby organization.
Inputs and outputs
Input
| 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 |
offerStatus | json | No | Non-empty array of offer process statuses to include |
acceptanceStatus | json | No | Non-empty array of offer acceptance statuses to include |
approvalStatus | json | No | Non-empty array of latest-version approval statuses to include |
Output
| 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 |
nextSyncCursor | string | Opaque token for the next incremental sync, returned on the final page |
Ashby List Openings
Lists all openings in Ashby with pagination.
Inputs and outputs
Input
| 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) |
syncToken | string | No | Opaque token from a completed prior sync run |
Output
| Parameter | Type | Description |
|---|---|---|
moreDataAvailable | boolean | Whether more pages of results exist |
nextCursor | string | Opaque cursor for fetching the next page |
nextSyncCursor | string | Opaque token for the next incremental sync |
Ashby List Sources
Lists all candidate sources configured in Ashby.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
includeArchived | boolean | No | When true, includes archived sources in results (default false) |
Output
| 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 |
Ashby List Users
Lists all users in Ashby with pagination.
Inputs and outputs
Input
| 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) |
syncToken | string | No | Opaque token from a completed prior sync run |
Output
| 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 |
nextSyncCursor | string | Opaque token for the next incremental sync |
Ashby Remove Candidate Tag
Removes a tag from a candidate in Ashby and returns the updated candidate.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
candidateId | string | Yes | The UUID of the candidate to remove the tag from |
tagId | string | Yes | The UUID of the tag to remove |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Search Candidates
Searches for candidates by name and/or email with AND logic. Results are limited to 100 matches. Use candidate.list for full pagination.
Inputs and outputs
Input
| 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) |
limit | number | No | Maximum matches to return (1-100) |
Output
| Parameter | Type | Description |
|---|---|---|
candidates | array | Matching candidates (max 100 results) |
Ashby Search Jobs
Searches Ashby jobs by title and/or requisition ID. Provide at least one of these filters.
Inputs and outputs
Ashby Search Openings
Searches Ashby headcount openings by human-readable identifier.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
identifier | string | Yes | Opening identifier |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Search Users
Searches Ashby users by exact email address.
Inputs and outputs
Ashby Set Custom Field Value
Sets the value of a single custom field on an Ashby Application, Candidate, Job, or Opening. Custom fields are the only way to annotate a job or req, since Ashby has no job notes and no job tags. Requires the candidatesWrite permission.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
objectId | string | Yes | UUID of the object to set the field on (application, candidate, job, or opening) |
objectType | string | Yes | Type of the object: Application, Candidate, Job, or Opening |
fieldId | string | Yes | UUID of the custom field definition to set, as returned by List Custom Fields. This is the field definition ID, not the ID of a value already on the object. |
fieldValue | json | No | Value to write, matching the field type: boolean, number, string (String, LongText, Date, Url, or a ValueSelect option), string array (MultiValueSelect), or an object for Currency ({value, currencyCode}), NumberRange ({type, minValue, maxValue}), CompensationRange, and Location ({country, region, city}). Pass null to clear the value, which makes the annotation reversible. |
Output
| Parameter | Type | Description |
|---|---|---|
customField | object | The custom field as stored on the object after the write |
Ashby Set Custom Field Values
Sets several custom field values on one Ashby Application, Candidate, Job, or Opening in a single call. Prefer this over repeated single-field writes to the same object - Ashby recommends it because concurrent single-field calls can race and overwrite each other. Requires the candidatesWrite permission.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
objectId | string | Yes | UUID of the object to set the fields on (application, candidate, job, or opening) |
objectType | string | Yes | Type of the object: Application, Candidate, Job, or Opening |
values | json | Yes | Array of at least one { fieldId, fieldValue } pair. fieldId is a custom field definition UUID from List Custom Fields. fieldValue matches the field type: boolean, number, string, string array (MultiValueSelect), or an object for Currency, NumberRange, CompensationRange, and Location. Pass null as a fieldValue to clear that field. |
Output
| Parameter | Type | Description |
|---|---|---|
customFields | array | Custom field values |
Ashby Update Candidate
Updates an existing candidate record in Ashby. Only provided fields are changed.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
candidateId | string | Yes | The UUID of the candidate to update |
name | string | No | Updated full name, or null |
email | string | No | Updated primary email address, or null |
phoneNumber | string | No | Updated primary phone number, or null |
linkedInUrl | string | No | LinkedIn profile URL, or null |
githubUrl | string | No | GitHub profile URL, or null |
websiteUrl | string | No | Personal website URL, or null |
alternateEmail | string | No | An additional email address to add to the candidate, or null |
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 |
clearSource | boolean | No | Explicitly clear the candidate source; mutually exclusive with sourceId |
clearCreditedToUser | boolean | No | Explicitly clear the credited Ashby user; mutually exclusive with creditedToUserId |
location | json | No | Candidate location object with optional city, region, and country; the object and its fields accept null |
createdAt | string | No | Backdated creation timestamp in ISO 8601, or null. Only updatable if originally backdated. |
sendNotifications | boolean | No | Whether to send a notification when the source is updated (default true), or null |
socialLinks | json | No | Array of social link objects to set on the candidate, e.g. [{"type":"LinkedIn","url":"https://..."}]. Replaces existing links; pass [] to clear them. Null is also accepted. Mutually exclusive with linkedInUrl, githubUrl, and websiteUrl. |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Transfer Application
Transfers an application to another job, interview plan, and stage.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to; the API key must permit on-behalf-of calls |
applicationId | string | Yes | Application UUID |
jobId | string | Yes | Destination job UUID |
interviewPlanId | string | Yes | Destination interview plan UUID |
interviewStageId | string | Yes | Destination interview stage UUID |
startAutomaticActivities | boolean | No | Start automatic activities configured for the destination stage |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Upload Candidate File
Securely uploads a file and attaches it to an Ashby candidate.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | Candidate UUID |
file | file | Yes | Stored file to attach to the candidate |
fileName | string | No | Optional filename override |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Ashby Upload Resume
Securely uploads a resume and sets it as the Ashby candidate resume.
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Ashby API Key |
candidateId | string | Yes | Candidate UUID |
file | file | Yes | Stored resume file |
fileName | string | No | Optional filename override |
onBehalfOfUserId | string | No | Active Ashby user UUID to attribute this mutation to |
Output
| 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 | For List Custom Fields, the field definitions (id, title, isPrivate, fieldType, objectType, isArchived, isRequired, selectableValues[] {label, value, isArchived}). For Set Custom Field Values, the field values written to the object (id, title, isPrivate, valueLabel, value) |
customField | json | A single custom field value after a write (id, title, isPrivate, valueLabel, value) |
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) |
interviewPlans | json | Interview plans (id, title, isArchived, createdAt, updatedAt) |
interviewStages | json | Ordered interview stages for a plan |
feedback | json | Submitted application feedback with form definitions and values |
history | json | Application stage history and allowed actions |
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 |
applicationId | string | UUID of the deleted application |
moreDataAvailable | boolean | Whether more pages exist |
nextCursor | string | Pagination cursor for next page |
nextSyncCursor | string | Ashby's opaque token for the next incremental list run, exposed as a cursor so it remains usable in workflow output |
Triggers
A trigger starts a workflow when a supported event occurs in this service.
Ashby Application Submitted
Trigger workflow when a new application is submitted
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
application | object | |
↳ id | string | Application UUID |
↳ createdAt | string | Application creation timestamp (ISO 8601) |
↳ updatedAt | string | Application last update timestamp (ISO 8601) |
↳ status | string | Application status (Active, Hired, Archived, Lead) |
↳ candidate | object | |
↳ id | string | Candidate UUID |
↳ name | string | Candidate name |
↳ currentInterviewStage | object | |
↳ id | string | Current interview stage UUID |
↳ title | string | Current interview stage title |
↳ stageType | string | Current interview stage type (e.g., Lead, Applied, Interview, Offer) |
↳ job | object | |
↳ id | string | Job UUID |
↳ title | string | Job title |
Ashby Application Updated
Trigger workflow when an application is updated
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
application | object | |
↳ id | string | Application UUID |
↳ createdAt | string | Application creation timestamp (ISO 8601) |
↳ updatedAt | string | Application last update timestamp (ISO 8601) |
↳ status | string | Application status (Active, Hired, Archived, Lead) |
↳ candidate | object | |
↳ id | string | Candidate UUID |
↳ name | string | Candidate name |
↳ currentInterviewStage | object | |
↳ id | string | Current interview stage UUID |
↳ title | string | Current interview stage title |
↳ stageType | string | Current interview stage type (e.g., Lead, Applied, Interview, Offer) |
↳ job | object | |
↳ id | string | Job UUID |
↳ title | string | Job title |
Ashby Candidate Deleted
Trigger workflow when a candidate is deleted
Configuration and outputs
Ashby Candidate Hired
Trigger workflow when a candidate is hired
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
application | object | |
↳ id | string | Application UUID |
↳ createdAt | string | Application creation timestamp (ISO 8601) |
↳ updatedAt | string | Application last update timestamp (ISO 8601) |
↳ status | string | Application status (Hired) |
↳ candidate | object | |
↳ id | string | Candidate UUID |
↳ name | string | Candidate name |
↳ currentInterviewStage | object | |
↳ id | string | Current interview stage UUID |
↳ title | string | Current interview stage title |
↳ stageType | string | Current interview stage type (e.g., Lead, Applied, Interview, Offer) |
↳ job | object | |
↳ id | string | Job UUID |
↳ title | string | Job title |
offer | object | |
↳ id | string | Accepted offer UUID |
↳ applicationId | string | Associated application UUID |
↳ acceptanceStatus | string | Offer acceptance status |
↳ offerStatus | string | Offer process status |
↳ decidedAt | string | Offer decision timestamp (ISO 8601) |
↳ latestVersion | object | |
↳ id | string | Latest offer version UUID |
Ashby Candidate Merged
Trigger workflow when two candidate records are merged
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
deletedCandidate | object | |
↳ id | string | Deleted candidate UUID |
mergedCandidate | object | |
↳ id | string | Final merged candidate UUID |
Ashby Candidate Stage Change
Trigger workflow when a candidate changes interview stages
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
application | object | |
↳ id | string | Application UUID |
↳ createdAt | string | Application creation timestamp (ISO 8601) |
↳ updatedAt | string | Application last update timestamp (ISO 8601) |
↳ status | string | Application status (Active, Hired, Archived, Lead) |
↳ candidate | object | |
↳ id | string | Candidate UUID |
↳ name | string | Candidate name |
↳ currentInterviewStage | object | |
↳ id | string | Current interview stage UUID |
↳ title | string | Current interview stage title |
↳ stageType | string | Current interview stage type (e.g., Lead, Applied, Interview, Offer) |
↳ job | object | |
↳ id | string | Job UUID |
↳ title | string | Job title |
Ashby Interview Schedule Created
Trigger workflow when an interview schedule is created
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
interviewSchedule | object | |
↳ id | string | Interview schedule UUID |
↳ status | string | Interview schedule status |
↳ applicationId | string | Application UUID |
↳ interviewStageId | string | Interview stage UUID |
↳ scheduledBy | json | Scheduling user |
↳ createdAt | string | Creation timestamp |
↳ updatedAt | string | Last update timestamp |
↳ interviewEvents | json | Scheduled interview events |
Ashby Interview Schedule Updated
Trigger workflow when an interview schedule is updated
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
interviewSchedule | object | |
↳ id | string | Interview schedule UUID |
↳ status | string | Interview schedule status |
↳ applicationId | string | Application UUID |
↳ interviewStageId | string | Interview stage UUID |
↳ candidateId | string | Candidate UUID |
↳ scheduledBy | json | Scheduling user |
↳ createdAt | string | Creation timestamp |
↳ updatedAt | string | Last update timestamp |
↳ interviewEvents | json | Scheduled interview events |
Ashby Job Created
Trigger workflow when a new job is created
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
job | object | |
↳ id | string | Job UUID |
↳ title | string | Job title |
↳ confidential | boolean | Whether the job is confidential |
↳ status | string | Job status (Open, Closed, Draft, Archived) |
↳ employmentType | string | Employment type (FullTime, PartTime, Intern, Contract, Temporary) |
Ashby Job Posting Deleted
Trigger workflow when a job posting is deleted
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
jobPosting | object | |
↳ id | string | Deleted job posting UUID |
↳ jobId | string | Associated job UUID |
Ashby Job Posting Updated
Trigger workflow when a job posting is updated
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
jobPosting | object | |
↳ id | string | Job posting UUID |
↳ title | string | Job posting title |
↳ jobId | string | Associated job UUID |
↳ departmentName | string | Department name |
↳ teamName | string | Team name |
↳ teamNameHierarchy | json | Department-to-team name hierarchy |
↳ locationName | string | Location name |
↳ isListed | boolean | Whether publicly listed |
↳ publishedDate | string | Publication timestamp |
↳ updatedAt | string | Last update timestamp |
Ashby Job Updated
Trigger workflow when a job is updated
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
job | object | |
↳ id | string | Job UUID |
↳ title | string | Job title |
↳ confidential | boolean | Whether the job is confidential |
↳ status | string | Job status (Open, Closed, Draft, Archived) |
↳ employmentType | string | Employment type (FullTime, PartTime, Intern, Contract, Temporary) |
Ashby Offer Created
Trigger workflow when a new offer is created
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
offer | object | |
↳ id | string | Offer UUID |
↳ applicationId | string | Associated application UUID |
↳ acceptanceStatus | string | Offer acceptance status (Accepted, Declined, Pending, Created, Cancelled) |
↳ offerStatus | string | Offer process status (WaitingOnApprovalStart, WaitingOnOfferApproval, WaitingOnApprovalDefinition, WaitingOnCandidateResponse, CandidateRejected, CandidateAccepted, OfferCancelled) |
↳ decidedAt | string | Offer decision timestamp (ISO 8601). Typically null at creation; populated after candidate responds. |
↳ latestVersion | object | |
↳ id | string | Latest offer version UUID |
Ashby Offer Deleted
Trigger workflow when an offer is deleted
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
offer | object | |
↳ id | string | Deleted offer UUID |
↳ applicationId | string | Associated application UUID |
Ashby Offer Updated
Trigger workflow when an offer is updated
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
offer | object | |
↳ id | string | Offer UUID |
↳ applicationId | string | Associated application UUID |
↳ acceptanceStatus | string | Offer acceptance status (Accepted, Declined, Pending, Created, Cancelled) |
↳ offerStatus | string | Offer process status (WaitingOnApprovalStart, WaitingOnOfferApproval, WaitingOnApprovalDefinition, WaitingOnCandidateResponse, CandidateRejected, CandidateAccepted, OfferCancelled) |
↳ decidedAt | string | Offer decision timestamp (ISO 8601). Typically null at creation; populated after candidate responds. |
↳ latestVersion | object | |
↳ id | string | Latest offer version UUID |
Ashby Opening Created
Trigger workflow when a headcount opening is created
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
opening | object | |
↳ id | string | Opening UUID |
↳ openedAt | string | Open timestamp |
↳ closedAt | string | Close timestamp |
↳ isArchived | boolean | Whether archived |
↳ archivedAt | string | Archive timestamp |
↳ closeReasonId | string | Close reason UUID |
↳ openingState | string | Opening state |
↳ latestVersion | json | Latest opening version |
Ashby Signature Request Updated
Trigger workflow when an e-signature request changes state
Configuration and outputs
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | API Key |
Output
| Parameter | Type | Description |
|---|---|---|
action | string | The webhook event type (e.g., applicationSubmit, candidateHire) |
webhookActionId | string | Ashby delivery identifier, stable across retries |
relatedEntityType | string | Related entity type: application or offer |
applicationId | string | Related application UUID |
offerId | string | Related offer UUID |
offerVersionId | string | Related offer version UUID |
eventType | string | Signature request event: sent, cancelled, completed, or deleted |