Inspiration
Choosing professors right now is honestly pretty random. Most students rely on RateMyProfessors, Reddit, or friends, but those sources aren’t personalized and don’t reflect what each student actually wants. Some people want an easy GPA, others want to really learn, and others care about career opportunities. We wanted to build something that actually adapts to those differences.
What it does
ProfessorMatch recommends professors based on a student’s goals. Users can choose between things like GPA-focused, learning-focused, or career-focused modes, and the system ranks professors accordingly. Instead of just showing ratings, it explains why each professor is recommended and also includes LinkedIn insights for career relevance.
How we built it
We built the system in Python with a Streamlit frontend. The core is a custom recommendation engine that evaluates professors across multiple dimensions like difficulty, clarity, workload, fairness, and career relevance. We combine data from RateMyProfessors, LinkedIn, and course information into a single scoring system and generate personalized rankings.
Challenges we ran into
One of the main challenges was dealing with inconsistent data across sources. RateMyProfessors and LinkedIn provide very different types of information, so combining them into a unified system took effort. Another challenge was making sure the recommendations felt meaningful while still keeping the system explainable.
Accomplishments that we're proud of
We built a full system that actually feels useful, not just a prototype. The recommendations are personalized, the reasoning is clear, and the UI makes it easy to understand the results. We’re especially proud of making the system explainable instead of a black box.
What we learned
We learned how to design around user intent instead of just raw data. We also improved at structuring systems, handling messy data, and building something that balances technical depth with usability.
What's next for Professor Match
Next, we want to integrate real-time data instead of mock data, improve the recommendation logic, and add deeper personalization based on user behavior. Long term, we want to expand this into a full academic planning tool.
Log in or sign up for Devpost to join the conversation.