Closed Jobs Tracker: Filled Roles & Time-to-Fill avatar

Closed Jobs Tracker: Filled Roles & Time-to-Fill

Pricing

from $1.20 / 1,000 closed jobs

Go to Apify Store
Closed Jobs Tracker: Filled Roles & Time-to-Fill

Closed Jobs Tracker: Filled Roles & Time-to-Fill

Search closed jobs from 11,000+ companies with closedOn, daysOpen and time-to-fill signals. Returns company hiring velocity and recent closures. Pay per result.

Pricing

from $1.20 / 1,000 closed jobs

Rating

0.0

(0)

Developer

Redomic

Redomic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

37 minutes ago

Last modified

Features

Limited permissions

Share

Closed Jobs Tracker: Filled Roles and Time-to-Fill by Company

Job boards show you what's open. This Actor shows you what closed: every job taken down at more than 11,000 companies, the day it came down, and how many days it was open. We check every company's career site daily, so a closure shows up the day after it happens.

On 15 November 2026 the tracker held 76,937 closed jobs, collected since 31 October 2026, and the history grows by a day every day.

Who uses it

  • Sales teams looking for timing. A company that just closed 40 engineering roles has new people with new budgets. One that closes more roles than it opens in the last 7 days may be slowing hiring.
  • Recruiters and HR teams checking days open when a posting date is known, by role, level and company.
  • Investors and analysts watching 7-day openings against closures, company by company (from daily snapshots).

What you get

US jobs with a known posting date that closed in the week to 15 November 2026:

CompanyJobLocationPostedClosedDays open
RobloxSenior Software Engineer, SystemsSan Mateo, CA16 Sep15 Nov60
SkydioStaff Manufacturing Test EngineerHayward, CA20 Aug15 Nov87
Samsung SemiconductorTechnical Account Manager, DRAMSan Jose, CA4 Sep15 Nov72
2KSenior Technical Program ManagerAustin, TX17 Jul15 Nov121
NebiusWarehouse Logistics 3PL ManagerUnited States5 Nov15 Nov10

Each row also carries the department, workplace type, salary range when the ad had one, job function, seniority and the original URL. timeToFillKnown is true when postedAt is known; daysOpen is the calendar days from posted to closed (or from first seen if posted is missing). Every row includes dataAsOf (snapshot date).

Switch to companies mode for one row per company. Each row reports 7-day openings/closures and net change (openings_7d, closures_7d, net_change_7d), open roles now, historyDays, sampleSize, and medianDaysObserved (median of observed days-open for matched closed rows in that window). Here are five large employers from the same week:

CompanyClosed in 7 daysOpened in 7 daysNet changeOpen now
BAYADA Home Health Care443412-312,604
Carvana388312-761,660
SpaceX329180-1492,759
EquipmentShare284260-241,077
LifeStance Health271268-31,415

Modes

ModeWhat you get
jobs (default)One row per closed job, with closedOn and daysOpen.
jobs with isOpen: trueOpen jobs from the same daily data, newest first.
companiesOne row per company: open roles, openings and closures in the last 7 days, net change, median days open, and the job functions it closed most.

Price

$1.50 per 1,000 job rows and $5 per 1,000 company rows. There's no start fee. In monitor mode you pay only for newly closed jobs, so a quiet day costs nothing.

How to run it

Engineering jobs that closed this week in Germany:

{
"closedWithinDays": 7,
"countries": ["Germany"],
"roleFamilies": ["Engineering"],
"maxItems": 200
}

Time-to-fill at specific companies, using only jobs with a real posting date:

{
"companies": ["openai", "stripe", "datadog"],
"closedWithinDays": 0,
"requirePostedAt": true,
"maxItems": 500
}

The companies that closed the most roles this week:

{
"mode": "companies",
"closedWithinDays": 7,
"sort": "closed7d",
"maxItems": 50
}

A daily alert for new closures. Save this as a task, schedule it daily, and connect Slack, email or Google Sheets:

{
"closedWithinDays": 1,
"roleFamilies": ["Sales"],
"changesOnly": true,
"monitorScope": "sales-closures",
"maxItems": 500
}

Ready-made searches, each with sample results on its own page:

Input

