jobs.ashbyhq.com APIjobs.ashbyhq.com ↗
Access company info, job listings, full job details, and application form structure from any Ashby-hosted job board via a clean REST API.
curl -X GET 'https://api.parse.bot/scraper/fac3e9d6-234c-4bf2-b5aa-36d377c3884e/get_company_info?company_slug=openai' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve company-level metadata for an Ashby-hosted job board by company slug. Returns stale_input if the company slug does not exist on Ashby.
| Param | Type | Description |
|---|---|---|
| company_slugrequired | string | Company slug as used in the job board URL (e.g., 'ramp' for jobs.ashbyhq.com/ramp) |
{
"type": "object",
"fields": {
"name": "string — company display name",
"theme": "object — visual theme settings including colors, logos, and display flags",
"timezone": "string — IANA timezone identifier",
"publicWebsite": "string — company public website URL",
"customJobsPageUrl": "string or null",
"activeFeatureFlags": "array of strings — enabled feature flag names",
"hostedJobsPageSlug": "string — the slug used in the Ashby URL",
"allowJobPostIndexing": "boolean",
"recruitingPrivacyPolicyUrl": "string or null"
},
"sample": {
"data": {
"name": "Ramp",
"theme": {
"colors": {
"version": "1",
"colorPrimary600": "#1F1F1F"
},
"showTeams": false,
"showJobFilters": true,
"showLocationAddress": false,
"showAutofillApplicationsBox": true
},
"timezone": "America/New_York",
"publicWebsite": "https://ramp.com",
"customJobsPageUrl": null,
"activeFeatureFlags": [
"ApplicationForReferrals",
"JobPostingListV2"
],
"hostedJobsPageSlug": "ramp",
"allowJobPostIndexing": true,
"recruitingPrivacyPolicyUrl": "https://ramp.com/legal/applicant-privacy-notice"
},
"status": "success"
}
}About the jobs.ashbyhq.com API
This API exposes 5 endpoints covering company metadata, job listings, job details, application form questions, and keyword/department search across any Ashby-hosted job board at jobs.ashbyhq.com. Use get_company_job_listings to pull all open postings and team structure for a given company, or get_job_application_form to retrieve the exact fields a candidate must complete — down to question type, label, and whether the field is required.
Company and Job Listing Data
Start with get_company_info by passing a company_slug (the identifier in the board URL, e.g. ramp for jobs.ashbyhq.com/ramp). The response includes the company display name, IANA timezone, public website URL, visual theme settings (colors, logos, display flags), and whether job posts are allowed to be indexed. If the slug doesn't match a live Ashby board, the endpoint returns stale_input.
get_company_job_listings returns two parallel arrays: teams (with id, name, externalName, and parentTeamId for hierarchy reconstruction) and jobPostings (with id, title, teamId, locationId, locationName, workplaceType, employmentType, and compensation tier summaries). This is the primary way to enumerate a company's full open headcount.
Job Details and Application Forms
get_job_details accepts a job_id UUID plus the company_slug and returns the full HTML job description (descriptionHtml), team hierarchy via teamNames, workplaceType (Remote / Hybrid / OnSite), employmentType, structured compensationTiers with titles and summaries, and an applicationDeadline in ISO format when set.
get_job_application_form retrieves the complete set of form questions for a posting: each question object carries an id, path, label, type, required flag, description, and options for select-type fields. This makes it possible to build a local representation of the application flow without visiting the board directly.
Search and Filtering
search_jobs accepts a company_slug, an optional query string for case-insensitive title matching, and an optional department_id UUID. When department_id is supplied, results include jobs in that team and all its child teams, so filtering by a parent department surfaces the full subtree. Team UUIDs come from the teams array returned by get_company_job_listings.
- Aggregate open roles across multiple Ashby-hosted company boards into a single job feed
- Filter remote or hybrid postings by
workplaceTypefor a remote-jobs aggregator - Extract
compensationTiersdata to compare pay ranges across companies in the same sector - Reconstruct department hierarchies using
parentTeamIdfrom theteamsarray - Pre-fill or validate application form fields by fetching question types and options via
get_job_application_form - Monitor new job postings for a specific company slug to trigger alerts when headcount changes
- Search engineering or product roles within a specific department subtree using
department_idinsearch_jobs
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Ashby provide an official public developer API?+
What does `get_job_application_form` actually return — is it enough to know what questions a candidate faces?+
label, type, required status, description, and options (for select or radio fields). You get enough structure to map the complete form without loading the board in a browser.Can I retrieve closed or archived job postings through this API?+
Does the API cover job boards hosted on custom domains rather than jobs.ashbyhq.com?+
How does department filtering work in `search_jobs`, and where do I get the department IDs?+
department_id UUID to search_jobs and the results will include jobs in that team and every child team beneath it in the hierarchy. Department/team UUIDs come from the teams array returned by get_company_job_listings, where parentTeamId lets you trace the tree.