BambooHR Jobs API - Career Page Scraper for Small Employers
Pricing
from $2.00 / 1,000 job results
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
Maintained by CommunityActor 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
| Field | Description |
|---|---|
provider | Always bamboohr — the same schema the multi-ATS Actors below emit |
company / companySlug | Employer subdomain |
jobId | BambooHR posting id — stable, so it works as a dedupe key across runs |
title | Job title |
location | City, state and country as the employer entered them |
department | Department, from the employer's own org structure |
employmentType | Full-time, part-time, internship, contract |
remote | Inferred from the location string — the employer flag is never set. See below |
applyUrl | Direct link to the posting |
scrapedAt | When 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
| Option | What it does |
|---|---|
keywords | Keep only titles containing one of these. Case-insensitive. |
excludeKeywords | Drop titles containing any of these, e.g. senior, intern. |
locations | Keep only locations containing one of these. |
remoteOnly | Falls back to the location string here, because the employer flag is never set. |
postedWithinDays | Freshness filter. BambooHR rows have no date and are always kept. |
companies | Subdomains or career page URLs. Leave empty to search all 9,711. |
maxBoards | How many boards to scan, largest-first. |
maxJobs | Hard 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_BOARDSrecord in the key-value store, with the reason for each. companySlug:jobIdis 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.