Teamtailor Job Watch avatar

Teamtailor Job Watch

Pricing

from $18.00 / 1,000 company feed checkeds

Go to Apify Store
Teamtailor Job Watch

Teamtailor Job Watch

Read public Teamtailor job feeds by company slug. Filter titles and locations, export job rows, and keep only IDs your monitor has not emitted before.

Pricing

from $18.00 / 1,000 company feed checkeds

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Get public Teamtailor jobs from the company feeds you choose. Filter the rows and keep only job IDs that your monitor has not saved before.

Start with {"companies":["polestar"],"maxJobsPerCompany":10}. Open the Dataset for job rows and RUN_SUMMARY for empty, partial or failed results. Check the price shown before Start; no fixed selling rate is set by this guide.

Public job cards pass through a filter; a radar highlights a newly seen job ID.

Table of contents

What this Actor does

Add one to five public Teamtailor company slugs. A slug is the name before .teamtailor.com, such as polestar. The Actor reads each company's /jobs.json and /jobs.rss. It joins JSON items to RSS items by feed ID and saves one row for each matching posting ID.

Use a snapshot to get matching jobs in feed order. Use a monitor to get the newest matching IDs that have not been saved in that monitor. The first monitor run also returns current matches. Caps and filters leave unreturned jobs eligible for a later run.

This is an independent tool. It is not affiliated with, endorsed by or sponsored by Teamtailor. It reads public employer job feeds. It does not use a Teamtailor account key, read candidate profiles or submit applications. Teamtailor describes the public fields in its RSS feed guide.

What data you can get

Each job row has 20 keys. You can get the job ID, title, public description text, addresses, publication time and job link. Department and remote status come from RSS. Missing optional values stay null.

location is the first JSON address, with city, region and country when present. allLocations contains the unique addresses. RSS location names are used if JSON has no usable address. Location filters can match either source. country comes from the first JSON address; it stays null when that address has no two-letter country code.

The Dataset holds jobs. The default Key-value store holds INPUT, OUTPUT and RUN_SUMMARY. Monitoring adds a separate named store with saved job IDs. An empty Dataset is not enough to tell you why there are no rows: read the summary.

Quick start

  1. Open this Actor's Input tab.
  2. Switch to JSON input and paste the input below. No company is supplied by default.
  3. Leave descriptions on. Set the output cap to 10 for your first check.
  4. Click Start. Your Apify account must have access to the Actor.
  5. Open the run's Dataset. Check company, jobId, title, location and url.
  6. Open the run's Key-value store and check RUN_SUMMARY.outcome. Use companies[].errorCodes if the result is partial or empty.
{"companies":["polestar"],"includeDescription":true,"maxJobsPerCompany":10}

This input returned ten real rows in the saved example below. Live feeds can change. A cap of 10 limits saved matches, not the number of source items fetched.

To download results, open the Dataset and select Export, then JSON, CSV or Excel (XLSX) and Download. Leave the field selector empty to include all keys, or select your fields explicitly. Keep hidden metadata fields when you need _type or _scrapedAt. The default table view shows only nine columns; it is not the full field contract.

JSON keeps arrays and null values. CSV and XLSX expand arrays into columns such as allLocations/0; null cells can look blank. The saved ten-row Dataset was checked in all three formats. Use JSON if you need exact JSON types. See Dataset export options.

Input reference

All inputs are in one JSON object. companies is required. Omitted optional fields use the defaults below. A fresh Input form offers polestar, a two-job cap and snapshot mode (onlyNewSinceLastRun=false). You can run this sample without editing it; live job counts can change. API calls still require companies; there is no hidden fallback. Null is not an accepted input value. Unknown keys are rejected.

