JazzHR Jobs Scraper avatar

JazzHR Jobs Scraper

Pricing

Pay per event

Go to Apify Store
JazzHR Jobs Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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

  1. Open the Actor input page.
  2. Add one or more JazzHR board or job URLs.
  3. Choose a small maximum number of jobs for your first run.
  4. Keep Include full descriptions enabled when you need job text.
  5. Optionally enter filters.
  6. Click Start.
  7. 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

FieldTypeRequiredDescription
startUrlsarrayYesPublic JazzHR board or job-detail URLs
maxItemsintegerNoMaximum matching jobs saved across all sources
includeDetailsbooleanNoInclude description text and HTML; default true
keywordstringNoSearch title, company, metadata, and description
locationstringNoLocation substring, such as Remote or CA
departmentstringNoDepartment substring, such as Engineering
employmentTypestringNoEmployment type substring, such as Full Time
proxyConfigurationobjectNoOptional 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.

FieldDescription
jobIdStable ID from the JazzHR detail URL
titlePublic job title
companyHiring company shown on the posting
departmentDepartment or business unit
locationLocation text shown by JazzHR
isRemoteBoolean remote-work signal
employmentTypeEmployment type shown on the posting
rawMetaOriginal combined metadata line
descriptionTextClean plain-text description and requirements
descriptionHtmlOriginal useful description HTML
jobUrlCanonical public job URL
applyUrlPublic page where a candidate can begin applying
sourceBoardCanonical company board URL
companySlugCompany subdomain on applytojob.com
scrapedAtISO 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 roles
  • department: "Sales" for sales-team hiring
  • employmentType: "Part Time" for part-time roles
  • keyword: "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:

  1. Run the actor on a schedule.
  2. Save companySlug + jobId as your unique key.
  3. Compare the new dataset with your existing records.
  4. Trigger alerts only for unseen IDs.
  5. 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 rawMeta as 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 os
from apify_client import ApifyClient
client = 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().items
print(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.com are 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.

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.

Build broader recruiting-data workflows with other actors from automation-lab:

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.