BambooHR Jobs Scraper & API avatar

BambooHR Jobs Scraper & API

Pricing

from $1.30 / 1,000 jobs

Go to Apify Store
BambooHR Jobs Scraper & API

BambooHR Jobs Scraper & API

Scrape jobs directly from BambooHR ATS via one fast API. Deep coverage of US-heavy SMBs and mid-market employers across SaaS, e-commerce, healthcare & fintech. Zero ghost jobs, verified daily — built for job boards, AI agents & hiring research.

Pricing

from $1.30 / 1,000 jobs

Rating

0.0

(0)

Developer

Enrico

Enrico

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

BambooHR Jobs Scraper & API | Scrape BambooHR Job Listings

Search job listings directly from BambooHR — the leading ATS for small and medium businesses worldwide. BambooHR customers span every industry: SaaS, e-commerce, healthcare, fintech, professional services, manufacturing, and more. This actor queries Jobo's BambooHR index and returns a normalized, enriched job shape — the same schema used across the broader Jobo ATS platform. Open the actor on Apify, hit Try for free, and run with the default input (queries: ["Software Engineer", "Account Manager"]). Use it to build job boards, power AI agents, run market research, or feed an HR tech product.

Run on Apify Service Status


What can BambooHR Jobs Scraper do?

  • Search 25,000+ companies on BambooHR — the broadest SMB ATS coverage in the Jobo database
  • Filter by work model, experience level, salary range, skills, and companies
  • Exclude noise with negative-keyword syntax (prefix any query token with -)
  • Optionally attach the full company profile — industries, funding, leadership, ratings, tech stack, H1B history
  • Zero ghost jobs — listings verified daily; expired roles removed within 24 hours
  • Run on Apify with scheduling, monitoring, and webhooks, and integrate with Zapier, Make, Slack, or HTTP
  • Download results as JSON, CSV, or XLSX

Input

Configure the actor on the Input tab in the Apify UI. Every field is optional; leaving them empty returns the broadest possible result set.

The core of every run. queries accepts up to 5 titles or keywords (OR-ed together); adding more rarely helps — narrow with filters instead.

ParameterTypeDescription
queriesArray (≤5)Job titles or keywords. Multiple values are OR-ed. Prefix any entry with - to exclude (["Software Engineer", "-staff"]).
locationsArrayCities, regions, or countries. Geocoded server-side for accurate matching.

Filters

Faceted filters that narrow the result set. Salary filters work in USD; jobs without a disclosed salary are excluded when either is set.

ParameterTypeDescription
work_modelsArrayremote, hybrid, onsite.
employment_typesArrayfull-time, part-time, contract, internship, freelance, temporary.
experience_levelsArrayintern, entry, mid, senior, lead, executive.
skills_includeArrayOnly return jobs requiring ANY of these skills. Matched against AI-extracted qualifications.
skills_excludeArrayExclude jobs requiring ANY of these skills.
companies_includeArrayOnly return jobs from these company names.
companies_excludeArrayExclude jobs from these companies.
min_salary_usdIntegerMinimum annual USD salary.
max_salary_usdIntegerMaximum annual USD salary.
posted_afterStringISO 8601 (2025-01-01T00:00:00Z) or relative (7 days ago, 1 month).

Company enrichment

ParameterTypeDefaultDescription
include_company_detailsBooleanfalseOff by defaultcompany carries a lightweight preview. Set true to replace it with the full enriched profile (companies are de-duplicated, fetched once per run; slower, more API calls).

Pagination

ParameterTypeDefaultDescription
pageInteger1Page number (max 20). To go deeper, refine your filters instead of paging.
page_sizeInteger50Results per page (max 100).

Output

Each dataset row uses Jobo Connect's normalized job shape; source is always "bamboohr". The full JSON Schema is on the Dataset Schema tab in the Apify UI.

The Output tab offers two views: BambooHR Job Listings (jobs with a lightweight company preview) and Company details (the full company profile, populated when include_company_details is enabled).

Job fields