Key / form labelType / requiredDefault / prefillAllowed valuesEffect and recommendation
companies / Teamtailor company slugsstring[] / yesNone / ["polestar"]1–5 unique slugs; 1–63 letters, digits or hyphens; start with a letter or digitAdd known public boards, such as ["polestar"]. Values are trimmed and lowercased. Duplicate normalized slugs are rejected. URLs, custom domains and regional hosts are not accepted.
includeDescription / Include job descriptionsboolean / notrue / nonetrue, falseUse true for readable descriptions. False sets descriptionText to null; both feeds are still fetched.
maxJobsPerCompany / Job limit per companyinteger / no55 / 21–55Limit matching output for each company. Start with 10. A snapshot takes feed order; a monitor takes newest unseen matches. A low cap does not make the feed request smaller.
titleKeywords / Words in job titlesstring[] / no[] / noneAt most 20 values; each trimmed value 1–100 charactersMatch any word or phrase as a case-insensitive title substring, such as ["engineer","intern"]. Empty means all titles.
locations / Locations to matchstring[] / no[] / noneAt most 20 values; each trimmed value 1–100 charactersMatch any value in JSON addresses or RSS names. Try ["Sweden"] or ["Göteborg"]. Empty means all locations.
remoteOnly / Only explicit remote jobsboolean / nofalse / nonetrue, falseTrue accepts only explicit RSS fully, remote, fully_remote, remote_first or remote_work. Hybrid, none and missing status do not match. Text mentioning remote work is not enough.
postedAfter / Earliest publication datestring / noOmitted / noneYYYY-MM-DD, or ISO date-time with seconds and Z or an explicit UTC offset; optional 1–3 fractional digitsInclusive publication-date filter. Example 2026-01-01 or 2026-01-01T00:00:00Z. A date-only value uses UTC. Omit it for all dates. Invalid dates and local times without a zone are rejected.
onlyNewSinceLastRun / Only IDs not saved beforeboolean / nofalse / falsetrue, falseFalse gives a snapshot. True emits and saves unseen matching IDs. First run emits current matches too. Use sequential runs, not overlapping runs.
monitorNamespace / Separate monitor namestring / no"default" / none1–64 letters, digits, underscores or hyphens; first character a letter or digitUse a name such as my-sweden-watch. Keep it and the filters unchanged to continue a monitor. A new name starts a fresh baseline without deleting old state.

How settings work together

SettingsEffective behaviorWhat to do
Title values and location valuesOR within each list; AND between the two listsA job must match a title value and a location value when both lists are nonempty.
Filters and output capFilters run before the capUnmatched and unreturned IDs are not marked seen.
Monitor plus capNewest unseen matching jobs firstRepeat capped runs until the matching page is drained; later repeats can return zero.
Same monitor, new cap or description choiceThe same saved-ID scope is usedChanging these does not reset the baseline.
New title/location/remote/date filtersA different state scope is usedTreat this as a separate baseline; filter order, case and repeated filter values are normalized for state identity.
Snapshot mode and namespaceNo monitoring store is read or updatedSet onlyNewSinceLastRun true when you want persistent IDs.

Empty title/location lists disable those filters. Empty strings in those lists are rejected. The Actor does not search for every Teamtailor company.

Input examples

Minimal snapshot

{"companies":["polestar"]}

This uses the runtime cap of 55, descriptions on and no filters or monitoring. It returns available matching jobs from the first page. It is the smallest valid input, not a promise of 55 source jobs.

Small snapshot used for the output example

{"companies":["polestar"],"includeDescription":true,"maxJobsPerCompany":10}

This gives job rows in feed order. Check jobId, title, location, descriptionText and url. A source snapshot used with this input returned ten rows.

Separate Sweden monitor

{
"companies": ["polestar"],
"includeDescription": true,
"maxJobsPerCompany": 2,
"titleKeywords": [],
"locations": ["sweden"],
"remoteOnly": false,
"postedAfter": "2026-01-01",
"onlyNewSinceLastRun": true,
"monitorNamespace": "my-sweden-watch"
}

This is a valid setup example. It starts a separate monitor for Sweden matches posted on or after that date. The first run emits up to two matches; later runs emit up to two unseen matches. It is not a claim that this exact namespace has already been run. Adding titleKeywords:["engineer"] narrows results further. Turning remoteOnly on excludes hybrid jobs and can make the Dataset empty.

Output example

This is one real row from the ten-row snapshot. All 20 keys are shown. Only descriptionText is shortened to a direct excerpt for this page; the actual Dataset contains the full text. The collection time is a sample time, not a freshness guarantee.

