PEOPLECOMPANYAI API MCP READY

JazzHR Jobs API

Search job postings across every company hiring on JazzHR, the ATS behind thousands of applytojob.com boards. Most ATS feeds need a board URL per employer; this one does not. Search the whole platform by keyword, location or employment type and get one row per job with the employer named, or switch to company mode and get the boards themselves with a live count of open roles on each. A delta store remembers what previous runs returned, so a scheduled run can emit only postings it has not seen before.

MEDIAN LAGon demand
FIELDS8
TOTAL USERS5
MONTHLY ACTIVE5
TOTAL RUNS49
SUCCESS (30D)95.7%
RATINGno ratings yet
LAST MODIFIED2026-08-24
PUBLISHED2026-08

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
keywords array no Keep only jobs whose title contains any of these words. Searching the whole platform by keyword is what removes the need for a board URL.
outputMode string no jobs jobs returns full records with descriptions, urlsOnly returns the index, companies returns one row per hiring company with a live job count.
startUrls array no Optional. Specific JazzHR company boards or individual postings.
companies array no Company slugs to include, taken from the subdomain of a board URL.
excludeCompanies array no Company slugs to skip. Useful for filtering out staffing agencies.
location string no Case-insensitive match against city, state or postal code.
employmentType string no ANY Keep only jobs of this employment type.
remoteOnly boolean no false Keep only postings the employer flagged as remote.
postedAfter string no Keep only jobs posted on or after this date, as YYYY-MM-DD.
descriptionFormat string no markdown Markdown is compact and reads well in an agent context; HTML preserves the employer's original formatting.
maxItems integer no 100 Stop after this many rows. The platform holds well over 100,000 live jobs, so this is the parameter that determines spend. — drives your bill
newJobsOnly boolean no false Return only postings this Actor has not returned in an earlier run.
firstRunBehavior string no emitAll What the first run does when new-jobs-only is on — emit everything, or seed the store quietly and emit nothing.
deltaStoreName string no Named key-value store holding the job IDs seen so far. Change it to keep separate histories.

Output schema

FIELDTYPEDESCRIPTIONNULLABLE
title string Job title as published no
companyName string Hiring company no
locationText string Location as the employer wrote it yes
isRemote boolean The employer's own remote flag, not inferred yes
employmentType string Full time, part time, contract or intern yes
datePosted string Date the employer published the role yes
applyUrl string Direct application link on the employer's board no
companySlug string Board subdomain, the stable key for an employer no

Code

Remote engineering roles across the platform

curl -X POST "https://api.apify.com/v2/acts/johnvc~jazzhr-jobs-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ "keywords": ["software engineer"], "remoteOnly": true, "maxItems": 200 }'

Which companies are hiring, with a live count each

curl -X POST "https://api.apify.com/v2/acts/johnvc~jazzhr-jobs-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ "outputMode": "companies", "maxItems": 500 }'

What people use it for

  • Mapping small and mid-size companies that hire through JazzHR
  • Feeding a job board with roles the large aggregators miss
  • Tracking new postings across a whole ATS rather than one employer
  • Recruitment lead lists from live open-role counts
  • Remote-role monitoring across a platform

More sources for Hiring signals and talent intelligence

Alternatives