Inspiration

Our inspiration came from our own struggles with finding compatible hackathon teammates. It’s a tedious, time-consuming process to figure out who will actually respond, and we often wasted time reaching out to inactive users. On top of that, coordinating across time zones made collaboration even harder, slowing team formation and reducing the chances of finishing a project.

What it does

HackMatch helps hackathon participants find reliable teammates by matching users based on 2 things: 1. shared interests and goals and 2. complementary skills and roles. Using mutual swipes as an activity signal, it prioritizes engaged users, also enabling both 1 on 1 and team chats so teams can collaborate without losing individual connections.

How we built it

We vibe-coded the app using Lovable to scaffold the React and TypeScript frontend (Vite, Tailwind CSS, shadcn/ui with Radix UI, and Lucide icons), then iterated directly in the codebase with Claude Code to add team-based chat functionality, structured onboarding fields, and improved matching logic. App state is managed with React Context, and a custom matching algorithm, which is enhanced by the Google Gemini API, generating compatibility scores from user profiles. This workflow let us move quickly while still making intentional product and technical decisions during the hackathon.

Challenges we ran into

Our original idea was to track user activity on Devpost to identify inactive accounts, but this would have required admin level access, which wasn’t feasible within the hackathon timeframe and resources. Given the constraints, we pivoted to using mutual swipes as an activity signal. If two users actively swipe and match, it indicates both are engaged, increasing the likelihood of successful teaming and therefore project completion.

Another key challenge was designing a matching system that reflects how hackathon teams actually work. We needed to balance similarity and complementarity by matching users with shared interests/goals, while also encouraging complementary skills in a team. Translating this into an AI-driven scoring system required careful weighting, precise prompting, and multiple iterations into Claude. We also built a deterministic fallback algorithm to ensure reliable, realistic match scores under hackathon constraints.

Accomplishments that we're proud of

It was both of our first ever hackathon, so being able to produce a fully functioning product was already crazy to us. Finding teammates can be tediou, so teammates also had our parents try it out, and got positive feedback, it was like a game, super easy to use regardless of age

What we learned

Coming in without a formal coding background, we learned how to leverage AI tools to quickly build something functional and useful under tight time constraints. Beyond vibe coding, we deepened our understanding of how to connect real APIs, using Gemini as a real-world example, and how to deploy and iterate on a live product with tools like Vercel. Most importantly, we learned that building solutions around problems we personally experience leads to more thoughtful, practical products.

What's next for HackMatch

We’d like to refine how we identify active, reliable users by exploring Devpost and GitHub activity signals to better infer engagement. We also plan to improve the matching system by incorporating additional preferences such as time zone proximity and gender preferences where appropriate. Beyond the product itself, we hope to move from demo profiles to real users by partnering with college hackathons, since we’re college students ourselves. Ultimately, we want HackMatch to help lower the barrier to entry for beginners, encouraging more young people to start coding by making team formation less intimidating.

Built With

  • framermotion
  • geminiapi
  • lucide-react
  • react-context-api
  • react18
  • shadcn/ui
  • tailwind-css
  • typescript
  • vercel
  • vite
Share this project:

Updates