BambooHR Scraper [Only $0.90/1K💰] | Jobs | Salary | Openings avatar

BambooHR Scraper [Only $0.90/1K💰] | Jobs | Salary | Openings

Pricing

from $0.85 / 1,000 results

Go to Apify Store
BambooHR Scraper [Only $0.90/1K💰] | Jobs | Salary | Openings

BambooHR Scraper [Only $0.90/1K💰] | Jobs | Salary | Openings

Extract every open role from any BambooHR careers board - title, department, location, remote flag, salary and full description - via BambooHR's public JSON endpoints. Build job feeds, hiring-intent lists and labour-market datasets with no API key, no login and no browser.

Pricing

from $0.85 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

BambooHR Scraper

BambooHR scraper that pulls every open job from any company's BambooHR careers board through the same public JSON endpoints the careers page itself uses - job title, department, location, remote status, salary, full description and apply URL. No login, no API key and no browser.

Main Use Cases

  • Build a live job-board or ATS aggregation feed from thousands of SMB career pages
  • Collect hiring-intent signals for recruiters, staffing agencies and B2B sales teams
  • Run labour-market and salary research across companies, departments, countries and cities
  • Monitor new and updated openings for a watchlist of target companies
  • Enrich CRM and lead lists with the roles a prospect is currently hiring for

How It Works

How the BambooHR Scraper works: any public careers board to every open role, pay range and location.

BambooHR hosts a public careers page at https://{company-slug}.bamboohr.com/careers. That page loads its data from two unauthenticated JSON endpoints, which this actor calls directly with a plain HTTP crawler:

  1. GET https://{slug}.bamboohr.com/careers/list returns a JSON index of every open posting (id, title, department, employment status, city/state, remote flags).
  2. GET https://{slug}.bamboohr.com/careers/{id}/detail returns the full record for one job - HTML description, free-text compensation, posting date, structured location and share URL.

The company display name is not in the JSON, so it is read once per board from the og:site_name meta tag on the careers HTML. Because the endpoints are plain JSON, the actor runs on a lightweight Cheerio (HTTP) crawler - no headless browser is involved. Dead or suspended tenants redirect to the BambooHR marketing site instead of returning JSON, and those boards are logged and skipped rather than failing the run.

Scrape BambooHR Job Listings Without An API Key

BambooHR's official jobs API ("Get Job Summaries") requires OAuth and an authenticated caller with access to ATS settings, and it only returns jobs for the account that authenticates. The public careers feed that this actor reads needs no credentials, works for any company hosted on BambooHR, and returns the same postings the employer already publishes to every visitor - including the description, country and pay text that the official summaries endpoint does not carry.

Because BambooHR has no public directory of company slugs, you supply the boards you want either as a bare subdomain (home) or as a full URL (https://home.bamboohr.com/careers).

Input

FieldTypeRequiredDefaultNotes
boardsstring[]No14 curated boards (~104 combined openings)Company slugs ("home") or full board URLs ("https://home.bamboohr.com/careers"). Both forms are accepted per entry.
maxResultsintegerNo100Maximum job postings returned in total across all boards. Range 1-5000.
includeDescriptionbooleanNotrueFetch each job's detail page for the full description, salary text, country and posting date. Turn off for a faster list-only scrape (title, location, department, type).
proxyobjectNooffApify Proxy picker. Only needed if a specific board rate-limits datacenter IPs.

Output

One dataset item per job opening:

FieldDescription
jobIdJob opening ID on the BambooHR board
titleJob title
companyCompany display name (from the board HTML)
companySlugBambooHR subdomain, e.g. home for home.bamboohr.com
boardUrlRoot URL of the company careers board
departmentDepartment label
employmentTypeEmployment status/type, e.g. Full-Time
locationCombined location string
city, state, country, postalCodeStructured location fields
isRemotetrue when the posting is explicitly remote, null when unknown
workArrangement"remote" when remote, otherwise null
locationTypeRaw BambooHR locationType code
salaryRawCompensation exactly as the employer wrote it
salaryMin, salaryMaxBest-effort parsed salary bounds
salaryCurrencyUSD / EUR / GBP / CAD / AUD when detectable
salaryPeriodhourly / monthly / yearly
postedDateISO date the opening was posted
descriptionTextPlain-text job description
descriptionHtmlOriginal HTML job description
url, applyUrlPublic posting and application URL
scrapedAtISO timestamp of the scrape

Example Input

{
"boards": [
"home",
"bibliu",
"https://framellc.bamboohr.com/careers"
],
"maxResults": 200,
"includeDescription": true
}

Example Output

{
"jobId": "15",
"title": "IT Security Engineer",
"company": "Home Instead",
"companySlug": "home",
"boardUrl": "https://home.bamboohr.com/careers",
"department": "IT",
"employmentType": "Full-Time",
"location": "Salt Lake City, Utah, United States",
"city": "Salt Lake City",
"state": "Utah",
"country": "United States",
"postalCode": "84101",
"isRemote": false,
"workArrangement": null,
"locationType": "0",
"salaryRaw": "$80,000 - $100,000 per year",
"salaryMin": 80000,
"salaryMax": 100000,
"salaryCurrency": "USD",
"salaryPeriod": "yearly",
"postedDate": "2026-04-30",
"descriptionText": "About Us - Our mission is simple...",
"descriptionHtml": "<p>About Us - Our mission is simple...</p>",
"url": "https://home.bamboohr.com/careers/15",
"applyUrl": "https://home.bamboohr.com/careers/15",
"scrapedAt": "2026-10-15T14:47:38.000Z"
}

Integrations & Automation

  • Apify API / JavaScript / Python clients - pull the dataset programmatically for a job board, CRM or data warehouse.
  • Webhooks - trigger a downstream workflow whenever a run finishes.
  • Zapier, Make, Google Sheets - push new openings into a spreadsheet or alerting channel.
  • Scheduling - run daily (or a few times a day) over a company watchlist to catch new and updated roles quickly. Recurring runs are the recommended way to use this actor as a hiring-intent feed.

FAQ

Why use this actor instead of the official BambooHR API?

BambooHR's official "Get Job Summaries" endpoint requires OAuth authentication and an account with access to ATS settings - it returns the openings of the authenticated account only. This actor reads the public careers feed that every BambooHR-hosted company already serves to visitors, so you can collect jobs from any company you know the subdomain for, with no credentials and no per-account setup.

How can I collect job postings from a company that is not in the default board list?

BambooHR has no public directory of company subdomains, so you add boards yourself: pass the company's subdomain (for https://acme.bamboohr.com/careers, use acme) or the full careers URL in the boards field. If a company embeds its board in its own website, view the page source and look for a *.bamboohr.com host.

What are alternatives to this actor?

If you need a hosted jobs API instead of scraping, BambooHR's own jobs API (with an account and OAuth scope) or third-party normalized-jobs APIs are options - but they require credentials and typically only cover the accounts or employers they index. For a self-contained, keyless scrape of any BambooHR board, this actor is the direct route.

Why are some fields null?

BambooHR exposes remote status, country and salary inconsistently across tenants. isRemote is null when the employer left it unspecified (it does not mean "on-site"), salary is free text so it is empty on postings without published pay, and evergreen postings can carry a postedDate far in the past even though the role is still open.

For AI Agents & LLM Apps

Purpose: return one structured record per open job on any BambooHR careers board, from the public /careers/list and /careers/{id}/detail JSON endpoints.

Minimal working input:

{ "boards": ["home"] }

Output fields: jobId, title, company, companySlug, boardUrl, department, employmentType, location, city, state, country, postalCode, isRemote, workArrangement, locationType, salaryRaw, salaryMin, salaryMax, salaryCurrency, salaryPeriod, postedDate, descriptionText, descriptionHtml, url, applyUrl, scrapedAt.

Behaviors an agent should know:

  • boards is the only field that selects the data; if it is omitted, the actor scrapes a default curated set of 14 boards, not "all companies" - there is no public subdomain directory.
  • maxResults defaults to 100 and caps total rows (1-5000); set it explicitly for large runs.
  • includeDescription defaults to true and issues one extra HTTP request per job. Turning it off keeps title, department, employmentType and location but leaves descriptionText, descriptionHtml, salary*, country and postedDate empty.
  • Dead/suspended tenants are skipped and logged; a board that returns HTML instead of JSON yields no rows rather than an error.

Billing: pay-per-event, charged per result row (about $0.90 per 1,000 jobs on the free tier, lower on paid Apify plans), plus the one-time actor-start event.

This actor is independent and is not affiliated with, endorsed by, or sponsored by BambooHR. It accesses only publicly available career pages and the public JSON endpoints those pages call; it does not log in, bypass authentication, or solve CAPTCHAs on any account-gated surface. Users are responsible for complying with BambooHR's and the source companies' terms of service and with applicable data-protection law when storing or republishing the collected job data. The dataset contains company job-posting information, not private personal contact data.

SEO Keywords

bamboohr scraper, bamboohr jobs api, bamboohr careers scraper, scrape bamboohr job listings, bamboohr api alternative, hiring intent data, job posting api, ats job scraping, company careers page scraper, job board aggregator data, remote job listings api, salary data extraction, job listing monitoring, recruiting intelligence, greenhouse lever bamboohr jobs, applicant tracking system data, smb hiring data, job openings dataset