Workable Jobs Search
Pricing
$0.99 / 1,000 jobs
Workable Jobs Search
Search for jobs directly from Workable ATS. Access SMBs and growth companies worldwide. Zero ghost jobs, verified daily.
Workable Jobs Scraper & API | Extract Jobs from Workable ATS
Scrape and search job listings directly from Workable ATS β the all-in-one recruiting software used by 12,000+ companies worldwide for modern hiring across SaaS, e-commerce, healthcare, fintech, media, and more.
Search across 12,000+ companies and hundreds of thousands of jobs from SMBs and mid-market companies globally.
π What's new in v2.0
Major upgrade. If you're upgrading from v1.x your existing scheduled runs keep working β is_remote, 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. Especially valuable for Workable's global coverage (US, EU, APAC). - 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 β
work_models,experience_levels,employment_typesas explicit faceted filters. - Negative query syntax β prefix any
queriesentry with-to drop that token (e.g.["Software Engineer", "-staff", "-principal"]). - Work-authorization signals β
is_work_auth_required,is_h1b_sponsor,is_clearance_requiredflags per job.
No setup required. The actor ships pre-configured to call the Jobo Connect API.
β‘ Why Use This Actor?
- 12,000+ companies indexed β SMB and mid-market employers worldwide
- Hundreds of thousands of jobs β every open role from every Workable customer
- Global coverage β companies across US, Europe, and APAC
- Zero ghost jobs β daily verification removes expired listings
- Rich structured data β salary, geocoded locations, experience level, full descriptions, company industries, AI-extracted skills / responsibilities / benefits, and work-authorization signals
π’ Companies Using Workable
Workable serves growing companies across industries β SMBs and mid-market (20β2,000 employees), with strong coverage outside the US:
| Industry | Examples |
|---|---|
| Technology | SaaS, Software, IT Services |
| E-commerce | Online Retail, D2C Brands |
| Healthcare | Clinics, Health Tech, BioPharma |
| Finance | Fintech, Accounting, Insurance |
| Media | Publishing, Entertainment, Marketing Agencies |
| Education | EdTech, Training Companies, Universities |
| Hospitality | Hotels, Restaurants, Travel |
| Professional Services | Consulting, Legal, Recruiting |
β¦12,000+ companies in our database, with the strongest non-US coverage of any major ATS
π Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | Array | [] | Job titles or keywords (e.g., ["Software 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., ["London", "Berlin"]). Geocoded server-side β accepts loose forms like "DACH", "Bay Area", "UK". |
is_remote | Boolean | false | Quick toggle for remote-only. Overridden by work_models if both are set. |
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. ["JavaScript", "AWS"]). 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. Case-insensitive exact match against the canonical company name. |
companies_exclude | Array | [] | Exclude jobs from these companies. Useful for filtering out staffing agencies or companies you've already applied to. |
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 Schema
Each dataset row uses Jobo Connect's enhanced job shape β far richer than raw Workable JSON. Notable additions: normalized_title (canonical title for grouping), summary (AI-generated short description), company.industries, company.details_url (link to the full enriched company profile), structured qualifications with typed skills, responsibilities[], benefits[], geocoded locations[] with lat/lon, and work-authorization flags.
{"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab","title": "Senior Full-Stack Developer","normalized_title": "fullstack_engineer","company": {"id": "f7c12345-1111-2222-3333-444455556666","name": "Growth Co","website": "https://growthco.example","logo_url": "https://...","summary": "Growth Co builds analytics tools for mid-market e-commerce brands.","industries": ["SaaS", "E-commerce", "Analytics"],"details_url": "https://connect.jobo.world/api/companies/f7c12345-1111-2222-3333-444455556666"},"description": "We're looking for...","summary": "Senior full-stack role on Growth Co's analytics team β TypeScript / Node.js, owns the customer-facing dashboard.","listing_url": "https://apply.workable.com/growth-co/j/ABC1234567/","apply_url": "https://apply.workable.com/growth-co/j/ABC1234567/apply/","locations": [{"location": "London, UK","city": "London","region": "England","country": "United Kingdom","latitude": 51.5074,"longitude": -0.1278}],"compensation": { "min": 80000, "max": 110000, "currency": "GBP", "period": "year" },"employment_type": "full_time","workplace_type": "hybrid","experience_level": "senior","is_remote": false,"qualifications": {"must_have": {"education": [],"certifications": [],"skills": [{ "name": "TypeScript", "type": "hard" },{ "name": "Node.js", "type": "hard" }]},"preferred": {"education": [],"certifications": [],"skills": [{ "name": "AWS", "type": "hard" }]}},"responsibilities": ["Own the customer-facing analytics dashboard", "..."],"benefits": ["Equity", "Private healthcare", "..."],"is_work_auth_required": true,"is_h1b_sponsor": false,"is_clearance_required": false,"source": "workable","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 "workable" for this actor. |
| Content | ||
title | string | Job title as published by the employer. |
normalized_title | string | null | Canonical title slug (e.g. fullstack_engineer). Useful for grouping/comparing across companies. |
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 Workable. |
apply_url | string | Direct application URL (often equal to listing_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. ["SaaS", "E-commerce"]). |
company.details_url | string | null | URL to the full enriched company profile (funding, leadership, ratings, press references, H1B stats). 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. |
is_remote | bool | True if any location is fully remote. |
| 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 (e.g. USD, EUR, GBP). |
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 Examples
Remote tech jobs at SMB and mid-market companies
{"queries": ["Software Engineer", "Developer"],"is_remote": true,"page_size": 50}
UK & Europe positions
{"queries": ["Marketing Manager"],"locations": ["London", "Dublin", "Amsterdam", "Berlin"],"page_size": 50}
Recent sales / account management roles (last 7 days)
{"queries": ["Account Executive", "Sales Manager"],"posted_after": "7 days ago","page_size": 100}
Software Engineer roles, but skip Staff / Principal / Lead
Prefix any queries entry with - to exclude that token. Excludes are lightly stemmed, so -staff also catches staffs, staffed, staffing. The exclusion applies across title, description, and skills β useful for filtering out role-modifier words you never want to see.
{"queries": ["Software Engineer", "-staff", "-principal", "-lead"],"experience_levels": ["mid", "senior"],"page_size": 50}
JavaScript / AWS backend roles, no PHP
Skill filters match against AI-extracted qualifications, not raw description text β so you don't have to worry about a job description that says "we don't use PHP" matching your skills_exclude: PHP.
{"queries": ["Backend Engineer"],"skills_include": ["JavaScript", "AWS"],"skills_exclude": ["PHP"],"is_remote": true,"page_size": 50}
EU healthcare jobs, hybrid or onsite
{"queries": ["Nurse", "Clinician", "Care Coordinator"],"locations": ["United Kingdom", "Germany", "Netherlands"],"work_models": ["hybrid", "onsite"],"page_size": 50}
Mid-market roles paying $90k+
The is_h1b_sponsor flag is per-job (derived from public DOL filings + company history), not per-company.
{"queries": ["Engineering Manager", "Product Manager"],"experience_levels": ["senior", "lead"],"min_salary_usd": 90000,"page_size": 100}
π‘ Tips & Gotchas
- 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 ~95%+ on companies with > 100 jobs in our index, lower on long-tail SMBs (which Workable has many of).- Geocoding is best-effort. Loose location strings like
"Worldwide"or"Multiple Locations"won't havelatitude/longitude. The rawlocationstring is always preserved so you can fall back to it. Workable jobs in non-English locales (e.g. German"MΓΌnchen") geocode reliably. details_urlis authenticated. It returns the same auth-gated JSON as Jobo Connect's enterprise company API β you'll need anX-Api-Key. Treat the URL as a discoverable hint rather than an open endpoint.- Pagination cap.
page_sizemaxes at 100;pagemaxes at 100. To pull more than 10,000 results for a query, narrow the filter (e.g. byposted_afterwindow,companies_include, or a more specificqueries) rather than paginating deeper. - Salaries often undisclosed in EU. Many UK and EU postings on Workable don't publish salary ranges. Setting
min_salary_usdwill exclude these β leave it unset if you want maximum coverage and accept salary nullability. - One ATS per actor. This actor pre-pins
sources: ["workable"]β you can't widen it to other ATSes. Use ATS Jobs Search to query Workable + Greenhouse + Lever + 45 more in one call.
πΌ Use Cases
| Industry | Use Case |
|---|---|
| Job Boards | Build SMB- and EU-focused job aggregators with rich structured data |
| AI Agents | Power career chatbots and rΓ©sumΓ©-matching agents with global Workable data |
| HR Tech | Analyze SMB hiring trends, salary benchmarks, skill demand by region |
| Recruiting | Source candidates and roles at growing mid-market companies |
| Salary Research | Benchmark compensation across EU, UK, and US SMBs |
| Market Research | Track sector hiring velocity (e-commerce, healthcare, fintech) |
β Frequently Asked Questions
How many Workable companies do you cover?
We index 12,000+ companies using Workable, representing hundreds of thousands of active jobs globally. Workable has the strongest non-US coverage of any major ATS in our database. New companies and jobs are added daily.
What size companies use Workable?
SMBs and mid-market (20β2,000 employees). Workable spans SaaS, e-commerce, healthcare, fintech, media, education, hospitality, and professional services.
Workable vs Greenhouse β what's the difference?
Workable = global SMB and mid-market coverage, especially strong outside the US, broad industry diversity. Greenhouse = US tech unicorns and high-growth public companies. Use Workable for global / sector-diverse research, Greenhouse for US tech-focused work.
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: ["Software Engineer", "-staff", "-principal"] returns Software 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 β typically very small or newly added β show industries: []. The full enriched profile (including industries) is also available via company.details_url.
Can I filter by salary?
Yes β min_salary_usd and max_salary_usd. Salaries posted 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 β note that many UK/EU postings on Workable don't publish salary ranges.
What does company.details_url give me?
It links to 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.
Can I search all ATS platforms at once?
Yes! Use ATS Jobs Search to search Workable + Greenhouse + Lever + 45 other platforms in one call.
What's the difference between v1.x and v2.0?
v2 calls a richer backend (Jobo Connect direct, not the previous gateway). Same input contract for queries / locations / is_remote / posted_after / page / page_size (existing schedules keep working), plus a much richer per-job shape and 10+ new filters. See What's new in v2.0 above.
π 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 |
| BambooHR Jobs Search | More SMB jobs |
| Greenhouse Jobs Search | Tech unicorn jobs |
| Lever Jobs Search | VC-backed startup 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
- Support: enrico@jobo.world