Interviews as scheduled meetings, not only as lines in the timeline #14
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Reference
Postulo/postulo#14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why this exists
postulo-dav (#16) wants to write interview meetings to a calendar and read them back. Postulo has no meeting to write.
What exists today
ApplicationEventwithkind = interviewandoccurred_at— "happened on" — a past-tense line in the timeline (applications/models.py,EventKindat line 179).Reminderwithdue_at: a point in time and a note; no duration, no place, no people (line 251).Status.INTERVIEWING: a stage, not an appointment.Contacton companies (jobs/models.py, line 52): name, role, email, phone, LinkedIn, notes — the people on the other side already exist.An interview is a future event with a start, an end, a place or a link, the people attending, and a kind — phone screen, video, on site, panel, assessment. None of that fits either model without contortion, and a calendar needs all of it.
Shape
Interviewmodel, owned: application, kind,starts_at,ends_at,location(an address or a meeting URL), contacts (many-to-many toContact), preparation notes,outcome(scheduled, done, cancelled, no-show), and a stable UID minted at creation so a calendar sync can recognise it across edits.ApplicationEvent("interview scheduled for …"); marking it done records another and moves the status to interviewing if it is behind, throughchange_status.Reminder(the day before by default), so whatever #4 builds for reminders notifies about interviews with no extra code..icsdownload per interview. Every calendar application imports one, it costs an afternoon, and it gives most people what they want from a calendar before #16 exists.Classification
Enhancement. A new table and two new event kinds; not breaking.
Open questions
ends_ator a duration? Proposal:ends_at, defaulting to one hour after the start.