NameDescriptionType
idStable Jobo job identifieruuid
titleRaw job titletext
normalized_titleCanonical title for groupingtext
descriptionFull job description, HTML strippedtext
summary2–3 sentence AI role recaptext
listing_urlCanonical listing URL on BambooHRuri
apply_urlDirect apply URLuri
locationsArray of {location, city, region, country, latitude, longitude} (geocoded when possible)object[]
compensation{min, max, currency, period}object
employment_typefull_time / part_time / contract / internship / freelance / temporarytext
workplace_typeremote / hybrid / onsitetext
experience_levelentry / mid / senior / lead / executivetext
qualificationsmust_have / preferred, each with typed skills ({name, type: hard|soft}), education, certificationsobject
responsibilitiesBullet list extracted from the descriptiontext[]
benefitsBullet list extracted from the descriptiontext[]
is_work_auth_requiredWork authorization requiredbool
is_h1b_sponsorEmployer sponsors H1Bbool
is_clearance_requiredSecurity clearance requiredbool
sourceAlways bamboohrtext
date_postedWhen the role was postedtimestamp
valid_throughExpiry timestamp (null in most cases)timestamp
created_atWhen Jobo first indexed the jobtimestamp
updated_atLast time Jobo refreshed the jobtimestamp

Company fields

company is always present. By default it carries only the preview fields below; set include_company_details: true to replace it with the full enriched profile.

Preview (always present)

NameDescriptionType
idStable Jobo company identifier — use as your primary keyuuid
nameTrade nametext
websiteCompany marketing websitetext
logo_urlHosted logo URLtext
summaryShort company blurbtext
industriesVertical industry labelstext[]
details_urlLink to GET /api/companies/{id} for the full profileuri

Enriched (when include_company_details is on)

NameDescriptionType
legal_nameRegistered legal entity nametext
primary_industryMain industry labeltext
company_sizeHeadcount band, e.g. 51-200text
revenueAnnual revenue bandtext
founding_yearYear foundedtext
headquarters_locationHQ city / regiontext
country_codeHQ country codetext
operating_statusactive / closedtext
ipo_statusprivate / ipo / delistedtext
company_typefor_profit / non_profittext
stock_symbolTicker symboltext
stock_exchangeListing exchangetext
funding_stageLatest funding stagetext
total_fundingTotal funding raisedtext
investorsInvestor namestext[]
funding_roundsPer-round detail (investment_type, announced_on, raised_amount, …)object[]
foundersFounder namestext[]
leadership{name, title, linkedin_url, avatar_url}object[]
ratings{source, rating, url, review_count} (Glassdoor, etc.)object[]
press_references{url, posted_on, title, publisher}object[]
h1b_annual_job_counts{year, count} H1B historyobject[]
technology_listDetected technologiestext[]
tech_stack{name, categories}object[]
page_rankDomain authority scorenumber
leadership_displayDisplay tag — "Name — Title"text[]
ratings_displayDisplay tag — "Glassdoor 4.3 (2.1k)"text[]
funding_displayDisplay tag — "Series B · $45M"text[]

The complete company schema (every field) is on the Dataset Schema tab and at docs.jobo.world/api-reference/companies/schema. Use company.details_url with your X-Api-Key to re-fetch a profile on demand.


Quick-start input examples

Remote engineering roles

{
"queries": ["Software Engineer"],
"work_models": ["remote"],
"page_size": 50
}

Recent sales roles (last 7 days)

{
"queries": ["Account Executive", "Sales Manager"],
"posted_after": "7 days ago",
"page_size": 100
}

Skills-filtered, US-only, $90k+

{
"queries": ["Backend Engineer"],
"skills_include": ["JavaScript", "AWS"],
"skills_exclude": ["PHP"],
"locations": ["United States"],
"min_salary_usd": 90000,
"page_size": 100
}

Negative-keyword filter

{
"queries": ["Software Engineer", "-staff", "-principal"],
"experience_levels": ["mid", "senior"],
"page_size": 50
}

