Mock interviews
The mock interview feature lets community members request peer practice interviews, get matched with a partner, schedule the session, and record feedback. Option taxonomies are seeded from real community poll results.
Domain types
ocg-server/src/types/mock_interviews.rs defines all input and view types.
MockInterviewOption
A static struct carrying a value slug, a label, and a votes count from the founding poll. The demand_percent method normalises votes to a 8–100% scale relative to the highest-voted option, used to render demand bars in the UI.
Taxonomy options
All taxonomy options were derived from a community poll:
| Dimension | Top option | Top vote count |
|---|---|---|
practice_role |
interviewee |
41 |
interview_type |
software_engineering |
49 |
target_company |
remote_global |
57 |
seniority |
senior (3–7 y exp) |
37 |
Additional options include ai_ml, startup_cofounder, product_management, devops_cloud, security, behavioral_hr, and geographic location codes.
Request lifecycle
A mock interview request progresses through: requested → matched → scheduled → completed (or canceled from scheduled).
A match progresses through: matched → scheduled → completed (or canceled from scheduled).
Database operations
ocg-server/src/db/mock_interviews.rs defines the DBMockInterviews trait:
| Method | Description |
|---|---|
get_mock_interview_dashboard |
Returns the admin queue and all existing matches, filtered by MockInterviewFilters. |
list_user_mock_interview_matches |
Returns matches where the caller is an assigned participant. |
list_user_mock_interview_requests |
Returns requests the caller submitted. |
add_mock_interview_request |
Creates a new request; returns the new UUID. |
request_group_mock_interviewer |
Directly requests a specific group member as interviewer. |
upsert_mock_interview_match |
Creates or updates a match for a given request. |
get_mock_interview_match_notification_context |
Fetches participant details needed to send match notification emails. |
update_mock_interview_feedback |
Records admin-side feedback and final match status. |
update_user_mock_interview_feedback |
Records per-participant feedback for the caller's role. |
update_user_mock_interview_schedule |
Records the scheduled time proposed by a participant. |
Workflow
- A community member submits a request (practice role, interview type, target company, seniority, location, availability notes).
- An admin reviews the open queue via
get_mock_interview_dashboard. - The admin pairs two participants via
upsert_mock_interview_match; request status advances tomatched. - Match notification emails are sent using context from
get_mock_interview_match_notification_context. - Each participant proposes a schedule via
update_user_mock_interview_schedule; status becomesscheduled. - After the session, participants submit feedback; the admin marks the match
completed. - Either party may cancel at the
scheduledstage.
Active contributors
Sako Mammadov, Sergio Castaño Arteaga