Recruitee Jobs Scraper with Salaries & Alerts avatar

Recruitee Jobs Scraper with Salaries & Alerts

Pricing

from $1.50 / 1,000 job results

Go to Apify Store
Recruitee Jobs Scraper with Salaries & Alerts

Recruitee Jobs Scraper with Salaries & Alerts

Scrape all open jobs from any Recruitee career site (<company>.recruitee.com) via the public Careers Site API: salary ranges when published, departments, locations, remote/hybrid/onsite, employment type, descriptions with requirements. Filters and new-job monitoring.

Pricing

from $1.50 / 1,000 job results

Rating

0.0

(0)

Developer

Gabor Sziladi

Gabor Sziladi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape every open job from any Recruitee career site into a clean dataset: title, department, team, locations, remote flag, employment type, posting date, apply link, full plain-text description, salary range, and more. The Actor uses the public Recruitee Careers Site API (<company>.recruitee.com/api/offers), the endpoint that powers every Recruitee career site, including custom domains. It's fast, reliable and cheap: $1.50 per 1,000 jobs.

Turn on Only new jobs and schedule the Actor to get a daily feed of new Recruitee postings, paying only for the new ones.

  • ✅ Paste Recruitee URLs or just company slugs
  • ✅ All open jobs, one normalised record per job
  • ✅ Filters: keywords, exclude keywords, locations, remote only, posted within N days, only jobs with salary
  • ✅ Only new jobs monitoring mode for alerts, webhooks, Slack, Google Sheets, Zapier or Make
  • ✅ One broken company never fails the run; errors are listed in the OUTPUT summary
  • ✅ No login, no proxies, no browser. Polite, rate-limited requests to the official endpoint.

Need other ATS platforms too? The all-in-one ATS Jobs Scraper (sysco32/ats-jobs-feed) covers 9 platforms (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio and Teamtailor) and auto-detects the ATS from any careers URL.

What data you get

Recruitee is popular with Dutch and European companies and is one of the few ATS that publishes structured salary ranges (min, max, currency, period) when the employer fills them in. In the default test run, about half of the jobs came with a salary. You also get department, locations, remote / hybrid / onsite, employment type (e.g. fulltime_permanent), published and updated dates, and the description plus requirements.

FieldExample
company, company_slugCompany name and Recruitee identifier
job_id, requisition_idStable IDs for deduplication
title, department, teamJob title and organisation
location, locations[], remote, workplace_typeAll locations plus remote / hybrid / onsite
employment_typeFull-time, part-time, contract… when published
posted_at, updated_atISO 8601 UTC
salary{min, max, currency, period, text} when published
job_url, apply_urlDirect links
description_text (+ optional description_html)Full job description

Input example

{
"companies": [
"https://bunq.recruitee.com",
"channable",
"greenchoice",
"vandebron"
],
"onlyWithSalary": true,
"maxJobsPerCompany": 100,
"includeDescription": true,
"onlyNewJobs": true
}

You can paste: https://bunq.recruitee.com, a job URL such as https://bunq.recruitee.com/o/<job>, a careers page with an embedded Recruitee widget, or just the subdomain (channable).

Output example (real run)

{
"company": "Channable",
"company_slug": "channable",
"ats": "recruitee",
"job_id": "2789218",
"requisition_id": null,
"title": "Haskell Software Engineer - Creatives Team",
"department": "Engineering",
"team": null,
"location": "Utrecht, Netherlands",
"locations": [
"Utrecht, Netherlands"
],
"remote": false,
"workplace_type": "hybrid",
"employment_type": "fulltime_permanent",
"posted_at": "2026-10-20T09:26:03Z",
"updated_at": "2026-10-20T14:59:22Z",
"salary": {
"min": 4000,
"max": 5700,
"currency": "EUR",
"period": "month",
"text": null
},
"job_url": "https://jobs.channable.com/o/haskell-software-engineer-creatives-team",
"apply_url": "https://jobs.channable.com/o/haskell-software-engineer-creatives-team/c/new",
"description_text": "What’s in it for you (to start with):\n\n• Gross monthly salary ranging from € 4.000 to € 5.700 based on a 40-hour work week. This salary range reflects our career framework. Your final role level will be determined throug…",
"description_html": null,
"source_input": "channable",
"scraped_at": "2026-10-21T18:17:04Z"
}

Download the results as JSON, CSV, Excel or XML, or read them through the Apify API. A per-company summary (jobs found, jobs written, errors) is saved to the OUTPUT record of the run's key-value store.

Pricing

Pay per event, no subscription:

EventPrice
Job result (one job in the dataset)$0.0015 ($1.50 per 1,000 jobs)
Actor start (per run)$0.002

For example, 500 jobs cost about $0.75. A daily Only new jobs monitor that finds 20 new jobs costs about $0.03 per run. Failed companies are never charged, and you can set a maximum cost per run.

Use cases

  • Salary benchmarking and pay-transparency research across Dutch and European employers on Recruitee, such as bunq, Channable, Greenchoice and Vandebron.
  • Build niche job boards and newsletters from a list of target employers.
  • Sales and recruiting intelligence: hiring is a buying signal, so see which accounts are hiring, for which teams and where.
  • Job alerts for yourself or your candidates via Only new jobs plus a schedule.
  • Feed clean job data to AI agents, RAG pipelines and spreadsheets.

FAQ

Is this legal? The Actor reads only the public job-board endpoint that Recruitee provides so job postings can be displayed on career sites and job boards. No login and no personal data, apart from what employers publish in their job ads. You are responsible for how you use the data.

How do I find the Recruitee slug? Many companies use a custom domain for their careers site, but the Recruitee address is always https://<slug>.recruitee.com. You'll often see it in the apply-form links or the page source. Paste that URL or just <slug>.

How do I get only jobs with salary? Turn on Only jobs with salary. Then salary.min, salary.max, salary.currency and salary.period are filled for every job, and the dataset has a ready-made "Jobs with salary" table view.

How does "Only new jobs" work? The Actor remembers the job IDs it has already delivered for each company in a named key-value store (stateStoreName). Later runs output only unseen jobs. The first run returns everything that matches, and closed jobs drop out of the state automatically. Jobs held back by Max jobs per company are delivered in the next run.

One company failed. What happens? It's logged and listed in OUTPUT.errors, and the other companies are still processed. If you paste a URL from another ATS, the error message points you to sysco32/ats-jobs-feed.