Teamtailor Jobs Scraper: Company Career Sites
Pricing
Pay per event
Teamtailor Jobs Scraper: Company Career Sites
Scrape open jobs from Teamtailor career sites (company.teamtailor.com): title, location, department, workplace type, description, posting date and apply URL. Filter by keyword, location and date. Pay per result.
Pricing
Pay per event
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Get the open jobs of any company that hires through Teamtailor. Paste a Teamtailor career site URL such as https://career.teamtailor.com (or just the company name) and receive title, location, apply URL and, when the site provides them, department, workplace type, description and posting date as clean dataset rows.
What you can do with it
- Pull all open roles of a list of target companies for lead generation or recruiting research.
- Track hiring over time: run it on a schedule with
postedWithinDaysandsortBy: newestto see only new postings. - Feed a job board or alert system with the openings of the companies you follow.
- Filter by keyword in the title, by location or by country.
What you get
One dataset row per job. Duplicates are removed before anything is charged, so the number of rows is the number of results you pay for.
| Field | Description |
|---|---|
id | Job id, unique across Teamtailor career sites |
ats_job_id | The id Teamtailor uses for the posting |
title | Job title |
ats_platform | teamtailor |
company | The employer's name as the career site shows it (the career site's address name when it shows none) |
location, city, country | Location text as posted (city and country; several locations are joined with ;), the city and the two-letter country code, when the site provides a location |
department | Department or team; the job's role when it names no department |
remote | true only for remote postings (a hybrid or on-site job is false), or when the location says remote |
workplace_type | remote, hybrid or on_site, when the site provides it; empty when the posting does not say |
description | Full job description as HTML, when the site provides it. Empty when includeDescription is off or the posting has none |
apply_url, job_url | Link to the posting and to the application page |
created_at | Publication date and time of the posting in UTC |
language | Language of the posting, when it can be determined |
scraped_at | Time of the run |
Salary fields (salary_text, salary_min, salary_max, salary_currency, salary_period, salary_source) are filled only when the posting states a salary range. They are never estimated.
Input
| Field | Description |
|---|---|
companies | Teamtailor career site URLs or bare company names (career is https://career.teamtailor.com). Strings, {"url": "..."} objects, a single string, or several separated by commas or new lines. Empty = one sample Teamtailor career site. |
ats | auto (default) recognises addresses ending in .teamtailor.com. Set teamtailor to read a career site on the company's own domain. |
keywords | Keep only jobs whose title matches at least one keyword. They filter the jobs of the Teamtailor career sites you list; they do not search other companies. |
location | Keep only jobs in this city, region or country (Geneva, Switzerland, CH). |
countries | ISO-2 codes such as ["CH", "DE"]: keep only jobs located in these countries (jobs whose country cannot be determined are left out). |
includeRemoteWithoutRegion | Only with a country filter: also keep remote jobs that state no country or region (they may not be open to applicants in that country). Default false. |
postedWithinDays | Drop jobs older than this many days. Jobs without a posting date are kept. |
sortBy | newest (default) or relevance (the site's own order). |
maxJobsPerCompany | Cap per career site, counted after the filters. 0 = all. Default 50. |
maxResults | Cap for the whole run. The run stops cleanly when it is reached. 0 = no limit. Default 100. |
includeDescription | Include the description HTML. Default true. |
Example: one career site
{"companies": ["https://career.teamtailor.com"],"maxResults": 20}
Example: several Teamtailor career sites with filters
{"companies": ["https://career.teamtailor.com","https://acme.teamtailor.com"],"keywords": ["engineer", "data"],"postedWithinDays": 30,"sortBy": "newest","maxJobsPerCompany": 25}
Only Teamtailor career sites are read. A URL of any other job system (Greenhouse, Lever, Workday and so on) is skipped with a log line that names the actor to use, and is never charged.
Supported URL formats
- Career site:
https://{company}.teamtailor.com(with or without a trailing slash, or withouthttps://; tracking parameters such asutm_sourceare ignored). - Posting:
https://{company}.teamtailor.com/jobs/{job-id-and-title}is reduced to its career site; the whole site is read. - Bare company name:
{company}. - Career site on the company's own domain: the URL of the site together with
atsset toteamtailor.
Output
{"id": "teamtailor-a1b2c3d4-1001","ats_job_id": "1001","title": "Platform Engineer","company": "Example AB","ats_platform": "teamtailor","location": "Stockholm, Sweden","city": "Stockholm","country": "SE","department": "Engineering","remote": false,"workplace_type": "hybrid","apply_url": "https://example.teamtailor.com/jobs/1001-platform-engineer","job_url": "https://example.teamtailor.com/jobs/1001-platform-engineer","created_at": "2026-10-05T07:30:00Z","scraped_at": "2026-10-27T09:00:00Z"}
The row above is illustrative; values depend on the career site.
Pricing
Pay per result, two events:
apify-actor-start: $0.001 once per run.job-result: $0.001 per job in the dataset ($1.00 per 1,000 jobs).
The start fee is charged on top of the job results. Filtered-out and duplicate jobs are never charged, and a career site that is not found costs nothing. Set a maximum total charge on the run to stop at a budget; the run ends cleanly when it is reached. The pricing box on the actor page always shows the current rates.
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client, such as Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Example prompts once connected:
"Use
teamtailor-jobs-scraperfor https://career.teamtailor.com and list the open roles with title, location and apply URL."
"Use
teamtailor-jobs-scraperfor the companies career and acme and return the roles posted in the last 30 days."
Configure the MCP server with the Teamtailor Jobs Scraper preconfigured at mcp.apify.com?tools=santamaria-automations/teamtailor-jobs-scraper:
{"mcpServers": {"apify": {"command": "npx","args": ["mcp-remote","https://mcp.apify.com/?tools=santamaria-automations/teamtailor-jobs-scraper","--header","Authorization: Bearer <YOUR_API_TOKEN>"]}}}
See the auto-generated API tab on the actor page for language-specific examples (cURL, JavaScript, Python, and more).
FAQ
How do I find a company's Teamtailor career site URL?
Open the company's careers page. If the address ends in .teamtailor.com, that is the URL. You can pass either the URL or just the company name. If the careers page is on the company's own domain, pass its URL and set ats to teamtailor.
What if the career site is on the company's own domain?
Pass its URL and set ats to teamtailor. With ats on auto only addresses ending in .teamtailor.com are recognised.
Can I search by keyword across all Teamtailor companies? No. Give the URL or name of each company. Keywords only filter the titles of the jobs of the career sites you list.
What if a career site is not found?
The run continues with the other Teamtailor career sites. The run status line names the career site and the reason (for example board_not_found), and nothing is charged for it.
Why is the description empty?
It is empty when includeDescription is off, or when the posting could not be read. The row still has title, location, date and the apply URL, and is charged the same.
Why is the salary empty?
Salary fields are filled only when the posting states a salary range, and only with includeDescription on. Nothing is estimated.
How do I get only new jobs?
Run it on a schedule with postedWithinDays set to the interval (for example 1 for a daily run) and sortBy set to newest.
How do I stop at a budget?
Set maxResults or the maximum total charge of the run. The run stops cleanly when either is reached.
Why did I get fewer jobs than maxJobsPerCompany?
The caps apply after your filters, and a career site can simply have fewer open jobs. The Teamtailor career sites are read in the order you list them, and the run stops once maxResults is reached.
Limits
- Career sites only; no company-name search across Teamtailor.
- Salary fields are filled only when the posting text states a salary, and only with
includeDescriptionon. - Postings carry no employment type and no last-update date;
employment_typeandupdated_atstay empty.
Related actors
- Career Site Jobs Scraper: the same engine for 40+ job systems (Workday, Personio, Workable and more).
- SuccessFactors Jobs Scraper: jobs of SAP SuccessFactors career sites.
- iCIMS Jobs Scraper: jobs of iCIMS career sites.
- Recruitee Jobs Scraper: jobs of Recruitee career sites.
- Rippling Jobs Scraper: jobs of Rippling career pages.
- JOIN Jobs Scraper: jobs of JOIN company pages.
- Softgarden Jobs Scraper: jobs of Softgarden career sites.
- SmartRecruiters Jobs Scraper: jobs of any SmartRecruiters company board.
- Workable Jobs Scraper: jobs of any Workable company board.
- Greenhouse, Lever & Ashby Jobs Scraper: jobs of any Greenhouse, Lever or Ashby board, with keyword search across companies.
- Website Job Extractor: any company website to its careers page, job system and jobs.
Support
- Questions or issues? Email contact@nanoscrape.com, we typically reply within 6 hours, or open a ticket in the Issues tab on the actor page.
- Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site and your rough usage volume.