Ashby Careers Jobs API: Ashby's Own Openings
Pricing
$0.20 / 1,000 job results
Ashby Careers Jobs API: Ashby's Own Openings
$0.2/1K jobs | Get jobs from Ashby's own job board with full descriptions, posting dates, remote status and pay when published. One tracked company board, not every Ashby customer. No login or API key.
Ashby Tracked Company Jobs Scraper (No Login)
$0.2/1K jobs | Get jobs from Ashby's own job board with full descriptions, posting dates, remote status and pay when published. One tracked company board, not every Ashby customer. No login or API key. Independent, unofficial tool. Not affiliated with or endorsed by Ashby.
Search Ashby's Own Job Board With Full Descriptions
Our scraper collects jobs from the one Ashby board we track: the careers board of Ashby, the applicant-tracking company itself (jobs.ashbyhq.com/ashby). Filter by keyword, posting age and work arrangement, or write your own rules on normalized fields such as pay. Every row carries the complete original description in text and HTML. It is ideal for job alerts, pay and hiring research, and feeding your own job database.
Coverage today: one board, Ashby's own. Jobs at other companies that use Ashby are not included, and the earlier input that fetched any board you named is retired. Postings are only available once their full description has been verified, so a run can return fewer jobs than the live careers page lists.
- Need jobs from many employers instead of one tracked board? Our LinkedIn Jobs Scraper searches LinkedIn by role and location. The trade-off: its postings come from LinkedIn, not from each employer's own Ashby board.
- Same output format for other applicant-tracking boards, each with its own tracked companies: Greenhouse (Stripe and Figma), Lever (Dun & Bradstreet), SmartRecruiters (ServiceNow, Canva, Experian, Western Digital and Delivery Hero). Pick by employer.
- Browse all Job Atlas job scrapers: https://apify.com/jobatlas
Key Benefits
- No login or API key: nothing to set up and no account at risk. Your run reads stored postings and does not request the Ashby website.
- Low pricing: $0.20 per 1,000 jobs, with no start fee. Apify platform usage is included in that price.
- Complete descriptions only: a posting appears once its full description is verified, so every row carries the original text and HTML, not a snippet.
- No repeats across runs: schedule the same search and receive only postings you have not received yet.
- Optional AI enrichment and English translation: funded by us, off by default, no API key needed and no extra charge.
How It Works
-
Provide your search. Every field is optional, and the prefilled form already returns real jobs.
- (optional) Keyword (e.g.,
engineer,customer success). A case-insensitive phrase matched against the stored title, the employer and the complete description, so it also finds roles that only mention the word. - (optional) Posted within (e.g.,
24h,7d,any). Default isany. When Ashby gives no reliable original posting date, the reported date is the day the job was first seen; later refreshes do not make a posting look new. - (optional) Work arrangements (
remote,hybrid,onsite). Empty means all. Ashby postings state a work arrangement (remote in all 10 of our sample rows), so this filter works here. Leave it empty to see everything. - (optional) Advanced filters, a rule over normalized fields in the shared
nomad-agent-job-filter-v1format. For example, jobs with a minimum pay of at least 50,000:
{"schemaVersion": "nomad-agent-job-filter-v1","expression": {"field": "data.compensation.minimum","operator": "gte","value": 50000}}Place it under the
filtersfield. Unknown values do not satisfy ordinary comparisons, so a rule only keeps jobs that state the field. Pay is published on the Ashby postings we checked (10 of 10 sample rows), so a pay filter is useful on this board. - (optional) Keyword (e.g.,
-
Set
maxItems(default 100, at most 200; the prefilled form uses 10). Zero means 200. Filters, repeat suppression and failed enrichment can return fewer jobs. -
Run the Actor. When it finishes, open the dataset for your jobs. The
RUN-SUMMARYrecord in the key-value store shows data freshness, candidate and delivery counts, and the final status.
Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again. A non-empty dedupe.key deliberately shares delivery history across searches for the same Apify user, for example to keep one alert history per profile. If delivery cannot be confirmed, the run fails instead of claiming success.
If the stored data is unavailable or stale, the run fails instead of falling back to website scraping.
Ashby postings give applicant locations rather than an office address, so data.locations is null in our sample rows. Use employment.applicantLocationRequirements instead.
Data You'll Receive
- Job details: title, complete description (text and HTML), department, posting date and work schedule.
- Work setup: work arrangement (
remotein all 10 of our sample rows) and the countries or regions applicants can be in (employment.applicantLocationRequirements, for exampleRemote - US). - Pay: minimum, maximum, currency and period, plus the original pay text, when the posting shows pay (all 10 sample rows did).
- Links: the posting URL and the direct apply URL, with a flag for direct apply.
- Employer: the board name (
ashby). - Stable ID and source key (
identity.source,identity.externalId) for deduplication across runs.
Sample output data
Here is an example job from this Actor. Long descriptions are shortened with … and empty fields are left out for space; the real output keeps them as null.
{"schemaVersion": "nomad-agent-job-v1","identity": {"url": "https://jobs.ashbyhq.com/ashby/1e6bf4c7-6452-418b-9277-a28eb8a6f218","source": "ashby","externalId": "ashby_1e6bf4c7-6452-418b-9277-a28eb8a6f218"},"data": {"title": "Implementation Consultant - Americas","company": {"name": "ashby","sourceId": "ashby","department": "Customer Success"},"employment": {"workSchedules": ["full_time"],"workArrangements": ["remote"],"applicantLocationRequirements": ["Remote - US","Remote - Canada"]},"application": {"url": "https://jobs.ashbyhq.com/ashby/1e6bf4c7-6452-418b-9277-a28eb8a6f218/application","postedAt": "2026-10-06","directApply": true},"compensation": {"raw": "$90K – $129K • Offers Equity • Multiple Ranges","period": "annual","maximum": 129000,"minimum": 90000,"currency": "USD"}},"llm": {"status": "not_requested"},"raw": {"description": "IMPLEMENTATION CONSULTANT - AMERICAS\n\nHi! I’m Morgan, the Manager of Strategic Implementations here…","descriptionHtml": "<h1>Implementation Consultant - Americas</h1><p style=\"min-height:1.5em\"><em>Hi! I’m Morgan, the Man…"},"custom": {"data": {"board": "ashby","nativeId": "1e6bf4c7-6452-418b-9277-a28eb8a6f218"}}}
Ashby Jobs API
Results are stored in a dataset that you can export as CSV, JSON or Excel, or read on demand through the Apify API. To run it from code or on a schedule, send an input like this:
{"schemaVersion": "nomad-agent-inventory-search-v1","keyword": "engineer","postedWithin": "any","maxItems": 10,"dedupe": {"enabled": true,"key": ""}}
Every dataset item follows the nomad-agent-job-v1 format with six roots: schemaVersion, identity, data, llm, raw and custom (schema). A missing fact is null; a known empty list is []. custom.schemaId identifies the version of the source-specific custom.data shape.
Optional AI enrichment and English translation
Both are independent opt-ins and both are off by default. You do not supply any API key, and they add no charge on top of the per-job price.
{"schemaVersion": "nomad-agent-inventory-search-v1","keyword": "engineer","maxItems": 10,"aiEnrichment": {"enabled": true,"accuracy": "silver"},"translateToEnglish": true,"dedupe": {"enabled": true,"key": ""}}
aiEnrichment.enabledfills supported unknown fields and records where each value came from inllm. It cannot overwrite facts the source states. Jobs whose requested enrichment fails are withheld. Without it,llm.statusisnot_requested.aiEnrichment.accuracyissilverorgold.translateToEnglishconverts selected display fields into English.raw.descriptionandraw.descriptionHtmlalways keep the original text.- Only when you turn them on, description text goes to OpenRouter for extraction and selected display text goes to DeepL for translation, using our accounts. The routes deny provider data collection but do not guarantee zero retention or EU-only processing. Sanitized extracted facts and translations may be cached by us.
- Filters work on normalized values before English display translation.
Moving from earlier releases
This release uses the input format nomad-agent-inventory-search-v1. Earlier source-specific inputs fail with migration guidance; replace them with keyword or filters. Original descriptions are always included. identity.externalId is the source's own posting ID as represented in this output and may be spelled differently from earlier releases, so the stable key is the pair identity.source plus identity.externalId. Update stored comparison keys when you migrate; your delivery history may allow a one-time repeat. The custom extension is new (earlier releases used nomad-ashby-source-v1 with a different shape); the other five roots keep the nomad-agent-job-v1 contract. The top-level accuracy field is a compatibility override for aiEnrichment.accuracy and never enables enrichment by itself.
Support and Feedback
We improve these scrapers from your feedback. If something breaks or you need a filter:
- Open an issue on the Actor's Issues tab.
- If this Actor saved you time, a short review on the Store helps other users find it.
Run evidence
Checked on 2026-10-16 with small probe runs on the latest build as it was before the pay-per-event price took effect, each capped at 10 jobs or fewer:
ByvD3HonAIT8H8aot(SUCCEEDED, build 1.0.5): keywordengineer, maxItems 5: 5 job(s).NgHk5aBZc6yXXlwgD(SUCCEEDED, build 1.0.5): empty keyword, maxItems 5: 5 job(s).pmTnsGNag8Dq0BrKT(SUCCEEDED, build 1.0.5): keywordengineer, maxItems 10: 10 job(s).s0mornqhacdV77pWv(SUCCEEDED, build 1.0.5): keywordengineer, work arrangementsremote, maxItems 10: 10 job(s).
The prefilled form (keyword engineer, up to 10 jobs, posted within any, repeat suppression on) is proven by run pmTnsGNag8Dq0BrKT: 10 jobs, each with its complete description. Select latest and keep the build number your run reports if you need to trace a result. The price is $0.20 per 1,000 jobs (a per-job result charge) with no start fee. A successful status alone does not prove complete coverage of the source, so inspect the dataset and RUN-SUMMARY together.
Job Atlas
Explore the Job Atlas job-data and matching Actors:
Product guide | Product overview | Source and client examples | Setup skill | Setup guide | Job Atlas job-data tools
Independent tool. We built and run this Actor ourselves. Ashby does not operate, sponsor or endorse it, and its name is used only to say which site the data comes from.