{
"_type": "job",
"_schemaVersion": "1.0",
"_source": "teamtailor",
"company": "polestar",
"jobId": "3528756",
"department": "Global Sales",
"team": null,
"title": "Internship | Retail Network",
"location": "Cologne, Central Europe, DE",
"allLocations": [
"Cologne, Central Europe, DE"
],
"workplaceType": null,
"commitment": null,
"country": "DE",
"url": "https://polestar.teamtailor.com/jobs/3528756-internship-retail-network",
"applyUrl": "https://polestar.teamtailor.com/jobs/3528756-internship-retail-network",
"postedAt": "2024-01-17T14:42:18.000Z",
"remoteStatus": "none",
"updatedAt": null,
"descriptionText": "The opportunity\nWe're currently looking for an Intern - ideally starting as soon as",
"_scrapedAt": "2026-10-01T22:28:47.168Z"
}

The posting date can be much older than collection time. The Actor does not change publication dates to make jobs look new. A job is new to a monitor when its ID has not been emitted by that monitor, even if its posting date is old.

Output field reference

Job rows: all 20 Dataset fields

FieldType / empty behaviorMeaning and source / sample
_typestringAlways job. This is a job row, not an error row.
_schemaVersionstringOutput contract version, currently 1.0.
_sourcestringAlways teamtailor.
companystringNormalized input slug, such as polestar.
jobIdstringJobPosting identifier when supplied, then numeric ID in the validated job URL, then feed ID. Keep as text; sample 3528756.
titlestringFeed title with repeated whitespace collapsed; sample Internship | Retail Network. An item without a usable ID or title is skipped and reported.
departmentstring or nullDirect RSS department; sample Global Sales. Missing RSS value stays null.
teamnullNo separate team value is extracted. It is not inferred from department.
locationstring or nullFirst unique JSON address; RSS-name fallback only when JSON addresses are unavailable. Sample Cologne, Central Europe, DE.
allLocationsstring[]Unique addresses or fallback RSS names, in source order. No location gives [], not null.
workplaceTypenullNo separate workplace-type classification is created.
commitmentnullNo separate contract or employment-type value is extracted.
countrystring or nullTwo-letter code from the first JSON address, uppercased; sample DE. A missing first code stays null even if a later address has one.
urlstring or nullValidated HTTPS job URL on the selected slug's .teamtailor.com host. Unsafe, redirected/custom-host or unsuitable values stay null.
applyUrlstring or nullCurrently the same validated public job URL as url; not a separate direct application endpoint.
postedAtstring or nullFeed date_published, converted to UTC ISO time; sample 2024-01-17T14:42:18.000Z. Missing or invalid date stays null.
remoteStatusstring or nullDirect RSS label, such as none, hybrid or fully. It is not a guessed boolean.
updatedAtnullNo changed-job timestamp is extracted.
descriptionTextstring or nullReadable text from content_text, then content_html, then summary. Markup is removed. Missing text or descriptions off gives null.
_scrapedAtstringUTC collection time for this row; different from publication time.

Null means the output has no supported value, not that a job failed. Do not treat null as an empty string. A consumer that requires an always-null department needs to handle the RSS addition; this Actor does not promise that stricter contract.

Default Key-value store: OUTPUT and RUN_SUMMARY

INPUT holds the submitted settings with any defaults supplied by the platform. OUTPUT is a small result manifest. RUN_SUMMARY explains how the run ended. These records are separate from Dataset job rows.

OUTPUT fieldTypeMeaning
schemaVersionstringManifest contract version 1.0.
statusstringsucceeded, partial, not_found, failed or cancelled.
generatedAtstringSummary finish time in UTC.
companyCountnumberNumber of companies requested.
datasetItemCountnumberNumber of rows acknowledged by Dataset writes.
companiesobject[]Per-company outcomes; all fields are listed below.
monitorStateobject, optionalPresent only in monitor mode; reference fields are below.
RUN_SUMMARY fieldTypeMeaning
schemaVersionstringSummary contract version 1.0.
outcomestringSame semantic outcomes as OUTPUT status.
startedAt, finishedAtstringUTC run-processing start and finish times.
durationMsnumberElapsed product-processing milliseconds.
firstRowLatencyMsnumber or nullTime until the first successful Dataset write; null when no row was written.
companiesRequested, companiesCompletednumberRequested companies and companies that reached a non-cancelled result.
datasetRowsWrittennumberAcknowledged Dataset rows. Compare with Dataset count and OUTPUT count.
httpRequests, retriesnumberRequest attempts, including retries, and retry attempts. Two feed requests per healthy company are normal.
responseBytesnumberBytes from successfully read feed bodies. Error bodies are excluded.
residentMemoryBytesAtFinishnumberProcess memory observation at finish; not platform peak memory.
apifyComputeUnits, estimatedCostUsdnullThese are not calculated in the product summary. Check platform billing separately.
cancellationstringnone, requested, run_timeout, platform_abort or platform_migration.
companiesobject[]Per-company counters and errors.
fatalErrorCodestring, optionalPresent on a fatal failure; may be invalid_input, actor_runtime_error, output_storage_error or summary_storage_error.
monitorStateobject, optionalPresent for monitoring; points to persistent state.
companies[] fieldTypeMeaning
companystringCompany slug.
statusstringok, partial, not_found, error or cancelled.
feedItemCountnumberNumber of JSON items read, including rejected items.
validJobCountnumberNumber of valid unique posting IDs.
duplicateJobCountnumberValid duplicate posting IDs discarded.
emittedJobCountnumberRows saved for this company after filters, seen-ID checks and cap.
rssMatchedCountnumberUnique valid jobs joined to RSS.
newJobBaselineCreatedbooleanTrue when this monitor/company had no previous state record.
errorCodesstring[]Source, state or write errors; empty for a normal result.

