Posting counts — what counts, what doesn’t
Last reviewed 2026-06-11.
What we count
A posting is one row in the jobtable — a single live opening on a single company's applicant-tracking system. Each posting has a stable id traced back through job_board.id to a specific careers page.
What we don't count
- Inactive postings. A posting whose source page returns 404 or hides the listing is marked
is_active = falseby the stale-job reaper and excluded from the live count. - Reposts within the same company. When a company removes and re-creates a near-identical posting, we collapse them by
(company_id, title, location_text)so a single role doesn't double-count. - Cross-poster duplicates. The same company on multiple ATS systems counts once via the canonical
company_id.
The 26-week rolling window
Entity pages (stacks, companies, roles) show the last 26 weeks anchored on posted_at. We use posted_at rather than the crawl timestamp so a posting's “age” reflects the employer's timeline, not ours. Postings without a usable posted_at fall back to updated_at; this is rare and tracked in the daily-ops dashboard.
Density guard
Any index page with fewer than 5 qualifying postings returns 404. This is the density guard — it prevents thin pages from being indexed and dragging the subfolder's authority down.
See it on a live page
- /companies — ranked by current posting count.
- /jobs — the underlying postings themselves.