Nordic ATS Jobs - Teamtailor, Recruitee, Personio, Workable
Pricing
$1.40 / 1,000 job records
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
Maintained by CommunityActor 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
| ATS | Accepted input | Public endpoint used |
|---|---|---|
| Teamtailor | https://acme.teamtailor.com, custom domains like https://jobs.tibber.com, teamtailor:acme | Career-site RSS feed /jobs.rss (documented by Teamtailor for syndication) |
| Recruitee | https://acme.recruitee.com, custom domains, recruitee:acme | Careers Site API /api/offers/ (falls back to the public XML job feed) |
| Personio | https://acme.jobs.personio.de (or .com), personio:acme | Public XML job feed /xml (Personio Recruiting API docs) |
| Workable | https://apply.workable.com/acme, workable:acme | Public 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
| Field | What it does | Example |
|---|---|---|
companies | Career-site URLs, ats:slug, or plain slugs | ["https://tibber.teamtailor.com", "personio:tado"] |
keywords | Keep jobs whose title/department/tags contain any keyword | ["engineer", "data"] |
searchInDescription | Also match keywords in the description | false |
excludeKeywords | Drop titles containing any of these | ["intern"] |
locations | Country codes, city/country names or remote | ["SE", "NO", "Helsinki"] |
remoteOnly | Only remote/hybrid jobs | false |
postedWithinDays | Only jobs published in the last N days | 30 |
onlyNew + monitorId | Monitoring mode (see below) | true, "nordic-eng" |
descriptionFormat | text, html, both, none | "text" |
maxJobsPerCompany / maxResults | Caps (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:
| Event | Price |
|---|---|
| Job record | see 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.