
Try it #
This is an experiment. I'm running it with budget-limited API keys. Please be considerate and don't abuse it. Give it a try, once or twice, but when the budget is exhausted, it won't reset until next month.
Open Source Repository If you want to use this at scale for a large set of faculty, you can use the codebase here with your own API keys, and adapt it to evaluate large batches of faculty as I did with the original, but the example hosted here is limited to a single faculty profile to avoid budget blowout. For the moment I leave that as an exercise for the reader.
Why does this exist? #
There is a major problem with the PhD application process in that the search space is enormous. There are many potential advisors to consider, and to do a comprehensive search is essentially impossible, even when one has a specific research focus.
The issue lies in the fact that for some specific research interest, there is only a small number of professors working in that area that know the specifics of that sub-field, and thus have a good understanding of who is doing what type of work in that area. Unless you already know a professor working in that sub-field, you will have a difficult time finding the other people working in that sub-field.
Thus, in my attempt to narrow my focus to people closely related to my research interests, I built a multi-agent system to deep-research large batches of professors and evaluate research fit. I originally built this purely for my own use which I ran against many hundreds of researchers across several dozen institutions. I then manually reviewed in depth a large fraction of those faculty, with a tighter focus on the top scoring members as identified by the system. This tool exists as a jumping off point, not an answer, but when confronted with a faculty page with 50 or 100 researchers, each with a personal website outlining their research interests and many dozens to hundreds of publications, even a cursory review of each person's work is a major undertaking. That is not to say that with this tool it was easy or quick, it was still a monumental effort, but I felt this made the process tractable by collapsing that enormous search space into something I could encapsulate in my head and make sense of.
That answers why this exists, but not what it does or how it works.
What it does #
The system uses a description of your research interests distinct but related to your statement of purpose. I originally built a version I used from my own statement of purpose and several other research interest related artifacts (bios, papers I was inspired by, etc.), and several rounds refinement through interview style conversations with a frontier model. I designed the process as a interview to elicit more information about what I was looking for in a PhD advisor, research direction, methodological fit, etc. as these ideas exist in our heads, but often times we don't stipulate them simply because we don't think about them explicitly.
It was actually quite reminiscent of the Anthropic Interviewer system that I tried in early December, but mine was a more haphazard version I'd thrown together before encountering that system.
Originally, it worked by scraping a CSV from faculty pages of university websites for the computer science and information science programs to create a list of professors for the multi-agent system to evaluate. The multi-agent system would then do a series of websearches with several scoring goals in mind, with a heavy weighting toward research fit as guided by the research interest document I had created, as well as looking for other factors like explicit recruiting statements.
This new version that I am open sourcing is much more stable and well put together than that original system, as well as being much more comprehensive.
The new system does the following: #
- You provide a document of your research interests (example at bottom) and a single faculty profile URL to evaluate
- The system extracts relevant information from the faculty profile page and creates a
FacultyPageExtractionobject with all the relevant links and information contained on that page (Google Scholar, Semantic Scholar, personal website, etc.) - The system then scrapes the Google Scholar profile for the professor and extracts all publications within the last 4 years up to 100 papers and creates a
ScholarPaperResultsobject with all the relevant paper metadata (title, authors, venue, year, pdf url, abstract, citation count, etc.) - This data is then passed to a
Downselectoragent which scores each paper on a combination of factors (SOP alignment, impact, recency) and selects the top 5-10 papers to review with a heavy emphasis on SOP topic and methodological fit - The
Downselectoragent then calls aPaperReviewagent (Gemini 3 Flash in this case) to review each of the selected papers in full from the PDF directly and generate aPaperReviewobject with a summary of the paper with a particular focus on alignment with the user's research interests. Highlighting topics and methods that are relevant to the user's research interests, as well as any particular parts of the paper that are exceptionally relevant to the user's research interests. - At the same time, a
RecruitingAgentis evaluating the faculty page and doing web searches for explicit recruiting statements and creating aRecruitingInsightobject with the verbatim recruiting language and a direct link to the source of that statement. - The
MainAgentthen synthesizes all of this information into aResearchSynthesisobject which includes a score (0-100) and a detailed report on the research fit, recruiting status, and other factors. - This is then compiled into a formatted markdown report returned to the user.
The whole process takes 5-10 minutes and you can watch the agents work in real-time. It is parallelizable across large batches of faculty members.
What would you actually get out of this? This doesn't "do the work for you", it just narrows the search space so your time is better spent reading relevant papers with deeper dives on targeted faculty members. The summaries are fairly reliable in my experience, but not perfect. You still have to read the papers if they seem relevant and do your own due diligence. I will say that this application process has probably been the single most educational experience on the current state of the field that I've done so far in my life. I learned an incredible amount from applying, but I'm not sure I'd ever want to do it again, at least not at the scale I did it this year. It was almost all consuming, but I learned an incredible amount from papers I read during it (over 100 in true depth? I honestly can't remember... skimmed at least 100 more than that...)
Research Interests Document #
To use this tool effectively, you'll need to provide a document describing your research interests. This helps the agent evaluate how well a professor's work aligns with your goals.
Template and Build Instructions: Research Interest Agent Instructions Template
My Example: My Research Interest Agent Instructions