ワンクリックで
ashby
Ashby API for applicant tracking and recruiting. Use when user mentions "Ashby", "ATS", "applicant tracking", "candidate", "job application", "recruiting pipeline", "job posting", "opening", or "hiring project".
メニュー
Ashby API for applicant tracking and recruiting. Use when user mentions "Ashby", "ATS", "applicant tracking", "candidate", "job application", "recruiting pipeline", "job posting", "opening", or "hiring project".
SOC 職業分類に基づく
Google Maps Platform API for geocoding, places, routes, and distance matrices. Use when user mentions "Google Maps", "geocode", "directions", "places API", route matrix, or asks to look up an address, route, or place metadata.
A high-fashion editorial video style - cold desaturated grade, dramatic high-contrast light, monumental clean architecture or backdrop, deliberate model pose, strong silhouette, and luxury material texture. Applies to fashion, beauty, luxury, and personal-brand subjects. Trigger on /fashion-editorial, "Fashion Editorial", "luxury fashion campaign", "high fashion video", or "editorial model film".
A hand-drawn fantasy animation video style - painterly 2D backgrounds, expressive simple characters, lush nature, soft diffused light, warm storybook color, and gentle magical wonder. Applies to any fantasy, character, nature, or adventure subject. Trigger on /hand-drawn-fantasy-anime, "hand-drawn fantasy animation", "painterly 2D fantasy", "storybook anime", or "warm forest animation".
A dark luxury product macro video style - premium materials in extreme close-up, black studio, pinpoint specular highlights, ultra-shallow focus, engraved or mechanical detail, and refined reveal pacing. Applies to watches, jewelry, pens, cameras, fragrance caps, and other high-end objects. Trigger on /luxury-product, "Luxury Product", "premium product macro", "dark luxury product video", or "metal detail reveal".
A sports performance advertising video style - athlete effort, gear and body close-ups, impact rhythm, motion blur, Dutch or low angles, high-contrast desaturated grade, and dramatic rim light. Applies to any sport, athlete, training action, or performance product. Trigger on /sports-performance-ad, "sports performance ad", "athletic commercial", "training commercial", or "sports brand film".
Playful-editorial presentation look — saturated colour fields, scalloped sunburst badges and pill chips, oversized stacked headlines. Carnival palette · Archivo + Manrope · pill radius. The design system (visual language).
| name | ashby |
| description | Ashby API for applicant tracking and recruiting. Use when user mentions "Ashby", "ATS", "applicant tracking", "candidate", "job application", "recruiting pipeline", "job posting", "opening", or "hiring project". |
If requests fail, run zero doctor check-connector --env-name ASHBY_TOKEN or zero doctor check-connector --url https://api.ashbyhq.com/application.list --method POST
Ashby returns 401 when the key is missing and 403 when the key is wrong, deactivated, or lacks permission for the endpoint. A 403 response with missing_endpoint_permission means the key is valid but needs the relevant Ashby API permission.
All requests require HTTP Basic Auth with the API key as the username and an empty password. With curl, pass the token as:
-u "$ASHBY_TOKEN:"
Ashby's API is RPC-style: endpoints are usually POST /resource.method, and request parameters go in JSON bodies. Include both JSON headers on API calls:
-H "Accept: application/json; version=1" -H "Content-Type: application/json"
| Variable | Description |
|---|---|
ASHBY_TOKEN | Ashby API key |
Base URL: https://api.ashbyhq.com
POST /candidate.list
Requires candidatesRead. Supports pagination and incremental sync.
curl -s -X POST "https://api.ashbyhq.com/candidate.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 25}'
POST /candidate.search
Use this for targeted lookup by email or name. Responses are limited, so use candidate.list for broad syncs.
curl -s -X POST "https://api.ashbyhq.com/candidate.search" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@example.com"}'
POST /application.list
Requires candidatesRead. Useful filters include status, jobId, createdAfter, limit, cursor, and syncToken.
curl -s -X POST "https://api.ashbyhq.com/application.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 25, "status": "Active"}'
POST /job.list
Requires jobsRead. Lists open, closed, and archived jobs. Include Draft in the status parameter when draft jobs are needed.
curl -s -X POST "https://api.ashbyhq.com/job.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 25}'
POST /opening.list
Requires jobsRead. Supports pagination and incremental sync.
curl -s -X POST "https://api.ashbyhq.com/opening.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 25}'
POST /jobPosting.list
Requires jobsRead. If results will be shown publicly, set listedOnly to true so unlisted job postings are not displayed.
curl -s -X POST "https://api.ashbyhq.com/jobPosting.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"listedOnly": true}'
GET /posting-api/job-board/{JOB_BOARD_NAME}
This endpoint is for public career pages and does not use the API-key auth flow.
curl -s "https://api.ashbyhq.com/posting-api/job-board/<job-board-name>?includeCompensation=true"
POST /project.list
Requires candidatesRead. Supports pagination and incremental sync.
curl -s -X POST "https://api.ashbyhq.com/project.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 25}'
List endpoints return results, moreDataAvailable, and, when more pages are available, nextCursor. Send the latest nextCursor as cursor until moreDataAvailable is false.
curl -s -X POST "https://api.ashbyhq.com/candidate.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 100, "cursor": "<nextCursor>"}'
For endpoints with syncToken, store the syncToken returned on the final page and send it on the next run to fetch only changes:
curl -s -X POST "https://api.ashbyhq.com/candidate.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"limit": 100, "syncToken": "<syncToken>"}'
If Ashby returns incremental_sync_too_large or sync_token_expired, discard the stored sync token and run a fresh full sync without syncToken.
curl -s -X POST "https://api.ashbyhq.com/candidate.search" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@example.com"}'
Replace <job-id> with the Ashby job UUID:
curl -s -X POST "https://api.ashbyhq.com/application.list" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-d '{"jobId": "<job-id>", "status": "Active", "limit": 100}'
Requires candidatesWrite. If the organization uses the beta X-On-Behalf-Of flow, pass the Ashby user ID in that header.
curl -s -X POST "https://api.ashbyhq.com/candidate.createNote" \
-u "$ASHBY_TOKEN:" \
-H "Accept: application/json; version=1" \
-H "Content-Type: application/json" \
-H "X-On-Behalf-Of: <user-id>" \
-d '{"candidateId": "<candidate-id>", "note": "Reached out by email.", "sendNotifications": false}'