Application AI Interviews
1. Dataset Name
application_x_ai_interviews
2. Description
An application-level dataset that identifies whether each candidate's application went through an AI Interview, and calculates hiring outcomes (days to hire, match score) for that application. Each row represents a single application, including hire status, AI Interview completion, recruiter ownership, and position details. This dataset powers AI Interviewer outcome metrics — specifically average match score and time to hire — for candidates who were screened via AI Interview.
3. Source Tables
- customer_views.applications (primary application record)
- customer_views.positions (recruiter and position attributes)
- customer_views.interview_session (used to determine which candidate-position pairs completed an AI Interview)
4. Grain
One row per application_id. Positions and AI Interview completions are left-joined onto the application, so an application with no matching position or no AI Interview history still appears as a row with NULLs/FALSE in the corresponding fields.
5. Dashboards Supported
- AI Interviewer (AII) Dashboard
6. Metrics Supported
| Metric | Supported Breakdowns |
| Average Match Score- AII Hires | recruiter |
| Time to Hire using AII | recruiter |
7. Known Exclusions / Filters Applied
- used_ai_interview is determined per candidate-position pair (profile_id + position_id), aggregated from interview_session where interview_complete_min_timestamp is not null — an application is only flagged as having used AI Interview if a completed interview exists for that exact candidate-position combination.
- days_to_hire is only populated when hired_ts is not null AND hired_ts occurs after applied_at — invalid or out-of-order timestamps resolve to NULL rather than a negative or zero value.
- recruiter defaults to 'Unassigned' via COALESCE when no recruiter is set on the position.
- Average Match Score- AII Hires and Time to Hire using AII both additionally filter to is_hired = TRUE and used_ai_interview = TRUE at the metric level — this dataset itself does not pre-filter to hires only, it carries all applications regardless of outcome.
- ai_completed_at uses the earliest (MIN) completion timestamp across all interview sessions for a given candidate-position pair, in case multiple AI interviews were conducted for the same application.
8. Schema
| Column Name | Data Type | Notes |
| application_id | varchar | Primary grain key for this dataset; sourced from applications |
| profile_id | bigint | Candidate's profile identifier; sourced from applications |
| position_id | bigint | Join key to the position; sourced from applications |
| applied_at | datetime | Application submission timestamp; sourced from applications.application_ts |
| hired_ts | datetime | Hire timestamp; sourced from applications |
| is_hired | bigint | Flag (0/1); TRUE when hired_ts is not null |
| days_to_hire | bigint | Derived: TIMESTAMPDIFF(DAY, applied_at, hired_ts), only when hired_ts is not null and occurs after applied_at |
| match_stars | double | Candidate's Eightfold match score for the position; sourced from applications |
| application_status | varchar | Raw status of the application; sourced from applications.status |
| last_stage | varchar | Raw last hiring stage reached; sourced from applications |
| last_stage_ts | datetime | Timestamp of the last stage transition; sourced from applications |
| used_ai_interview | bigint | Derived: TRUE when the candidate-position pair has a matching record in interview_session with a non-null completion timestamp |
| ai_completed_at | unknown | Derived: MIN(interview_complete_min_timestamp) grouped by profile_id and position_id, sourced from interview_session |
| recruiter | varchar | COALESCE(recruiter_name, recruiter, 'Unassigned'); sourced from positions |
| position_status | varchar | Raw status of the position; sourced from positions.status |
| is_open | bigint | Flag (0/1) from source position record; sourced from positions |
| position_created_at | datetime | Position creation timestamp; sourced from positions.creation_ts |