Gone quiet: flag open applications with no activity for three weeks, and suggest the follow-up #30

Closed
opened 2026-09-05 14:04:10 +00:00 by tiagoagueda · 0 comments
Owner

Why

Status.GHOSTED exists, and its docstring explains why: an employer that simply stops replying is the single most common ending. But nothing in Postulo notices the silence. OPEN_STATUSES (applications/models.py, line 49) defines the undecided ones, every event carries occurred_at, and with_display_data() (line 101) loads the posting, company and tags for the lists — and no last-activity date. An application can sit at applied for two months and look exactly like one applied to yesterday. The nudge that leads to ghosted, or to a follow-up, is missing.

Shape

  • Last activity, annotated on the queryset (Max of the events' occurred_at, falling back to applied_at), shown in the table (a column for #20) and on the card.
  • Quiet is an open application whose last activity is older than a threshold — 21 days by default, adjustable per person under Settings (#22) — that is not a draft (nothing was sent), and has no future reminder and no scheduled interview (#14): if the person has already planned the next step, it is not quiet, it is waiting.
  • A dashboard block, Gone quiet, listing them oldest-silence first, each with three actions: Follow up (records a follow-up event and, with #28, offers the follow-up note kind), Mark as ghosted (through change_status, so the timeline says when the person gave up waiting), and Snooze (a reminder two weeks out, which by definition makes it not quiet).
  • A filter on the table and a quiet badge on the board card, using the same predicate so the numbers agree everywhere.
  • Notifications. A went quiet event for #4, and a line in its digest ("3 applications have gone quiet this week"), which is the one notification in the whole system that a person cannot generate for themselves.
  • Insights. The quiet rate per source and per company, beside the response-rate figures the ghosted status was introduced to keep honest.

Classification

Enhancement. Not breaking: an annotation, a per-person setting with a default, no schema on applications.

Open questions

  1. 21 days, or 14? Recruiters' own advice clusters around two to three weeks; 21 is the conservative choice.
  2. Should Mark as ghosted be offered at all from the dashboard, or only Follow up and Snooze, leaving the verdict to the application page? Proposal: offer all three; the person knows.
## Why `Status.GHOSTED` exists, and its docstring explains why: an employer that simply stops replying is the single most common ending. But nothing in Postulo notices the silence. `OPEN_STATUSES` (`applications/models.py`, line 49) defines the undecided ones, every event carries `occurred_at`, and `with_display_data()` (line 101) loads the posting, company and tags for the lists — and no last-activity date. An application can sit at *applied* for two months and look exactly like one applied to yesterday. The nudge that leads to *ghosted*, or to a follow-up, is missing. ## Shape - **Last activity**, annotated on the queryset (`Max` of the events' `occurred_at`, falling back to `applied_at`), shown in the table (a column for #20) and on the card. - **Quiet** is an open application whose last activity is older than a threshold — **21 days by default**, adjustable per person under Settings (#22) — that is *not* a draft (nothing was sent), and has **no future reminder and no scheduled interview** (#14): if the person has already planned the next step, it is not quiet, it is waiting. - **A dashboard block, *Gone quiet***, listing them oldest-silence first, each with three actions: **Follow up** (records a follow-up event and, with #28, offers the follow-up note kind), **Mark as ghosted** (through `change_status`, so the timeline says when the person gave up waiting), and **Snooze** (a reminder two weeks out, which by definition makes it not quiet). - **A filter** on the table and a *quiet* badge on the board card, using the same predicate so the numbers agree everywhere. - **Notifications.** A *went quiet* event for #4, and a line in its digest ("3 applications have gone quiet this week"), which is the one notification in the whole system that a person cannot generate for themselves. - **Insights.** The quiet rate per source and per company, beside the response-rate figures the ghosted status was introduced to keep honest. ## Classification Enhancement. Not breaking: an annotation, a per-person setting with a default, no schema on applications. ## Open questions 1. 21 days, or 14? Recruiters' own advice clusters around two to three weeks; 21 is the conservative choice. 2. Should *Mark as ghosted* be offered at all from the dashboard, or only *Follow up* and *Snooze*, leaving the verdict to the application page? Proposal: offer all three; the person knows.
tiagoagueda added this to the 0.2.0 milestone 2026-09-05 14:04:10 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Postulo/postulo#30
No description provided.