Nordic ATS Jobs - Teamtailor, Recruitee, Personio, Workable avatar

Nordic ATS Jobs - Teamtailor, Recruitee, Personio, Workable

Pricing

$1.40 / 1,000 job records

Go to Apify Store
Nordic ATS Jobs - Teamtailor, Recruitee, Personio, Workable

Nordic ATS Jobs - Teamtailor, Recruitee, Personio, Workable

Get every open job from company career sites on Teamtailor, Recruitee, Personio and Workable via their public feeds. Auto-detects the ATS, filters by keyword & location, only-new mode for alerts.

Pricing

$1.40 / 1,000 job records

Rating

0.0

(0)

Developer

Niklas Bergström

Niklas Bergström

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Get every open job from a company's own career site - as clean, normalized JSON - for companies that recruit with Teamtailor, Recruitee, Personio or Workable, the applicant tracking systems most used by Nordic and European startups and scale-ups (Tibber, Polestar, Kahoot!, Channable, tado and thousands more).

Paste career-site URLs or slugs, the Actor detects the ATS automatically, reads the official public job feed, and returns one record per job with title, department, locations with country codes, remote/hybrid status, employment type, seniority, salary (when published), publish date, job and apply URLs, and the description as plain text or HTML.

Turn on Only new since last run and schedule it: you get (and pay for) only jobs you haven't seen before - a hiring-signal feed for sales, recruiting, VC dealflow and job boards.

What can it do?

  • Hiring signals for sales / ABM - know when target accounts open roles (e.g. a new "Head of Data" = buying signal).
  • Recruitment & sourcing - monitor competitors' and clients' openings.
  • Job boards & aggregators - fill a niche board with fresh jobs straight from the source (no duplicates).
  • Market research - hiring velocity, departments, locations and salary bands across a portfolio.

Supported sources

ATSAccepted inputPublic endpoint used
Teamtailorhttps://acme.teamtailor.com, custom domains like https://jobs.tibber.com, teamtailor:acmeCareer-site RSS feed /jobs.rss (documented by Teamtailor for syndication)
Recruiteehttps://acme.recruitee.com, custom domains, recruitee:acmeCareers Site API /api/offers/ (falls back to the public XML job feed)
Personiohttps://acme.jobs.personio.de (or .com), personio:acmePublic XML job feed /xml (Personio Recruiting API docs)
Workablehttps://apply.workable.com/acme, workable:acmePublic job widget API

Plain slugs (tibber) are tried against all four. Greenhouse, Lever, Ashby and SmartRecruiters are not covered (SmartRecruiters' robots.txt disallows automated access).

Input

FieldWhat it doesExample
companiesCareer-site URLs, ats:slug, or plain slugs["https://tibber.teamtailor.com", "personio:tado"]
keywordsKeep jobs whose title/department/tags contain any keyword["engineer", "data"]
searchInDescriptionAlso match keywords in the descriptionfalse
excludeKeywordsDrop titles containing any of these["intern"]
locationsCountry codes, city/country names or remote["SE", "NO", "Helsinki"]
remoteOnlyOnly remote/hybrid jobsfalse
postedWithinDaysOnly jobs published in the last N days30
onlyNew + monitorIdMonitoring mode (see below)true, "nordic-eng"
descriptionFormattext, html, both, none"text"
maxJobsPerCompany / maxResultsCaps (newest first)50 / 0
{
"companies": ["https://tibber.teamtailor.com", "polestar", "recruitee:channable", "personio:tado", "workable:kahoot"],
"keywords": ["engineer", "data"],
"locations": ["SE", "NO", "remote"],
"onlyNew": true,
"monitorId": "nordic-engineering"
}

Output

One item per job (dataset views: Overview, Salaries, Errors):

{
"jobId": "teamtailor:tibber:8527023",
"ats": "teamtailor",
"company": "tibber",
"companyName": "Tibber",
"title": "Data Engineer",
"department": "House of Product & Engineering",
"locations": [{"name": "Stockholm", "city": "Stockholm", "country": "Sweden", "countryCode": "SE", "zip": "111 52", "address": "Vattugatan 17"}],
"location": "Stockholm, Sweden",
"countryCodes": ["SE"],
"workplaceType": "hybrid",
"employmentType": null,
"seniority": null,
"publishedAt": "2026-10-09T17:02:39+02:00",
"url": "https://jobs.tibber.com/jobs/8527023-data-engineer",
"applyUrl": "https://jobs.tibber.com/jobs/8527023-data-engineer",
"salary": null,
"description": "We're Tibber - the energy company that wants you to use less energy. ...",
"feedUrl": "https://tibber.teamtailor.com/jobs.rss",
"fetchedAt": "2026-10-28T05:19:54+00:00"
}

Personio and Recruitee jobs often include salary (min, max, currency, period), employmentType, seniority and tags; extra source fields (role, division, category, education, yearsOfExperience, occupation, industry) are kept when available. Fields an ATS doesn't publish are null. jobId is stable across runs (ats:company:id).

Companies that can't be read produce a free error item (error: not-found, unsupported, fetch-error). Per-company stats (detected ATS, jobs in feed, jobs delivered) are saved as RUN_STATS.

Only new since last run

The Actor stores delivered jobIds per monitorId in the named key-value store nordic-ats-jobs-state on your account (kept for 120 days after a job was last seen). Each run returns only jobs not delivered before - ideal for a daily schedule feeding Slack, a CRM, Google Sheets or a webhook. Delete the record to start over.

Pricing

Pay per event - you pay only for jobs delivered to your dataset:

EventPrice
Job recordsee the Pricing tab

Free: already-seen jobs in monitoring mode, jobs removed by your filters, and error items. Runs are light (one or a few HTTP requests per company, 256 MB).

Spending limit: set Maximum cost per run; the Actor checks the remaining budget before each job and stops cleanly when the next one would exceed it.

Data source, robots.txt & fair use

Only public, no-login endpoints that the ATS vendors provide for publishing jobs (RSS/XML feeds, careers-site API, job widget) are used - the same data shown on the company's public career page. Requests are rate-limited (about 1 request/second per host, max 4 companies in parallel) with retries and backoff. robots.txt of all four sources allows these paths. Job descriptions are the employers' content: reuse them in line with your own legal requirements (e.g. link back to url, don't republish personal data of recruiters).

FAQ

How do I find a company's ATS? Open their "Careers" page and look at the job links: *.teamtailor.com, *.recruitee.com, *.jobs.personio.de, apply.workable.com/.... Or just paste the career URL / company name and let the Actor detect it.

A company's custom career domain isn't detected? Custom domains work for Teamtailor and Recruitee. For Personio and Workable use the ats:slug form.

Why do some jobs lack a salary? The employer didn't publish one in the ATS.