Teamtailor Jobs Scraper — Any Teamtailor Career Site | $1/1K avatar

Teamtailor Jobs Scraper — Any Teamtailor Career Site | $1/1K

Pricing

from $1.00 / 1,000 jobs

Go to Apify Store
Teamtailor Jobs Scraper — Any Teamtailor Career Site | $1/1K

Teamtailor Jobs Scraper — Any Teamtailor Career Site | $1/1K

Scrape every open job from any Teamtailor career site, including ones on a company's own domain: paste the URL or the account name. Official public RSS feed, no proxy. Department, locations, workplace type, filters by keyword and location, and a monitor mode for new jobs.

Pricing

from $1.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Steadyrow

Steadyrow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Share

Paste a Teamtailor career site, get every open job as clean JSON. $1 per 1,000 jobs.

Teamtailor career sites are used by many companies, especially in the Nordics and the rest of Europe — either on <company>.teamtailor.com or on the company's own domain (for example careers.oatly.com). Every site serves a public RSS feed of its jobs; Teamtailor's help centre describes it as publicly available data. This Actor reads that feed (100 jobs per page, all pages) and returns each job with title, department, role, all locations, workplace type, publish date and the full description.

  • ✅ Any Teamtailor career site — including ones on a company's own domain
  • ✅ Workplace type — onsite / hybrid / remote when the company sets it
  • ✅ Monitor mode — schedule it daily and only pay for jobs you have not received before
  • ✅ No browser, no proxy, no login — plain HTTPS requests to the public feed
  • ✅ Filters — keywords, excluded words, location, remote, department, posted within N days
  • ✅ No personal data — no recruiter names or contacts; e-mail addresses inside descriptions are removed

Need Greenhouse, Lever, Ashby, Workday, Personio and more in the same run? Use the combined ATS Jobs API. This Actor is the Teamtailor-only version with inputs built for Teamtailor.

What can I use it for?

  • Nordic and European job boards — pull the Teamtailor companies you track into one feed
  • Job alerts — daily monitor run → Slack, e-mail or Google Sheets with only the new roles
  • Hiring signals for sales and recruiting — where and in which departments a retailer, gym chain or manufacturer is hiring
  • Labour-market research — roles by country, department and workplace type
  • AI agents — a typed job feed your agent can call through the Apify API or MCP

Input

{
"careerSites": [
"https://sats.teamtailor.com/jobs",
"https://careers.oatly.com",
"teamtailor:polestar"
],
"keywords": [
"manager",
"coach"
],
"excludeKeywords": [
"trainee"
],
"locations": [
"Norway",
"Sweden"
],
"departments": [
"Gym"
],
"postedWithinDays": 30,
"maxItemsPerSource": 200,
"monitorMode": false
}
FieldWhat it does
careerSitesRequired. One per line: a career site URL (https://sats.teamtailor.com/jobs, or a custom domain such as https://careers.oatly.com), a job URL, the account name (sats or teamtailor:sats) or teamtailor:careers.oatly.com for a custom domain. Entries that belong to another ATS are skipped with a note in the log.
keywordsKeep jobs whose title contains any of these words (whole word, case-insensitive). Turn on searchInDescription to search the description too.
excludeKeywordsDrop jobs whose title contains any of these words.
locationsKeep jobs whose location or country contains one of these words. remote matches remote jobs.
departmentsKeep jobs whose department or team contains one of these strings.
postedWithinDaysOnly jobs published in the last N days.
maxItemsPerSource / maxItemsLimits per site / per run (0 = no limit).
includeDescription, includeDescriptionHtmlPlain-text and/or HTML description.
monitorMode, monitorStateNameOutput only jobs not delivered before; name of the store that remembers them.

Finding the career site

If the career site is on <company>.teamtailor.com, use that or just the name. If it is on the company's own domain, paste the address (for example https://careers.oatly.com): the Actor recognises Teamtailor-hosted pages and reads the same /jobs.rss feed. If that detection fails, force it with the prefix teamtailor:careers.example.com. A site that is not hosted by Teamtailor is not supported.

Output

One item per job:

{
"job_id": "teamtailor:sats:b1dc029f-54c3-430f-bf6c-c099aa1b9ddb",
"ats": "teamtailor",
"company": "SATS",
"company_board_id": "sats",
"title": "Åpen søknad: Salg- og servicemedarbeider til SATS Oslo",
"department": "Gym",
"team": "Customer Care",
"location": "Oslo, Norway",
"locations": [
"Oslo, Norway",
"Asker, Norway",
"Bekkestua, Norway"
],
"country": "Norway",
"remote": false,
"workplace_type": "onsite",
"employment_type": null,
"posted_at": "2026-10-15T09:43:52.000Z",
"updated_at": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_source": null,
"description_text": "🤸🏼‍♀️ Vil du inspirere folk til å bli sunnere og gladere?…",
"apply_url": "https://careers.sats.com/jobs/8550814-apen-soknad-salg-og-servicemedarbeider-til-sats-oslo",
"source_url": "https://careers.sats.com/jobs/8550814-apen-soknad-salg-og-servicemedarbeider-til-sats-oslo",
"input": "https://sats.teamtailor.com/jobs",
"scraped_at": "2026-10-20T17:29:58.586Z"
}

Teamtailor-specific notes:

  • employment_type is always null — the Teamtailor feed does not publish it.
  • job_id is teamtailor:<site>:<job id> and stays the same between runs. For a custom domain <site> is the domain (careers.oatly.com).
  • department is the Teamtailor department and team its role field; both are null when the company leaves them empty. locations lists every location of the job; country is the country of the first one (the example is truncated to 3 of 13 locations).
  • workplace_type comes from Teamtailor's remote status: remote, hybrid, onsite; it is null when the company has not set it (and for the temporary-remote value). remote follows it.
  • posted_at is the job's publish date; updated_at is always null. Teamtailor has no salary field, so salary_* is filled only when a range is written in the description.
  • Jobs are listed in the language the company wrote them in (the example is Norwegian).
  • A run summary (per site: listed / output / errors) is saved as SUMMARY in the default key-value store. An unknown site is reported there and in the log; the other sites still run.

Monitor mode: only new jobs

  1. Turn on Monitor mode and save the input as a task.
  2. Add a schedule (for example every morning).
  3. The first run returns all matching jobs. Every later run returns only jobs not delivered before — and you pay only for those.

Delivered IDs are kept per site in the named key-value store teamtailor-jobs-monitor (change it with monitorStateName if you run several independent monitors). In our tests a second run on the same sites returned 0 jobs, and after forgetting 9 delivered jobs a third run returned exactly those 9.

Pricing

Pay per event:

EventPrice
Job in the dataset$0.001 ($1 per 1,000 jobs)
Actor start$0.002 per run

Examples: 1,000 jobs ≈ $1. A daily monitor on 20 sites that finds 30 new jobs ≈ $0.03 + $0.002 per day. Jobs removed by your filters or already delivered in monitor mode are not charged. Set Maximum cost per run and the Actor stops cleanly at the limit.

FAQ

How many jobs can it get? All jobs of a site; the feed is read 100 jobs per request. In our tests SATS listed 57 open jobs, Oatly 19 and Polestar 17.

Is it legal? The Actor reads the public RSS feed of Teamtailor career sites, without logging in and without bypassing any protection. No recruiter or candidate data is collected. You are responsible for how you use the data.

A site returns "not found". The name is probably wrong, or the company has left Teamtailor. Open https://<name>.teamtailor.com/jobs in a browser to check.

Does it work with internal or hidden jobs? No — only jobs that appear on the public career site.