Tips & advanced options

  • Pagination cap. page_size maxes at 100 and page at 20. For bulk downloads (>2k rows) use ATS Jobs Feed instead — it uses cursor pagination and pulls up to 1,000 rows per batch.
  • source is always bamboohr. Every row from this actor carries "source": "bamboohr" — no filtering needed, but useful for routing when you merge datasets.
  • industries empty for some companies. Industries come from Jobo's enrichment pipeline; long-tail SMBs may show industries: [].
  • Geocoding is best-effort. Loose strings like "Remote" or "Worldwide" won't geocode; the raw location string is always preserved.
  • Salary normalization. All salary filters work in USD; source currencies (EUR, GBP, INR, etc.) are converted server-side using current FX.
  • SMB salary disclosure varies. Many BambooHR postings don't publish salaries. Setting min_salary_usd will exclude them — leave it unset for maximum coverage.

Use cases

IndustryUse case
Job BoardsBuild SMB-focused aggregators with normalized data
AI AgentsPower career chatbots and résumé-matching agents with BambooHR's broad industry mix
HR TechBuild market-intel dashboards tracking hiring at SMBs and mid-market companies
RecruitingSource candidates and roles at BambooHR customers across every sector
Salary ResearchBenchmark compensation across BambooHR's customer base
Market ResearchTrack sector hiring velocity through BambooHR postings

Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.


FAQ

Is this actor BambooHR only, or does it cover other ATSes?

BambooHR only. Every row has "source": "bamboohr". To search BambooHR alongside Greenhouse, Lever, Workday, and 53 more platforms in one call, use ATS Jobs Search.

Use this actor when you only care about BambooHR — simpler input, same output schema. Use ATS Jobs Search when you want BambooHR results alongside jobs from 56 other ATS platforms.

Should I use this actor or ATS Jobs Feed?

Use BambooHR Jobs Scraper for filtered, paginated queries (job-board UIs, AI agents, real-time lookups). Use ATS Jobs Feed for bulk download (data pipelines, full-inventory sync) — cursor pagination, 1,000 jobs per batch, built for high throughput.

Are duplicates de-duped?

Yes — Jobo Connect de-duplicates by (company + canonical title + listing URL) before returning results.

Can I filter by salary?

Yes — min_salary_usd and max_salary_usd, normalized to USD server-side. Jobs without a disclosed salary are excluded when either filter is set. Note that many BambooHR SMB postings omit salary; leave both filters unset for maximum coverage.

How often is data updated?

Jobs are verified daily across BambooHR. Expired listings are removed within 24 hours.

Where can I check if the Jobo API is up?

At jobo.world/status — the live status page for the Jobo Connect API behind this actor.


ActorBest for
ATS Jobs SearchSearch all 57 ATS platforms at once
ATS Jobs FeedBulk download for data pipelines (cursor pagination, 1k/batch)
Workable Jobs ScraperGlobal SMB + mid-market
Greenhouse Jobs ScraperUS tech unicorns
Crunchbase Company LookupPair with company.details_url for funding / leadership data

Changelog

2.2

  • Job description in the listing view. The full description field now appears directly in the Job Listings view.
  • Company enrichment is opt-in. include_company_details now defaults to off — the listing view carries a lightweight company preview, and the Company details view holds the full profile when enabled.

2.1

  • Company enrichment (opt-in). include_company_details replaces the lightweight company preview with the full company profile — funding, leadership, ratings, tech stack, H1B sponsorship, acquisitions, investors, and more — fetched once per unique company. Off by default — enable it when you need company data.
  • New "Company details" output view.

2.0

  • Richer per-job shape: AI-extracted qualifications (typed hard/soft skills, education, certifications), responsibilities[], benefits[], summary, and normalized_title.
  • Geocoded locations[] (resolved city / region / country / lat / lon).
  • New filters: salary range (min_salary_usd / max_salary_usd), skills include/exclude, companies include/exclude, work model, experience level, employment type, and negative query syntax.
  • Work-authorization signals: is_work_auth_required, is_h1b_sponsor, is_clearance_required.
  • Existing inputs (queries, locations, posted_after, page, page_size) are unchanged from v1.x.

About Jobo

Jobo provides comprehensive job data infrastructure for developers and businesses. Our ATS Jobs Database powers job boards, AI agents, and HR tech platforms worldwide.