# Ashby

Ashby delivers an applicant tracking system for modern teams, offering features like job postings, candidate management, and data-driven hiring insights to streamline the recruitment process

- **Category:** hr talent & recruitment
- **Auth:** API_KEY
- **Tools:** 127
- **Triggers:** 0
- **Slug:** `ASHBY`
- **Version:** 20260217_00

## Tools

### Add Application Hiring Team Member

**Slug:** `ASHBY_ADD_APPLICATION_HIRING_TEAM_MEMBER`

Add an Ashby user to the hiring team at the application level. Use this when you need to assign a team member to participate in the hiring process for a specific application with a specific role. Requires the candidateWrite permission.

### Add Candidate to Project

**Slug:** `ASHBY_ADD_CANDIDATE_PROJECT`

Add a candidate to a project in Ashby. Projects are sourcing initiatives or recruiting campaigns used to organize and track candidate pipelines. Use this to associate candidates with specific sourcing efforts. Common use cases: - Adding sourced candidates to recruiting campaigns - Organizing candidates by sourcing channel or initiative - Tracking candidates in specific hiring projects Requires candidatesWrite permission. Returns the updated candidate object on success, or error details if the candidate or project is not found.

### Add Candidate Tag

**Slug:** `ASHBY_ADD_CANDIDATE_TAG`

Add a tag to a candidate in Ashby. Use this to categorize and organize candidates with existing tags from the system. This action allows you to apply labels/tags to candidates for filtering, searching, and organizational purposes. Tags must already exist in the system - use LIST_CANDIDATE_TAGS to view available tags or CREATE_CANDIDATE_TAG to create new ones. The response includes the full updated candidate object when successful, showing the newly added tag in the candidate's tags array. If a candidate already has the tag, the operation will still succeed idempotently.

### Add Hiring Team Member

**Slug:** `ASHBY_ADD_HIRING_TEAM_MEMBER`

Add an Ashby user to a hiring team at the application, job, or opening level. Use this when you need to assign a team member to participate in the hiring process with a specific role. Requires the organizationWrite permission.

### Add User to Interviewer Pool

**Slug:** `ASHBY_ADD_INTERVIEWER_POOL_USER`

Add a user to an interviewer pool. Use this to assign interviewers to interview pools for scheduling and coordination. Requires the hiringProcessMetadataWrite permission.

### Add Opening Job

**Slug:** `ASHBY_ADD_OPENING_JOB`

Adds a job to an opening (job requisition) in Ashby ATS. An opening represents a position to be filled, while a job defines the role details. This action associates an existing job with an existing opening, allowing multiple jobs to be linked to a single opening. Use this when you need to add job definitions to an opening or when creating multi-role requisitions. Requires the jobsWrite permission. On success, returns the updated opening with the job added to its jobIds array. On failure, returns error details with specific error codes.

### Add Opening Location

**Slug:** `ASHBY_ADD_OPENING_LOCATION`

Tool to add a location to an opening (job requisition). Use when you need to associate a location with an existing opening. Requires the jobsWrite permission.

### Anonymize Candidate

**Slug:** `ASHBY_ANONYMIZE_CANDIDATE`

Anonymize a candidate by removing personally identifiable information. Use this when you need to permanently anonymize a candidate's data. This action cannot be reversed and requires all of the candidate's applications to be in the archived or hired state.

### Approve Offer

**Slug:** `ASHBY_APPROVE_OFFER`

Approve an offer or a specific approval step within an offer's approval process. This action supports two modes: - Complete offer approval: Provide only offerId to approve the entire offer - Step-specific approval: Provide offerId, approvalStepId, and userId to approve a specific step When approving a specific step, both approvalStepId and userId are required together. Requires the 'offersWrite' permission.

### Archive Department

**Slug:** `ASHBY_ARCHIVE_DEPARTMENT`

Archive a department by its unique identifier. Archiving a department marks it as inactive while preserving all its data and historical records. Archived departments are excluded from active department lists by default but can be restored later using the restore department action. This action is idempotent - archiving an already archived department will succeed and return the same result. Required permission: organizationWrite

### Archive Interviewer Pool

**Slug:** `ASHBY_ARCHIVE_INTERVIEWER_POOL`

Archive an interviewer pool in Ashby. This marks the pool as archived, making it unavailable for new interview assignments while preserving historical data. Use this when an interviewer pool is no longer needed (e.g., for deprecated roles or outdated interview formats). The operation is idempotent - archiving an already archived pool will succeed without errors. Requires the hiringProcessMetadataWrite permission. To restore an archived pool, use the ASHBY_RESTORE_INTERVIEWER_POOL action.

### Archive Location

**Slug:** `ASHBY_ARCHIVE_LOCATION`

Archives a location or location hierarchy in Ashby. When archived, the location is marked as inactive (isArchived=true) and typically becomes unavailable for new job postings or assignments. The operation is idempotent - archiving an already archived location succeeds without error. Requires the organizationWrite permission. Common use cases: - Decommissioning office locations that are no longer in use - Removing obsolete location entries from active use - Managing location lifecycle when restructuring office locations Note: Use restore_location to unarchive a location if needed.

### Change Application Source

**Slug:** `ASHBY_CHANGE_APPLICATION_SOURCE`

Change the source attribution of an application. Use this to update which source and user should be credited for bringing in the candidate.

### Change Application Stage

**Slug:** `ASHBY_CHANGE_APPLICATION_STAGE`

Move an application to a different interview stage in the hiring pipeline. Use this to: - Advance candidates to the next interview stage (e.g., from "Application Review" to "First Round") - Move candidates to any stage within their job's interview plan (forward or backward) - Archive applications by moving to an Archived stage (requires archiveReasonId) - Move to Offer or Hired stages when progressing candidates Important: The interview stage must belong to the same interview plan as the application's job. Use LIST_INTERVIEW_STAGES with the application's job interview plan ID to get valid stage options.

