Switching from Career Site ATS Jobs API to ATS Lookup
ATS Lookup (arcadium/ats-lookup) reads input written for memo23/career-site-ats-jobs-api: 9 of its 28 input fields work as they are. Field list from its public input schema (build 0.0.149, 2026-10-31); prices and run results from the public Apify API, 2026-10-31.
Their fields that work as they are
| Their field | Type | Note |
|---|---|---|
startUrls | array | As is |
organizations | array | As is |
greenhouseBoards | array | As is |
leverCompanies | array | As is |
ashbyOrgs | array | As is |
smartrecruitersCompanies | array | As is |
inputUrl | string | Read as one more company or careers link. |
maxItems | integer | Read as the job cap per company (1 to 20,000). |
proxy | object | As is |
Their fields this actor does not read
enrichEmails, qualifyByPayment, maxItemsTotal, maxConcurrency, titleKeyword, keywords, location, department, employmentType, language, remoteOnly, postedAfter, includeDescription, excludeBoilerplate, includeQuestions, translateToEnglish, includeRawJson, stateKey, onlyNewOrUpdated. Leave them out of the input; the actor’s own options are in the guide.
Side by side: their input, our rows
Input written for memo23/career-site-ats-jobs-api, pasted unchanged:
{
"startUrls": [
"https://boards.greenhouse.io/lattice"
],
"organizations": [
"notion"
],
"greenhouseBoards": [
"figma"
],
"leverCompanies": [
"spotify"
],
"ashbyOrgs": [
"ramp"
],
"smartrecruitersCompanies": [
"BoschGroup"
],
"maxItems": 200
}One row from arcadium/ats-lookup (README example; long text shortened):
{
"rowType": "company",
"input": "notion.so",
"domain": "notion.so",
"ats": "ashby",
"company": "Notion",
"companyToken": "notion",
"boardId": "ashby___notion",
"boardUrl": "https://jobs.ashbyhq.com/notion",
"detection": "html",
"matchConfidence": "high",
"source": "live",
"openJobs": 137,
"openJobsIsLowerBound": false,
"sampledJobs": 137,
"departmentMix": [
{
"name": "Sales",
"jobs": 48,
"share": 0.35
},
{
"name": "People",
"jobs": 16,
"share": 0.117
}
],
"countryMix": [
{
"name": "US",
"jobs": 76,
"share": 0.555
},
{
"name": "IE",
"jobs": 20,
"share": 0.146
}
],
"remoteJobs": 0,
"remoteShare": 0,
"jobsWithPay": 95,
"payShare": 0.693,
"pay": [
{
"currency": "USD",
"period": "year",
"jobs": 71,
"low": 85000,
"high": 400000,
"medianMid": 210000
},
{
"currency": "EUR",
"period": "year",
"jobs": 23,
"low": 45000,
"high": 420000,
"medianMid": 150000
}
],
"newestPostedAt": "2026-10-22T01:52:52.331Z",
"jobsPostedLast30Days": 38,
"dataAsOf": "2026-10-22T04:38:57.030Z",
"checkedAt": "2026-10-22T04:38:57.030Z"
}Output fields: rowType, input, domain, ats, company, companyToken, boardId, boardUrl, detection, matchConfidence, source, openJobs, openJobsIsLowerBound, sampledJobs, departmentMix, countryMix, remoteJobs, remoteShare, jobsWithPay, payShare, pay, newestPostedAt, jobsPostedLast30Days, dataAsOf, checkedAt, platform, code, message, scrapedAt. The rows use these names, not the other actor’s.
Price
| Actor | Pricing model | Charged per | Per 1,000, Free plan | Per 1,000, lowest plan |
|---|---|---|---|---|
| arcadium/ats-lookup | Pay per event | Company with a board | $4.00 | $4.00 |
| memo23/career-site-ats-jobs-api | Pay per event | job | $4.00 | $2.50 |
Live Apify prices on 2026-10-31, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.
Common issues: failed or timed-out runs
- Career Site ATS Jobs API timed out: 0.2% of 1,267 runs timed out.
- Career Site ATS Jobs API failed: 0.2% of 1,267 runs ended as failed.
| Actor | Runs, last 30 days | Failed | Timed out |
|---|---|---|---|
| arcadium/ats-lookup | under 50 runs (1 runs) | - | - |
| memo23/career-site-ats-jobs-api | 1,267 | 0.2% | 0.2% |
Apify’s public run statistics for each actor, last 30 days to 2026-10-31: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.
How to switch
In the Apify Store
- Open arcadium/ats-lookup and sign in to Apify.
- On the Input tab, switch the editor to JSON and paste the input you used for memo23/career-site-ats-jobs-api, without the fields listed above as not read.
- Start the run. Set a maximum cost per run in the run options if you want a hard cap.
Over the API
Change the actor ID in the URL from memo23~career-site-ats-jobs-api to arcadium~ats-lookup; the body stays the same apart from the fields this actor does not read.
curl -X POST "https://api.apify.com/v2/acts/arcadium~ats-lookup/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":["https://boards.greenhouse.io/lattice"],"organizations":["notion"],"greenhouseBoards":["figma"],"leverCompanies":["spotify"],"ashbyOrgs":["ramp"],"smartrecruitersCompanies":["BoschGroup"],"maxItems":200}'
In n8n
In the Apify node, change the actor to arcadium/ats-lookup and keep the input JSON. With an HTTP Request node:
{
"nodes": [
{
"name": "Run arcadium/ats-lookup",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/arcadium~ats-lookup/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"startUrls\":[\"https://boards.greenhouse.io/lattice\"],\"organizations\":[\"notion\"],\"greenhouseBoards\":[\"figma\"],\"leverCompanies\":[\"spotify\"],\"ashbyOrgs\":[\"ramp\"],\"smartrecruitersCompanies\":[\"BoschGroup\"],\"maxItems\":200}",
"options": {
"timeout": 300000
}
}
}
],
"connections": {}
}
From an AI assistant (MCP)
Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/ats-lookup",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}