Named monitoring state

OUTPUT and RUN_SUMMARY use the same monitorState reference:

Reference fieldTypeMeaning
storeIdstringApify ID of the named Key-value store.
storeNamestringteamtailor-monitor-v2- plus a scope hash.
namespacestringYour monitorNamespace value.
schemaVersionstringState format 2; separate from job contract 1.0.

Each company uses a SEEN-<UPPERCASE-SLUG> record, such as SEEN-POLESTAR.

State record fieldTypeMeaning
schemaVersionstringState format 2.
savedAtstringUTC time of the last state write.
jobIdsstring[]IDs already saved to the Dataset by this monitor; up to 50,000 per company.

Only acknowledged rows enter the saved-ID set. State is isolated by Actor/account identity, namespace and title/location/remote/date filters; companies have separate record keys. Cap and description choice do not form part of that identity. Old v1 IDs are not imported into v2. No snapshot files, content diffs, changed/removed lists or history of every source job are produced.

Pricing and cost examples

Check the pricing model and charge unit shown on the Actor page before Start. For the pay-per-event configuration described here, a useful company feed check costs USD0.018 and each saved job row costs USD0.00045. A complete successful check with zero matches or no unseen IDs is still a feed check. This guide does not apply a pricing setting; the live Actor page governs your charges. Read the price and charge unit shown on the Actor page before Start. Use the run details for actual platform usage. Export and storage operations can also use platform resources.

ExampleScope / outputCost and stop choices
Small snapshotOne slug, cap 10; the saved example has 10 rowsCheck the current price. Set a timeout and the supported maximum charge limit before running.
Small new boardOne slug, cap 3; a checked source gave 3 rowsFewer saved rows do not guarantee a proportionally cheaper run: the feeds are still fetched.
Capped monitorOne slug, cap 2; checked repeats gave 2 then 2 distinct rowsEach repeat reads the feeds. Zero new rows can still use platform resources and incur the successful feed-check fee in pay-per-event mode.
Larger allowed inputUp to 5 slugs and cap 55 per slugThis is an input ceiling, not an observed price for 275 live rows. Do not estimate that bill from a ten-row example.

Descriptions off reduces output size, not feed fetching. Do not assume error or empty runs are free. See Apify pricing models and run charges.

Use cases

Buyer jobInput choiceUseful fieldsNext step
Review an employer's current openingsSnapshot, one known slugtitle, location, descriptionText, urlExport JSON or read the public job page.
Track new matching job IDsMonitor, stable namespace and filterscompany, jobId, postedAt, _scrapedAtAdd returned rows to your own database; deduplicate by company and ID.
Watch a location or rolelocations and/or titleKeywordsallLocations, title, remoteStatusReview the filtered rows and source links.
Check why a board is incompleteKeep the run summaryCompany status, errors, countsFix input or source access before relying on the result.

Scheduling and monitoring

  1. Save a valid monitor input as an Apify Task if you want to reuse it.
  2. Keep the same monitorNamespace and filters for that monitor.
  3. Open Apify Schedules and choose that task or Actor with the saved input.
  4. Choose the timezone and times you need. Allow enough time between runs to avoid overlap.
  5. Check the first scheduled run's Dataset, OUTPUT and RUN_SUMMARY.