### Create Application

**Slug:** `ASHBY_CREATE_APPLICATION`

Create a new job application by associating a candidate with a job opening in Ashby ATS. Use this action to: - Add a candidate to a job's hiring pipeline and interview process - Track the source of the application (referral, job board, etc.) - Credit a user (recruiter/referrer) for bringing in the candidate - Place the candidate directly into a specific interview stage (optional) The created application will automatically be assigned to the job's hiring team and start tracking the candidate's progress through the interview stages. Required: candidateId and jobId must reference existing entities in Ashby.

### Create Candidate

**Slug:** `ASHBY_CREATE_CANDIDATE`

Create a new candidate in the system. Use this to add candidates with their contact information and social profiles before applying them to jobs.

### Create Candidate Note

**Slug:** `ASHBY_CREATE_CANDIDATE_NOTE`

Create a note on a candidate profile. Use this to add comments, observations, or feedback about a candidate during the recruitment process.

### Create Candidate Tag

**Slug:** `ASHBY_CREATE_CANDIDATE_TAG`

Create a new candidate tag in Ashby for categorizing and organizing candidates. Tags are labels that help you filter, search, and group candidates for better organization and workflow management. Use this action to create custom tags based on skills, experience levels, departments, or any other criteria relevant to your hiring process. Returns the newly created tag with its unique ID, title, and archived status. Tags are created in an active (non-archived) state by default.

### Create Custom Field

**Slug:** `ASHBY_CREATE_CUSTOM_FIELD`

Create a new custom field in Ashby. Custom fields allow you to track additional structured data on Ashby objects like candidates, applications, and jobs. This action creates the field definition that can then be populated with values using the set custom field value actions. Supported field types: - String: Free text input - Number: Numeric values - Boolean: True/false values - Date: Date values (optionally date-only without time) - ValueSelect: Single selection from predefined options - MultiValueSelect: Multiple selections from predefined options - Employee: Reference to an Ashby employee (limited object type support) Note: ValueSelect and MultiValueSelect field types require the selectableValues parameter. Requires the hiringProcessMetadataWrite permission.

### Create Department

**Slug:** `ASHBY_CREATE_DEPARTMENT`

Create a new department. Use this to add organizational departments or teams for structuring jobs and hierarchy.

### Create Interviewer Pool

**Slug:** `ASHBY_CREATE_INTERVIEWER_POOL`

Create a new interviewer pool. Use this to organize interviewers into groups by expertise or interview type. Requires the hiringProcessMetadataWrite permission.

### Create Job

**Slug:** `ASHBY_CREATE_JOB`

Create a new job opening in Ashby ATS. Use this action to: - Add a new role to your organization with a title, department, location, and brand - Set up the job structure before publishing or opening it to candidates - Optionally assign a default interview plan to define the hiring process Important notes: - Newly created jobs start in 'Draft' status and cannot accept applications yet - To open the job for applications, you must set a defaultInterviewPlanId either during creation or update it later - Use LIST_DEPARTMENTS, LIST_LOCATIONS, LIST_BRAND, and LIST_INTERVIEW_PLANS actions to get valid IDs - The job creator is automatically set as the author

### Create Location

**Slug:** `ASHBY_CREATE_LOCATION`

Create a new location or location hierarchy. Use this to add office locations, remote work settings, or nested location structures for organizational management.

### Create Offer

**Slug:** `ASHBY_CREATE_OFFER`

Create a new offer for a candidate in Ashby ATS. Use this to generate formal job offers with all required field values after starting an offer process and obtaining the form definition. Prerequisites: Must first call offerProcess.start to get offerProcessId, then offer.start to get offerFormId and field definitions. Date fields must use YYYY-MM-DD format (not ISO timestamp).

### Create Opening

**Slug:** `ASHBY_CREATE_OPENING`

Create a new opening (job requisition) in Ashby ATS. An opening represents a job requisition - a request to hire for a specific position. All parameters are optional, but typically you'll want to provide at least a title, job IDs, and location IDs for a meaningful opening. Use this action to: - Create a new job opening with specific requirements - Associate openings with existing jobs, locations, and teams - Set hiring targets, employment type, and opening state - Track backfill positions vs new roles Required permission: openingsWrite Note: To get valid IDs for teamId, locationIds, and jobIds, use the corresponding List Departments, List Locations, and List Jobs actions.

### Create Referral

**Slug:** `ASHBY_CREATE_REFERRAL`

Create a referral in Ashby ATS by submitting a referral form with candidate information. Use this action to formally submit employee referrals for job openings, which creates both a candidate record (if new) and an application linked to the specified job.

### Create Survey Request

**Slug:** `ASHBY_CREATE_SURVEY_REQUEST`

Generate a survey request and receive a survey URL to send to a candidate. Use this when you need to collect feedback or information from candidates via a survey. Requires candidatesWrite permission. Note that calling this endpoint does not automatically email the survey to the candidate.

### Create Survey Submission

**Slug:** `ASHBY_CREATE_SURVEY_SUBMISSION`

Create a new survey submission for a candidate's application. Use this to submit candidate survey responses programmatically, such as candidate experience ratings or feedback forms. Requires the candidatesWrite permission.

### Get API Key Info

**Slug:** `ASHBY_GET_API_KEY_INFO`

Retrieve information about the current API key, including associated organization, user details, and permissions. Use this to verify API key validity and check what access level the key has.

### Get Application Info

**Slug:** `ASHBY_GET_APPLICATION_INFO`

Retrieve detailed information about a specific application by its ID. Use this to get complete details about an application including candidate info, interview stages, hiring team, and more.

