Recruitee Jobs Scraper avatar

Recruitee Jobs Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Recruitee Jobs Scraper

Recruitee Jobs Scraper

Scrape every job posting from any Recruitee-hosted employer career site via Recruitee's own public, unauthenticated JSON API, no login or browser required. One request per company returns titles, locations, salary, and full HTML descriptions.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Categories

Share


🎯 What this scrapes

Every employer whose career site lives at {company}.recruitee.com is served by the same public, unauthenticated JSON endpoint. This Actor talks to it directly: hand it one or more company identifiers — the subdomain in that employer's board URL, e.g. auditdata — and it fetches the entire current job board in a single request per company, normalizing every posting into one clean row schema. One scraper, every Recruitee employer.

🔥 Features

  • 🔑 Keyless public API — no OAuth, no token, no per-company setup; the same endpoint the careers page itself calls.
  • One request per company — Recruitee's list endpoint already inlines the full HTML description, so there's no second per-posting fetch to orchestrate.
  • 🏢 Multi-company in one run — pass many company identifiers; rows come back identically shaped, tagged with company_id / company_name.
  • 💵 Salary when published — numeric-string salary.min/salary.max values are parsed into clean floats, currency and period included.
  • 📝 Optional full descriptions — flip includeDescription on for the complete HTML posting body at no extra request cost, or off for a leaner payload.
  • 🧊 Clean, typed rows — Pydantic-validated, ISO-8601 timestamps, stable IDs. Export JSON / CSV / Excel straight from the Apify Console.

💡 Use cases

  • Recruiting & talent intelligence — track what a target employer is hiring for, where, and in which departments.
  • Job-board aggregation — add Recruitee coverage next to Workday / SmartRecruiters / Greenhouse / Lever / Ashby in one pipeline.
  • Labor-market research — sample hiring demand across an industry by role, category, or location.
  • Competitive hiring intel — watch a competitor's open reqs, including salary bands where published, to infer team growth and direction.
  • ATS data pipelines — wire structured job rows into your CRM, dashboard, or n8n / Make workflow on a schedule.

⚙️ How to use it

  1. Click Try for free at the top of the Store listing.
  2. Add one or more Company IDs — the subdomain from a {company}.recruitee.com careers URL (e.g. auditdata).
  3. Optionally set Max results per company and toggle Include description.
  4. Click Start. Rows stream into the dataset as each company's board is fetched.
  5. Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API.

📥 Input

FieldTypeRequiredDefaultNotes
companyIdsarrayRecruitee company subdomains (the {company} in {company}.recruitee.com, e.g. auditdata), or full board URLs.
maxResultsPerCompanyintegerno100Client-side cap on rows emitted per company.
includeDescriptionbooleannofalseEmit each posting's full HTML description (already fetched in the same request either way).
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy configuration.

Example input

{
"companyIds": ["auditdata"],
"maxResultsPerCompany": 25,
"includeDescription": true,
"proxyConfiguration": { "useApifyProxy": true }
}

📤 Output

One dataset item per job posting. description_html is populated only when includeDescription is on.

FieldTypeNotes
job_idintegerStable numeric Recruitee offer id.
guidstringAdditional stable identifier.
slugstringURL path segment.
titlestringJob title.
company_idstringCompany identifier you supplied.
company_namestringEmployer display name.
departmentstring | nullDepartment, when published.
category_codestring | nullRecruitee category code.
employment_type_codestring | nulle.g. fulltime_permanent.
experience_codestring | nulle.g. experienced.
education_codestring | nulle.g. bachelor_degree.
citystring | nullPosting city.
countrystring | nullPosting country.
country_codestring | nullISO country code.
remote / hybrid / on_sitebooleanWork-arrangement flags.
salary_min / salary_maxfloat | nullParsed from Recruitee's numeric-string salary fields.
salary_periodstring | nulle.g. "year" or "hour".
salary_currencystring | nulle.g. "USD".
description_htmlstring | nullFull posting body (when includeDescription is on).
careers_urlstringCanonical posting URL.
careers_apply_urlstringApply URL.
published_atstring | nullISO-8601 publish timestamp.
updated_atstringISO-8601 last-updated timestamp.
scraped_atstringUTC ISO-8601 fetch timestamp.

Example output

{
"job_id": 2680730,
"guid": "dl9ua",
"slug": "data-architect",
"title": "Data Architect",
"company_id": "auditdata",
"company_name": "Auditdata",
"department": "R&D",
"category_code": "information_technology",
"employment_type_code": "fulltime_permanent",
"experience_code": "experienced",
"education_code": "bachelor_degree",
"city": "remote",
"country": "Poland",
"country_code": "PL",
"remote": true,
"hybrid": false,
"on_site": false,
"salary_min": null,
"salary_max": null,
"salary_period": null,
"salary_currency": null,
"description_html": "<h4>...</h4><p>... HTML string ...</p>",
"careers_url": "https://auditdata.recruitee.com/o/data-architect",
"careers_apply_url": "https://auditdata.recruitee.com/o/data-architect/c/new",
"published_at": "2026-07-21T07:48:42+00:00",
"updated_at": "2026-07-21T07:48:42+00:00",
"scraped_at": "2026-07-26T15:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you're charged only when these fire:

EventUSDWhat it covers
actor-start$0.005One-off warm-up per run
result$0.0015Per job posting written to the dataset

Example: 1 000 postings ≈ $1.51. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

  • Public postings only — the openly published careers boards, not authenticated internal/employee views.
  • Company IDs, not company names — you supply the Recruitee subdomain from the careers URL; a display name like "Auditdata" may differ from its actual identifier.
  • No board-side pagination observed — every sampled company returns its full board in one response; an unusually large board is fetched as-is, whatever the single response contains.
  • Point-in-time snapshot — returns the board as it stands now; schedule recurring runs to track changes.

❓ FAQ

Do I need a Recruitee account or API key?

No — every field comes from Recruitee's own public offers API, the same one the careers page calls.

How do I find a company's ID?

It's the subdomain in the careers URL: https://{company}.recruitee.com. Paste that {company} (e.g. auditdata).

Can one run cover several employers?

Yes — put multiple identifiers in companyIds and every row comes back identically shaped, tagged with company_id / company_name.

Is this legal?

We fetch public, unauthenticated job-posting data that employers publish for candidates. No login, no private endpoints.

💬 Your feedback

Spotted a bug, hit a company that behaves differently, or need an extra field? Open an issue on the Actor's Issues tab in Apify Console — we ship fixes weekly and read every report.