BambooHR Jobs API - Career Page Scraper for Small Employers avatar

BambooHR Jobs API - Career Page Scraper for Small Employers

Pricing

from $2.00 / 1,000 job results

Go to Apify Store
BambooHR Jobs API - Career Page Scraper for Small Employers

BambooHR Jobs API - Career Page Scraper for Small Employers

BambooHR jobs API and career page scraper. Read live postings from any BambooHR career site, or search thousands of known BambooHR employers in one run. Titles, locations, departments and direct apply links as JSON. Skews to small and mid-sized employers that large aggregators miss.

Pricing

from $2.00 / 1,000 job results

Rating

0.0

(0)

Developer

Sulle H

Sulle H

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

BambooHR Jobs API — 9,711 Company Career Pages

BambooHR is an HR platform used mostly by small and mid-sized employers, and its careers module publishes an open JSON list for every company that turns it on.

Point it at a company, or leave the list empty and search a bundled registry of 9,711 live BambooHR career pages carrying 65,904 open postings.

{ "keywords": ["nurse"], "maxJobs": 200 }
{ "companies": ["https://masalto.bamboohr.com"] }

No login, no cookies, no proxies, no API key.

What you get

FieldDescription
providerAlways bamboohr — the same schema the multi-ATS Actors below emit
company / companySlugEmployer subdomain
jobIdBambooHR posting id — stable, so it works as a dedupe key across runs
titleJob title
locationCity, state and country as the employer entered them
departmentDepartment, from the employer's own org structure
employmentTypeFull-time, part-time, internship, contract
remoteInferred from the location string — the employer flag is never set. See below
applyUrlDirect link to the posting
scrapedAtWhen this row was read

What you do not get, and why

No posting date, no description, no salary. BambooHR splits its careers API in two: the list endpoint returns titles and locations, and a separate per-job endpoint carries datePosted, description and compensation.

Reading those would mean one extra HTTP request per posting. On a thousand-row run that is a thousand extra requests against employers' servers, and you would pay for the time. So this Actor reads the list endpoint only and returns null for the three fields rather than making the run an order of magnitude slower and heavier.

postedWithinDays therefore keeps BambooHR rows rather than dropping them, the same as Workday and Rippling. If you need dated rows with descriptions and pay, the platforms that publish all three on the list endpoint are Recruitee and Pinpoint — both linked below.

The remote flag is there, but nobody fills it

BambooHR gives employers an isRemote field and this Actor reports it directly when it is set. In practice it never is: across every posting measured in this registry, not one had it set. So remote comes back null — unknown, not "no" — unless the location string itself says remote, in which case this Actor falls back to that.

If you need a work-arrangement field you can actually filter on, Ashby marks 85.1% of its rows and Recruitee marks 100%. Both are linked below.

Input

OptionWhat it does
keywordsKeep only titles containing one of these. Case-insensitive.
excludeKeywordsDrop titles containing any of these, e.g. senior, intern.
locationsKeep only locations containing one of these.
remoteOnlyFalls back to the location string here, because the employer flag is never set.
postedWithinDaysFreshness filter. BambooHR rows have no date and are always kept.
companiesSubdomains or career page URLs. Leave empty to search all 9,711.
maxBoardsHow many boards to scan, largest-first.
maxJobsHard cap on rows, so a run costs what you expect. Defaults to 150, which keeps a first run under a dollar.

Finding a company slug

The career page lives at <slug>.bamboohr.com/careers, so the slug is the subdomain. Paste the whole URL and the Actor extracts it. Or run without companies and read the companySlug column.

Recipes

Small-employer coverage. BambooHR skews smaller than Workday or Greenhouse, so this is where roles at companies under a few hundred people show up — the ones large aggregators miss.

Watch one company. One slug, run on a schedule, diff jobId between runs.

Feed a niche job board. Every row carries the employer's own applyUrl, so your users apply at the source rather than through a middleman.

Pricing

Pay per result — you are charged per job row delivered. A board that fails or returns nothing costs you nothing. Platform usage is included rather than billed on top.

Beyond BambooHR

Companies move between applicant tracking systems, and most job-data projects need more than one:

  • Career Site Job Feed — the same engine across every platform in this family, in one run, with an identical output schema.
  • New Job Alerts — the same coverage, but each run returns only what appeared since the previous run.
  • Recruitee Jobs API — publish dates, structured pay and a real remote flag on every row.

Notes

  • A dead slug never aborts the run. Failures land in a FAILED_BOARDS record in the key-value store, with the reason for each.
  • companySlug:jobId is a stable key, safe for detecting what opened and closed between runs.
  • No login, no proxies, no API key. BambooHR publishes this endpoint openly. Companies that keep their careers module private are invisible to every scraper, including this one.