JazzHR Jobs Scraper
Pricing
Pay per event
JazzHR Jobs Scraper
Extract current public JazzHR jobs with full descriptions, hiring metadata, remote signals, and apply URLs for monitoring, aggregation, recruiting intelligence, and lead generation.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Extract current job postings from public JazzHR career boards hosted on applytojob.com. Get stable job IDs, titles, companies, departments, locations, remote signals, employment types, full descriptions, and application URLs in one structured dataset.
The actor accepts a company board or an individual JazzHR job URL. It uses the public server-rendered pages, so normal runs need no login and no browser.
What does JazzHR Jobs Scraper do?
JazzHR Jobs Scraper turns public company career pages into export-ready job records.
- 🎯 Discover open jobs from a JazzHR company board.
- 📄 Extract full description text and HTML.
- 🏢 Capture company, department, location, and employment type.
- 🌍 Flag postings that mention remote work.
- 🔗 Preserve canonical job, apply, and source-board URLs.
- 🔎 Filter by keyword, location, department, or employment type.
- ♻️ Run repeatedly to synchronize a hiring feed.
It reads postings only. It does not submit applications or collect applicant data.
Who is it for?
Job aggregators
Build or refresh a normalized job feed from companies using JazzHR.
Recruiting-intelligence teams
Track where target companies are hiring, which departments are growing, and which locations appear most often.
Sales and lead-generation teams
Use fresh hiring activity as a signal for outreach, enrichment, or account prioritization.
Labor-market analysts
Export descriptions and metadata to a warehouse for role, skill, location, and demand analysis.
Developers
Call one Actor API instead of maintaining selectors, retries, URL normalization, and dataset exports.
Why use this JazzHR jobs extractor?
Public JazzHR boards are readable, but their pages are designed for job seekers rather than data pipelines. This actor provides a repeatable extraction contract.
- Stable field names across runs
- Canonical URLs and IDs for deduplication
- Both plain text and HTML descriptions
- Global result limits for predictable runs
- Optional filters that fail closed
- Dataset exports in JSON, CSV, Excel, XML, and RSS
- API, webhook, schedule, and MCP compatibility through Apify
Supported URLs
Use public URLs hosted on applytojob.com.
Board URL:
https://advatixinc.applytojob.com/apply/jobs/
Individual job URL:
https://advatixinc.applytojob.com/apply/jobs/details/jSt7FUN1oE
You can supply several boards and detail URLs in the same run. Unsupported domains are rejected before extraction.
How to scrape JazzHR jobs
- Open the Actor input page.
- Add one or more JazzHR board or job URLs.
- Choose a small maximum number of jobs for your first run.
- Keep Include full descriptions enabled when you need job text.
- Optionally enter filters.
- Click Start.
- Open the Dataset tab to preview or export the records.
For recurring monitoring, create an Apify schedule and send the finished dataset to your database or automation tool.
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array | Yes | Public JazzHR board or job-detail URLs |
maxItems | integer | No | Maximum matching jobs saved across all sources |
includeDetails | boolean | No | Include description text and HTML; default true |
keyword | string | No | Search title, company, metadata, and description |
location | string | No | Location substring, such as Remote or CA |
department | string | No | Department substring, such as Engineering |
employmentType | string | No | Employment type substring, such as Full Time |
proxyConfiguration | object | No | Optional Apify Proxy settings for unusual boards |
Filters are case-insensitive. When a requested field is absent, that posting does not match that filter.
Example input
{"startUrls": [{ "url": "https://advatixinc.applytojob.com/apply/jobs/" }],"maxItems": 10,"includeDetails": true,"location": "Remote"}
To extract one posting, paste its detail URL and set maxItems to 1.
Output data
Each dataset row represents one public JazzHR job posting.
| Field | Description |
|---|---|
jobId | Stable ID from the JazzHR detail URL |
title | Public job title |
company | Hiring company shown on the posting |
department | Department or business unit |
location | Location text shown by JazzHR |
isRemote | Boolean remote-work signal |
employmentType | Employment type shown on the posting |
rawMeta | Original combined metadata line |
descriptionText | Clean plain-text description and requirements |
descriptionHtml | Original useful description HTML |
jobUrl | Canonical public job URL |
applyUrl | Public page where a candidate can begin applying |
sourceBoard | Canonical company board URL |
companySlug | Company subdomain on applytojob.com |
scrapedAt | ISO 8601 extraction timestamp |
Example output
{"jobId": "jSt7FUN1oE","title": "Access Guard","company": "Advatix, Inc.","department": "Fulfillment Center","location": "Trenton, NJ","isRemote": false,"employmentType": "Full Time","rawMeta": "Fulfillment Center - Trenton, NJ - Full Time","descriptionText": "Access Guard (Gate) Role Summary: ...","descriptionHtml": "<p><strong>Access Guard...</strong></p>","jobUrl": "https://advatixinc.applytojob.com/apply/jobs/details/jSt7FUN1oE","applyUrl": "https://advatixinc.applytojob.com/apply/jobs/details/jSt7FUN1oE","sourceBoard": "https://advatixinc.applytojob.com/apply/jobs/","companySlug": "advatixinc","scrapedAt": "2026-07-20T00:00:00.000Z"}
Actual descriptions are not truncated.
How much does it cost to scrape JazzHR jobs?
This Actor uses pay-per-event pricing: $0.005 per run plus a charge for each job saved. The BRONZE price is $0.0001156 per job; canonical plan tiers range from $0.00013294 (FREE) down to $0.000032367 (DIAMOND). You never pay per discovered job that is filtered out or fails extraction.
Start with maxItems: 5 to measure your exact workload. The Apify run page shows the charge total before you automate larger syncs.
Platform compute and proxy use are handled by Apify according to your account and Actor pricing display. Direct HTTP is the default; a proxy is optional.
Filtering jobs
Use keyword for broad matching across titles, companies, metadata, and descriptions.
Use field filters when you need a narrower feed:
location: "Remote"for remotely labeled rolesdepartment: "Sales"for sales-team hiringemploymentType: "Part Time"for part-time roleskeyword: "warehouse"for title or description matches
Multiple filters use AND logic. A job must satisfy every supplied filter.
Monitoring new JazzHR jobs
A practical monitoring workflow is:
- Run the actor on a schedule.
- Save
companySlug + jobIdas your unique key. - Compare the new dataset with your existing records.
- Trigger alerts only for unseen IDs.
- Mark missing IDs as possibly closed after confirmation in a later run.
Use scrapedAt as observation time, not as the posting publication date.
Tips for reliable runs
- Prefer the canonical
/apply/jobs/board URL. - Keep the first run small while validating filters.
- Use full details when text analysis matters.
- Disable details only when you want a lighter metadata feed.
- Deduplicate downstream with both host and
id. - Treat
rawMetaas the source of truth when a custom company template formats metadata unusually. - Add proxy settings only if a particular company board rejects direct access.
Integrations
Google Sheets
Export CSV or connect Apify to a spreadsheet workflow for recruiter review.
Webhooks
Send a run-finished webhook to your ingestion service, then fetch the default dataset.
Make and Zapier
Trigger enrichment, CRM updates, notifications, or lead-scoring automations after each scheduled run.
Data warehouses
Load JSON records into BigQuery, Snowflake, PostgreSQL, or object storage. Use jobId and companySlug as the natural key.
Slack and email alerts
Compare IDs with the prior snapshot and notify a channel when new matching roles appear.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/jazzhr-jobs-scraper').call({startUrls: [{ url: 'https://advatixinc.applytojob.com/apply/jobs/' }],maxItems: 10,includeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/jazzhr-jobs-scraper').call(run_input={'startUrls': [{'url': 'https://advatixinc.applytojob.com/apply/jobs/'}],'maxItems': 10,'includeDetails': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL API example
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~jazzhr-jobs-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls": [{"url":"https://advatixinc.applytojob.com/apply/jobs/"}],"maxItems": 10,"includeDetails": true}'
Poll the returned run ID, then download items from its defaultDatasetId.
Use JazzHR Jobs Scraper with MCP
Connect Apify Actors to AI tools through the Apify MCP server.
Claude Code
$claude mcp add --transport http apify https://mcp.apify.com/?tools=automation-lab/jazzhr-jobs-scraper
Claude Desktop and Cursor
Add this mcpServers JSON to Claude Desktop or Cursor and provide your token through the client environment:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/jazzhr-jobs-scraper"}}}
VS Code
Open the MCP configuration command in VS Code, add an HTTP server, and use:
https://mcp.apify.com/?tools=automation-lab/jazzhr-jobs-scraper
Example prompts:
- “Extract the first 20 jobs from this JazzHR board and summarize hiring by department.”
- “Find remote roles on these JazzHR boards and return company, title, and apply URL.”
- “Compare employment types across these company career pages.”
In Claude Desktop or another MCP client, configure the Apify MCP server and authorize your Apify account. The actor then appears as a callable tool.
Data quality
The actor reads semantic JazzHR elements and preserves the original metadata line. Company-specific templates can omit fields or use unexpected punctuation, so optional fields may be absent.
isRemote is a text signal derived from location, metadata, and the opening section of the description. It is not a legal classification of the employer's work policy.
The apply URL is the public job detail page containing JazzHR's Apply action. The actor does not click or submit that action.
Error handling
A closed or malformed individual posting is skipped with a warning when other jobs can still be extracted. The run fails when every discovered job fails extraction, rather than reporting misleading success with an empty dataset.
A valid board with no open positions returns a clear no-jobs error. A valid filtered run can return zero rows when no posting matches.
HTTP retries are bounded. This avoids long loops on unavailable customer boards.
Limitations
- Only public JazzHR pages on
applytojob.comare supported. - The actor does not access private JazzHR recruiter accounts.
- It does not submit applications.
- It cannot recover fields a company does not publish.
- Custom templates may format department, location, and employment type differently.
- Closed postings may disappear between board discovery and detail extraction.
- Publication dates are not inferred when JazzHR does not show them.
Is it legal to scrape JazzHR jobs?
The actor extracts publicly visible job advertisements intended for job seekers. Public availability does not remove your responsibility to use data lawfully.
Review the target site's terms, applicable database and privacy laws, and your intended use. Do not use the actor to discriminate, spam individuals, submit applications automatically, or collect applicant information. Store only the data you need and apply appropriate retention controls.
This information is general guidance, not legal advice.
FAQ
Does it require a JazzHR login?
No. It reads public company boards and job pages.
Can I scrape several companies at once?
Yes. Add several board URLs to startUrls; maxItems applies across the full run.
Can I extract one job only?
Yes. Supply its /apply/jobs/details/{id} URL and set maxItems to 1.
Why did my filter return zero jobs?
Check the exact public metadata and try a shorter substring. All supplied filters must match, and missing fields fail closed.
Why is a description missing?
Confirm includeDetails is true. If it is, the company may not publish a description or the job may have closed.
Why did a board fail?
Verify that it is a public applytojob.com JazzHR board. For a customer-specific network restriction, try Apify Proxy settings. The default direct route works for normal public boards.
How do I avoid duplicates?
Use the combination of companySlug and jobId, or use the canonical jobUrl.
Does the actor detect removed jobs?
It returns the current public set. Compare scheduled snapshots to detect IDs that no longer appear.
Related scrapers
Build broader recruiting-data workflows with other actors from automation-lab:
- Greenhouse Jobs Scraper for Greenhouse career boards
- LinkedIn Jobs Scraper for LinkedIn job search workflows
Use ATS-specific scrapers when you need stable source IDs and detailed career-site fields, then normalize records in your downstream pipeline.
Support
If a public JazzHR board uses a template this actor does not parse correctly, open an issue from the Actor page. Include the public board URL, a small input example, and the run ID. Do not include applicant or private recruiter information.