### Get Candidate Info

**Slug:** `ASHBY_GET_CANDIDATE_INFO`

Retrieve detailed information about a specific candidate by their ID. This action returns comprehensive candidate data including: - Basic information (name, position, company, school) - Contact details (email addresses, phone numbers) - Social profiles (LinkedIn, etc.) - Associated applications and tags - Custom field values - Source and credited user information - Location and timezone - Profile URL Use this when you need complete details about a specific candidate. To find candidate IDs, use the list_candidates or search_candidates actions first.

### Get Custom Field Info

**Slug:** `ASHBY_GET_CUSTOM_FIELD_INFO`

Retrieve detailed information about a specific custom field by its ID. Use this to get custom field details including title, object type, field type, and selectable values. Requires the hiringProcessMetadataRead permission.

### Get Department Info

**Slug:** `ASHBY_GET_DEPARTMENT_INFO`

Retrieve detailed information about a specific department by its ID. Returns comprehensive department details including: - Department name (internal and external) - Parent department relationship (parentId for hierarchical structure) - Archive status (isArchived) - Creation and last update timestamps Use this action when you need information about a specific department (e.g., to verify a department exists, check its archive status, or understand organizational hierarchy). For listing all departments or finding department IDs, use the List Departments action instead. Requires 'organizationRead' permission.

### Get Feedback Form Definition

**Slug:** `ASHBY_GET_FEEDBACK_FORM_DEFINITION`

Retrieve detailed information about a specific feedback form definition by its ID. Use this action to: - Get the complete structure of a feedback form including all sections and fields - View field types (ValueSelect, MultiValueSelect, Boolean, RichText) and their configurations - Check if a form is the default form or a custom scorecard - See which interview the form is linked to (if any) - Access selectable values and field metadata for form rendering To find available feedback form IDs, use the List Feedback Form Definitions action first. Requires the hiringProcessMetadataRead permission.

### Get File Info

**Slug:** `ASHBY_GET_FILE_INFO`

Retrieve the URL of a file associated with a candidate. Use this to get a pre-signed S3 URL for accessing candidate files like resumes. Requires the candidatesRead permission.

### Get Interviewer Pool Info

**Slug:** `ASHBY_GET_INTERVIEWER_POOL_INFO`

Retrieve detailed information about a specific interviewer pool by its ID. Returns comprehensive pool information including: - Basic details (ID, title, archived status) - Qualified members who can conduct interviews - Trainees currently in training - Training path configuration with stages and requirements Use this to view interviewer pool composition, training programs, and member status for scheduling interviews or managing interviewer assignments.

### Get Interviewer User Settings

**Slug:** `ASHBY_GET_INTERVIEWER_USER_SETTINGS`

Get interviewer settings for a specific user by their ID. Use this to retrieve daily and weekly interview limits configured for the user. Requires the organizationRead permission.

### Get Interview Info

**Slug:** `ASHBY_GET_INTERVIEW_INFO`

Retrieve detailed information about a specific interview type by its ID. Use this to get interview details including title, instructions, and feedback form configuration.

### Get Interview Stage Info

**Slug:** `ASHBY_GET_INTERVIEW_STAGE_INFO`

Tool to fetch interview stage details by ID. Use when you need specific information about an interview stage including its title, type, order, and parent interview plan. Requires the interviewsRead permission.

### Get Job Info

**Slug:** `ASHBY_GET_JOB_INFO`

Retrieve detailed information about a specific job by its ID. Use this to get complete details about a job including title, status, hiring team, interview plans, and more.

### Get Job Interview Plan Info

**Slug:** `ASHBY_GET_JOB_INTERVIEW_PLAN_INFO`

Retrieve the interview plan information for a specific job. Use this to get details about the interview stages and process configured for a job.

### Get Job Posting Info

**Slug:** `ASHBY_GET_JOB_POSTING_INFO`

Retrieve detailed information about a specific job posting by its ID. Use this to get complete job posting details including full description, application form fields, compensation, and publish settings.

### Get Location Info

**Slug:** `ASHBY_GET_LOCATION_INFO`

Retrieve detailed information about a specific location by its ID. Use this to get complete location details including address, remote status, and workplace type.

### Get Offer Info

**Slug:** `ASHBY_GET_OFFER_INFO`

Retrieve detailed information about a specific offer by its ID. This action returns comprehensive offer data including application ID, status, version, timestamps, candidate ID, job ID, start date, and custom fields. Use this when you need complete details about a specific offer. To find offer IDs, use the list_offers action first. Requires the 'offersRead' permission.

### Get Opening Info

**Slug:** `ASHBY_GET_OPENING_INFO`

Retrieve detailed information about a specific opening (job requisition) by its ID. An opening represents a headcount position that needs to be filled. Each opening belongs to a job and tracks hiring progress including state (Open/Closed), hiring team members, employment type, and target dates. Use this action to: - Get complete details about a specific opening including its current state - View the hiring team assigned to the opening - Check employment type, target hire date, and target start date - Access custom fields associated with the opening Returns opening details on success, or error information if the opening ID is invalid.

### Get Referral Form

**Slug:** `ASHBY_GET_REFERRAL_FORM`

Fetches the default referral form or creates a default referral form if none exists. Requires the hiringProcessMetadataRead permission.

### Get Survey Form Definition

**Slug:** `ASHBY_GET_SURVEY_FORM_DEFINITION`

Retrieve detailed information about a specific survey form definition by its ID. This action returns comprehensive details about a survey form including: - Survey title and type (e.g., Diversity, EEOC, QualityOfHire) - Form definition with sections and fields - Field types (ValueSelect, MultiValueSelect, RichText, LinearRating, etc.) - Selectable values for choice fields - Required field indicators - Archive status Use the LIST_SURVEY_FORM_DEFINITIONS action first to discover available survey form IDs. Common survey types include candidate experience surveys, hiring manager assessments, quality of hire evaluations, and EEOC compliance forms. Requires the hiringProcessMetadataRead permission.

