A matching engine that pairs students with faculty mentors based on research interests. It combines exact matching, semantic similarity, and departmental alignment to find the best-fit advisors.
The science faculty had dozens of active researchers across multiple departments, each with their own specializations, ongoing projects, and openings for student collaborators. But students had almost no way to discover who was doing what. Faculty profiles lived on scattered departmental pages, some outdated, some missing research interests entirely, and there was no centralized way to search or browse by topic. A student interested in computational biology had no idea that three professors across two departments were actively publishing in that space.
The informal process wasn't much better. Students relied on word-of-mouth, asked classmates who they'd worked with, or cold-emailed professors based on a course they'd taken, hoping for a match. Advisors tried to broker introductions, but they couldn't keep track of every faculty member's current research focus across every department. Well-connected students found mentors easily. Everyone else, especially those new to the program or from underrepresented backgrounds, was left navigating alone.
The department knew this was costing them. Research participation numbers were flat despite growing enrollment, faculty were getting irrelevant requests from students who didn't understand their work, and promising students were slipping through the cracks. What they needed wasn't another static directory. They needed a system that could understand what a student was interested in and match them with the right mentor, even if the student didn't know that mentor existed.
Students didn't know which professors did what research. Faculty profiles were incomplete, outdated, or buried across department websites with no unified search.
Research interest matching depended on personal connections and hallway conversations. Well-connected students found mentors; others were left on their own.
Research interests, publications, and lab openings were fragmented across department websites with no consistent format, so cross-department discovery was impossible.
Students in large programs couldn't find mentors. The bigger the faculty, the harder it was to find who matched their interests without a real way to search.
We built a web scraping pipeline to crawl departmental faculty pages and pull out names, titles, research interests, lab affiliations, publication keywords, and profile photos. The scraper handled inconsistent page structures across departments and normalized everything into a unified faculty index in MySQL with full-text search and structured research interest tags.
We developed three matching strategies: exact keyword matching for precise term hits, semantic similarity scoring using NLP to catch related concepts (so "machine learning" matches "neural networks"), and departmental alignment to factor in administrative proximity. Each algorithm produces a weighted score, and the final ranking blends all three to find the most relevant faculty matches.
We created a guided input flow where students describe their research interests in natural language, select from predefined topic tags, and optionally specify department preferences. The interface works for students who know exactly what they want ("computational genomics") and those exploring broadly ("something with data and biology"). Both feed into the matching engine the same way.
The results page ranks matched faculty by composite score, showing match percentage, which algorithms contributed, and a preview of each professor's research focus. Each result links to a full faculty detail page with photo, bio, publications, current projects, and contact information. Students get everything they need to make an informed outreach decision.
If your faculty profiles are scattered across department pages, students are cold-emailing the wrong professors, and research participation is flat despite growing enrollment, there's a better way to connect people. Let's talk about what a matching engine could look like for your institution.
Start a ConversationThree matching strategies work in parallel: exact keyword hits, semantic similarity for related concepts, and departmental alignment. These blend into a single composite score that ranks the best-fit faculty mentors.
An automated scraping pipeline crawls departmental pages to extract faculty names, titles, research interests, lab affiliations, and profile photos. It normalizes inconsistent formats into a unified, searchable index.
Faculty research areas are parsed, tagged, and indexed with full-text search and semantic embeddings. A student searching "machine learning" will also find professors working in "deep learning," "neural networks," and "AI."
A guided input flow lets students describe interests in natural language, select from topic tags, and set department preferences. It works whether a student knows exactly what they want or is still exploring.
Results are ranked by composite match percentage, showing which algorithms contributed to the score. Students see at a glance why each professor was recommended and how strong the alignment is.
Students can filter matches by department to narrow results, or leave it open to discover cross-departmental researchers they'd never have found through a single department's website.
After a student submits their research interests, the results page shows ranked faculty matches with composite scores, breakdowns of which algorithms contributed, and preview cards with each professor's photo, department, and research areas. Everything is sortable and filterable.
Each matched faculty member has a dedicated detail page with their full bio, profile photo, current research projects, publication keywords, lab affiliations, and contact information. Students get everything they need to write a relevant outreach message.
The guided input interface lets students describe their interests through natural language text, clickable topic tags, and department selectors. All inputs feed into the matching engine to produce personalized results.
The first version used only keyword matching, and the results were technically correct but painfully narrow. A student searching "artificial intelligence" wouldn't see professors working in "reinforcement learning" or "computer vision." Adding semantic similarity turned the tool from a glorified search bar into something that could actually make connections students wouldn't have thought to look for.
When I first launched without faculty photos, students treated the results like a database query, scanning names and clicking away. Adding profile photos changed the whole feel. Students started browsing longer, reading full profiles, and actually reaching out. It seems small, but putting a face to a name turned a tool into an introduction.
Every department's website had a different structure, different naming conventions, and different levels of completeness. Some pages listed research interests in bullet points, others buried them in paragraph-long bios, and a few had no research section at all. Building a scraper flexible enough to handle all of these edge cases took longer than building the matching engine itself, but without clean data, no algorithm can save you.
If your students are still relying on word-of-mouth to find research mentors while faculty profiles sit scattered across department pages, I've already built the system that fixes this. Let's talk about what a faculty matching engine could look like for your institution.
No pitch. No pressure. Just a conversation about what might work.