Argument Arena - Startup Style - AI Tinkerers - New York City Hackathon
AI Tinkerers - New York City
Hackathon Showcase

Argument Arena - Startup Style

Refine your startup’s fundability by stress-testing ideas with VCs, CFOs, and users on our collaborative, community-driven platform.

1 member Watch Demo

Startup Jury AI — Project Documentation

Overview

Startup Jury AI (codename: Argument Arena) is an interactive web application that simulates a startup pitch panel. A founder describes their startup idea, and a panel of 8 AI-powered expert personas debate the idea across up to 4 rounds. After each round the founder can respond to the panel’s questions and challenges. At the end, each panelist scores the idea using their own weighted criteria, and a Consensus Judge delivers a final GO / MAYBE / NO-GO verdict.


Tech Stack

Layer Technology
Framework React 18 + Vite
Language TypeScript
Styling Tailwind CSS + shadcn/ui (Radix UI primitives)
Routing React Router DOM v6
Server state TanStack React Query
AI runtime Supabase Edge Functions (debate-ai)
AI assistant CopilotKit (React Core + UI)
Memory Redis via useRedisMemory hook (with mock fallback)
Video clips Tavus via useTavusClips hook
Voice input ElevenLabs React SDK
Forms React Hook Form + Zod
Animation Framer Motion
Backend / DB Supabase (PostgreSQL + Edge Functions)
Testing Vitest + Testing Library

Application Flow

Setup → Debating (rounds 1–3) → Final Ratings (round 4) → Judge Verdict  

Phases

Phase Description
setup Founder enters their startup idea and selects panelists
debating Panelists respond in up to 4 rounds; founder responds after each round
final-ratings Round 4 — each panelist scores the idea with weighted metrics
judge Consensus Judge aggregates scores and delivers a structured verdict

Debate Rounds

  • Round 1 — Each panelist reacts to the raw idea (≤ 100 words each).
  • Rounds 2–3 — Panelists react to each other and the founder’s response (≤ 75 / 50 words).
  • Round 4 (Final Ratings) — Panelists give a verdict and a scored breakdown using their individual weighted rubrics.
  • Judge — A neutral Consensus Judge aggregates all scores into a GO / MAYBE / NO-GO verdict.

After each round (except the last), the founder can type or speak a response to the panel before triggering the next round. An Auto-Debate mode can automatically generate a simulated founder response, allowing the full debate to run without any user input.


AI Personas

All 8 personas are defined in src/data/personas.ts. Each has a unique character, scoring rubric, and system prompt.

Persona Role Scoring Weights
Alex Ventura Angel Investor Grit 40%, Timing 30%, Upside 30%
Jordan Reyes VC Partner TAM 35%, Moat 30%, Team 20%, Exit 15%
Sam Rivera Power User Pain 40%, BeatComps 30%, Retention 20%, UX 10%
Taylor Kim COO / Operator MVPSpec 35%, Resourcing 25%, GTM 25%, Complexity 15%
Riley Novak Skeptical Pessimist Competition 40%, Regs 30%, Timing 20%, Swans 10% (inverse score)
Casey Patel Financial Analyst LTV 30%, Growth 25%, Breakeven 25%, SAM 20%
Morgan Lee Industry Insider WorkflowFit 40%, Gatekeepers 30%, Regs 20%, Disruption 10%
Phoenix Quinn Product Visionary Roadmap 35%, Narrative 30%, Platform 20%, Wave 15%

Inverse scoring: Riley Novak (Skeptic) scores the risk level of an idea. A raw score of 10 means extremely risky; the system inverts it (10 - score) for the final tally.


Verdict Thresholds

Score Verdict
8.0 – 10.0 GO
6.0 – 7.9 MAYBE
0.0 – 5.9 NO-GO

Key Source Files

File Purpose
src/pages/Index.tsx Main page — orchestrates all phases and state
src/types/debate.ts Core TypeScript interfaces (Persona, Round, DebateState, etc.)
src/data/personas.ts All 8 persona definitions and system prompts
src/lib/ai.ts AI generation functions (rounds, ratings, judge verdict, auto-response)
src/hooks/useDebateAgentState.ts CopilotKit integration — exposes debate state to the AI agent
src/hooks/useRedisMemory.ts Per-session persona memory via Redis (mock fallback available)
src/hooks/useTavusClips.ts Tavus video clip generation per round
src/integrations/supabase/client.ts Supabase client configuration
src/App.tsx App root — CopilotKit, QueryClient, Router setup

Key Components

Component Purpose
src/components/DebateTable.tsx Displays panelist responses for the current round
src/components/RoundTimeline.tsx Round navigation bar and progress indicator
src/components/UserResponsePanel.tsx Founder text response input between rounds
src/components/VoiceInputButton.tsx ElevenLabs voice-to-text input for the founder
src/components/RatingsOverview.tsx Final-round scores and metric breakdowns
src/components/JudgeVerdictCard.tsx Displays the Consensus Judge’s GO/MAYBE/NO-GO verdict
src/components/HostVideoPlayer.tsx Tavus-generated video clip player per round

Getting Started

Prerequisites

  • Node.js ≥ 18
  • A Supabase project with:
    • debate-ai Edge Function deployed
    • copilotkit Edge Function deployed
    • Environment variables set

Environment Variables

VITE_SUPABASE_URL=https://your-project.supabase.co  
VITE_SUPABASE_ANON_KEY=your-anon-key  

Install and Run

npm install  
npm run dev  

Other Scripts

npm run build      # Production build  
npm run preview    # Preview production build  
npm run lint       # ESLint  
npm test           # Run tests (Vitest)  
npm run test:watch # Watch mode tests  

AI Architecture

All AI calls flow through src/lib/ai.ts via the callCompletion helper, which invokes the debate-ai Supabase Edge Function. That function forwards prompts to a Claude model and returns the completion.

Prompt Strategy

  • Each persona has a distinct systemPrompt defining their character, priorities, and scoring rubric.
  • Industry keywords in the idea (e.g., “fintech”, “health”, “saas”) are auto-detected and injected into prompts.
  • Word limits shrink each round (100 → 75 → 50 words) to keep debates focused.
  • Memory: each persona accumulates notes across rounds via Redis, enabling continuity.

CopilotKit Integration

The debate state is published to CopilotKit via useDebateAgentState, allowing a CopilotKit agent to observe the live debate and emit AgUI events (e.g., user_response). The runtime endpoint is the copilotkit Supabase Edge Function.

AI Tinkerers Anthropic Betaworks Lovable Redis Tavus tried Copilot but couldn't get it to work sadly