- Shipped
- September 4, 2026 at 12:33 AM UTC
- Author
- Kamo
- Commit
- 02c0962
publish_externally decides whether an advert reaches careers.<apex> at all. It is a separate axis from status: an internal-only posting is fully AVAILABLE and must still never be indexed — a confidential backfill, or a role an org wants to fill from within first. Defaults TRUE so an org that turns its careers site on does not have to re-open every advert to populate it. listed_at is the moment an advert most recently BECAME available, and it moves on every re-list. postedOn deliberately does not: that is the date a candidate is shown, stamped once so a role that paused for a fortnight does not come back claiming to be new. The public board says "eleven people have applied", and it has to mean this hiring round — counting against postedOn would fold in a round that closed months ago and tell a candidate the queue is far longer than the one they are joining. The column carries BOOL DEFAULT TRUE in its columnDefinition, which is load-bearing rather than tidy: this is an ADD COLUMN on a table with rows, and Postgres refuses NOT NULL without a default — the KamoInitializer run would fail and take every other pending change with it. Three queries: the public visibility predicate (org + publishExternally + the two visible statuses, so an archived or internal-only row is never LOADED rather than loaded and blanked), its by-uid twin, and the per-posting applicant count bounded to each posting's own listed_at.