Skip to content

Repository files navigation

🎯 Interview Masters

AI-powered mock interview practice — turning every candidate's real ability into real career opportunities.

Preview

Interview Masters Preview


Table of Contents

  1. Vision & Founder Why
  2. Target Customer & User Persona
  3. MVP Hypothesis & Prototype
  4. Key MVP Features
  5. System Architecture
  6. Business Flow Diagrams
  7. Monetization & Payment System
  8. Getting Started & Monorepo Development
  9. Success Metrics
  10. Documentation References

1. Vision & Founder Why

🔴 Problem

Interviews are high-pressure, unfair gatekeepers of opportunity. Many capable candidates fail to showcase their true potential — not because they lack ability, but because they lack structured practice, immediate feedback, and confidence under pressure. Today, interview coaching is either too expensive, too generic, or unavailable when people need it most.

💡 Core Belief

Many individuals are fully qualified and capable but fail to perform effectively under traditional interview conditions.

⚡ Why Now?

AI technology enables realistic, personalized, and highly scalable mock interview practice with instant feedback — which was previously either too expensive or inaccessible.

🚀 Mission

To help candidates transform their actual ability into real career opportunities by making interview preparation accessible, measurable, and outcome-driven.


2. Target Customer & User Persona

Primary Persona

A 24-year-old recent college graduate applying for their first serious full-time professional role.

Attribute Detail
Background Strong GPA, relevant projects & internship experience
Interview Experience Low — lacks exposure to high-pressure live professional interviews
Preparation Method YouTube videos, static question lists (passive, unstructured)
Feedback Access No coach; friends can only help occasionally
Core Feeling "I could have done better, but I don't know exactly how"

Core Pain Points

  • Unstructured Preparation — Passive resources (YouTube, question lists) don't build real-time communication skills.
  • Delivery & Formatting — Struggles with rambling, structuring answers (STAR method), and connecting experience to the role.
  • Feedback Deficit — No access to professional career coaches; peer feedback is brief and subjective.
  • Anxiety & Lack of Confidence — Exits interviews with a vague sense of underperformance and no actionable path to improve.

3. MVP Hypothesis & Prototype

Hypothesis

If we provide candidates with a realistic, interactive, and repeatable mock interview environment powered by role-specific AI, they will build structured communication habits and increase their self-confidence — leading to higher interview pass rates.

First Prototype

  • Platform URL: https:// (To Be Determined)
  • Tech Stack:
    • Frontend: Astro (apps/landing-page), React / Vite (apps/dashboard)
    • Backend: Hono / Node.js (apps/backend)
    • TTS Microservice: Python Supertonic 3 ONNX Server (apps/supertonic)
    • Video Marketing: Remotion (apps/remotion)
    • Database: Supabase (PostgreSQL) with question_bank seed repository
  • Core Functionality:
    • Role-specific interactive question generation seeded by question_bank & JD
    • On-device / local Supertonic 3 TTS synthesis with background pre-fetching for zero-latency speech
    • Voice-only mock response capture
    • Actionable feedback on structure (STAR method), clarity, and relevance

4. Key MVP Features

A. Role Selection & Question Bank Context Setup

  • Select target role (e.g., Software Engineer, DevOps, Product Manager).
  • AI queries question_bank table (role, category, difficulty) combined with user JD to seed relevant technical & behavioral questions.

B. Interactive Mock Interview Session

  • AI generates questions sequentially based on role, JD, and question bank context.
  • Candidates respond via voice only (Speech-to-Text with phoneme and technical vocabulary refiner).
  • Realistic pacing with background audio pre-fetching (supertonic.preload) ensuring zero-latency speech playback upon session start and countdown.

C. Instant AI Feedback Engine

  • Analyzes answers for structure (STAR method), relevance, and brevity.
  • Highlights rambling or points lacking specific evidence.
  • Provides a revised version — "What you could have said" — to guide improvement.

