Recruitee Jobs Scraper & API — Any Recruitee Board avatar

Recruitee Jobs Scraper & API — Any Recruitee Board

Pricing

from $4.00 / 1,000 jobs

Go to Apify Store
Recruitee Jobs Scraper & API — Any Recruitee Board

Recruitee Jobs Scraper & API — Any Recruitee Board

Recruitee jobs API. Paste a Recruitee board slug, board URL or company domain and get every open role on that board, read live when you run it. One normalized schema with parsed salary, seniority, remote flag and direct apply URLs. Pay per job; boards we cannot reach are free.

Pricing

from $4.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Blackcube

Blackcube

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Career Site & ATS Jobs Suite  •  12 Actors, one codebase, one job posting billed once
Career Page Job Postings Scraper & API
Any Company, 14 ATS
SmartRecruiters Jobs Scraper & API
Any SmartRecruiters Board
Workable Jobs Scraper & API
Any Workable Board
Recruitee Jobs Scraper & API
➤ You are here
Personio Jobs Scraper & API
Any Personio Board
BambooHR Jobs Scraper & API
Any BambooHR Board
Rippling Jobs Scraper & API
Any Rippling Board
Breezy Jobs Scraper & API
Any Breezy Board
Teamtailor Jobs Scraper & API
Any Teamtailor Board
Pinpoint Jobs Scraper & API
Any Pinpoint Board
SmartRecruiters Jobs Scraper
Full Job Posts, Any Board
Workable Jobs Scraper
Full Job Posts, Any Board

More from this account: YouTube Transcript Suite · Website Contact & Email Suite · Google News Suite · Keyword Research Suite · Shopify Store Intelligence Suite · eBay Data Suite · Amazon Reviews Suite · Reddit · Meta Ad Library · Vinted · Trustpilot Review Intelligence Suite · App Store & Google Play Reviews Suite · Business Reviews Suite · Amazon Product Data Suite

Every open role from any Recruitee job board, in one clean schema.

Paste a Recruitee board slug, a board URL, or just the company's domain — you get every open posting on that board, read live at the moment you run it.

You pay per job returned. A board we cannot reach is free, and a run that returns nothing costs nothing — there is no start fee on any plan. Every company that produces no jobs still comes back as a row telling you why.

Unofficial. Not affiliated with, endorsed by, or connected to Recruitee or any employer whose board it reads. It reads only the vacancies employers publish for the public on their own career pages.


Why this one for Recruitee

Live, not a snapshot. This is not a pre-crawled database with an indexing delay. Every row carries a scrapedAt timestamp and was open on that board at that moment. If a role closed an hour ago, it is not in your results.

Recruitee's strength is used properly. A genuinely structured salary object — minimum, maximum, period and currency arrive as separate values rather than buried in prose.

And its limits are published, not hidden. A posting can be flagged both remote and hybrid. Remote wins, so workplaceType never contradicts isRemote. Netherlands-heavy customer base.

You are never billed someone else's jobs. Company names collide across boards, and a plausible-looking match can belong to an unrelated account. Where the board cannot be confirmed as the company you asked for, you get a free row saying so — not a stranger's postings on your invoice.

Finding the board

It is the subdomain of the board: <company>.recruitee.com.

You can also pass a bare company domain and let the Actor find the board for you.

What Recruitee actually gives you

Measured on a real run, not claimed. These are field fill rates:

DepartmentSeniorityLocationRemoteEmployment typeSalaryPosted date
100%90%100%100%0%50%100%

Where a field is unavailable you get an explicit null — never a guess, and never a missing key. Seniority is derived rather than reported: almost no ATS publishes it at all, so it is normalized here to 11 comparable levels.

Input

FieldDefaultWhat it does
companiesrecruitee:anywhereworksRecruitee board slugs, board URLs, or company domains.
onlyNewJobsfalseReturn only postings that are new or materially changed since your last run.
titleKeywords / excludeTitleKeywordsFilter on the job title.
locationKeywords, remoteOnlyFilter on location; remote excludes hybrid and unknown.
seniority, employmentType, departmentsFilter on the normalized fields.
hasSalary, postedWithinDaysOnly postings with a parsed range / published recently.
maxJobs, maxJobsPerCompanyCaps, honoured exactly.
includeDescriptionfalseAdd the full description as HTML and text.

Filters are applied before billing, so you pay for the rows you keep.

Repeat runs only charge for what changed

Turn on Only new or changed jobs and a scheduled run returns — and bills for — only postings that are new, or whose title, department, location, salary, employment type or workplace type moved since last time. Description edits deliberately do not count, so a re-worded posting is never re-charged.

Need more than Recruitee?

This is one platform's listing of a 14-ATS engine. If you track companies across several systems, the multi-ATS version takes a mixed list and detects each one for you — same schema, same billing, same code.


Reads only publicly published job listings — the vacancies employers deliberately publish for candidates to find. It does not log in, bypass authentication, solve captchas, or touch applicant data.

Job postings are company information rather than personal data. You are responsible for how you use the output, including any outreach you base on it.


Unofficial project. Uses only publicly available data. Not affiliated with Recruitee or any employer.

Use it from n8n, MCP, the API or a schedule

Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/recruitee-jobs-scraper-api; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.

n8n

Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/recruitee-jobs-scraper-api and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.

MCP (Claude, Cursor, VS Code, any MCP client)

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=vonsensey/recruitee-jobs-scraper-api",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}

Your agent then calls vonsensey/recruitee-jobs-scraper-api as a tool with the same input the form takes and reads the dataset back.

REST API (one call, rows in the response)

curl -X POST "https://api.apify.com/v2/acts/vonsensey~recruitee-jobs-scraper-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" -d '{}'

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("vonsensey/recruitee-jobs-scraper-api").call(run_input={})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('vonsensey/recruitee-jobs-scraper-api').call({});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Make, Zapier, LangChain, CrewAI

The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/recruitee-jobs-scraper-api. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.

Run it without configuring anythingScrape jobs from a Recruitee board, a ready-made example you can start as-is or copy.

Use cases

  • Hiring as a buying signal. A company posting roles in a function you sell to is a company with budget — track a target list and act on the change.
  • Build a niche job board. Pull real postings straight from company career pages, with the apply URL intact, instead of re-listing an aggregator.
  • Watch a competitor's headcount plan. What a rival hires for, and where, tells you what it is about to ship.
  • Talent-market research. Departments, seniority, location and employment type arrive as structured fields, so a market map is a pivot table away.

Run it on a schedule

A one-off pull answers a question; a schedule answers it every day without you. Open Schedules in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per job posting delivered, so a scheduled run that finds nothing new costs nothing.

FAQ

Do I need an API key for each ATS?

No. Give it a company domain or a board slug and it detects the applicant tracking system behind the page for you.

Can I get only the jobs that are new since my last run?

Yes. Turn on change tracking and a scheduled run returns only new or changed postings — which is also all you are charged for.

What happens if a company has no open roles?

You get a free row saying so. "No jobs today" and "we could not reach the board" are different answers, and neither one costs you anything.

Which applicant tracking systems are supported?

Greenhouse, Lever, Ashby, Workday, Workable, BambooHR, SmartRecruiters, Teamtailor, Recruitee, Personio, Rippling, Breezy, Pinpoint and Dover — 14 in all.


Something wrong, or a field you need that is missing? Open an issue on the Issues tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.