Inspiration

Most people will agree that interviews are extremely stressful. It’s a high stakes environment where a new job could be on the line. For people who have neurological disorders, or nonnative speakers, this pressure can make it even harder for them to nail the interview, and create a barrier for them in the job market. CapyConnect is aimed to give candidates and interviewers the tools they need to reduce bias and make interviews a more inclusive opportunity for everyone.

What it does

CapyConnect curates a more accessible interviewing experience by:

  • offering customizable features for online calls
  • Automatic captions that highlight key words
  • Pop up window that keeps track of main and follow up questions
  • Website that tracks interviews and gives suggestions for unclear or misleading questions

How we built it

CapyConnect is built as a TypeScript monorepo with a Next.js web app, a Chrome Manifest V3 extension, and a small WebSocket relay server. The web app uses React, Next.js App Router, Tailwind CSS, and Supabase for authentication and data storage. The Chrome extension is built with React, Vite, CRXJS, and Chrome Extension APIs including storage, tabs, scripting, and activeTab.

For live interview support, we use the browser Web Speech API for speech recognition and a Node.js relay server with the ws WebSocket library to sync questions, captions, and room events between devices. The project also includes shared internal packages for UI components, shared types, Supabase helpers, and Gemini prompt/client utilities.

Challenges we ran into

One of our earliest challenges was data persistence. We initially relied on local cookies to store user data, but this led to inconsistent and stale information being displayed across sessions. To solve this, we transitioned to using Supabase and reworked our data layer to migrate from locally stored SQLite-based logic into a centralized backend system. Another major challenge was enabling real-time synchronization between the interviewer and candidate extensions. Our first approach involved sharing a hotspot so both devices could share the same IP address, but we ran into compatibility issues (particularly with macOS devices not behaving consistently across environments). We spent significant time troubleshooting network barriers, including macOS firewall restrictions and connection issues, before ultimately implementing a more reliable solution using shared room codes and routing both clients to a single server port. On a broader level, we also challenged ourselves with an ambitious feature set. CapyConnect aimed to deliver accessibility tools, real-time interaction syncing, and bias-aware interviewer support all within one platform. Balancing scope with execution required long hours of iteration and late-night debugging, but it ultimately pushed us to deliver a more complete and meaningful product!

Accomplishments that we're proud of

We’re proud that we were able to take a very ambitious idea and turn it into a fully working, end-to-end system connecting both a web app and a Chrome extension in real time. Building a synchronized experience between interviewer and candidate devices was a major technical milestone that required careful coordination between the frontend, extension, and backend.

We also successfully implemented real-time accessibility features like live captions and structured question tracking using the Web Speech API, which allowed us to meaningfully improve the interview experience rather than just simulate it.

Another key accomplishment was designing a unified architecture with a TypeScript monorepo, shared packages, and a WebSocket relay server. This helped us keep the web app, extension, and backend tightly integrated while maintaining scalability and clean separation of concerns.

Finally, we’re proud that we pushed through significant scope and technical challenges (especially around synchronization, backend migration, and extension constraints) to deliver a polished prototype that reflects our original vision for making interviews more accessible and inclusive.

What we learned

We learned how to build and connect a full-stack system using a TypeScript monorepo, Chrome extension, web app, and WebSockets for real-time communication. We also gained experience implementing accessibility features like live captions with the Web Speech API and designing with neurodivergent users in mind. Most importantly, we learned how to manage scope, troubleshoot cross-device issues, and prioritize features to turn an ambitious idea into a working product.

What's next for CapyConnect

We want to continue improving CapyConnect’s real-time interview syncing and expand its accessibility features to create a more seamless and supportive interview experience for both interviewers and candidates.

Future plans include:

Improved caption accuracy and smarter real-time transcription More customizable interview settings for both candidates and interviewers Enhanced feedback on interview questions, including clearer bias detection Deeper integration with major video interview platforms Support for larger-scale, real-world hiring and recruitment use cases

Our goal is to make interviews more accessible, fair, and less stressful for everyone, especially individuals in neurodivergent communities or those with learning disabilities. And like capybaras, we believe the best systems are calm, gentle, and quietly supportive under pressure.

https://github.com/zochen/VenusHacks2026

Built With

Share this project:

Updates