Project Info
Inspiration
Back in high school, Masaki had a stalker that wouldn’t leave him alone. Ever since then, a fear of women and dates has prevented him from finding a partner. To save him from such a lonely life, we created the rizzistant. It helps him through dates even if he’s extremely nervous and dumb. AND, we added a safe word so that if meets any more weirdly violent girls, it can create an excuse to make escape.
What it does
The Rizzistant is your live AI dating coach that listens in on your date through Omi's live transcription and delivers real-time feedback straight to your phone. It monitors the flow of conversation, detecting pacing, engagement, and overall interaction quality to help you adjust naturally in the moment. When it detects filler phrases like "yeah okay so…" or awkward pauses, The Rizzistant instantly sends you a conversation prompt tailored to the topic at hand, helping you recover smoothly and keep the dialogue engaging. If things take a turn for the worse, The Rizzistant's escape feature has you covered. By subtly working a pre-set code word into a sentence (editable via the "edit code word" command), it will trigger a fake phone call, giving you a seamless exit from the date. Afterward, The Rizzistant generates a comprehensive post-date report by scoring you across metrics like emotional awareness, conversational flow, engagement, humor, and chemistry. It also tracks your progress across multiple dates, analyzing where you've improved and where you still need work, helping you become smoother and more self-aware with every interaction.
How we built it
The Rizzistant is built on a FastAPI backend that processes live audio transcripts from the Omi wearable device. Real-time Analysis Pipeline: Omi captures conversation audio and streams transcription segments to our /livetranscript endpoint Each segment is accumulated and analyzed by Claude 3.5 Haiku for real-time feedback A smart deduplication system prevents spam by tracking previous warnings and context Multi-Model AI Architecture: Claude Haiku handles real-time feedback with low latency (max 1024 tokens) Letta creates persistent agents for each user, powered by Claude 3.5 Sonnet, enabling cross-date context and progress tracking Each Letta agent maintains conversation history and can reference previous dates when generating new summaries Voice Command Processing: Pattern detection identifies filler phrases like "yeah okay so..." to trigger contextual conversation tips Voice commands like "edit code word [word]" or "start date" are parsed server-side via regex Code word detection triggers the emergency exit sequence Emergency Exit System: Twilio API generates authentic phone calls using TwiML responses When the code word is detected in conversation, The Rizzistant immediately calls your phone, providing you with an excuse to exit the interaction Configurable phone numbers via voice commands for seamless personalization Data Persistence: In-memory session management for active dates Letta's memory blocks maintain user goals, patterns, and coaching context across sessions Omi's memory API archives date summaries with structured tags for external access
Challenges we ran into
The core challenge of The Rizzistant was building a context system that could provide intelligent, non-repetitive feedback both in real-time and across multiple dates. This required two distinct approaches to context engineering. For real-time analysis, we needed Claude to understand not just the current conversation, but also what warnings had already been sent to avoid notification spam. Early versions would repeatedly alert about the same problematic topic. To solve this, we pass both the full conversation transcript and the history of previous notifications with timestamps to Claude on every analysis call. For post-date analysis, the challenge was even more complex: we needed the AI to remember and reference all previous dates to track improvement. This is where Letta became essential. Letta creates persistent agents with memory blocks that store user goals, patterns, and coaching context across sessions. When generating a post-date summary, the Letta agent can use its conversation_search tool to query previous date transcripts and summaries. The result is a two-tier context system: Claude with explicit conversation + notification history for real-time advice, and Letta with persistent memory agents for cross-date analysis.
Accomplishments we're proud of
We're proud of building a genuinely helpful AI system that actually improves people's social awareness in real-time. By orchestrating multiple cutting-edge services, we created something that goes beyond surface-level "rizz tips" to provide personalized, longitudinal coaching. The system delivers actionable feedback fast enough to matter during live conversation, remembers your patterns across multiple dates to track improvement over time, and does it all with personality that makes the experience both effective and entertaining.
What we learned
We learned how to work with a bunch of cool AI technologies like Letta for persistent memory management and Claude for intelligent language processing, as well as backend technologies like FastAPI for building real-time APIs. Integrating Twilio for telephony and Omi for live transcription also gave us hands-on experience with multiple external services and how to orchestrate them into a cohesive system.
What's next
Better speaker detection to accurately differentiate between you and your date, ensuring feedback is based on the correct attribution of who said what. Beyond that, we want to implement multimodal real-time analysis that goes beyond just transcription to analyze tone, pacing, nervousness, speech cadence, or conversation dynamics to provide even more nuanced coaching.
The Rizzistant
A real-time date coaching assistant that monitors conversations and provides intelligent feedback using Claude AI.
Features
- Real-time conversation monitoring via live transcripts
- AI-powered analysis to detect conversation issues
- Smart warnings to help improve dating conversations
- Date session management (start/end)
- Post-date summaries with actionable tips
- Integration with OMI for memory storage
Prerequisites
- Docker installed on your system
- Environment variables configured (see below)
Environment Variables
Create a .env file in the project root with your actual credentials. You can use .env.example as a template.
Quick Start
Using Docker (Recommended)
-
Start Server
make devThe app will be running at
http://localhost:8000 -
Expose with ngrok (if running locally)
ngrok http 8000
API Endpoints
POST /livetranscript
Receives live transcript segments and provides real-time coaching.
GET / (root)
Health check endpoint.
Docker Commands
| Command | Description |
|---|---|
make build | Build the Docker image |
make start | Start the container (auto-stops existing) |
make stop | Stop the running container |
make logs | View container logs (follows output) |
make clean | Remove container and image |
How It Works
- Session Management: Users can start/end date sessions with voice commands
- Real-time Analysis: Each transcript batch is analyzed by Claude AI for conversation issues
- Smart Warnings: The system detects problematic topics (especially CS-related) and provides coaching
- Warning Deduplication: Prevents sending duplicate warnings for the same issue
- Post-Date Summary: Generates a comprehensive summary with tips after each date, WITH ACCESS TO PREVIOUS POST-DATE SUMMARIES AS WELL THANKS TO LETTA
Analysis
View
Metric
- 25
- 6
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
- AnthropicIn code
- FastAPIIn code
- PythonIn code
3 of 3 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
36 KB
Source files
10
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
MasakiAllwardt/the_rizzistant
15 files · 38 KB · @ 57ff75d
Structure
Interface
7 files · 47%Screens, components and styles rendered to the user.
Application logic
1 file · 7%Domain rules, services and shared utilities.
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
- Python95%
- Markdown5%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 7- anthropic
- fastapi
- letta-client
- python-dotenv
- requests
- twilio
- uvicorn[standard]
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.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.