D. Supertonic 3 TTS Engine (apps/supertonic)

  • Python-based ONNX microservice running supertonic serve (POST /v1/audio/speech).
  • Supports preset voices mapped via SupertonicVoice (e.g. F1 for Lily, F2 for Sarah).
  • Client module in apps/dashboard manages background audio pre-fetching to eliminate speech synthesis playback delay.

E. Backend Services & APIs (Hono / Node.js - apps/backend)

  • Architecture: TypeScript codebase powered by Hono for HTTP REST API routing.
  • REST HTTP Endpoints:
    • GET /health - Health check endpoint.
    • POST /api/interview/start - Starts a mock interview session.
    • POST /api/interview/answer - Evaluates user answer and generates next question.
    • POST /api/interview/finish - Finalizes session score and metrics.
    • POST /payments/create-checkout - Generates a secure checkout payment link using Mayar API.
    • POST /webhook/mayar - Receives payment status updates from Mayar.

5. System Architecture

flowchart LR
    subgraph User["👤 Candidate (Browser / App)"]
        U1[Role Selection]
        U2[JD Input]
        U3[Answer Input\nText / Voice]
    end

    subgraph Backend["⚙️ Backend"]
        B1[Session Manager]
        B2[Question Generator]
        B3[Answer Analyzer]
        B4[Progress Tracker]
    end

    subgraph AI["🤖 AI Engine"]
        A1[Role-Specific\nQuestion Model]
        A2[Answer Evaluation\nSTAR · Clarity · Relevance]
        A3[Feedback & Suggestion\nGenerator]
    end

    subgraph Storage["🗄️ Database (Supabase)"]
        S1[User Profiles]
        S2[Session History]
        S3[Score & Progress]
    end

    U1 & U2 --> B1
    B1 --> B2
    B2 --> A1
    A1 --> U3
    U3 --> B3
    B3 --> A2
    A2 --> A3
    A3 --> B4
    B4 --> S2 & S3
    B4 --> User
Loading

Database Schema (ERD)

