JazzHR Jobs Scraper
Pricing
from $6.80 / 1,000 results
JazzHR Jobs Scraper
Scrape open jobs from any company career board on JazzHR with title, department, location, employment type, salary, full description, apply link and posting dates. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
JazzHR Jobs Scraper
Here is one real result, with every field the actor returns (the long descriptionHtml and descriptionText are trimmed here with a note; the AI add-on fields are populated because those add-ons were enabled on the run):
{"title": "Dining Manager","company": "Fooda","companyWebsite": "https://www.fooda.com","companyLogo": "https://s3.amazonaws.com/resumator/customer_20131114185749_IYPDORMQZELVJKZX/logos/20150127172910_New_FoodaLogo_2.png","department": "Cafe Operations","location": "Tempe, AZ","remote": false,"city": "Tempe","region": "AZ","postalCode": "85218","country": null,"employmentType": "FULL_TIME","industry": null,"experienceLevel": "Manager/Supervisor","descriptionHtml": "<p><strong><u>Who We Are:</u></strong><br>Our story began in 2011 ... [full HTML job description trimmed for readability]","descriptionText": "Who We Are:\nOur story began in 2011 ... [full plain-text job description trimmed for readability]","salaryCurrency": null,"salaryMin": null,"salaryMax": null,"salaryPeriod": null,"postedAt": "2026-08-07","validThrough": "2026-11-05","jobId": "job_20260807214051_P0EIH9VZR4N1SKVM","jobCode": "VWB4NzAQ6t","applyUrl": "https://fooda.applytojob.com/apply/VWB4NzAQ6t/Dining-Manager","board": "fooda","aiJdSummary": "The Dining Manager at Fooda is responsible for overseeing the daily operations of a cafeteria, ensuring a high-quality service experience for customers. This role involves managing staff, inventory, and financial accountability while maintaining Fooda's standards of service and sanitation. Ideal candidates should have a background in large food service or enterprise catering, strong organizational skills, and the ability to work independently.","aiSkills": ["customer service", "organizational skills", "detail-oriented", "independent judgment", "problem-solving", "inventory management", "staff recruitment and training", "accounting"],"aiTechnologies": ["POS software"],"aiSeniority": "mid","aiSalaryEstimateMin": 50000,"aiSalaryEstimateMax": 70000,"aiSalaryEstimateCurrency": "USD","aiSalaryEstimateBasis": "annual","aiSalaryEstimateConfidence": "medium","source": "JazzHR","observedAt": "2026-08-14T08:28:05.095Z"}
The most complete JazzHR jobs scraper available. From any company career board hosted on JazzHR it returns every field the posting exposes: title, company and website, logo, department, location and remote flag, employment type, industry, experience level, full HTML and plain-text description, salary, posted and expiry dates, and the direct apply link, plus optional AI job summary, skills and seniority extraction, salary estimates, and contact enrichment.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
Give the actor a JazzHR board handle (the part before .applytojob.com) or a full board URL. It loads that company's open positions, and when withDetails is on (the default) opens each posting to read its JobPosting structured data, then writes one normalized record per job to the run's dataset. Each record carries the title, hiring company and website, department, location with a parsed city/region/postal code and a remote flag, employment type, full HTML and plain-text description, salary when stated, posted and expiry dates, and the direct apply link. No account or key is required.
Optional filters narrow the results (keyword, remote-only, employment type, location, department). Optional paid add-ons attach an AI job summary, extracted skills/technologies/seniority, a market salary estimate for postings that omit one, and public contact enrichment.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 open jobs from the ticketmanager board.
{"board": "ticketmanager","withDetails": true,"maxJobs": 10}
Set board to any JazzHR board handle or URL. Add searchQuery or the filter fields to narrow the postings.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
board | string | yes | ticketmanager | The JazzHR board to scrape. Board handle (the part before .applytojob.com) or the full board URL. |
withDetails | boolean | no | true | Open each posting to collect the full description, employment type, salary, and dates. Turn off for a faster title-and-location-only run. |
maxJobs | integer | no | (all) | Maximum number of jobs to collect. |
searchQuery | string | no | (empty) | Keep only jobs whose title, department, location, or description contains this text, for example manager, engineer. |
remoteOnly | boolean | no | false | Keep only jobs flagged as remote. |
employmentType | string | no | (empty) | Keep only jobs whose employment type contains this text, for example full, part, contract, intern. |
locationFilter | string | no | (empty) | Keep only jobs whose location contains this text, for example New York, Remote, CA. |
departmentFilter | string | no | (empty) | Keep only jobs whose department contains this text, for example engineering, sales. |
enrichContacts | boolean | no | false | Paid add-on. For each result without an email, try to find a public business contact email and person name. Billed per attempt, plus extra when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the contact add-on tries to enrich. Free Apify accounts are capped at 3. |
withJdSummary | boolean | no | false | Paid add-on. Plain-English summary of each job description. Requires a paid plan. Billed per usable AI result. |
withSkills | boolean | no | false | Paid add-on. Extract required skills, technologies, and seniority. Requires a paid plan. Billed per usable AI result. |
withSalaryEstimate | boolean | no | false | Paid add-on. Estimate market salary for postings without one. Requires a paid plan. Billed per usable AI result. |
Output reference
One dataset item per job. Types: string, integer, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
title | string | Job title. |
company | string | Hiring company name. |
companyWebsite | string | Hiring company website, or null. |
companyLogo | string | Hiring company logo URL, or null. |
department | string | Department, or null. |
location | string | Job location text, or null. |
remote | boolean | true when the job is flagged remote, false when known not remote, null when unknown. |
city | string | City parsed from the posting, or null. |
region | string | State/region parsed from the posting, or null. |
postalCode | string | Postal code, or null. |
country | string | Country, or null. |
employmentType | string | Employment type, for example FULL_TIME, or null. |
industry | string | Industry, or null. |
experienceLevel | string | Experience level / requirements, or null. |
descriptionHtml | string | Full job description as HTML, or null. |
descriptionText | string | Full job description as plain text, or null. |
salaryCurrency | string | Salary currency when stated, or null. |
salaryMin | integer | Minimum stated salary, or null. |
salaryMax | integer | Maximum stated salary, or null. |
salaryPeriod | string | Salary period (for example annual/hourly) when stated, or null. |
postedAt | string | Date the job was posted (YYYY-MM-DD), or null. |
validThrough | string | Date the posting expires (YYYY-MM-DD), or null. |
jobId | string | JazzHR unique job code, or the job code fallback. |
jobCode | string | The board's short job code used in URLs. |
applyUrl | string | Direct apply link for the posting. |
board | string | The JazzHR board handle scraped. |
aiJdSummary | string | Paid add-on. Plain-English job summary, or null when not enabled. |
aiSkills | string[] | Paid add-on. Required skills, or null. |
aiTechnologies | string[] | Paid add-on. Tools/languages/frameworks, or null. |
aiSeniority | string | Paid add-on. intern, junior, mid, senior, lead, manager, executive, or unknown, or null. |
aiSalaryEstimateMin | integer | Paid add-on. Estimated minimum salary (postings with no stated salary), or null. |
aiSalaryEstimateMax | integer | Paid add-on. Estimated maximum salary, or null. |
aiSalaryEstimateCurrency | string | Paid add-on. Estimate currency (ISO 4217), or null. |
aiSalaryEstimateBasis | string | Paid add-on. annual or hourly, or null. |
aiSalaryEstimateConfidence | string | Paid add-on. low, medium, or high, or null. |
source | string | Always JazzHR. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on error records (board not found / source down); success records omit it. |
When enrichContacts is enabled, results also carry enrichedEmail, enrichedEmailStatus, enrichedContactName, enrichedJobTitle, enrichedConfidence, and enrichedSource.
Example output record
The real Fooda Dining Manager record (from input {"board": "fooda", "maxJobs": 3, "withDetails": true, "withJdSummary": true, "withSkills": true, "withSalaryEstimate": true}) is shown in full at the top of this page. The descriptionHtml and descriptionText there are trimmed for readability; the actual fields return the complete job description.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~jazzhr-jobs-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"board":"ticketmanager","withDetails":true,"maxJobs":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~jazzhr-jobs-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"board":"fooda","searchQuery":"manager","remoteOnly":false}'
Apify CLI:
apify call scrapers_lat/jazzhr-jobs-scraper \--input '{"board":"fooda","maxJobs":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per job record returned (
resultevent). See the pricing tab for the current per-result price. - Detail enrichment billed separately. With
withDetailson, each posting whose detail page is fetched charges adetailsevent. Turn it off to skip that charge. - Add-ons billed separately. Contact enrichment and the AI add-ons (
ai_jd_summary,ai_skills,ai_salary_estimate) are optional paid events charged only when they produce usable output; the AI add-ons require a paid Apify plan. - No charge on failure. If the board is not found or the source is down, the actor writes a single item with a populated
errorfield and does not charge for it. - Free Apify plans are capped at 10 jobs per run (and 3 contact enrichment attempts). Upgrade for higher
maxJobs. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results.
FAQ and troubleshooting
Where do I find the board handle?
It is the subdomain of the career page URL. For https://fooda.applytojob.com/apply/jobs/, the handle is fooda. You can paste the full URL instead and the actor extracts it.
A run returned no jobs. Why?
The board has no open positions, or your filters excluded everything. Remove searchQuery/remoteOnly/location filters and try again. Empty runs are not charged.
Can I get a faster, lighter run?
Yes. Set withDetails to false to return title, department, and location only, without opening each posting (and without the details charge).
Why is salary null?
Many postings do not publish a salary. When withSalaryEstimate is enabled, the AI add-on fills aiSalaryEstimate* fields for postings with no stated salary. Stated salaries populate salaryMin/salaryMax directly.
Do the AI add-ons work on a free plan? No. The AI add-ons require a paid Apify plan. Contact enrichment runs on free plans but is capped at 3 attempts per run.
Is this an official JazzHR tool? No. This actor is independent and has no affiliation with JazzHR. It reads only the publicly available career boards companies host on JazzHR.
Related scrapers
- Ireland Solicitors Scraper: Irish solicitors and law firms with contact details.
- Ireland CRO Company Registry Scraper: Irish company register records.
- Japan FSA Financial Firms Scraper: registered Japanese financial firms.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with JazzHR. Accesses only the publicly available career boards companies host on JazzHR.