FieldDefaultWhat it does
modejobsjobs or companies.
isOpenfalseIn jobs mode, return open jobs instead of closed ones.
closedWithinDays7Jobs closed in the last N days. 0 means any day we've tracked.
companiesallCompany names or board tokens.
atsallgreenhouse, lever or ashby.
countriesallAny part of the location: a country, city or region.
roleFamiliesallFor example Engineering, Sales, Healthcare/Clinical.
seniorityallIntern, Junior, Mid, Senior, Lead/Principal.
workplaceTypes, employmentTypesallFor example Remote or Full-time.
requirePostedAtfalseOnly jobs with a known posting date, so daysOpen is the real time-to-fill.
minDaysOpen, maxDaysOpennoneKeep jobs that were open at least or at most N days.
includeEvergreenfalseInclude talent-pool ads that never close for a real hire.
includeAggregatorsfalseInclude staffing and aggregator boards that repost other companies' jobs.
includeBoardRemovalsfalseInclude closures from a board that disappeared or moved. Those rows are marked closedReason: "board_removed" and left out of company counts by default.
minClosed1In companies mode, the fewest closures a company needs to appear.
sortclosedOnNewest closures first. In companies mode, closed7d puts the biggest closers first.
openedWithinDaysoffIn open mode (isOpen: true), keep jobs whose firstSeen is within N days of dataAsOf.
changesOnly, monitorScopeoffIn jobs mode, return only jobs not seen in your last run (closed rows by default; with isOpen: true, newly seen open jobs).
maxItems100The most rows to return.

Output fields

Job row: company, ats, board, id, title, department, location, workplaceType, employmentType, postedAt, firstSeen, closedOn, daysOpen, timeToFillKnown, salaryMin, salaryMax, salaryCurrency, salaryPeriod, roleFamily, seniority, evergreen, closedReason, url, dataAsOf.

Company row: company, ats, board, openRoles, openings_7d, closures_7d, net_change_7d, medianDaysObserved, topRoleFamiliesClosed, historyDays, dataAsOf.

FAQ

How do you know a job closed? We save every company's open jobs each day. When a job is gone from the career site, we record that day as closedOn.

Does closed mean filled? Usually, but not always. An employer takes an ad down when they hire, and sometimes when they cancel the role. Nobody can see which from the outside, so closedReason stays unknown. If a whole board disappears or moves and its roles drop at once, those rows are marked board_removed and left out of company closure counts unless you set includeBoardRemovals: true.

How exact is daysOpen? It's exact when the ad had a posting date: closing day minus posting day. Without one, it counts from the day we first saw the job, so it may undercount. timeToFillKnown tells you which. Set requirePostedAt: true to get only exact rows.

How far back does it go? To 31 October 2026, when we started tracking. We keep closures for 90 days.

Which companies are covered? More than 11,000 companies that post jobs on Greenhouse, Lever or Ashby career sites. LinkedIn, Indeed and Workday aren't included.

Can I get open jobs too? Yes. Set isOpen: true, or use the Job Postings Dataset for bulk exports of open jobs.

Ready-made examples

Each one opens a saved run you can copy and start with one click.

  • Jobs closed this week: Job postings that companies took down in the last 7 days, with the date each one closed and how many days it was open, from 11,000+ company career boards
  • Companies closing the most jobs this week: Companies ranked by how many job postings they took down in the last 7 days, from 11,000+ company career boards (Greenhouse, Lever, Ashby), refreshed daily: closed date and days open per job
  • OpenAI closed jobs and time to fill: Job postings OpenAI closed in the last 7 days, longest-open first, from 11,000+ company career boards (Greenhouse, Lever, Ashby), refreshed daily: closed date and days open per job
  • Closed job postings in Germany: Job postings in Germany that were taken down, newest first, from 11,000+ company career boards (Greenhouse, Lever, Ashby), refreshed daily: closed date and days open per job
  • Companies that stopped hiring this week: Companies that stopped hiring in the last 7 days, with closures in 7 days, open roles, net change and median days open, from 11,000+ company career boards (Greenhouse, Lever, Ashby), refreshed daily from owned data

Use it from AI agents (MCP) and Python

AI agents. Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client through the Apify MCP server. The agent reads the input schema, so a plain request is enough.

{
"mcpServers": {
"closed-jobs-tracker": {
"url": "https://mcp.apify.com?tools=redomic/closed-jobs-tracker",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}

Python. pip install apify-client, then:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("redomic/closed-jobs-tracker").call(run_input={"mode": "jobs", "closedWithinDays": 7, "maxItems": 5})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

More from us