👤 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.