66 lines
4 KiB
Markdown
66 lines
4 KiB
Markdown
# Application Status Reference
|
|
|
|
Every application moves through a defined set of statuses as it progresses from submission to final outcome. This page documents each status, what it means, and the valid transitions between them.
|
|
|
|
## Status Definitions
|
|
|
|
**`new`** -- Application recently submitted. This is the starting status for every application that comes in through the apply form.
|
|
|
|
**`waiting_first_round`** -- Waiting to be scheduled for a first-round interview. The application has been advanced from its initial review stage into the first-round interview stage but does not yet have an interview booked.
|
|
|
|
**`first_round_scheduled`** -- First-round interview has been scheduled. Set automatically when a Cal.com booking webhook matches the applicant's email, or when an admin manually changes the status.
|
|
|
|
**`needs_first_decision`** -- First round complete, awaiting a decision. Set automatically when an admin locks the first-round stage (all completed reviews must be locked and the minimum reviewer threshold met).
|
|
|
|
**`waiting_second_round`** -- Waiting to be scheduled for a second-round interview. The committee decided to advance the application past the first round into a second-round stage.
|
|
|
|
**`second_round_scheduled`** -- Second-round interview has been scheduled. Same mechanism as first round -- triggered by a Cal.com webhook match or manual status change.
|
|
|
|
**`needs_final_decision`** -- Second round complete, awaiting final decision. Set automatically when the final stage is locked.
|
|
|
|
**`accepted`** -- Application accepted into the cohort. Terminal status.
|
|
|
|
**`waitlist`** -- Application waitlisted. Can still transition to `accepted` or `declined`.
|
|
|
|
**`declined`** -- Application declined. Terminal status.
|
|
|
|
## Valid Transitions
|
|
|
|
Each status can only move to specific next statuses. The system enforces these rules and rejects invalid transitions.
|
|
|
|
- `new` → `waiting_first_round`, `first_round_scheduled`, `declined`
|
|
- `waiting_first_round` → `first_round_scheduled`, `waiting_second_round`, `declined`
|
|
- `first_round_scheduled` → `needs_first_decision`, `waiting_first_round`, `declined`
|
|
- `needs_first_decision` → `waiting_second_round`, `accepted`, `waitlist`, `declined`
|
|
- `waiting_second_round` → `second_round_scheduled`, `accepted`, `waitlist`, `declined`
|
|
- `second_round_scheduled` → `needs_final_decision`, `waiting_second_round`, `declined`
|
|
- `needs_final_decision` → `accepted`, `waitlist`, `declined`
|
|
- `accepted` → (none -- terminal)
|
|
- `waitlist` → `accepted`, `declined`
|
|
- `declined` → (none -- terminal)
|
|
|
|
## What Triggers Transitions
|
|
|
|
**Automatic transitions:**
|
|
|
|
- **Stage locking** sets `needs_first_decision` or `needs_final_decision` depending on whether the locked stage is the final stage or a first-round stage.
|
|
- **Advancing to next stage** sets `waiting_first_round` or `waiting_second_round` based on the next stage's type. If an interview is already scheduled for that round, the status skips directly to `first_round_scheduled` or `second_round_scheduled`.
|
|
- **Cal.com webhooks** move an application from `waiting_first_round` to `first_round_scheduled` (or the second-round equivalent) when a booking is created.
|
|
|
|
**Manual transitions:**
|
|
|
|
- Admins can change any application's status through the **Applications** tab, provided the transition is valid.
|
|
- Bulk status changes are available for processing multiple applications at once.
|
|
- The **Decisions** tab records accept, waitlist, or decline decisions and updates the status accordingly.
|
|
|
|
:::info
|
|
An application can be declined from almost any active status. The `waitlist` status is the only non-terminal outcome status -- waitlisted applications can still be accepted or declined later.
|
|
:::
|
|
|
|
## Status Groups
|
|
|
|
The system groups statuses for filtering:
|
|
|
|
- **Active:** `new`, `waiting_first_round`, `first_round_scheduled`, `needs_first_decision`, `waiting_second_round`, `second_round_scheduled`, `needs_final_decision`
|
|
- **Decision pending:** `needs_first_decision`, `needs_final_decision`
|
|
- **Terminal:** `accepted`, `waitlist`, `declined`
|