Project Info
Inspiration
Around 79% of sales pitches fail, with every bad pitch costing companies millions in lost revenue. However, there isn't enough practice. Managers are too busy, role-play mocks are not entirely accurate to the real thing, and you only get one quick shot with a real prospect. What if there was a product that could mimic the exact prospect you'll be speaking too?
What it does
PitchLab generates a simulated prospect for you to practice sales pitches with based on your learning goals, company-specific data, and industry research. We use large language models (LLM) and AI agents to act autonomously on a company's messy, real-world data. After analyzing company sales data, we generate a simulated pitch call environment with an AI prospect. This AI prospect speaks to you in real time, and is catered based on the prospective company, the sales rep's learning goals, and company product suite
How we built it
We used NextJS, TypeScript, TailwindCSS, ReactJS for the front-end development. We used Go for the backend. Claude, ElevenLabs, and AI agents (similar to what Rox offers) create a perfect user prospect that sales reps can practice with. Here are the presentation slides! https://docs.google.com/presentation/d/1nO3dRgHFU7kB5YlKxWr52657JoPnywPV00_sTdDzK0Y/edit?usp=sharing
calhacks.12.0
Inspiration
Around 79% of sales pitches fail, with every bad pitch costing companies millions in lost revenue. However, there isn't enough practice. Managers are too busy, role-play mocks are not entirely accurate to the real thing, and you only get one quick shot with a real prospect.
What if there was a product that could mimic the exact prospect you'll be speaking too?
What it does
PitchLab generates a simulated prospect for you to practice sales pitches with based on your learning goals, company-specific data, and industry research. We use large language models (LLM) and AI agents to act autonomously on a company's messy, real-world data. After analyzing company sales data, we generate a simulated pitch call environment with an AI prospect. This AI prospect speaks to you in real time, and is catered based on the prospective company, the sales rep's learning goals, and company product suite
Analysis
View
Metric
- 10
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- GoIn code
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
6 of 6 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
205 KB
Source files
27
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Kevinxygu/calhacks.12.0
50 files · 487 KB · @ 49c9e2c
Structure
Interface
13 files · 26%Screens, components and styles rendered to the user.
API & routing
2 files · 4%Request entry points: routes, handlers and controllers.
Application logic
5 files · 10%Domain rules, services and shared utilities.
Data & schema
1 file · 2%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- YAML74%
- TypeScript16%
- Go8%
- Markdown2%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
backend/go.mod
go · 33- github.com/gin-gonic/gin
- github.com/joho/godotenv
- +31 more
frontend/package.json
npm · 20- @tanstack/react-query
- @tensorflow-models/face-detection
- @tensorflow-models/face-landmarks-detection
- @tensorflow/tfjs
- @tensorflow/tfjs-backend-webgl
- framer-motion
- lucide-react
- next
- react
- react-dom
- sonner
- zustand
- +8 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
AI persona generation via ClaudeVerified
Generate a simulated prospect persona based on learning goals, company-specific data, and industry research using LLMs
Claimed on readmehigh confidencebackend/internal/integrations/claude.go:28— GeneratePersona builds a prompt from role/company/difficulty/notes and calls the Anthropic Messages API, parsing the JSON persona from the responsebackend/internal/services/persona_service.go:23— PersonaService.GeneratePersona orchestrates the Claude call and returns a persona to the handlerbackend/internal/handlers/persona.go:24— POST /api/persona/generate endpoint wired to the service
Go backend for API layerVerified
Built with Go for the backend
Claimed on Devposthigh confidencebackend/go.mod— Go module defining the backendbackend/cmd/server/main.go:18— Gin HTTP server exposing /health and /api/persona/generate
Learning-goal and difficulty customization for the pitch scenarioVerified
Simulation is catered based on prospective company, sales rep's learning goals, and difficulty
Claimed on readmehigh confidencefrontend/app/page.tsx:16— Intake form collects prospectRole, companyName, callType, difficulty, and notesbackend/internal/integrations/claude.go:99— buildPersonaPrompt feeds role, company, difficulty, callType, and notes directly into the Claude prompt
Next.js/TypeScript/TailwindCSS/React front-endVerified
Built with NextJS, TypeScript, TailwindCSS, ReactJS for the front-end
Claimed on Devposthigh confidencefrontend/package.json— Lists next, react, tailwindcss, typescript as dependenciesfrontend/app/page.tsx:1— App Router page using 'use client' React components
Video call UI (camera, mic controls) for the practice sessionVerified
Implied by 'mock sales pitch calls' and 'speaks to you in real time' framing of the simulation experience
Claimed on readmehigh confidencefrontend/app/simulation/page.tsx:67— getUserMedia captures webcam/mic, with mute/video toggle buttons and a call timer wired to real state
Upload of previous client calls for analysisCode-supported
Implied by 'company-specific data' input and the 'Previous client calls' upload field on the intake form
Claimed on readmehigh confidencefrontend/components/FileUpload.tsx:13— FileUpload component lets a user select an mp3/mp4/mov file and calls onChange(file), but the file is only kept in local component statefrontend/app/page.tsx:93— Home page renders FileUpload with setUploadedFile as onChange, but uploadedFile is never sent to the backend or referenced elsewhere in handleSubmit
Voice greeting via ElevenLabsCode-supported
The AI prospect speaks to you (voice synthesis via ElevenLabs)
Claimed on readmemedium confidencebackend/internal/integrations/elevenlabs.go:28— GenerateGreeting builds a short greeting line and calls ElevenLabs text-to-speech, returning a base64 audio data URIfrontend/app/simulation/page.tsx:43— Simulation page plays the one-shot greeting audio once on load via an <audio> element
AI agents acting autonomously on company data (Rox-like agent behavior)Claimed only
AI agents (similar to what Rox offers) act autonomously on a company's messy, real-world data
Claimed on Devposthigh confidenceAnalysis of company's real-world sales data / industry researchClaimed only
Analyzes a company's messy, real-world sales data and industry research to build the persona
Claimed on readmehigh confidencePost-call coaching feedback with scores, strengths, weaknesses, suggestionsClaimed only
Implied product flow: practice call followed by structured feedback ("learn, practice, and apply"); enableCoaching toggle exists on intake form
Claimed on readmehigh confidenceReal-time two-way voice conversation with AI prospectClaimed only
This AI prospect speaks to you in real time (implying an ongoing back-and-forth pitch call, not a single greeting)
Claimed on readmehigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.