Inspiration
College is full of moments where you feel completely alone: transferring to a new campus, burning out mid-semester, navigating dating, housing, or just not knowing who to talk to. Existing resources either feel too heavy (counselors) or too impersonal (forums and Reddit threads).
The most helpful person for a struggling student is almost always another student who has been through the exact same thing. PeerPath was built to make that connection happen: quickly, warmly, and without awkwardness.
What it does
PeerPath is a web platform that matches students going through a hard moment with peers who have lived through something genuinely similar.
Peer Matching:
- Students describe their situation in their own words and select relevant tags (e.g. "transfer student", "burnout", "housing stress")
- PeerPath analyzes the description and finds peers whose past experiences best match the student's context, emotional state, and the kind of support they need
- Returns the top 3 matches, each with a clear explanation of why they were chosen
Conversation Starters:
- Every match comes with an AI-generated opening message, which is personal, warm, and ready to send
- Designed so reaching out never feels awkward or forced
In-App Messaging:
- Students can message matched peers directly without exchanging contact info upfront
- Full chat history and unread notifications included
How we built it
Technology Stack:
- Backend: Python + FastAPI pipeline integrating GPT-4o for natural language understanding and semantic matching
- Frontend: React + TypeScript + Tailwind CSS, designed as a clean single-page experience built for vulnerable moments
- Database: PostgreSQL for user accounts, profiles, and chat threads; JWT-based authentication
Key Implementation Details:
AI Matching Pipeline: Student descriptions are parsed by an LLM into structured dimensions — situation context, struggle type, emotional tone, and type of help needed — then scored against peer profiles using a combination of rule-based field matching and LLM semantic reasoning.
- Scoring Algorithm $$S_{\text{final}}(p)=S_{\text{field}}(p)+S_{\text{llm}}(p)+10\cdot\frac{|T_{\text{student}}\cap T_p|}{|T_{\text{student}}|}$$ The final score combines structured field matching, LLM semantic similarity, and a tag overlap bonus, so peers with both similar contexts and similar experiences rank higher.
Two-Stage Ranking: Fast rule-based scoring runs across all candidates first; LLM reranking is applied only to the top candidates, keeping response times low without sacrificing quality.
Conversation Starter Generation: A dedicated LLM prompt grounds each opening message in the specific peer's past experience and the match reason, making every starter feel genuinely personal.
Challenges we ran into
LLM Cost vs. Performance Trade-off: Our initial plan was to use LLM reasoning for every candidate comparison, but this proved too token-heavy and expensive at scale. We designed a two-stage scoring algorithm — fast rule-based field matching for all candidates first, with LLM semantic reasoning applied only to the top finalists.
Structured LLM Output for Downstream Scoring: For the similarity scoring to work, the LLM needed to return data in a consistent, structured format — not free-form text. We had to carefully design prompt templates with a fixed output schema so the parsed challenge profile could be reliably consumed by the scoring pipeline in the next step.
Matching Latency and User Experience: The multi-step matching pipeline introduced noticeable loading time. Rather than hiding it, we leaned into it — designing a loading screen with rotating micro-messages to set honest expectations and keep users engaged while results are being generated.
Scope Expansion Mid-Build: Starting with a single matching page, we quickly realized users needed a way to revisit past results — leading us to design and build a full match history system with persistent storage.
Accomplishments that we're proud of
- A matching system that understands emotional context and lived experience, not just keyword overlap
- Conversation starters that students actually want to send
- A complete end-to-end product built at a hackathon: registration, profiles, matching, messaging, and history
What we learned
The algorithm is only half the product. How a match is explained, and whether the opening message sounds human, determines whether a student actually reaches out. Getting the tone right mattered just as much as getting the ranking right. We also realized that user experience is critical: clear explanations, intuitive design, and a friendly interaction flow can significantly increase the likelihood that students actually use the match and reach out.
What's next for PeerPath
- Anonymous matching — matched peers can choose to stay anonymous, keeping their personal information hidden until they feel comfortable sharing
- University email verification — requiring a
.eduemail (e.g.umich.edu) to ensure the platform stays within the student community - Custom tags — letting students search, create, and contribute their own tags beyond the preset list, so the platform can grow to cover every kind of college experience
- AI navigation agent — an in-app assistant that helps students navigate the platform, answers common questions, and provides guidance powered by curated campus resources and support data
- Smarter ranking over time — fine-tuning matching weights based on real outcome data, and factoring in peer account activity so students are more likely to be matched with someone who will actually respond
- User feedback and data expansion — bringing more students onto the platform early, collecting feedback and interaction data to expand the database, and using machine learning to continuously refine the scoring algorithm and improve match quality
Built With
- fastapi
- json
- openai
- postgresql
- python
- react
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.