### Get User Info

**Slug:** `ASHBY_GET_USER_INFO`

Retrieve detailed information about a specific user by their ID. Use this to get user details including name, email, role, and permissions.

### List Application Criteria Evaluations

**Slug:** `ASHBY_LIST_APPLICATION_CRITERIA_EVALUATIONS`

Retrieve AI-generated criteria evaluations for an application. Use this to get the AI assessment of how well a candidate meets specific job requirements, including evaluation outcomes and reasoning.

### List Application Feedback

**Slug:** `ASHBY_LIST_APPLICATION_FEEDBACK`

Retrieve all feedback submissions for an application. Use this to view interviewer feedback, evaluations, and notes collected throughout the hiring process.

### List Application Hiring Team Roles

**Slug:** `ASHBY_LIST_APPLICATION_HIRING_TEAM_ROLE`

Retrieve all available hiring team roles for applications in the organization. These roles can be assigned to hiring team members at the application level (e.g., Recruiter, Hiring Manager, Recruiting Coordinator, Sourcer). Use this endpoint to get the complete list of role IDs and titles that are available for assignment. Requires candidatesRead permission. Note: This differs from the general hiring team roles list - this specifically returns roles used at the application level in the hiring workflow.

### List Application History

**Slug:** `ASHBY_LIST_APPLICATION_HISTORY`

Retrieve the complete history of stage transitions for an application. Use this to get detailed information about when and how a candidate moved through different interview stages.

### List Applications

**Slug:** `ASHBY_LIST_APPLICATIONS`

Retrieve a list of applications. Use this to fetch applications with optional pagination and filtering by sync token for incremental updates.

### List Approvals

**Slug:** `ASHBY_LIST_APPROVAL`

Retrieve a list of approvals (offer approvals, job approvals, etc.). Use this to track approval workflows and pending approvals.

### List Archive Reasons

**Slug:** `ASHBY_LIST_ARCHIVE_REASONS`

Retrieve a list of all archive reasons. Use this to see available reasons for archiving candidates or applications, such as rejection categories.

### List Brands

**Slug:** `ASHBY_LIST_BRAND`

Retrieve a list of all brands for the organization. Use this to get available brands for job postings and employer branding. Requires organizationRead permission.

### List Candidate Client Info

**Slug:** `ASHBY_LIST_CANDIDATE_CLIENT_INFO`

Retrieve all client info records for a specific candidate with pagination support. Client info records contain additional client-specific information associated with candidates in your Ashby account. This endpoint supports pagination and incremental synchronization for efficient data retrieval. Use the cursor and limit parameters to paginate through large result sets. For incremental syncing, use the syncToken to fetch only changes since your last sync. Requires candidatesRead permission.

### List Candidate Notes

**Slug:** `ASHBY_LIST_CANDIDATE_NOTES`

Retrieve all notes for a specific candidate in Ashby. Use this action to view comments, observations, and internal notes added by recruiters and hiring team members during the hiring process. Common use cases: - Review feedback and observations from interviewers - Check historical communication and decisions about a candidate - Audit the hiring process for a specific candidate Prerequisites: - You need a valid candidateId. Get this from list_candidates or search_candidates. - Requires 'candidatesRead' permission in Ashby. Returns an empty list if the candidate has no notes.

### List Candidate Projects

**Slug:** `ASHBY_LIST_CANDIDATE_PROJECTS`

Retrieve all projects associated with a candidate. Use this to see which sourcing projects or recruiting initiatives a candidate is part of.

### List Candidates

**Slug:** `ASHBY_LIST_CANDIDATES`

Retrieve a list of candidates. Use this to fetch all candidates with optional pagination and filtering by sync token for incremental updates.

### List Candidate Tags

**Slug:** `ASHBY_LIST_CANDIDATE_TAGS`

Retrieve a list of all candidate tags in your Ashby account. Tags are labels used to categorize and organize candidates for filtering and search purposes. Use this action to: - Get all available tags for tagging candidates - Implement incremental sync using the syncToken parameter - Paginate through large sets of tags using cursor Returns tag id, title, and archived status for each tag.

### List Close Reasons

**Slug:** `ASHBY_LIST_CLOSE_REASONS`

Lists all close reasons for jobs or openings. Close reasons categorize why a job or opening was closed (e.g., rejected by candidate, rejected by organization, or other reasons). Requires hiringProcessMetadataRead permission.

### List Communication Templates

**Slug:** `ASHBY_LIST_COMMUNICATION_TEMPLATES`

Retrieve a list of all communication templates. Use this to see available email and message templates for candidate outreach.

### List Custom Fields

**Slug:** `ASHBY_LIST_CUSTOM_FIELDS`

Retrieve a list of all custom field definitions configured in Ashby. Use this action to discover what custom fields are available for candidates, applications, jobs, offers, and openings. This is useful when you need to: - Know what custom fields exist before setting values on resources - Understand the data types and available options for each field - Identify the IDs of custom fields needed for other API operations Returns fields with their types (String, Number, Boolean, Date, ValueSelect, MultiValueSelect, Currency, CompensationRange) and selectable values for dropdown fields.

### List Departments

**Slug:** `ASHBY_LIST_DEPARTMENTS`

Retrieve a list of all departments in the organization. Use this action to: - Get all departments for organizing jobs and candidates by team structure - Find department IDs needed for creating or filtering jobs - Understand the organizational hierarchy via parentId relationships - Perform incremental syncs to detect newly created or updated departments Supports pagination for large organizations. When moreDataAvailable is true, use the nextCursor value in subsequent requests to fetch more results.

