Ashby Jobs Search
Pricing
$0.99 / 1,000 jobs
Ashby Jobs Search
Search for jobs directly from Ashby ATS. Access high-growth startups like Notion, Plaid, and Ramp. Zero ghost jobs, verified daily. Perfect for job boards, AI agents & startup hiring research.
Ashby Jobs Scraper & API | Extract Jobs from Ashby ATS
Scrape and search job listings directly from Ashby ATS — the modern recruiting platform built for high-growth startups. Index 3,000+ of the hottest startups in tech — Linear, Vercel, Ramp, Mercury, Notion, Plaid, Retool — in a single normalized response. The easiest way to try it: open the actor on Apify, click Try for free, and run with the default input.
What can Ashby Jobs Search do?
- 3,000+ companies indexed — the fastest-growing ATS with the hottest startups
- Tens of thousands of jobs — every open role from every Ashby customer
- Run on Apify's serverless platform with scheduling, monitoring, and webhooks
- Integrate with Zapier, Make, Slack, and HTTP webhooks
- Use Apify's proxy rotation and retry handling for resilient runs
- Filter by work model, experience level, salary range, skills, and companies
- Zero ghost jobs — daily verification removes expired listings
- Get v2 enriched output — AI-extracted skills, responsibilities, benefits, company industries, geocoded locations, work-auth signals
What's new in v2.0
If you're upgrading from v1.x your existing scheduled runs keep working — queries, locations, posted_after, page, page_size are unchanged. Everything below is additive:
- Far richer per-job data — AI-extracted
qualifications(typed hard / soft skills, education, certifications),responsibilities[],benefits[],summary(one-paragraph AI summary),normalized_titlefor canonical grouping. - Enriched company object —
company.industries[],company.summary,company.logo_url,company.website, plus acompany.details_urllink to the full enriched company profile (funding, leadership, ratings, press references, H1B stats). - Geocoded locations — every
locations[]entry includes resolvedcity/region/countryandlatitude/longitudewhen the raw string is geocodable. - Salary range filter —
min_salary_usd/max_salary_usd(USD-normalized server-side from any source currency). - Skills include / exclude — match against AI-extracted qualifications, not just description text.
- Companies include / exclude — narrow to (or away from) specific employers.
- Work model + experience + employment type filters as explicit faceted filters.
- Negative query syntax — prefix any
queriesentry with-to drop that token. - Work-authorization signals —
is_work_auth_required,is_h1b_sponsor,is_clearance_requiredflags per job.
What data can Ashby Jobs Search extract from Ashby?
| Data point | Description |
|---|---|
| Job title | Raw + canonical normalized_title |
| Company | Name, logo, website, summary, industries, H1B history |
| Location | Raw string + geocoded city / region / country / lat / lon |
| Salary | Min / max, currency, period (normalized to USD on request) |
| Employment type | full_time / part_time / contract / internship / freelance / temporary |
| Workplace type | remote / hybrid / onsite |
| Experience level | entry / mid / senior / lead / executive |
| Skills | AI-extracted with {name, type: hard|soft} typing |
| Responsibilities | Bullet list extracted from description |
| Benefits | Bullet list extracted from description |
| Description | Full text, HTML stripped |
| AI summary | 2–3 sentence role recap |
| Listing & apply URL | Canonical URLs on Ashby |
| Work-auth signals | is_work_auth_required, is_h1b_sponsor, is_clearance_required |
| Source | Always "ashby" for this actor |
| Dates | date_posted, created_at, updated_at |
Which companies use Ashby?
Ashby is the ATS of choice for fast-growing, well-funded startups:
| Company | Industry | Why They're Hot |
|---|---|---|
| Linear | Dev Tools | Beloved by developers |
| Vercel | Frontend Cloud | Next.js creators, remote-first |
| Ramp | Fintech | Fastest-growing corporate card |
| Notion | Productivity | Late-stage unicorn |
| Plaid | Fintech | Powers 8,000+ fintech apps |
| Mercury | Banking | Startup banking leader |
| Retool | Low-Code | Internal tools platform |
| Weights & Biases | ML Ops | AI/ML infrastructure |
| Replit | Dev Tools | Online coding platform |
| Railway | Infrastructure | Modern cloud platform |
…and 3,000+ more high-growth startups in our database
How do I use Ashby Jobs Search to scrape Ashby jobs?
- Sign in to Apify (free tier is enough).
- Open the actor page at apify.com/jobo.world/ashby-jobs-search.
- Set the input — at minimum, fill
queries(e.g.["Product Engineer"]). Optionally addlocations,work_models,min_salary_usd, orcompanies_include. - Start the run — Apify calls Jobo Connect under the hood; no API key configuration needed.
- Watch progress in the run log; results stream into the actor's dataset.
- Download the dataset as JSON, CSV, or XLSX, or wire it to Zapier / Make / a webhook.
- Schedule recurring runs from the Schedules tab for daily / hourly job feeds.
Input
Configure the actor on the Input tab in the Apify UI. Every field is optional; leaving them empty returns the broadest possible result set.
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | Array | [] | Job titles or keywords (e.g., ["Product Engineer"]). Multiple values are OR-ed. Prefix any entry with - to exclude that word, e.g. ["Software Engineer", "-staff", "-principal"] returns Software Engineer roles but drops anything titled Staff/Staffing/Staffed/… or Principal/Principals/… (light suffix-stemming applied). |
locations | Array | [] | Cities, regions, countries (e.g., ["Remote"]). Geocoded server-side — accepts loose forms like "NYC", "Bay Area", "UK". |
work_models | Array | [] | Work model: remote, hybrid, onsite. Multiple allowed. |
employment_types | Array | [] | full-time, part-time, contract, internship, freelance, temporary. |
experience_levels | Array | [] | intern, entry, mid, senior, lead, executive. |
skills_include | Array | [] | Only return jobs requiring ANY of these skills (e.g. ["TypeScript", "React"]). Matched case-insensitively against AI-extracted qualifications. |
skills_exclude | Array | [] | Exclude jobs requiring ANY of these skills. |
companies_include | Array | [] | Only return jobs from these company names (e.g. ["Linear", "Vercel"]). Case-insensitive exact match against the canonical company name. |
companies_exclude | Array | [] | Exclude jobs from these companies. |
min_salary_usd | Integer | - | Minimum annual USD salary. Excludes jobs without disclosed salary. Salaries in other currencies are normalized server-side. |
max_salary_usd | Integer | - | Maximum annual USD salary. Combine with min_salary_usd for a range. |
posted_after | String | - | ISO 8601 (e.g. 2026-01-01T00:00:00Z) or relative (7 days ago, 1 month, yesterday, last week). |
page | Integer | 1 | Page number (max: 100). |
page_size | Integer | 50 | Results per page (max: 100). |
Output
Each dataset row uses Jobo Connect's enhanced job shape — far richer than raw Ashby JSON. Notable additions: normalized_title, summary, company.industries, company.details_url, structured qualifications with typed skills, responsibilities[], benefits[], geocoded locations[] with lat/lon, and work-authorization flags.
{"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab","title": "Senior Product Engineer","normalized_title": "product_engineer","company": {"id": "f7c12345-1111-2222-3333-444455556666","name": "Linear","website": "https://linear.app","logo_url": "https://...","summary": "Linear is the issue tracking tool you'll enjoy using.","industries": ["Developer Tools", "Productivity", "SaaS"],"details_url": "https://connect.jobo.world/api/companies/f7c12345-1111-2222-3333-444455556666"},"description": "We're looking for...","summary": "Full-stack product engineer on Linear's core editor team — TypeScript, React, GraphQL.","listing_url": "https://jobs.ashbyhq.com/linear/abc123","apply_url": "https://jobs.ashbyhq.com/linear/abc123/apply","locations": [{"location": "San Francisco, CA","city": "San Francisco","region": "California","country": "United States","latitude": 37.7749,"longitude": -122.4194}],"compensation": { "min": 180000, "max": 240000, "currency": "USD", "period": "year" },"employment_type": "full_time","workplace_type": "remote","experience_level": "senior","qualifications": {"must_have": {"education": [],"certifications": [],"skills": [{ "name": "TypeScript", "type": "hard" },{ "name": "React", "type": "hard" }]},"preferred": {"education": [],"certifications": [],"skills": [{ "name": "GraphQL", "type": "hard" }]}},"responsibilities": ["Ship features end-to-end across the stack", "..."],"benefits": ["Equity", "Remote-first", "..."],"is_work_auth_required": false,"is_h1b_sponsor": false,"is_clearance_required": false,"source": "ashby","date_posted": "2026-04-15T10:30:00Z","valid_through": null,"created_at": "2026-04-15T11:02:11Z","updated_at": "2026-04-30T08:14:55Z"}
Field reference
| Field | Type | What it is |
|---|---|---|
| Identity | ||
id | UUID | Stable Jobo job identifier. Same across re-scrapes. |
source | string | Always "ashby" for this actor. |
| Content | ||
title | string | Job title as published by the employer. |
normalized_title | string | null | Canonical title slug (e.g. product_engineer). |
description | string | Full job description, HTML stripped, line breaks preserved. |
summary | string | null | AI-generated 2–3 sentence summary of the role. |
listing_url | string | Canonical URL to view the job on Ashby. |
apply_url | string | Direct application URL. |
| Company | ||
company.id | UUID | Stable Jobo company identifier. |
company.name | string | Display name. |
company.website | string | null | Marketing website. |
company.logo_url | string | null | Hosted logo URL. |
company.summary | string | null | One-paragraph company summary (AI-curated). |
company.industries | string[] | 1–3 industry tags (e.g. ["Developer Tools", "SaaS"]). |
company.details_url | string | null | URL to the full enriched company profile. Same X-Api-Key required. |
| Location | ||
locations[].location | string | null | Raw location string from the posting. |
locations[].city / region / country | string | null | Resolved geocoded fields. |
locations[].latitude / longitude | number | null | Decimal degrees when geocoded. |
| Classification | ||
employment_type | string | null | full_time, part_time, contract, internship, temporary. |
workplace_type | string | null | remote, hybrid, onsite. |
experience_level | string | null | entry, mid, senior, lead, executive. |
| Compensation | ||
compensation.min / max | number | null | Range bounds in posted currency. |
compensation.currency | string | null | ISO 4217. |
compensation.period | string | null | hour, day, week, month, year. |
| Qualifications | ||
qualifications.must_have.education | string[] | Required degrees. |
qualifications.must_have.certifications | string[] | Required certifications. |
qualifications.must_have.skills[] | objects | {name, type: "hard" | "soft"}. |
qualifications.preferred.* | same shape | Nice-to-haves. |
responsibilities | string[] | Bulleted responsibilities extracted from the description. |
benefits | string[] | Bulleted benefits. |
| Authorization | ||
is_work_auth_required | bool | null | True when applicants must already have work auth in the job's country. |
is_h1b_sponsor | bool | null | True when the company is known to sponsor H1B visas. |
is_clearance_required | bool | null | True when a US security clearance is required. |
| Dates (UTC) | ||
created_at / updated_at | datetime | When Jobo first ingested / last updated the row. |
date_posted | datetime | null | When the employer originally posted. |
valid_through | datetime | null | Employer-declared expiry, when present. |
See the Dataset Schema tab in the Apify UI for the full machine-readable JSON Schema.
Quick-start input examples
Remote dev-tool startup jobs
{"queries": ["Software Engineer", "Product Engineer"],"work_models": ["remote"],"page_size": 50}
Senior+ roles, $150k+, remote or hybrid
{"queries": ["Software Engineer", "Product Engineer"],"experience_levels": ["senior", "lead"],"work_models": ["remote", "hybrid"],"min_salary_usd": 150000,"page_size": 50}
Recent AI/ML positions (last 7 days)
{"queries": ["Machine Learning", "AI Engineer"],"posted_after": "7 days ago","page_size": 100}
Product Engineer roles, skip Staff / Principal / Lead
{"queries": ["Product Engineer", "-staff", "-principal", "-lead"],"experience_levels": ["mid", "senior"],"page_size": 50}
TypeScript / React frontend roles, no Angular
{"queries": ["Frontend Engineer", "Product Engineer"],"skills_include": ["TypeScript", "React"],"skills_exclude": ["Angular"],"work_models": ["remote"],"page_size": 50}
Shortlist of hot startups
{"queries": ["Engineer"],"companies_include": ["Linear", "Vercel", "Ramp", "Mercury", "Retool"],"experience_levels": ["mid", "senior"],"work_models": ["remote", "hybrid"]}
Internships at AI startups
{"queries": ["Machine Learning", "AI", "Research"],"employment_types": ["internship"],"experience_levels": ["intern"],"page_size": 100}
Tips & advanced options
- Negative query scope.
-staffexcludes documents containing the tokenstaffin any searched field (title, description, skills, company name). For role-modifier words likestaff,lead,principal,internthat's nearly always what you want; for ambiguous words it can over-exclude. industriesempty for some companies. Industries are populated by Jobo's company enrichment pipeline (Crunchbase + LinkedIn + AI curation). Companies that haven't been enriched yet showindustries: []. Coverage is highest for well-known startups; long-tail companies may show empty.- Geocoding is best-effort. Loose location strings like
"Worldwide"or"Multiple Locations"won't havelatitude/longitude. The rawlocationstring is always preserved. details_urlis authenticated. It returns the same auth-gated JSON as Jobo Connect's enterprise company API — you'll need anX-Api-Key.- Pagination cap.
page_sizemaxes at 100;pagemaxes at 100. For pulls >10,000 results, narrow the filter rather than paginating deeper — or use ATS Jobs Feed for bulk download. - One ATS per actor. This actor pre-pins
sources: ["ashby"]. Use ATS Jobs Search to query Ashby + Greenhouse + Lever + 45 more in one call.
Use cases
| Industry | Use case |
|---|---|
| Job Boards | Build high-growth-startup job aggregators with rich structured data |
| VC Firms | Track portfolio company hiring velocity and key role openings |
| Recruiting | Source from the hottest startups with structured skills filters |
| Developers | Find jobs at dev-tool / infra companies on cutting-edge stacks |
| Career Research | Analyze startup compensation, equity, and benefit trends |
| Investor Research | Spot companies scaling engineering teams aggressively |
Is it legal to scrape Ashby job listings?
Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
FAQ
How many Ashby companies do you cover?
We index 3,000+ companies using Ashby, growing rapidly as Ashby gains market share with the hottest startups.
Why do hot startups choose Ashby?
Ashby is built for modern recruiting with analytics, automation, and a great candidate experience. Top-tier startups love it.
Ashby vs Lever vs Greenhouse?
Ashby = newest, hottest startups. Lever = established startups. Greenhouse = larger tech companies. Use the per-ATS actor for one source, or ATS Jobs Search to query all three (and 45 more) at once.
How often is data updated?
Jobs are verified daily. Expired listings are automatically removed within 24 hours.
How do I exclude certain titles?
Prefix any entry in queries with -. Example: ["Product Engineer", "-staff", "-principal"] returns Product Engineer roles but drops Staff and Principal variants. Excludes are lightly stemmed (-staff also catches staffs / staffed / staffing).
Why is industries empty for some companies?
Industries come from Jobo's company-enrichment pipeline (Crunchbase + LinkedIn + AI curation). Companies that haven't been enriched yet show industries: []. The full enriched profile is also available via company.details_url.
Can I filter by salary?
Yes — min_salary_usd and max_salary_usd. Salaries in other currencies are normalized to USD server-side using current FX rates. Jobs without a disclosed salary are excluded when either filter is set.
What does company.details_url give me?
The full enriched company profile on Jobo Connect: funding history, leadership, employee counts, ratings (Glassdoor), press mentions, H1B sponsorship statistics. It uses the same X-Api-Key as the search API.
What's the difference between v1.x and v2.0?
v2 calls the Jobo Connect API directly. Same input contract for queries / locations / posted_after / page / page_size (existing schedules keep working), plus a much richer per-job shape and 10+ new filters.
Where can I check if the Jobo API is up?
At jobo.world/status — the live status page for the Jobo Connect API behind this actor.
Related actors
| Actor | Best for |
|---|---|
| ATS Jobs Search | Search all 48 ATS platforms at once |
| ATS Jobs Feed | Bulk download for data pipelines |
| AI Deep Job Search | AI-powered relevance scoring |
| Lever Jobs Search | More startup jobs |
| Greenhouse Jobs Search | Tech unicorn jobs |
| Crunchbase Company Lookup | Pair with company.details_url for funding / leadership data |
About Jobo
Jobo provides the most comprehensive job data infrastructure for developers and businesses. Our ATS Jobs Database powers job boards, AI agents, and HR tech platforms worldwide.
- Website: jobo.world
- Enterprise API: jobo.world/enterprise
- API status: jobo.world/status
- Support: enrico@jobo.world