Inspiration

Attending a hackathon on Valentine’s Day is kind of a cruel joke. While everyone else is booking dinner reservations, we’re debugging APIs. Although there are already AI interview prep tools to help us bag the next internship, what if there was an AI-powered communication practice platform to help get a Valentine instead? Whether it be confessing your love, asking someone out, or even setting some boundaries, Valentine’s season brings up a lot of conversations people want to have but don’t always know how to carry out. Thus, we created Cuepid.

What it does

Cuepid lets you practice realistic conversation scenarios (dating, friendships, conflict resolution) with an AI chatbot via text or voice, then provides detailed feedback on your communication skills, including tone analysis and performance metrics. A RAG pipeline built from three foundational books on human communication and affection helps generate a list of actionable, research-backed feedback points. Furthermore, your progress is tracked through a gamified profile system that monitors your XP and level, identifies your strengths and weaknesses, and visualizes your communication skills on a radar graph.

How we built it

Cuepid is built as a full-stack Next.js 16.1.6 app with React 19+, TypeScript, and Tailwind CSS for the frontend, featuring custom CSS animations and Next.js image optimization. The backend uses Next.js API routes to handle conversations, user management, and analytics, powered by Google Gemini’s 2.5 Flash for AI conversation simulation and analysis, ElevenLabs for voice chat capabilities, and MongoDB for persistent storage of user profiles, XP progression, and conversation history. The UI includes Recharts for radar chart skill visualization and analytics dashboards, with PostCSS processing for advanced CSS features.

Challenges we ran into

  • API rate limits: At first, we often ran into errors due to the chatbot’s frequent calls, causing the AI to stop responding. To deal with this issue, we added rate-limit handling, cut down on unnecessary calls, and researched different models to find the one that could balance quantitative and qualitative needs of a casual chatbot.

  • Speech: We used ElevenLabs to integrate voice mode from text to speech (and vice versa) so users can practice real conversation skills such as speed, delivery, and tone. There were difficulties making the voice sound natural, deciding how or when the AI should shift its tone, and how to best simulate a helpful practice environment for the user. Ultimately, we iteratively tweaked the numerical parameters of the voices until they sounded more human.

Accomplishments we're proud of

  • Retrieval-Augmented Generation (RAG): We built a resource-backed assistant by curating three foundational books on human communication and affection, chunking them into structured JSON, embedding them using OpenAI’s embeddings API, and retrieving the most relevant principles at inference time to ground feedback for users. This allows us to deliver more objective, research-based coaching on something as subjective as human communication.

  • Proper Git Etiquette: Although most of us had used git in previous hackathons, our experience mostly consisted of risky and messy merges and pushes to the main branch. This time, we decided to split our work cleanly into three branches: frontend, backend, and RAG. We also ensured that we were committing with proper messages and at frequent intervals to avoid losing progress. Thus, during this entire project, we avoided merge conflicts entirely and steadily built up our final product.

  • UI/UX: We wanted to focus on the importance of human connection by using AI to help others connect rather than provide a shortcut around these essential interactions. To show this, our website has a simple but also cute interface for ease of use. We also used hand-drawn icons, designed the website layout, and found our own fonts for a unique and refreshing site that reminds the user of the importance of human creativity and interaction.

What we learned

  • Constructive feedback in social contexts: We were careful not to frame our product as a strict teacher. Everybody expresses themselves differently, and thus there is no authoritative and universal right or wrong when talking to someone. Ultimately, the point of our technology is to guide the user in a direction that will likely benefit them instead of outright telling them what to send (which is why we call it a wingman/buddy).
  • AI is a tool for growth: a strong understanding of software frameworks is still necessary to produce a cohesive, efficient, and effective final product. We chose this topic because we believe that overuse of technology harms our ability to communicate in the long run. While AI helped a lot with tedious portions of the development process, we still relied on our own skills and eventually learned new ones thanks to gaps that AI creates.

What’s next

  • Refine and expand the RAG layer with more curated and modern resources on expressing affection, proper communication, and conflict resolution.
  • Expand scenarios to workplace conversations, interviews, and casual small talk
  • Implement more game aspects such as leaderboards and daily check-ins that would improve user experience and enjoyment
  • Encourage connection and community by allowing users to practice with and encourage each other
  • Improve user experience by generating more detailed reports and showing entire chat history in analysis page
  • Include lesson-style guides and tutorials for less confusion on the user’s end

Built With

Share this project:

Updates