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 = false by 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.