Inspiration
Research doesn't happen one paper at a time.
You start with one idea, find a paper, follow a reference, discover a different approach, and suddenly you have 50 tabs open. The difficult part isn't finding more research. It's figuring out how all of it fits together.
We built Primrose to make that process easier.
Instead of treating academic literature as a list of search results, Primrose helps you explore it as a connected research landscape. You can discover related papers, follow a guided reading journey, and zoom out to see the broader topics that make up a field.
The goal is simple: help researchers spend less time figuring out what to read, and more time understanding what they read.
What it does
Primrose helps researchers navigate a large corpus of academic papers using machine learning and semantic representations.
It starts by understanding papers through their title and abstract, represents them as dense embeddings, and uses those representations for semantic retrieval. A recommendation layer then turns retrieved papers into structured reading journeys. In addition, it automatically discovers and generate topics and themes from the corpus.
Core Features
- Semantic Research Search — Find papers based on what they mean, not just the keywords they contain.
- Related Paper Discovery — Start with a paper you care about and discover research that connects naturally to it.
- Research Reading Journeys — Instead of giving you another long list of search results, Primrose creates a curated path through the literature, helping you decide what to read next.
- Research Landscape — Explore the research space through topics rather than individual papers, giving you a broader picture of what a field contains.
- Topic Exploration — Open any discovered topic to see the papers that belong to it and understand what that area of research looks like.
How we built it
Primrose was built in stages, with each stage adding another layer to the research discovery experience.
We started with semantic search, allowing Primrose to find papers based on meaning rather than keywords. We then built Reading Journeys, where an LLM turns relevant papers into a short, ordered reading path.
Next, we zoomed out from individual papers to the research landscape as a whole, automatically discovering broader topics across the corpus and making them explorable through the interface.
The application uses a Python/FastAPI backend and React frontend, with PostgreSQL and Qdrant powering the research data and semantic search. Everything is containerized and designed to build on the previous stage.
Challenges we ran into
Making "similar" actually useful. Finding papers that are mathematically close is one thing. Finding papers that make sense as the next thing to read is another. We had to separate search from recommendation so that each could do its job properly.
Building a system that grows in capability. We didn't want to build a collection of disconnected AI features. Each stage had to build on the previous one, so that the semantic foundation could eventually support recommendations, topics, entities, relationships, and ultimately a research knowledge graph.
Balancing AI with grounded results. We didn't want Primrose to simply generate plausible-sounding research recommendations. The actual papers come from the research corpus first, with AI helping organize and explain them rather than inventing the underlying research.
What's next
Primrose is currently on stage 3 of a 7 stage plan. The next stages will include:
- Entity Extraction — Identify important research entities such as methods, datasets, models, tasks, and concepts within papers.
- Relationship Discovery — Move beyond topic membership and identify relationships between research ideas, methods, and entities across papers.
- Knowledge Graph — Represent those entities and relationships as a research knowledge graph that can be queried and explored.
Built With
- cross-encoder
- fastapi
- gemini
- natural-language-processing
- postgresql
- python
- qdrant
- sqlalchemy
- transformers
Log in or sign up for Devpost to join the conversation.