ATS
Ashby
API integration
Ship ATS features without building the integration. Full Ashby API access via Proxy, normalized data through Unified APIs, and 110+ MCP-ready tools for AI agents — all extensible to your exact use case.
Talk to usUse Cases
Why integrate with Ashby
Common scenarios for SaaS companies building Ashby integrations for their customers.
Automate new hire provisioning from accepted offers
HRIS and onboarding platforms can listen for offer acceptance events via webhooks, then pull structured offer and candidate data to automatically create employee records — eliminating manual data entry between Ashby and downstream systems.
Trigger background checks on application stage changes
Identity verification and background check SaaS tools can react to stage transitions in Ashby, automatically initiating checks and writing results back to custom fields so recruiters never leave the ATS.
Push assessment results directly into recruiter workflows
Technical assessment and skills testing platforms can use Ashby's dedicated assessment endpoints to inject scores, completion timestamps, and result URLs directly onto the candidate's application — keeping the entire evaluation loop inside the ATS.
Sync candidate and job data into workforce planning tools
Headcount planning and analytics SaaS products can continuously pull jobs, openings, departments, and application pipeline data from Ashby to power real-time hiring forecasts and capacity models.
Enrich interview workflows with AI-generated feedback
Interview intelligence platforms can pull upcoming interview events and schedules from Ashby, join meetings automatically, then push structured feedback back as application feedback — closing the loop for hiring managers who forget to write notes.
What You Can Build
Ship these features with Truto + Ashby
Concrete product features your team can ship faster by leveraging Truto’s Ashby integration instead of building from scratch.
Offer-to-onboarding pipeline
Automatically extract candidate details, compensation, and start dates from accepted Ashby offers to pre-populate new hire records in your HRIS or payroll product.
Real-time application stage tracker
Subscribe to Ashby webhooks and pull application history to build a live pipeline visualization showing every candidate's progression across interview stages.
Embedded assessment scorecards
Create and update assessments on Ashby applications so your test scores, completion times, and result links appear natively inside the recruiter's ATS view.
Automated candidate tagging and project assignment
Tag candidates and assign them to Ashby projects programmatically based on external signals like sourcing campaigns, event attendance, or CRM engagement scores.
Custom field sync for verification status
Write structured data like background check results, identity verification status, or compliance flags back to Ashby custom fields so recruiters see real-time external data without switching tools.
Department and location hierarchy sync
Keep your product's org structure in sync with Ashby by reading and writing departments, locations, and their hierarchical relationships via create, move, and archive operations.
SuperAI
Ashby AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_ashby_jobs
List all jobs in Ashby with optional filtering by status. Returns job id, title, status, employmentType, locationId, departmentId, jobPostingIds, and hiringTeam details.
get_single_ashby_job_by_id
Get information about a specific job in Ashby. Returns fields including id, title, confidential, status, employmentType, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds, customFields, jobPostingIds, customRequisitionId, brandId, hiringTeam, author, createdAt, and updatedAt.
create_a_ashby_job
Create a new job in Ashby with required parameters title, teamId, and locationId. Returns job id, title, status, locationId, departmentId, defaultInterviewPlanId, brandId, hiringTeam, author, and timestamps.
update_a_ashby_job_by_id
Update an existing job in Ashby by jobId. Returns updated job fields including id, title, status, locationId, defaultInterviewPlanId, customRequisitionId, hiringTeam, author, createdAt, updatedAt, openedAt, and closedAt.
ashby_jobs_set_status
Set the status of a job by id in Ashby. Requires jobId and status. Returns updated job fields including id, title, status, employmentType, locationId, departmentId, hiringTeam, author, createdAt, updatedAt, openedAt, and closedAt.
get_single_ashby_job_posting_by_id
Retrieve an individual job posting by id in Ashby. Returns fields including title, descriptionPlain, descriptionHtml, departmentName, teamName, locationName, and linkedData for rich search engine results.
list_all_ashby_job_postings
List all published job postings in Ashby. Returns id, title, jobId, departmentName, teamName, locationName, workplaceType, employmentType, isListed, publishedDate, applicationDeadline, externalLink, applyLink, compensationTierSummary, shouldDisplayCompensationOnJobBoard, and updatedAt fields. Use listedOnly=true to fetch only publicly displayable job postings.
list_all_ashby_users
Get a list of all Ashby users. Returns id, firstName, lastName, email, globalRole (user's access level), isEnabled, and updatedAt fields. Requires organizationRead permission.
get_single_ashby_user_by_id
Get an Ashby user by id. Requires userId. Returns id, firstName, lastName, email, globalRole, isEnabled, and updatedAt fields in the response.
list_all_ashby_candidates
List candidates in Ashby. Returns candidate id, createdAt, updatedAt, name, primaryEmailAddress, emailAddresses, primaryPhoneNumber, phoneNumbers, socialLinks, and tags fields in the response.
get_single_ashby_candidate_by_id
Get a single candidate by externalMappingId in Ashby. Returns candidate details including id and externalMappingId.
update_a_ashby_candidate_by_id
Update an existing candidate by candidateId in Ashby. Returns updated candidate fields including id, createdAt, updatedAt, name, primaryEmailAddress, phoneNumbers, socialLinks, tags, position, company, school, applicationIds, and resumeFileHandle.
ashby_candidates_project
Add a candidate to a project in Ashby. Requires candidateId and projectId. Returns candidate details including id, name, primaryEmailAddress, phoneNumbers, socialLinks, tags, position, and company.
ashby_candidates_tag
Add a tag to a candidate in Ashby using candidateId and tagId. Returns candidate details including id, name, primaryEmailAddress, phoneNumbers, socialLinks, tags, position, and company.
ashby_candidates_anonymize
Anonymize a candidate by id in Ashby. Requires candidateId. This action cannot be reversed and requires all of the candidate's applications to be archived or hired. Returns candidate fields including id, createdAt, updatedAt, name, primaryEmailAddress, emailAddresses, primaryPhoneNumber, phoneNumbers, socialLinks, tags, position, and company.
list_all_ashby_applications
Get all applications in the organization in Ashby. Returns application id, createdAt, updatedAt, status, candidate info (id, name, primaryEmailAddress, primaryPhoneNumber), currentInterviewStage (id, title, type), and source (id, title, isArchived). Requires candidatesRead permission.
get_single_ashby_application_by_id
Fetch application details by id in Ashby. Requires applicationId. Returns id, createdAt, updatedAt, status, candidate info, currentInterviewStage, and source fields.
ashby_applications_change_stage
Change the stage of an application by applicationId and interviewStageId in Ashby. Returns updated application id, status, candidate info, currentInterviewStage, and source details. Pass archiveReasonId and archiveEmail when moving to an Archived stage.
create_a_ashby_application
Create an application by considering a candidate for a job in Ashby. Requires candidateId and jobId. Returns application id, createdAt, updatedAt, status, candidate details, currentInterviewStage, and source information.
update_a_ashby_application_by_id
Update an application by id in Ashby. Requires applicationId. Returns updated application fields including id, createdAt, updatedAt, status, customFields, candidate details, currentInterviewStage, and source.
ashby_applications_transfer
Transfer an application with applicationId to a different job with jobId, interviewPlanId, and interviewStageId in Ashby. Returns updated application id, status, candidate info, current interview stage, and source.
ashby_applications_change_source
Change the source of an application in Ashby. Requires applicationId and sourceId. Returns updated application fields including id, createdAt, updatedAt, status, customFields, candidate details, currentInterviewStage, and source information.
get_single_ashby_file_by_id
Retrieve the URL of a file associated with a candidate in Ashby using fileHandle. Returns the file URL. Note: URL expires after 30 days.
ashby_files_download
Use this endpoint to download a file from the system by specifying the file’s path in the request URL. The path should contain the full location or URL of the file you want to retrieve. The response returns the file as a binary stream, allowing you to save or process it as needed
create_a_ashby_webhook
Create a webhook setting with webhookType, requestUrl, and secretToken in Ashby. Returns id, enabled status, requestUrl, secretToken, and webhookType in the response.
list_all_ashby_interview_stages
List all interview stages for an interview plan in Ashby. Requires interviewPlanId. Returns stages in order.
get_single_ashby_interview_stage_by_id
Fetch interview stage details by id in Ashby. Requires interviewStageId. Returns detailed information about the interview stage including its unique id and related metadata.
list_all_ashby_hiring_team_roles
List possible hiring team roles in an organization in Ashby. Returns an array of role titles or objects with id and title based on namesOnly parameter.
list_all_ashby_locations
List all locations in Ashby. Returns id, name, isArchived, address, isRemote, workplaceType, parentLocationId, and type fields for each location. Does not return regions.
get_single_ashby_location_by_id
Get details for a single location by id in Ashby. Returns id, name, isArchived, address (including postalAddress with country, region, locality, postalCode, streetAddress), isRemote, workplaceType, parentLocationId, and type.
create_a_ashby_location
Create a location with required parameters name and type in Ashby. Returns the created location's id, name, type, address details, parentLocationId, isRemote, and workplaceType.
ashby_locations_archive
Archive a location by id in Ashby. Returns the location's id, name, isArchived status, address details, isRemote flag, workplaceType, parentLocationId, and type.
ashby_locations_move
Move a location by specifying locationId and parentLocationHierarchyId in Ashby. Returns updated location fields including id, name, isArchived, address, isRemote, workplaceType, parentLocationId, and type.
ashby_locations_restore
Restore an archived location by locationId in Ashby. Returns id, name, isArchived status, address details, isRemote, workplaceType, parentLocationId, and type fields in the response.
list_all_ashby_departments
List all departments in Ashby. Returns id, name, isArchived, and parentId fields for each department.
get_single_ashby_department_by_id
Fetch department details by id in Ashby. Requires departmentId. Returns id, name, isArchived, and parentId fields in the response.
create_a_ashby_department
Create a department with name and optional parentId in Ashby. Returns id, name, isArchived, and parentId of the created department.
update_a_ashby_department_by_id
Update a department using departmentId and name in Ashby. Returns id, name, isArchived, and parentId of the updated department.
delete_a_ashby_department_by_id
Archive a department by departmentId in Ashby. Returns the department's id, name, isArchived status, and parentId in the response.
ashby_departments_move
Move a department by departmentId to another parent using parentId in Ashby. Returns id, name, isArchived, and parentId of the moved department.
ashby_departments_restore
Restore a department by departmentId in Ashby. Returns the department's id, name, isArchived status, and parentId.
list_all_ashby_candidate_tags
List all candidate tags in Ashby. Returns id, title, and isArchived fields for each candidate tag. Requires includeArchived parameter to specify if archived tags should be included.
create_a_ashby_candidate_tag
Create a candidate tag with the required title in Ashby. Returns id, title, and isArchived status of the created or existing tag.
list_all_ashby_sources
List all sources in Ashby. Returns fields id, title, isArchived, and sourceType with its id, title, and isArchived. Requires includeArchived parameter to include archived items.
list_all_ashby_archive_reasons
List archive reasons in Ashby. Returns id, text, reasonType, and isArchived fields for each archive reason. Requires includeArchived parameter to specify if archived reasons are included.
list_all_ashby_feedback_form_definitions
List all feedback form definitions in Ashby. Returns id, title, isArchived, formDefinition with sections and fields, organizationId, isDefaultForm, and interviewId.
get_single_ashby_feedback_form_definition_by_id
Get a single feedback form by id in Ashby. Requires feedbackFormDefinitionId. Returns id, title, isArchived, formDefinition with sections and fields, organizationId, isDefaultForm, and interviewId.
list_all_ashby_interview_plans
List all interview plans in Ashby. Returns id, title, and isArchived fields for each interview plan. Requires includeArchived parameter to specify if archived plans are included.
list_all_ashby_interviews
List all interviews in Ashby. Returns id, title, isArchived, isDebrief, instructionsHtml, instructionsPlain, jobId, and feedbackFormDefinitionId for each interview. Requires interviewsRead permission.
get_single_ashby_interview_by_id
Fetch interview details by id in Ashby. Requires id. Returns id, title, isArchived, isDebrief, instructionsHtml, instructionsPlain, jobId, and feedbackFormDefinitionId fields.
list_all_ashby_openings
List openings in Ashby. Returns id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, and latestVersion with details like description, authorId, createdAt, teamId, jobIds, targetHireDate, targetStartDate, isBackfill, employmentType, locationIds, hiringTeam, and customFields.
get_single_ashby_opening_by_id
Get information about a specific opening by id in Ashby. Returns fields including id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, and latestVersion with details like description, authorId, jobIds, hiringTeam, and customFields.
create_a_ashby_opening
Create an opening in Ashby with required parameters including jobIds, teamId, and employmentType. Returns the created opening with fields such as identifier, description, targetHireDate, and openingState.
update_a_ashby_opening_by_id
Update an opening by openingId in Ashby. Returns updated opening fields including id, openedAt, closedAt, isArchived, archivedAt, closeReasonId, openingState, and latestVersion with details like identifier, description, teamId, jobIds, targetHireDate, targetStartDate, isBackfill, employmentType, locationIds, hiringTeam, and customFields.
list_all_ashby_candidate_notes
List all notes for a candidate in Ashby using candidateId. Returns note id, createdAt timestamp, content, and author details including id, firstName, lastName, and email.
create_a_ashby_candidate_note
Create a note on a candidate in Ashby with candidateId, note content, and type. Returns id, createdAt, content, and author details including id, firstName, lastName, and email.
list_all_ashby_interview_schedules
Get all interview schedules. Returns id, status, applicationId, interviewStageId, and interviewEvents including event id, startTime, endTime, location, meetingLink, and interview details in Ashby.
create_a_ashby_interview_schedule
Create a scheduled interview in Ashby with applicationId and interviewEvents including startTime, endTime, and interviewers with email and feedbackRequired. Returns confirmation of the created schedule.
update_a_ashby_interview_schedule_by_id
Update an interview schedule by interviewScheduleId in Ashby. Requires interviewScheduleId and interviewEvent with startTime, endTime, and interviewers. To update an event, include interviewEventId. Returns updated schedule details.
ashby_interview_schedules_cancel
Cancel an interview schedule by id in Ashby. Requires id parameter. Returns success or error response indicating the cancellation status.
list_all_ashby_interview_events
List interview events for a given interviewScheduleId in Ashby. Returns id, interviewId, interviewScheduleId, interviewerUserIds, createdAt, startTime, endTime, feedbackLink, location, meetingLink, hasSubmittedFeedback, and nested interview details including id, title, isArchived, isDebrief, instructionsHtml, instructionsPlain, jobId, and feedbackFormDefinitionId.
list_all_ashby_application_feedbacks
List all feedback associated with an application in Ashby. Requires applicationId. Returns id, formDefinition, submittedValues, and submittedByUser fields in the response.
create_a_ashby_application_feedback
Submit application feedback for applicationId, userId, interviewEventId, and formDefinitionId in Ashby. Returns submittedValues containing the feedback fields and their submitted values.
list_all_ashby_offers
Get a list of all offers with their latest version in Ashby. Returns id, decidedAt, applicationId, acceptanceStatus, offerStatus, and latestVersion including startDate, salary, createdAt, openingId, customFields, fileHandles, and author details.
get_single_ashby_offer_by_id
Get details about a single offer by id in Ashby. Requires offer id. Returns fields including id, decidedAt, applicationId, acceptanceStatus, offerStatus, latestVersion with salary and author details, versions, and formDefinition.
create_a_ashby_offer
Create a new offer with offerProcessId, offerFormId, and offerForm containing fieldSubmissions in Ashby. Returns offer id, acceptanceStatus, offerStatus, latestVersion details including startDate, salary, customFields, fileHandles, and author info.
update_a_ashby_offer_by_id
Update an existing offer by providing offerId and offerForm with fieldSubmissions in Ashby. Returns updated offer details including id, acceptanceStatus, offerStatus, latestVersion with salary, startDate, customFields, fileHandles, and author information.
list_all_ashby_survey_form_definitions
List all survey form definitions in Ashby. Returns id, title, isArchived, formDefinition with sections and fields, and surveyType for each survey form definition.
list_all_ashby_survey_submissions
List all survey submissions by surveyType in Ashby. Returns id, submittedAt, candidateId, applicationId, surveyType, formDefinition, and submittedValues fields in the response.
create_a_ashby_survey_submission
Create a new survey submission with candidateId, applicationId, surveyFormDefinitionId, and submittedValues in Ashby. Returns id, submittedAt, candidateId, applicationId, surveyType, formDefinition, and submittedValues.
list_all_ashby_applications_history
Fetch a paginated list of application history items for an application in Ashby. Requires applicationId. Returns id, stageId, title, enteredStageAt, leftStageAt, stageNumber, allowedActions, and actorId fields in the response.
update_a_ashby_applications_history_by_id
Update the history of an application in Ashby. Requires applicationId and applicationHistory array containing all history events. Returns success response confirming the update.
create_a_ashby_applications_hiring_team_member
Add a user to the hiring team for an application in Ashby. Requires applicationId, teamMemberId, and roleId. Returns success response confirming the addition.
delete_a_ashby_applications_hiring_team_member_by_id
Remove a hiring team member from an application in Ashby using applicationId, teamMemberId, and roleId. The response confirms the removal.
create_a_ashby_application_form
Submit an application for a job posting in Ashby with jobPostingId and applicationForm. Returns submitted form instance including id, form definition with sections and fields, and submitted values.
update_a_ashby_approval_definition_by_id
Create or update an approval definition for an entityType and entityId in Ashby. Returns id, entityType, entityId, and approvalStepDefinitions with approvalsRequired and approvers.
list_all_ashby_assessment
List assessments in Ashby. Returns assessment_type_id, name, and description for each assessment.
create_a_ashby_assessment
Add a completed assessment to a candidate in Ashby. Requires candidateId, partnerId, and assessment object with timestamp. Returns applicationId, assessmentId, assessmentName, assessmentTypeId, candidateId, metadata, and result fields.
update_a_ashby_assessment_by_id
Update the status of a started assessment in Ashby. Requires assessment_id and timestamp. Include assessment_status unless cancelled_reason is provided. Response confirms update success.
ashby_assessment_cancel
Cancel an assessment by assessment_id in Ashby. Returns update_request with assessment_id, assessment_status, assessment_profile_url, assessment_result, cancelled_reason, and metadata fields.
list_all_ashby_candidate_search
Search candidates by email and name in Ashby. Requires email and/or name. Returns candidate id, name, primaryEmailAddress, position, company, school, tags, and resumeFileHandle in the response. Results limited to 100.
list_all_ashby_close_reason
List all close reasons with includeArchived parameter in Ashby. Returns id, reasonText, and isArchived fields for each close reason.
list_all_ashby_communication_template
List all enabled communication templates in Ashby. Returns id, createdAt, updatedAt, title, and intendedTypes fields for each template.
list_all_ashby_custom_field
List all custom fields in Ashby. Returns fields including id, title, objectType, fieldType, isPrivate, isArchived, and selectableValues.
get_single_ashby_custom_field_by_id
Get information about a custom field by customFieldId in Ashby. Returns id, isPrivate, title, objectType, isArchived, fieldType, and selectableValues with label, value, and isArchived.
create_a_ashby_custom_field
Create a new custom field in Ashby with fieldType, objectType, and title. Returns id, title, objectType, fieldType, isPrivate, isArchived, and selectableValues if applicable.
ashby_custom_field_set_value
Set the value of a custom field for a given object in Ashby. Requires objectId, objectType, and fieldId. Returns id, title, and value of the updated custom field.
create_a_ashby_hiring_team
Add a user to the hiring team at the application, job, or opening level in Ashby. Requires applicationId, jobId, or openingId, teamMemberId, and roleId. Returns success or error response.
delete_a_ashby_hiring_team_by_id
Remove a user from the hiring team by unassigning a role using openingId, teamMemberId, and roleId in Ashby.
list_all_ashby_interview_stage_groups
List all interview stage groups for an interview plan in Ashby. Returns an array of interview stage group objects in order.
list_all_ashby_interviewer_pools
List all interviewer pools in Ashby. Returns id, title, isArchived, and trainingPath including trainingStages with details such as interviewerRole, interviewsRequired, approvalRequired, and approvers.
get_single_ashby_interviewer_pool_by_id
Get information about an interviewer pool by id in Ashby. Returns id, title, isArchived status, trainingPath details including trainingStages and approvers, qualifiedMembers, and trainees with their currentProgress.
create_a_ashby_interviewer_pool
Create an interviewer pool with title and requiresTraining in Ashby. Returns id, title, isArchived, trainingPath with trainingStages and approvers, qualifiedMembers, and trainees with currentProgress.
update_a_ashby_interviewer_pool_by_id
Update an interviewer pool with id. Returns id, title, isArchived, trainingPath with trainingStages and approvers, qualifiedMembers, and trainees with currentProgress in Ashby.
ashby_interviewer_pools_archive
Archive an interviewer pool by providing interviewerPoolId. Returns id, title, isArchived status, trainingPath details, qualifiedMembers, and trainees in the response.
ashby_interviewer_pools_restore
Restore an archived interviewer pool by providing interviewerPoolId. Returns id, title, isArchived status, trainingPath details, qualifiedMembers, and trainees in Ashby.
create_a_ashby_interviewer_pool_user
Add a user to an interviewer pool in Ashby with required parameters interviewerPoolId and userId. Returns the pool's id, title, isArchived status, trainingPath details, qualifiedMembers, and trainees.
delete_a_ashby_interviewer_pool_user_by_id
Remove a user from an interviewer pool in Ashby. Requires interviewerPoolId and userId. Returns updated pool details including id, title, isArchived, trainingPath, qualifiedMembers, and trainees.
list_all_ashby_job_search
Search jobs by requisitionId in Ashby. Returns job details including id, title, status, employmentType, locationId, departmentId, hiringTeam, author, createdAt, updatedAt, openedAt, and closedAt.
list_all_ashby_job_board
List all enabled job boards in Ashby. Returns id, title, and isInternal fields for each job board. Requires jobsRead permission.
list_all_ashby_job_template
List all active and inactive job templates in Ashby. Returns id, title, status, locationId, departmentId, defaultInterviewPlanId, interviewPlanIds, createdAt, updatedAt, and location details including name and address.
list_all_ashby_openings_search
Search openings by identifier in Ashby. Requires identifier. Returns fields including id, openedAt, closedAt, isArchived, openingState, and latestVersion with details like description, authorId, jobIds, hiringTeam, and customFields.
list_all_ashby_projects
List projects in Ashby. Returns id, title, description, isArchived, confidential, authorId, createdAt, and customFieldEntries for each project.
get_single_ashby_project_by_id
Get information about a specific project by id in Ashby. Returns fields id, title, description, isArchived, confidential, authorId, createdAt, and customFieldEntries with id, title, and value.
list_all_ashby_projects_search
Search projects by title in Ashby. Requires title parameter. Returns fields id, title, description, isArchived, confidential, authorId, createdAt, and customFieldEntries in the response. Limited to 100 results.
list_all_ashby_referrals
Create a referral with id, creditedToUserId, and fieldSubmissions in Ashby. Returns referral id, createdAt, status, candidate details, job info, and credited user info.
get_single_ashby_referral_form_by_id
Fetch default referral form in Ashby. Returns id, title, isArchived, formDefinition with sections and fields, organizationId, and isDefaultForm.
list_all_ashby_source_tracking_links
List all source custom tracking links in Ashby. Returns id, code, enabled status, sourceId, and link for each tracking link. Requires includeDisabled parameter to include disabled links.
list_all_ashby_survey_requests
List all survey requests filtered by surveyType in Ashby. Requires surveyType parameter. Returns id, candidateId, applicationId, surveyFormDefinitionId, and surveyUrl for each survey request.
create_a_ashby_survey_request
Create a survey request with candidateId, applicationId, and surveyFormDefinitionId in Ashby. Returns id, candidateId, applicationId, surveyFormDefinitionId, and surveyUrl. Note: URL expires after 30 days and is not emailed automatically.
list_all_ashby_users_search
Search for an Ashby user by email. Requires email parameter. Returns user fields id, firstName, lastName, email, globalRole, isEnabled, and updatedAt.
Why Truto
Why use Truto’s MCP server for Ashby
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Ashby
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified ATS API
Activities
The activity on a candidate performed by a user.
Applications
The applications represent an application for a job.
Attachments
The attachments represent an attachment for a candidate.
Candidates
The candidates represent a candidate.
Departments
The departments represent a department.
Interviews
The interviews represent an interview.
Job Form Fields
The form fields used to apply to a job.
Job Interview Stages
The job interview stages represent a job interview stage.
Jobs
The jobs represent a job.
Offers
The offers represent an offer.
Offices
The offices represent an office.
Reject Reasons
The reject reasons represent a reject reason.
Scorecards
The scorecards represent a scorecard.
Tags
The tags represent a tag for a candidate.
Users
The users represent a user.
How It Works
From zero to integrated
Go live with Ashby in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Ashby account
Use Truto’s frontend SDK to connect your customer’s Ashby account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Ashby
Truto’s Proxy API is a 1-to-1 mapping of the Ashby API. You call us, we call Ashby, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Ashby’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Ashby on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication method does the Ashby integration use?
Ashby's API uses API key-based authentication. Truto handles secure credential storage and auth management, so your end users simply provide their Ashby API key during the connection flow.
Can I read and write custom fields on Ashby objects?
Yes. You can list and retrieve custom field definitions, create new custom fields, and set values on specific records using the custom field set value endpoint — useful for pushing external data like verification statuses or scores back into Ashby.
Does Truto support Ashby webhooks for real-time event triggers?
Yes. The create webhook endpoint lets you register webhook subscriptions in Ashby to listen for events like application stage changes, offer updates, or interview scheduling — enabling real-time, event-driven integrations.
What Unified API resources map to Ashby?
Truto's Unified ATS API covers Applications, Candidates, Jobs, Offers, Interviews, Departments, Offices (Locations), Users, Tags, Reject Reasons, Scorecards, Attachments, Activities, Job Interview Stages, and Job Form Fields — all normalized across ATS providers including Ashby.
Can I manage the full application lifecycle programmatically?
Yes. You can create applications, change their stage, transfer them between jobs, update their source, manage hiring team members, and track full application history — covering the complete candidate journey from apply to hire.
Are Ashby's assessment-specific endpoints supported?
Yes. Truto exposes dedicated endpoints to create, update, and cancel assessments on Ashby applications, making it straightforward for testing and evaluation platforms to push structured results directly into the ATS.
From the Blog
Ashby integration guides
Deep dives, architecture guides, and practical tutorials for building Ashby integrations.
Ashby
Get Ashby integrated into your app
Our team understands what it takes to make a Ashby integration successful. A short, crisp 30 minute call with folks who understand the problem.
Talk to us