erDiagram
    users {
        uuid id PK
        string email UK
        string full_name
        string role "e.g., student, job_seeker, admin"
        string tier "e.g., free, pro, b2b"
        string subscription_status "e.g., active, inactive, canceled"
        string target_role "e.g., software_engineer"
        text job_description "Default job description template"
        timestamp created_at
        timestamp updated_at
    }

    organizations {
        uuid id PK
        string name
        string subscription_tier "e.g., b2b"
        integer max_members
        timestamp created_at
        timestamp updated_at
    }

    organization_members {
        uuid id PK
        uuid organization_id FK
        uuid user_id FK
        string role "e.g., admin, member"
        timestamp created_at
    }

    subscriptions {
        uuid id PK
        uuid user_id FK "Nullable (for B2B/Team)"
        uuid organization_id FK "Nullable (for individual Pro)"
        string tier "e.g., pro, b2b"
        string status "e.g., active, past_due, canceled, unpaid"
        decimal price
        string billing_cycle "e.g., monthly, yearly"
        timestamp current_period_start
        timestamp current_period_end
        boolean cancel_at_period_end
        timestamp created_at
        timestamp updated_at
    }

    payments {
        uuid id PK
        uuid subscription_id FK
        uuid user_id FK
        string invoice_id
        string payment_gateway "e.g., mayar"
        string transaction_id
        decimal amount
        string status "e.g., pending, settlement, capture, expire, refund"
        string payment_method "e.g., gopay, qris, credit_card, va"
        timestamp paid_at
        timestamp created_at
    }

    mock_interviews {
        uuid id PK
        uuid user_id FK
        string target_role
        text job_description "Nullable"
        string status "e.g., started, completed, abandoned"
        integer pre_confidence_score "1-5"
        integer post_confidence_score "1-5"
        integer overall_score "0-100"
        timestamp created_at
        timestamp completed_at
    }

    interview_questions {
        uuid id PK
        uuid mock_interview_id FK
        text question_text
        integer sequence_number
        timestamp created_at
    }

    interview_answers {
        uuid id PK
        uuid interview_question_id FK
        text answer_text
        string response_mode "e.g., text, voice"
        integer voice_duration_seconds "Nullable"
        timestamp created_at
    }

    ai_feedbacks {
        uuid id PK
        uuid interview_answer_id FK
        integer structure_score "0-100"
        integer relevance_score "0-100"
        integer brevity_score "0-100"
        integer overall_score "0-100"
        text feedback_text
        text highlights_rambling
        text what_you_could_have_said
        timestamp created_at
    }

    question_bank {
        uuid id PK
        string target_role
        string category
        string difficulty "e.g., easy, medium, hard"
        text question_text
        text_array expected_points
        text sample_star_answer "Nullable"
        boolean is_active
        timestamp created_at
        timestamp updated_at
    }

    users ||--o{ organization_members : "belongs to"
    organizations ||--o{ organization_members : "contains"
    users ||--o{ subscriptions : "owns"
    organizations ||--o{ subscriptions : "owns"
    subscriptions ||--o{ payments : "has"
    users ||--o{ payments : "makes"
    users ||--o{ mock_interviews : "takes"
    mock_interviews ||--o{ interview_questions : "contains"
    interview_questions ||--o| interview_answers : "has"
    interview_answers ||--o| ai_feedbacks : "receives"
Loading

6. Business Flow Diagrams

User Journey

flowchart TD
    A([Candidate]) --> B[Discover Interview Masters]
    B --> C{Has Account?}
    C -- No --> D[Sign Up]
    C -- Yes --> E[Log In]
    D --> E
    E --> F[Dashboard]
    F --> G[Setup Interview Session]
    G --> H[Select Target Role]
    H --> I[Paste / Upload Job Description]
    I --> J[Start Mock Interview]
    J --> K[AI Generates Question]
    K --> L[Candidate Answers\ntext or voice]
    L --> M{More Questions?}
    M -- Yes --> K
    M -- No --> N[AI Evaluates All Answers]
    N --> O[Feedback Report\nstructure · clarity · relevance]
    O --> P{Satisfied?}
    P -- No / Want More Practice --> G
    P -- Yes --> Q[Track Progress & Score History]
    Q --> R([Ready for Real Interview])
Loading

Feedback Loop & Improvement Cycle

flowchart TD
    P1([Practice Session]) --> P2[AI Feedback Report]
    P2 --> P3{Identify Weak Areas}
    P3 --> P4[Targeted Re-practice\non weak topics]
    P4 --> P1
    P2 --> P5[Score & Progress Log]
    P5 --> P6[Progress Dashboard]
    P6 --> P7([Interview Readiness Score])
Loading

Business Model

flowchart TD
    M1([Candidate]) --> M2{Tier}
    M2 -- Free --> M3[1 Mock Interview / Month\nBasic Feedback]
    M2 -- Starter Pass --> M3b[3 Mock Interviews / Package\nSekali Bayar Rp 9.000]
    M2 -- Pro --> M4[Unlimited Sessions\nRp 29.000/Month\nAdvanced Feedback\nRole-Specific Deep Dive\nProgress Analytics]
    M2 -- Team / B2B --> M5[Bulk Licenses\nHR Dashboard\nCandidate Tracking\nWhite-label Option\n*Link Hidden for MVP*]

    M3 & M3b --> M6{Upgrade to Pro?}
    M6 -- Yes --> M4
    M3b --> M7[Revenue: Pay-per-use]
    M4 --> M8[Revenue: Subscription]
    M5 --> M9[Revenue: B2B Contract]
Loading

7. Monetization & Payment System

Pricing Tiers

Tier Price Quota Target User
Free Rp 0 / month 1 mock interview/month, basic feedback First-time users, perkenalan awal
Starter Pass (Pay-per-use) Rp 9.000 / package 3 mock interviews (masa aktif 1 bulan), umpan balik instan & terstruktur Candidate kepepet interview & anti-berlangganan (sekali bayar)
Pro (Most Popular) Rp 29.000 / month Unlimited sessions, advanced AI feedback, progress analytics, role deep-dive Active job seekers (latihan rutin sepuasnya)
Team / B2B (Link Hidden for MVP) Custom Bulk licenses, HR dashboard, candidate tracking, white-label Bootcamps, universities, enterprise HR

Payment System Flow

flowchart TD
    P1([Candidate]) --> P2{Choose Plan}
    P1 --> P2
    P2 -- Free --> P3[Create Account\nFree Tier Activated\n1 session/month]
    P2 -- Starter Pass --> P3b[Checkout Page\nRp 9.000 / package]
    P2 -- Pro --> P4[Checkout Page\nRp 29.000/month]
    P2 -- B2B --> P5[Contact Sales\nCustom Quote & Invoice]

    P3b & P4 --> P7[Mayar Gateway]

    P7 --> P10{Payment Status}
    P10 -- Success --> P11[Webhook: Payment Confirmed]
    P10 -- Failed --> P12[Retry / Change Method]
    P12 --> P4

    P11 --> P13[Backend: Activate Pro Entitlement]
    P13 --> P14[User Dashboard\nPro Features Unlocked]

    P5 --> P15[Invoice Sent]
    P15 --> P16[Bank Transfer / Corp Card]
    P16 --> P17[Manual Verification\nby Finance Team]
    P17 --> P13
Loading

Subscription Lifecycle

stateDiagram-v2
    [*] --> Free: Sign Up
    Free --> Checkout: Upgrade to Pro
    Checkout --> Pro: Payment Success
    Checkout --> Free: Payment Failed
    Pro --> Renewing: Monthly Auto-Renewal
    Renewing --> Pro: Renewal Success
    Renewing --> Cancelled: Renewal Failed / User Cancels
    Cancelled --> Free: Downgrade to Free Tier
    Free --> [*]: Account Deleted
    Pro --> [*]: Account Deleted
Loading

Payment Gateways

  • 🇮🇩 Primary Subscription Billing: Mayar — supports local Indonesian payment methods (QRIS, VA, credit cards, e-wallets) with native integration.

Refund & Cancellation Policy

  • Pro users can cancel anytime; access remains until end of the billing cycle.
  • Refund available within 3 days of first charge if no sessions were consumed.

8. Getting Started & Monorepo Development

Prerequisites

  • Node.js: v18+ and pnpm (npm i -g pnpm)
  • Python: v3.10+ (for apps/supertonic ONNX TTS microservice)
  • Supabase: PostgreSQL database with .env.local configured

Quick Start Commands

# Option A: Run via Docker Compose (All services in containers)
docker compose up --build

# Option B: Run locally via pnpm
pnpm install

# Start all applications concurrently (Landing, Dashboard, Backend, Supertonic TTS)
pnpm dev

# Run individual applications
pnpm dev:landing     # Astro Landing Page (http://localhost:4321)
pnpm dev:dashboard   # Candidate Dashboard (http://localhost:5173)
pnpm dev:backend     # Hono REST API Server (http://localhost:5005)
pnpm dev:supertonic  # Python Supertonic 3 TTS Server (http://127.0.0.1:7788)
pnpm dev:remotion    # Remotion Motion Graphics Studio

# Database Migrations
pnpm db:migrate      # Apply Supabase schema migrations

9. Success Metrics

Metric Description
Completion Rate % of users who finish a started mock interview
Repeat Engagement Number of mock interviews practiced per user
Performance Progression Average improvement score across multiple sessions
Confidence Rating Self-reported confidence score before vs. after practice

10. Documentation References

File Description
docs/PRD.md Full Product Requirements Document
docs/ERD.md Database Entity Relationship Diagram (ERD)
AGENTS.md AI Agent Rules, Philosophy, and System Context
apps/remotion/STORYBOARD.md Motion Graphics Storyboard & Video Script Breakdown

About

Turning every candidate's real ability into real career opportunities.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages