👤 Epic 1 — Client Experience ($$$ Revenue Loop) 💬 Discovery & Trust Story 1: Blurred Profile Preview
- Given the visitor lands on the homepage,
- When they scroll the candidate grid,
- Then each profile loads with partial data (skills, stack, timezone, rate) but hides personal info and contact links. Story 2: Secure Visual Feedback
- Given trust badges (DocuSign, Stripe, SSL) are displayed,
- When they appear on screen,
- Then the user perceives safety and platform credibility. ⚖️ Legal Gate (MSA) Story 3: MSA Signing Flow
- Given the user clicks “Unlock Interviews,”
- When they complete the inline DocuSign MSA,
- Then a green checkmark appears and the MSA timestamp is stored in Supabase with client ID. Story 4: Unlock Confirmation
- Given the MSA is signed,
- When n8n verifies webhook success,
- Then the client’s dashboard unlocks and status = “Verified”. 🎯 Shortlisting & AI Curation Story 5: Shortlist Delivery SLA
- Given a client has signed an MSA,
- When a new role is active in Airtable,
- Then they receive an AI-curated shortlist within 48 h. Story 6: Feedback Loop
- Given a client finishes interviews,
- When they select 👍 / 👎 and tag reasons,
- Then data syncs to Supabase and updates the AI matching model. 📅 Interview Scheduling Story 7: Interview Sync
- Given a shortlist is visible,
- When a client books through Cal.com,
- Then the meeting is created in their calendar with automated reminders (24h, 1h). 💳 SOW & Payment Story 8: Payment Confirmation
- Given a client accepts a candidate,
- When they complete Stripe checkout,
- Then payment status = “Paid,” contract = “Active,” and onboarding checklist becomes available. Story 9: Invoice Storage
- Given a Stripe payment succeeds,
- When webhook fires,
- Then invoice PDF is saved to Supabase + Airtable record created. 🚀 Onboarding Story 10: Onboarding Checklist
- Given an engineer has a start date,
- When onboarding tasks (Access, Kickoff, Day 1) are checked,
- Then status bar progresses to 100 % and “Day 1 Confirmed” confetti triggers. 🔁 Renewal & Buyout Story 11: Renewal Toggle
- Given an active contract,
- When client toggles Auto-Renew,
- Then Stripe schedules recurring billing automatically. Story 12: Buyout Request
- Given a client is eligible for buyout (≥ 3 months),
- When they use the calculator and sign via DocuSign,
- Then Stripe charges the corresponding multiplier and contract = “Converted”.
🧑💻 Epic 2 — Candidate Experience (AI Screening) 🧩 Application & Interview Story 13: CV Parsing
- Given a candidate uploads a CV or LinkedIn,
- When AI parsing completes,
- Then profile fields (skills, stack, experience) populate automatically. Story 14: AI Interview Flow
- Given a candidate completes the async interview,
- When responses are processed,
- Then GPT scoring outputs Communication, Motivation, and Clarity metrics (0–100). 🎥 Synthesia Autogen Video Story 15: Video Generation
- Given the AI interview is completed,
- When Synthesia API runs,
- Then a 30 s AI video is generated and linked to their profile. Story 16: Video Approval
- Given the video is ready,
- When the recruiter approves it in Airtable,
- Then it becomes visible to clients in TalentQuote dashboard. 🧠 Scoring & Validation Story 17: Psychometric Scoring
- Given GPT processed answers,
- When all scores are above minimum threshold,
- Then icons (Confidence 💬, Empathy 💡, Clarity 🎯) appear in candidate card. Story 18: Skill Validation (Phase 2)
- Given a candidate completes HackerRank test,
- When result ≥ 70 %,
- Then “Verified Skill” badge appears in their profile. Story 19: Candidate Notification
- Given a candidate is shortlisted,
- When recruiter publishes the role,
- Then candidate receives automated WhatsApp or email notification.
👩💼 Epic 3 — Recruiter Operations (Airtable Ops HQ) Story 20: Role Sync
- Given a client submits a new position,
- When n8n automation runs,
- Then the role appears in Airtable under “Active Roles.” Story 21: Candidate Pipeline Update
- Given a recruiter moves a record from “Interview” to “Approved,”
- When status changes,
- Then shortlist auto-updates in client dashboard. Story 22: Video Tracking
- Given video status = “Pending,”
- When Synthesia completes,
- Then Airtable status auto-changes to ✅ Completed. Story 23: Shortlist Metrics
- Given candidates are viewed or hired,
- When events trigger,
- Then Airtable updates views, approvals, and conversion %. Story 24: Replacement Queue
- Given a client requests replacement within 30 days,
- When recruiter marks “Guarantee Active,”
- Then Airtable auto-fills “Replacement Needed” status and assigns recruiter.
💰 Epic 4 — Finance & Business Admin (Airtable Finance Ops) Story 25: Stripe Sync
- Given a Stripe event fires,
- When webhook triggers,
- Then Airtable creates/updates a “Finance Record” with client, amount, and status. Story 26: MRR Report
- Given monthly invoices exist,
- When admin runs “Generate Report,”
- Then total MRR is calculated and displayed (≈ $35 000 USD target). Story 27: Buyout Tracking
- Given a buyout payment completes,
- When webhook returns success,
- Then Buyout Ledger adds transaction + multiplier rate. Story 28: Overdue Alerts
- Given an invoice remains unpaid > 7 days,
- When status = “Overdue,”
- Then Slack alert is sent to Finance channel. Story 29: Margin Calculation
- Given bill rate and pay rate exist,
- When report runs,
- Then Airtable shows margin % per client.
🛠 Epic 5 — Product Support & Quality (Airtable Support Ops) Story 30: SLA Tracking
- Given a shortlist or onboarding exceeds SLA (48h / 7d),
- When n8n detects breach,
- Then Slack alert is sent to Support Team. Story 31: Feedback Logging
- Given client feedback (NPS or emoji) is received,
- When data syncs,
- Then Airtable updates “Satisfaction Score” and recalculates average ≥ 90 %. Story 32: AI Error Handling
- Given video or parsing fails,
- When system detects an error,
- Then record status changes to 🔴 Error and support ticket auto-created. Story 33: Client Risk Alerts
- Given churn indicators (low feedback, delays),
- When thresholds trigger,
- Then Airtable marks client as “At Risk” for follow-up.
🤖 Epic 6 — AI Automation Engine Story 34: Psychometric Loop
- Given new candidate data enters,
- When AI scoring completes,
- Then results sync with Supabase and update candidate cards instantly. Story 35: AI Learning Loop
- Given clients submit feedback,
- When clustering runs weekly,
- Then match accuracy improves ≥ 15 % per quarter. Story 36: Video Data Link
- Given a Synthesia video is approved,
- When it’s stored,
- Then metadata (duration, tone, language) is saved in Supabase for analytics.
🔐 Epic 7 — Legal & Payments Story 37: Contract Storage
- Given an MSA or SOW is signed,
- When DocuSign webhook fires,
- Then the signed PDF is stored in Supabase with timestamp + watermark. Story 38: Refund / Replacement Policy
- Given a client requests replacement within 30 days,
- When approved,
- Then new shortlist is generated at no cost and previous invoice stays active. Story 39: Payment Verification
- Given a Stripe transaction is completed,
- When webhook confirms,
- Then finance status = “Paid” and recruiter notified automatically.
🏢 Epic 8 — Agency Portal (Phase 2 Preview) Story 40: Agency Self-Onboarding
- Given a new agency signs up,
- When Stripe license (999 USD) is paid,
- Then portal access activates instantly. Story 41: Bulk Upload Automation
- Given a CSV or API upload,
- When AI tagging completes,
- Then each candidate card shows verified tags and pending video status. Story 42: Agency Analytics
- Given agency profiles generate hires,
- When conversion events occur,
- Then dashboard updates with total views, hires, and conversion %.
🚀 Epic 9 — Deferred Growth Features (Post-MVP) Story 43: WorkToken Minting
- Given a verified contribution (hire, referral, training),
- When AI validates event,
- Then 1 WorkToken is minted in ledger and linked to user ID. Story 44: AIcodex Integration
- Given developer improves through AIcodex training,
- When progress milestone achieved,
- Then updated “TalentScore” syncs to RemoteOps and TalentQuote.