### List Feedback Form Definitions

**Slug:** `ASHBY_LIST_FEEDBACK_FORM_DEFINITIONS`

Retrieve all feedback form definitions from your Ashby organization. Use this action to: - Discover available interview feedback templates - Get form IDs for use with other feedback-related actions - Understand the structure of feedback forms including fields and sections - Identify the default feedback form vs custom scorecards Returns a list of feedback forms with their complete structure, including field types (ValueSelect, MultiValueSelect, Boolean, RichText) and selectable values.

### List Hiring Team Roles

**Slug:** `ASHBY_LIST_HIRING_TEAM_ROLE`

Retrieve a list of possible hiring team roles in the organization. Use this to get available roles that can be assigned to members of a hiring team (e.g., Hiring Manager, Recruiter, Recruiting Coordinator, Sourcer). Requires the organizationRead permission.

### List Interviewer Pools

**Slug:** `ASHBY_LIST_INTERVIEWER_POOLS`

Retrieve a list of all interviewer pools. Interviewer pools are groups of interviewers organized by expertise, role, or interview type (e.g., "Backend Engineer", "Bar Raiser"). Use this to see available interviewer pools for scheduling interviews or managing interview assignments. Supports pagination via cursor and incremental sync via syncToken.

### List Interview Events

**Slug:** `ASHBY_LIST_INTERVIEW_EVENTS`

Retrieves all interview events for a specific interview schedule. Each interview event represents a scheduled time slot with assigned interviewers for conducting interviews. Use this action to: - Get details about scheduled interviews including start/end times, locations, and meeting links - View which interviewers are assigned to each interview event - Check feedback submission status for interviews - Access feedback submission links for interviewers Key information returned: - Event timing (start/end times in ISO 8601 format) - Interviewer details (names, emails, roles) - Meeting logistics (physical location or virtual meeting link) - Feedback status and submission links Supports pagination via cursor and incremental synchronization via syncToken. Requires interviewsRead permission.

### List Interview Plans

**Slug:** `ASHBY_LIST_INTERVIEW_PLANS`

Retrieve a list of interview plans. Use this to get the structured interview processes and stages configured for different roles.

### List Interview Types

**Slug:** `ASHBY_LIST_INTERVIEWS`

List all interview types defined in Ashby. Returns interview templates/definitions (e.g., 'Technical Phone Screen', 'Debrief', 'Intro Call with CEO') rather than scheduled interview instances. Use this to discover available interview types for building interview plans or to sync interview type data. Supports pagination via cursor and incremental sync via syncToken.

### List Interview Schedules

**Slug:** `ASHBY_LIST_INTERVIEW_SCHEDULES`

Retrieve a list of interview schedules. Use this to fetch all scheduled interviews with candidates, including timing, interviewers, and interview details.

### List Interview Stage Groups

**Slug:** `ASHBY_LIST_INTERVIEW_STAGE_GROUPS`

Retrieve a list of interview stage groups. Use this to see how interview stages are organized into logical groups within interview plans.

### List Interview Stages

**Slug:** `ASHBY_LIST_INTERVIEW_STAGES`

Retrieve all interview stages for an interview plan in order. Use this to get the structured sequence of stages a candidate progresses through during the interview process for a specific role. Requires interviewsRead permission.

### List Job Boards

**Slug:** `ASHBY_LIST_JOB_BOARDS`

Retrieve a list of job boards. Use this to see where job postings can be published (e.g., LinkedIn, Indeed, company career page).

### List Job Postings

**Slug:** `ASHBY_LIST_JOB_POSTINGS`

Retrieve a list of job postings. Use this to fetch all public job postings with optional pagination and filtering.

### List Jobs

**Slug:** `ASHBY_LIST_JOBS`

Retrieve a list of all jobs from Ashby ATS (Applicant Tracking System). Use this action to: - Fetch all open, closed, or draft jobs in your organization - Get job details including title, status, employment type, department, and hiring team - Paginate through large result sets using cursor-based pagination - Perform incremental syncs using syncToken to only fetch changed jobs Each job includes comprehensive information such as hiring team members, interview plan IDs, job posting IDs, custom fields, and timestamps.

### List Job Templates

**Slug:** `ASHBY_LIST_JOB_TEMPLATES`

Retrieve a list of all job templates from Ashby ATS. Use this action to: - Discover available job templates for creating standardized job postings - View both active and inactive templates in your organization - Get template details including title, department, location, and employment type - Paginate through results using cursor-based pagination - Perform incremental syncs using syncToken to only fetch changed templates Job templates provide reusable configurations that help maintain consistency when creating new jobs in your organization.

### List Locations

**Slug:** `ASHBY_LIST_LOCATIONS`

Retrieve a list of all locations. Use this to get available office locations and remote work settings for jobs.

### List Offers

**Slug:** `ASHBY_LIST_OFFERS`

Retrieve a list of job offers with their latest versions. This action fetches all offers made to candidates in your Ashby account. Use pagination (cursor/perPage) to handle large result sets efficiently. Use syncToken for incremental updates to fetch only changed offers since last sync. Use createdAfter to filter offers by creation time. Requires the 'offersRead' permission.

### List Openings

**Slug:** `ASHBY_LIST_OPENINGS`

Retrieve a list of openings (job requisitions). Use this to fetch all openings with optional pagination and filtering.

### List Projects

**Slug:** `ASHBY_LIST_PROJECTS`

Retrieve a list of all projects. Use this to see candidate sourcing projects and recruiting initiatives.

### List Sources

**Slug:** `ASHBY_LIST_SOURCES`

Retrieve a list of all candidate sources. Use this to get available sources for categorizing how candidates were sourced (e.g., LinkedIn, referrals, job boards).

### List Source Tracking Links

**Slug:** `ASHBY_LIST_SOURCE_TRACKING_LINKS`

Retrieve all source tracking links configured in Ashby. Source tracking links are UTM-tagged URLs used to track where candidates are coming from (e.g., LinkedIn, job boards, referral campaigns). Use this action to: - View all active and inactive tracking links - Get tracking codes for analytics and reporting - Find the sourceId associated with each tracking link This is a read-only operation that requires no parameters.

### List Survey Form Definitions

**Slug:** `ASHBY_LIST_SURVEY_FORM_DEFINITIONS`

Retrieve a list of all survey form definitions from Ashby. Use this action to discover available candidate survey templates including: - Candidate Experience Surveys (NPS ratings for candidate feedback) - Hiring Manager Experience Surveys (feedback on recruiting process) - Quality of Hire Assessments (post-hire performance ratings) - EEOC Surveys (equal employment opportunity information collection) Each survey form contains sections with fields defining the questions and response types. This is a read-only operation that does not require any parameters.

### List Survey Submissions

**Slug:** `ASHBY_LIST_SURVEY_SUBMISSIONS`

Lists all survey submissions of a given survey type from Ashby. Survey submissions contain candidate responses to surveys sent during the hiring process. Use this action to: - Retrieve candidate experience survey responses - Access submitted survey data including answers and metadata - Paginate through large sets of submissions using cursor - Sync only new/updated submissions using syncToken - Filter submissions by creation date using createdAfter The most common survey type is 'CandidateExperience'. This action returns empty results if no submissions exist for the specified type. Requires candidatesRead permission.

### List Users

**Slug:** `ASHBY_LIST_USERS`

Retrieve a list of all users in the organization. Use this to get information about team members, their roles, and permissions.

### Move Department

**Slug:** `ASHBY_MOVE_DEPARTMENT`

Tool to move a department to another parent in the organizational hierarchy. Use when reorganizing department structure or changing parent-child relationships. Requires the organizationWrite permission.

### Move Location

**Slug:** `ASHBY_MOVE_LOCATION`

Tool to move a location to a different parent in the location hierarchy. Use when reorganizing location structure or changing parent-child relationships. Requires the organizationWrite permission.

### Remove Application Hiring Team Member

**Slug:** `ASHBY_REMOVE_APPLICATION_HIRING_TEAM_MEMBER`

Remove an Ashby user from the hiring team at the application level. Use this when you need to remove a team member from participating in the hiring process for a specific application.

### Remove Hiring Team Member

**Slug:** `ASHBY_REMOVE_HIRING_TEAM_MEMBER`

Remove an Ashby user from a hiring team at the application, job, or opening level. Use this when you need to unassign a team member from participating in the hiring process. Requires the jobsWrite permission.

### Remove User from Interviewer Pool

**Slug:** `ASHBY_REMOVE_INTERVIEWER_POOL_USER`

Remove a user from an interviewer pool. Use this to unassign interviewers from specific interview pools when they should no longer be part of that pool's roster. This removes the user from either the qualified members list or trainees list, depending on their current status in the pool. Requires the hiringProcessMetadataWrite permission.

### Remove Opening Job

**Slug:** `ASHBY_REMOVE_OPENING_JOB`

Remove a job from an opening (job requisition) in Ashby ATS. Use this action to disassociate a job from a specific opening. This is useful when: - A job was added to the wrong opening - You need to reorganize job-opening associations - An opening should no longer be associated with a particular job The action removes the job from the opening's jobIds list and returns the updated opening object. Both the opening and job must exist and be valid. Requires jobsWrite permission.

### Remove Opening Location

**Slug:** `ASHBY_REMOVE_OPENING_LOCATION`

Tool to remove a location from an opening (job requisition). Use when you need to disassociate a location from an existing opening. Requires the jobsWrite permission.

### Restore Department

**Slug:** `ASHBY_RESTORE_DEPARTMENT`

Restore an archived department by its unique identifier. Restoring a department marks it as active again, making it available in active department lists and allowing it to be used for new jobs and organizational structures. All historical data and relationships are preserved. This action is idempotent - restoring an already active department will succeed and return the same result. Use cases: - Reactivate a previously archived department that is needed again - Undo an accidental archive operation - Restore departments as part of organizational restructuring Required permission: organizationWrite

### Restore Interviewer Pool

**Slug:** `ASHBY_RESTORE_INTERVIEWER_POOL`

Restore an archived interviewer pool in Ashby. This unarchives the pool, making it available again for new interview assignments. Use this when you need to reactivate an interviewer pool that was previously archived (e.g., reviving a pool for a role that's hiring again or correcting an accidental archive). The operation is idempotent - restoring an already active pool will succeed without errors. Requires the hiringProcessMetadataWrite permission. To archive a pool, use the ASHBY_ARCHIVE_INTERVIEWER_POOL action.

### Restore Location

**Slug:** `ASHBY_RESTORE_LOCATION`

Restores an archived location or location hierarchy in Ashby. When restored, the location is marked as active (isArchived=false) and becomes available again for job postings, assignments, and other location-based operations. The operation is idempotent - restoring an already active location succeeds without error. Requires the organizationWrite permission. Common use cases: - Reactivating previously closed office locations - Undoing accidental location archives - Bringing back seasonal or temporary office locations - Restoring location availability during organizational restructuring Note: Use archive_location to archive a location if needed.

### Search Candidates

**Slug:** `ASHBY_SEARCH_CANDIDATES`

Search for candidates by email or name. Use this for quick lookups to find specific candidates without pagination. Supports exact email match or partial name match.

### Search Jobs

**Slug:** `ASHBY_SEARCH_JOBS`

Search for jobs by title in Ashby ATS (Applicant Tracking System). Use this action to: - Quickly find jobs by title without pagination - Perform partial match searches (e.g., "engineer" matches "Backend Engineer") - Look up specific job openings by name Returns matching jobs with full details including hiring team, department, location, interview plans, and job postings. Note: For listing all jobs or paginated results, use the List Jobs action instead.

### Search Opening

**Slug:** `ASHBY_SEARCH_OPENING`

Search for openings by identifier. Use this for quick lookups to find specific openings without pagination. Returns empty results if no match found.

### Search Projects

**Slug:** `ASHBY_SEARCH_PROJECTS`

Search for projects by title in Ashby. Projects in Ashby are used to track sourcing initiatives, recruiting campaigns, or candidate portfolios. Use this action to: - Quickly find projects by title without pagination - Perform partial match searches (e.g., "recruiting" matches "Engineering Recruiting 2024") - Look up specific sourcing projects or initiatives by name - Build project autocomplete features Returns matching projects with details including id, title, archive status, confidentiality settings, author, and creation timestamp. Note: Results are limited to 100 matches. If you need to browse all projects or expect more results, use the List Projects action instead for paginated access.

### Search Users

**Slug:** `ASHBY_SEARCH_USERS`

Search for an Ashby user by email address. Use this to find specific team members in the organization when you know their email. Returns matching user details including their ID, name, role, and status. Requires organizationRead permission.

### Set Custom Field Value

**Slug:** `ASHBY_SET_CUSTOM_FIELD_VALUE`

Set the value of a custom field for a given object (candidate, application, job, etc.). Use when you need to update a single custom field value. Important: When updating multiple custom fields on the same object, use customField.setValues instead to avoid race conditions.

### Set Custom Field Values

**Slug:** `ASHBY_SET_CUSTOM_FIELD_VALUES`

Set the values of multiple custom fields for a given object in a single call. Use when you need to update multiple custom fields on the same object (candidate, application, job, or opening). This is the recommended approach to avoid race conditions that can occur with concurrent customField.setValue calls.

### Set Job Status

**Slug:** `ASHBY_SET_JOB_STATUS`

Set the status of a job in Ashby ATS (Applicant Tracking System). Use this action to change the workflow state of a job: - Set to 'Open' to make a job actively accept applications - Set to 'Closed' to stop accepting applications for a job - Set to 'Draft' to put a job back into preparation mode Common use cases: - Close a job after filling the position - Open a draft job to start accepting applications - Transition a job through the hiring workflow Important limitations: - Cannot transition from Open to Draft (must close first) - Cannot transition from Closed to Open (create a new job instead) Returns the updated job details on success, or error information if the status transition is not allowed.

### Set Opening Archived

**Slug:** `ASHBY_SET_OPENING_ARCHIVED`

Sets the archived state of an opening. Requires the jobsWrite permission. Use this to archive or unarchive job openings.

### Set Opening State

**Slug:** `ASHBY_SET_OPENING_OPENING_STATE`

Set the workflow state of an opening (job requisition). Use this to transition an opening between states: Draft, Approved, Open, or Closed. Important notes: - When setting state to 'Closed', you must provide a closeReasonId (use LIST_CLOSE_REASONS to get valid IDs) - Not all state transitions are allowed by Ashby's workflow rules; the API will return an error for invalid transitions - Common valid transitions: Open ↔ Closed, Approved → Open - Returns the updated opening details including the new state, timestamps, and close reason if applicable

### Start Offer

**Slug:** `ASHBY_START_OFFER`

Create a new offer version instance for an in-progress offer process. The returned offer version can be filled out and submitted using the Create Offer action. Use this action before creating a finalized offer to initialize the offer version that will hold the offer details. After starting the offer, use the Create Offer endpoint to populate and submit the offer form. Requires the 'offersWrite' permission.

### Start Offer Process

**Slug:** `ASHBY_START_OFFER_PROCESS`

Start an offer process for a candidate's application in Ashby ATS. Use this action when you need to initiate the formal offer workflow for a candidate who has progressed through interviews and is ready to receive an offer. The application must be in the Offer stage before starting an offer process. Once started, the offer process will have a status (typically 'WaitingOnOfferCreation') and a unique identifier that can be used to track and manage the offer through completion. Requires the 'offersWrite' permission.

### Submit Application Feedback

**Slug:** `ASHBY_SUBMIT_APPLICATION_FEEDBACK`

Submit structured feedback for an application using a feedback form. Use this for formal interview feedback and scorecards, not for informal notes or comments.

### Transfer Application

**Slug:** `ASHBY_TRANSFER_APPLICATION`

Transfer an application to a different job position in Ashby ATS. Use this action to move a candidate's application from one job opening to another while optionally preserving their application history and context. This is useful when: - A candidate is better suited for a different open position - Job requirements change and the candidate should be considered for an alternative role - Internal mobility scenarios where employees are being considered for different positions The transfer will update the application's associated job, interview plan, and current interview stage. You can optionally trigger automatic activities (emails, tasks) configured for the target stage.

### Update Application

**Slug:** `ASHBY_UPDATE_APPLICATION`

Update an application's properties in Ashby. Use this action to modify application metadata such as: - Source attribution (how the candidate found or was found for the job) - Credited user (who should get credit for sourcing the candidate) - Creation date (useful for backdating imported applications) - Notification settings for the update Note: To update custom fields on applications, use the customFields.setValue endpoint instead. To change the application's interview stage, use change_application_stage. To archive/unarchive, use the archive actions. Returns the full updated application object with all current field values.

### Update Application History

**Slug:** `ASHBY_UPDATE_APPLICATION_HISTORY`

Update the complete history of an application's stage transitions. Use this to modify stage entry times, delete history events, or update existing history records. CRITICAL: This endpoint requires sending the COMPLETE application history array - use ASHBY_GET_APPLICATION_INFO first to retrieve all existing entries, then modify and send back the full array. Requires the 'candidatesWrite' permission and the 'Allow updating application history?' setting enabled in your admin API key configuration.

### Update Candidate

**Slug:** `ASHBY_UPDATE_CANDIDATE`

Update an existing candidate's profile information in Ashby ATS. Use this action to modify candidate details like name, email, phone number, job title, company, school, and social profiles (LinkedIn, GitHub, website). Requires a valid candidateId which can be obtained from list_candidates or search_candidates actions. Note: To update custom fields, use the customFields.setValue endpoint separately.

### Update Job Compensation

**Slug:** `ASHBY_UPDATE_COMPENSATION_JOB`

Update a job's compensation tiers in Ashby ATS. Use this action to define or modify the compensation structure for a job posting. You can specify multiple tiers (e.g., 'Junior', 'Senior', 'Staff') and each tier can include multiple compensation components like: - Salary (with min/max range, currency, and payment interval) - Equity (as percentage or cash value) - Bonus compensation - Commission structures Example use cases: - Setting salary ranges for a new job posting - Adding equity compensation to existing jobs - Updating compensation to reflect market changes - Creating tiered compensation for different experience levels Prerequisites: - You need a valid jobId from list_jobs or search_jobs - Compensation amounts should be appropriate for the currency and interval - At least one compensation tier with one component is required

### Update Department

**Slug:** `ASHBY_UPDATE_DEPARTMENT`

Update an existing department's information such as its name. Use this action to: - Rename a department to reflect organizational changes - Update department names with Unicode/international characters - Modify department details as your organization evolves Prerequisites: - You need a valid departmentId (obtain from list_departments action) - The department must not be archived - At least one field (e.g., name) must be provided for the update Note: The externalName is automatically updated to match the name.

### Update Interviewer Pool

**Slug:** `ASHBY_UPDATE_INTERVIEWER_POOL`

Update an existing interviewer pool's title or training requirements. Interviewer pools are groups of interviewers organized by expertise or role (e.g., "Backend Engineers", "Bar Raiser Interviews"). Use this action to: - Rename an interviewer pool by updating its title - Enable or disable training requirements for the pool - Update both title and training settings simultaneously At least one of title or requiresTraining must be provided. Use LIST_INTERVIEWER_POOLS to get valid pool IDs. Requires hiringProcessMetadataWrite permission.

### Update Job

**Slug:** `ASHBY_UPDATE_JOB`

Update an existing job's properties in Ashby ATS. Use this action to modify job details such as: - Job title (e.g., change "Engineer" to "Senior Engineer") - Department/team assignment - Office location - Default interview plan - Confidentiality settings - Custom requisition ID Prerequisites: - You need a valid jobId from list_jobs or search_jobs - For teamId, get valid IDs from list_departments - For locationId, get valid IDs from list_locations - For defaultInterviewPlanId, get valid IDs from list_interview_plans Note: To update custom fields, use the customFields.setValue endpoint instead. To change job status (open/close/archive), use the set_job_status action.

### Update Job Posting

**Slug:** `ASHBY_UPDATE_JOB_POSTING`

Update an existing job posting's details including title, description, and visibility status. This action allows you to modify public job postings properties such as: - Title: Change the job posting title - Description: Update the job description (HTML format, certain tags supported) - Listing Status: Control whether the posting is publicly visible on job boards - Description Customization: Suppress opening/closing sections for full API control Use this to keep job postings current, control visibility, or customize descriptions. Requires the jobsWrite permission.

### Update Location Address

**Slug:** `ASHBY_UPDATE_LOCATION_ADDRESS`

Update the address of a location or location hierarchy. Use this when you need to modify location address details such as city, region, country, or postal code. Requires the organizationWrite permission.

### Update Location External Name

**Slug:** `ASHBY_UPDATE_LOCATION_EXTERNAL_NAME`

Update a location's external (candidate-facing) name. Use this to set or clear an alternate name for a location that is displayed on job boards and used in the API.

### Update Location Name

**Slug:** `ASHBY_UPDATE_LOCATION_NAME`

Update a location's name. Use this to rename an existing location. Requires the organizationWrite permission.

### Update Location Remote Status

**Slug:** `ASHBY_UPDATE_LOCATION_REMOTE_STATUS`

Tool to update a location's remote status. Use when you need to mark a location as remote or non-remote. Requires organizationWrite permission.

### Update Location Workplace Type

**Slug:** `ASHBY_UPDATE_LOCATION_WORKPLACE_TYPE`

Tool to update a location's workplace type (OnSite, Remote, or Hybrid). Use when you need to modify the workplace setting for an office location. Requires organizationWrite permission.

### Update Opening

**Slug:** `ASHBY_UPDATE_OPENING`

Update properties of an existing opening (job requisition). Use this to modify opening details such as description, team, hire dates, and employment type. Requires jobsWrite permission.

### Update Selectable Values Custom Field

**Slug:** `ASHBY_UPDATE_SELECTABLE_VALUES_CUSTOM_FIELD`

Update the selectable values for a ValueSelect or MultiValueSelect custom field. Use this to add new options, modify existing option labels, or archive outdated options. Values are merged with existing options - matching values are updated, new values are added.

### Update User Interviewer Settings

**Slug:** `ASHBY_UPDATE_USER_INTERVIEWER_SETTINGS`

Update interviewer settings for a user, including daily and weekly interview limits. Use this when you need to set or modify interview scheduling constraints for a user. Either limit can be provided individually or both together; unprovided limits remain unchanged.