These are setup instructions; the Actor does not create schedules. See Actor and task schedules.

The first run emits current matching IDs and creates state. A checked capped monitor emitted two matches, then two different matches; its state grew from two to four IDs. Repeat until unseen matches are drained. Use a new namespace to reset logically; the old named store stays in your account. There is no reset switch or automatic deletion.

Keep monitoring runs sequential. Dataset writes and state writes are not one atomic transaction. If a state write fails, rows can reappear next time. An ID that changes its text or later disappears is not returned as a changed or removed job. Very old emitted IDs can fill the 50,000-ID state ceiling; choose a new namespace when you need a fresh baseline. An interrupted run is not automatically resumed as a content-history scan.

API, MCP and integrations

The API starts a run and returns a run ID and storage IDs. Poll that run until it reaches a terminal status, then read its Dataset. Use the build number your account can access; a tag is mutable. This example uses the exact private Actor ID. Set APIFY_BUILD to the immutable build number confirmed for your candidate; the saved output example comes from earlier build 0.3.1. Access must be granted to your account.

Set APIFY_TOKEN and the verified immutable APIFY_BUILD in your environment outside the script. Do not put a real token in this README, a URL or shared input.

curl --fail-with-body --request POST \
--header "Authorization: Bearer ${APIFY_TOKEN}" \
--header "Content-Type: application/json" \
--data '{"companies":["polestar"],"includeDescription":true,"maxJobsPerCompany":10}' \
"https://api.apify.com/v2/actors/wibBRjsLR3ahWeJNF/runs?build=${APIFY_BUILD}&memory=512&timeout=120&maxTotalChargeUsd=0.10&restartOnError=false"

Starting a run can cost money. This is a copyable example, not a run started by the guide. The maximum charge parameter is an Apify run option, not an Actor input field. Check the returned status and billing; do not retry an uncertain POST blindly. See the Run Actor API.

From the returned run, use defaultDatasetId with GET /v2/datasets/{datasetId}/items?format=json&clean=false. Use defaultKeyValueStoreId to read OUTPUT and RUN_SUMMARY. CSV and XLSX use the same items endpoint with format=csv or format=xlsx. Keep authorization in a header. Some Dataset access is possible by ID; do not share private run/storage IDs or exports with people who should not see them.

You can use the HTTP API from your own automation. Treat company + jobId as the job key, and check the summary before importing rows. This Actor does not provide its own MCP server or endpoint. No MCP service is installed by this guide. An agent must have a working, authorized API or platform connector before it can start runs; an MCP connection alone does not make this private Actor accessible.

Limits and partial results

  • Use 1–5 unique public slugs on the global .teamtailor.com host. URLs, custom domains, .na.teamtailor.com and .au.teamtailor.com are outside the input contract.
  • The output cap is 1–55 per company. Only the first JSON page is fetched. If it contains next_url, results remain usable but the company is partial with json_feed_paginated; the Actor does not follow that URL.
  • Historical checks on build 0.3.1 emitted 10 snapshot rows and parsed a 55-job board for a three-row cap. Build 0.4.2 was checked with four small Cloud runs that emitted 2, 1, 1 and 1 rows. Ten-row comparisons and larger capacity evidence were reused from earlier checks. These are not proof of 275 live output rows or complete coverage of every employer.
  • Each request has a 12-second timeout, at most one retry and a 5 MB response limit. Redirects are blocked. The Actor has a five-minute processing deadline; a shorter platform timeout or charge limit can stop it earlier.
  • RSS may be absent, smaller than JSON or invalid. JSON jobs stay usable, but RSS fields can be null and the company is partial. An RSS-only location name or a remote filter can then exclude matches.
  • The Actor does not infer salary, separate team, employment type, changed timestamps or remote status from prose. team, workplaceType, commitment and updatedAt remain null.
SituationDataset / summaryMeaning
Existing feed, no items or no matchesEmpty Dataset; company ok, run succeededValid empty result. Check filters or drained monitor state.
JSON feed returns 404No rows for that company; not_found, feed_not_foundThat public feed was not found. Not a timeout or valid empty board.
RSS unavailable or unmatchedAvailable JSON rows; partial, RSS error or rss_unmatched_itemsSome enrichment is unavailable.
One company fails, another succeedsGood rows retained; run can be partialRead each company entry; do not discard valid rows from other boards.
Invalid input or technical failureFailed summary when it can be saved; possibly no rowsCheck the fatal error and platform logs. Do not label it a valid empty board.
Cancellation or storage failurePreviously written rows may remainInspect summary and platform status before using the run as complete.

