Obtain an Ashby API key from Settings > Integrations > API Keys; all requests use the key via HTTP Basic Auth (key as username, empty password) to https://api.ashbyhq.com.
POST /v1/candidate.create with a JSON body containing name and email; the response includes a candidate id.
To create a job posting, POST /v1/jobPosting.create with title, teamId, locationId, and employmentType; retrieve valid teamId and locationId values from /v1/team.list and /v1/location.list respectively.
Create an application linking candidate to job: POST /v1/application.create with candidateId and jobPostingId; the response includes an application id and the initial stage id.
Move the application to the next stage: POST /v1/application.changeStage with applicationId and interviewStageId; retrieve available stage IDs from /v1/interviewPlan.list for the job.
To archive the application, POST /v1/application.archive with applicationId and archiveReasonId; list valid reasons from /v1/archiveReason.list.
Known gotchas
Ashby's API uses action-style endpoints (noun.verb) rather than REST resource paths; do not assume standard REST conventions — consult the Ashby API documentation for the correct endpoint name.
Stage IDs are tied to interview plans which are per-job; you cannot reuse a stage ID from one job on another job's application.
Ashby rate-limits API calls; check the response headers for rate limit information and implement retry logic with exponential backoff on 429 responses.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp