Jobs
Ashby Jobs Scraper
Scrape every job posting from any Ashby-hosted job board via Ashby's own keyless public GraphQL API — one full-board call per company, team names, workplace type, compensation bands, and a guaranteed working apply link.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
Ashby powers the careers page for a large slice of venture-backed startups and scale-ups. Every one of those boards is served by the same internal GraphQL endpoint (jobs.ashbyhq.com/api/non-user-graphql?op=ApiJobBoardWithTeams). This Actor talks to it directly: hand it one or more org slugs — the {orgSlug} in a jobs.ashbyhq.com/{orgSlug} board URL, e.g. openai — and it fetches the entire board in a single call, joins the response's own team hierarchy, and normalizes everything into one row schema. One scraper, every Ashby-hosted employer.
What we handle for you
- 🔑 Keyless public GraphQL API — no OAuth, no token, no per-org setup; the same endpoint the careers page itself calls.
- 📦 Whole board in one call — no pagination to chase; a 750-posting board comes back in a single response.
- 🏢 Multi-org in one run — pass many org slugs; rows come back identically shaped, tagged with
org_slug. - 🧩 Real team names, not guesses —
team_nameis joined from the response's ownteamshierarchy, never a fabricated department field. - 🔗 Guaranteed apply link —
apply_urlis constructed and confirmed live-resolvable for every posting, no extra HTTP call. - 🔁 We retry with backoff + rotate browser fingerprints —
curl-cffipresents a real browser handshake and retries transient429/5xxso a large multi-org batch finishes instead of dying midway. - 🧊 Clean, typed rows — Pydantic-validated, ISO-8601 timestamps, stable IDs. Export JSON / CSV / Excel straight from the Apify Console.
Use cases
- Recruiting & sourcing — track what a target company is hiring for, where, and on which team.
- Job-board aggregation — add dedicated Ashby coverage next to Workday / Greenhouse / Lever / SmartRecruiters in one pipeline.
- Hiring-intent signal for SDR/GTM teams — open reqs are a leading indicator of budget and headcount growth.
- HR-tech data pipelines — wire structured job rows into your CRM, dashboard, or n8n / Make workflow on a schedule.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
orgSlugs | array | yes | Ashby org slug, e.g. "openai" (the path segment in jobs.ashbyhq.com/{orgSlug}), or a full board URL — the orgSlug is regex-extracted automatically. A plain string with no "jobs.ashbyhq.com" substring is used literally,… |
maxResultsPerOrg | integer | no | Cap job postings emitted per orgSlugs entry, applied client-side after the single full-board fetch — this endpoint has no server-side pagination. |
locationFilter | string | no | Optional case-insensitive substring match against a posting's location or any of its secondary locations. Client-side only, adds zero extra HTTP calls. Leave empty to skip. |
{
"orgSlugs": [
"openai",
"ramp"
],
"maxResultsPerOrg": 100,
"locationFilter": null,
"proxyConfiguration": {
"useApifyProxy": true
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
posting_idtitleorg_slugteam_namelocation_nameworkplace_typecompensation_summaryapply_url
{
"posting_id": "7af121a1-d29a-4745-84c1-ef1b58a3b840",
"title": "3P Silicon Architect",
"org_slug": "openai",
"team_name": null,
"location_name": "San Francisco",
"workplace_type": "Hybrid",
"employment_type": "FullTime",
"secondary_locations": [
"Seattle"
],
"compensation_summary": "$342K \u2013 $555K \u2022 Offers Equity",
"apply_url": "https://jobs.ashbyhq.com/openai/7af121a1-d29a-4745-84c1-ef1b58a3b840",
"scraped_at": "2026-07-26T15:00:00Z"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result emitted | $0.0015 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- Ashby coverage only — for Greenhouse, Lever, Workday, or SmartRecruiters, see the sibling Actors in the DevilScrapes fleet.
- This Actor's GraphQL endpoint (
jobs.ashbyhq.com/api/non-user-graphql) is distinct from the Ashby path insidemulti-ats-jobs-scraper— different host, different fields — so the two are not redundant with each other. - No first-class
departmentfield — Ashby's schema doesn't expose one directly;team_name(the board's own team hierarchy) is the closest real grouping signal. - No org-name enrichment —
org_slugis the literal input slug, not an org display name (the endpoint doesn't expose one). - No historical or removed postings — this Actor reflects the board's current, live state only.
FAQ
Does this need an Ashby account or API key?
Can I pass a full board URL instead of a bare slug?
jobs.ashbyhq.com/{orgSlug} URL has its slug extracted automatically.What happens if an org isn't on Ashby, or isn't currently hiring?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors