How we count
Every number on the public InterviewOS pages follows the rules below. They are written down so you can check our work.
What a listing is
A listing is one job posting read from the board an employer publishes it on: their applicant tracking system (Greenhouse, Lever, Ashby, Workday and others) or their own careers page. Job-aggregator URLs are rejected when we classify a board, so a company is only ever counted from its own board. Duplicate rows for one job are collapsed before anything is counted.
What "active" means
- We see it on the board tonight: it stays active.
- We do not see it for 4 days: it closes.
- The board stops answering us: its listings hold for up to 10 days from the last time we saw them, then close.
- A board answers, but a listing is gone from it: the listing closes, unless more than 70% of that company's live listings are missing at once.
- More than 80% of one company's live listings would close on the same night, and that company has at least 25 of them: nothing closes for that company that night. A whole board vanishing at once usually means our reader broke, not that the employer stopped hiring.
When we read boards
The scrape starts at 02:00 UTC every day. Closures run at 09:00 UTC, after it. A company page's open-role count comes from a rollup rebuilt every 15 minutes. The directory and industry pages read that same rollup, so those numbers cannot disagree with a company page by more than one rebuild. State pages read a separate cache with the same count definition, rebuilt every 6 hours. The pages themselves are cached for up to 6 hours.
When a board is not being read, its company page says so next to the count, with the date of the last successful read.
Dates on a listing
Where a board publishes its own posting date, we show it. Where it does not, the age on a job row is the date we first saw the listing, which is the only date we can vouch for. The per-company CSV keeps the two in separate columns so you can tell them apart.
Posted pay
We only show pay an employer printed in its own posting, never an estimate. A pay section renders only when at least 8 usable ranges survive two filters:
- One range per job title and location, keeping the highest.
- A floor of $1, and a top of the range between $10,000 and $1,500,000 a year, or between $2 and $200 an hour. Anything outside those bounds is dropped as a parsing error.
Below 8 the section does not render at all.
H-1B sponsorship
Sponsorship comes from two public federal sources: Labor Condition Applications certified by the US Department of Labor, and H-1B petition approvals published by USCIS. Records are matched to employers by name, and only high-confidence matches are used. A company with only low-confidence matches reads as having no sponsorship data. Every figure carries the fiscal year it belongs to. Based on public USCIS and Department of Labor records. Past filings do not guarantee future sponsorship.
What we do not claim
We do not publish time to hire, offer rates, or market share. These counts describe the employers we track, not a labor market. A count is what one board held at our last successful read of it.
Known gaps
- Most boards do not print a pay range, so most listings carry none. Each pay section states the share of that company's listings with no pay data.
- Remote and hybrid are not classified. The field exists and is empty, so nothing on the site filters or reports on it.
- Job type (internship, graduate, experienced) is not classified yet either.
- Coverage is uneven. Boards with no API and no reliably readable page are read less often, or missed.
Corrections
If a number here is wrong, tell us and we will fix it: contact@interviewos.ai, or see Press & data requests. Where the data comes from: About the data.
Last updated September 4, 2026.