Jazzhr Jobs Search
Pricing
$0.99 / 1,000 jobs
Jazzhr Jobs Search
Search for jobs directly from JazzHR ATS. Access SMBs across all industries. Zero ghost jobs, verified daily.
JazzHR Jobs Scraper & API | Extract Jobs from JazzHR ATS
Scrape and search job listings directly from JazzHR ATS — the affordable ATS used by 10,000+ US small businesses for streamlined applicant tracking. Hundreds of thousands of jobs from local employers, franchises, and growing teams. The easiest way to try it: open the actor on Apify, click Try for free, and run with the default input.
What can JazzHR Jobs Search do?
- 10,000+ companies indexed — heavy on US small business — every open role from every 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
- Strong franchise, healthcare, and trades representation
- 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 JazzHR Jobs Search extract from JazzHR?
| 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 |
| 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 JazzHR |
| Work-auth signals | is_work_auth_required, is_h1b_sponsor, is_clearance_required |
| Source | Always "jazzhr" for this actor |
| Dates | date_posted, created_at, updated_at |
Which companies use JazzHR?
JazzHR is widely used by US small businesses, franchises, and local employers:
| Industry | Examples |
|---|---|
| Healthcare | Clinics, Dental, Home Care, Senior Care |
| Franchises | Restaurants, Fitness, Service Brands |
| Construction | General Contractors, Specialty Trades |
| Manufacturing | Light Industrial, Distribution |
| Professional Services | Legal, Accounting, Insurance |
| Retail | Specialty Retail, Auto, Convenience |
| Education | Private Schools, Daycare, Training |
| Non-profit | Local Charities, Religious Organizations |
…10,000+ companies in our database, with strong franchise and local-business coverage
How do I use JazzHR Jobs Search to scrape JazzHR jobs?
- Sign in to Apify (free tier is enough).
- Open the actor page at apify.com/jobo.world/jazzhr-jobs-search.
- Set the input — at minimum, fill
queries. 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. 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. Geocoded server-side — accepts loose forms like "NYC", "DACH", "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. 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. |
min_salary_usd | Integer | - | Minimum annual USD salary. Excludes jobs without disclosed salary. |
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 JazzHR 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 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://example.jazzhr-host.com/jobs/ABC1234567/","apply_url": "https://example.jazzhr-host.com/jobs/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","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": "jazzhr","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 "jazzhr" for this actor. |
| Content | ||
title | string | Job title as published by the employer. |
normalized_title | string | null | Canonical title slug. |
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 JazzHR. |
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. |
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 roles
{"queries": ["Software Engineer", "Developer"],"work_models": ["remote"],"page_size": 50}
Specific cities
{"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, skip Staff / Principal / Lead
{"queries": ["Software Engineer", "-staff", "-principal", "-lead"],"experience_levels": ["mid", "senior"],"page_size": 50}
JavaScript / AWS backend roles, no PHP
{"queries": ["Backend Engineer"],"skills_include": ["JavaScript", "AWS"],"skills_exclude": ["PHP"],"work_models": ["remote"],"page_size": 50}
Senior roles paying $90k+
{"queries": ["Engineering Manager", "Product Manager"],"experience_levels": ["senior", "lead"],"min_salary_usd": 90000,"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: [].- 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. - Salary often hourly, not annual. Many JazzHR postings (especially trades, healthcare, retail) quote hourly compensation.
compensation.periodwill be"hour"for these —min_salary_usd/max_salary_usdnormalize to annual USD server-side using a 2,080-hour year. - One ATS per actor. This actor pre-pins
sources: ["jazzhr"]. Use ATS Jobs Search to query JazzHR + Greenhouse + Lever + 45 more in one call.
Use cases
| Industry | Use case |
|---|---|
| Job Boards | Build job aggregators with rich structured data |
| AI Agents | Power career chatbots and résumé-matching agents |
| HR Tech | Analyze competitor hiring trends, salary benchmarks, skill demand |
| Recruiting | Source candidates and roles at JazzHR customers |
| Salary Research | Benchmark compensation across JazzHR's customer base |
| Market Research | Track sector hiring velocity through JazzHR postings |
Is it legal to scrape JazzHR 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 JazzHR companies do you cover?
We index 10,000+ companies using JazzHR, with the strongest US franchise and local-business representation of any small-business ATS.
What size companies use JazzHR?
US small businesses, franchises, and local employers (5–500 employees). Strong coverage of healthcare, trades, franchises, and retail.
JazzHR vs BambooHR — what's the difference?
JazzHR = US small businesses, franchises, and local employers (often hourly roles). BambooHR = US SMBs with broader white-collar mix. Use JazzHR for franchise / trades / local research, BambooHR for broader SMB white-collar 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 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.
Can I search all ATS platforms at once?
Yes! Use ATS Jobs Search to search across 48 ATS platforms in one call.
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 |
| Workable Jobs Search | Global SMB + mid-market coverage |
| 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
- API status: jobo.world/status
- Support: enrico@jobo.world