Use public feeds with care. Public job data can change or disappear. Source availability and permissions are the employer's responsibility; you are responsible for your use and retention of the exports. No candidate data or private recruitment account access is part of this tool.

Troubleshooting

SymptomLikely reason / error codesCheck and safe action
Input rejectedinvalid_input; URL, duplicate slug, unsupported field, null or invalid dateUse the nine documented keys and a known bare slug. Check cap and date format.
No rows, normal outcomeEmpty feed, filters or saved IDsCheck validJobCount, filters and emittedJobCount. For a fresh baseline use a new namespace.
Board not foundfeed_not_foundConfirm the global public slug. A branded URL is not a substitute.
Feed cannot be readtimeout, network_error, rate_limited, http_5xx, http_4xxCheck the source later. Transient errors get at most one retry; do not create overlapping monitors.
Feed blocked or too largeredirect_blocked, response_too_largeUse a supported slug. The Actor will not follow an arbitrary host or raise the limit for this run.
Bad feed datainvalid_json_feed, invalid_json_feed_shape, invalid_job_items, rss_source_errorRead the source and summary; do not turn a parsing error into an empty-board claim.
Missing enrichmentRSS-prefixed request errors, rss_unmatched_items or rss_cancelledJSON rows can still be useful. Check null values before filtering or importing.
Feed advertises more pagesjson_feed_paginatedTreat the page as partial. Full pagination is not provided.
State cannot be read or savedstate_read_error, state_write_errorCheck the referenced named store and access. Avoid overlap; state-write failure can cause repeats.
State is fullstate_capacity_exceededThe 50,000-ID ceiling stopped new emission. Choose a new namespace for a separate baseline.
Billing limit or problemcharge_limit_reached, billing_operation_error, billing_configuration_error, billing_duplicate_resultRead run billing and logs. The Actor checks the combined feed/row budget before writing. Unknown prices or synthetic extra fees stop work. It does not replay a nonempty run Dataset or retry an uncertain charge. Dataset delivery and event charging are not atomic; a billing failure can leave acknowledged rows.
Dataset/terminal records faildataset_write_error, output_storage_error, summary_storage_error, actor_runtime_errorInspect platform logs. A missing record is not a successful empty result.

FAQ

Why can a monitor check cost money when no new jobs are returned?

A healthy check still reads the feeds and compares current IDs with saved IDs. In pay-per-event mode, the feed-check event covers this useful check. A duplicate or already-seen job is not charged as a new job row. Errors and partial checks with zero rows have no useful billable event; they can still use platform resources.

Do I need a Teamtailor API key?

No. The Actor reads public career feeds. You still need an Apify account with access and available usage for a Cloud run.

Does the first monitor run return zero jobs?

No. It returns current matching jobs up to the cap and saves only those IDs. Later runs return unseen matches. A low cap can give several nonempty repeats before zero.

Can I pass a custom career URL or find all Teamtailor employers?

No. Add known global Teamtailor slugs. The Actor does not discover all employers or resolve custom domains.

Why does an old job appear as new?

New means not previously emitted by that monitor. postedAt is the source publication date; _scrapedAt is collection time. Add postedAfter if you need a publication-date boundary.

Does hybrid count as remote?

No. remoteOnly requires an explicit accepted RSS value. Missing remote status and prose about flexible work are not enough.

Can I get changed, removed or every historical job?

No. State stores emitted IDs, not content snapshots or deletion events. Feed pagination, retention and employer changes can limit what you see.

Will a low cap or descriptions off cut the run cost by the same ratio?

No such cost reduction is promised. The feeds are still read. Check the shown price and the run's real usage; storage and exports can add resource use.

These are separate products with their own inputs and prices. Their coverage does not expand this Actor's Teamtailor input contract.

Support

Open the Actor's Issues tab in Apify Console for a bug, question or feature request. Include the run ID, input mode, Dataset row count and relevant summary status/error code. Send only information you are allowed to share. Never include an API token, cookie, candidate record or private billing payload.

The examples and artwork explain the public job-feed workflow. They do not imply Teamtailor endorsement, a full job-history service or a source availability guarantee.