Inspiration
First-generation students don't have parents in academia. That sounds obvious, but it has a specific consequence: nobody at the dinner table can explain how research labs actually work and Dad probably doesn't "know a guy". How do you find one? Which professors take undergrads? What do you say in a cold email so it doesn't go to trash?
This hits research harder than almost any other part of college. Coursework has a syllabus. Office hours have a posted time. Research has none of that — it runs on social capital, informal introductions, and knowing what to read before you email. Without an inside guide, first-gen students apply to fewer labs, write less effective emails, get ignored more, and conclude that research isn't for them. The talent was always there. The map wasn't.
We built Lably to be that map.
What it does
You describe your background and interests in plain language. Lably matches you to UCSD labs and explains why each one fits. You pick a lab and get a prep brief: what the lab actually works on, what concepts the work assumes, what a credible cold email would demonstrate, and an honest account of what you don't yet know. Then it generates practice questions calibrated to your level — a freshman approaching a complex bio lab gets asked why spatial context matters, not to design a FISH encoding scheme. When your input is too vague, it asks clarifying questions instead of guessing. Notably, what Lably refuses to do: assess whether you're "ready" for a lab. That's exactly the gatekeeping this project exists to relieve.
How we built it
Next.js frontend, Anthropic API (Claude Sonnet 4.6) for matching, prep brief generation, and practice questions. We hand-verified a dataset of 39 UCSD labs across Physics and Bioengineering – checking faculty pages and lab members to gauge friendliness to undergrads. Recent paper abstracts pulled from Semantic Scholar at runtime to ground the prep briefs in current work. Course catalog covers Math, Physics, Chemistry, and Biology (~750 courses) for the gap-analysis step. No backend storage: everything stays in browser session state.
Challenges we ran into
Balancing between undergraduates' abilities and the labs' research outputs required multiple attempts to ensure that a student isn't intimidated by the work but also gets an accurate representation on the kind of work that they would do. Faculty pages are inconsistent, "we take undergrads" is rarely stated explicitly, and we had to set a clear standard for what counted as confirmed vs. unknown. We also identified a prompt injection vector ourselves while reviewing our data flow — paper abstracts from Semantic Scholar flow directly into the prep-brief prompt without sanitization.
Accomplishments that we're proud of
Refusing to build the "ready or not" assessment, even though it would have looked impressive in a demo Hand-verifying every lab in the dataset instead of scraping Running our own bias audit (three pairs of profiles varied across register, vocabulary, and confidence framing) and reporting the result that went against our hypothesis — the lay-vocabulary profile got more confirmed-undergrad labs, not fewer Catching the prompt-injection vector ourselves rather than having it pointed out Building clarifying-question logic for vague input instead of guessing
What's next for Lably.ai
Expand the bias audit from 6 profiles to 30, stratified across all three axes, with two independent raters Prompt-injection defenses on the paper-fetching path: structural separators and a flag for abstracts with imperative-instruction patterns Staleness detection for the lab dataset (faculty pages change, our verification has a half-life) Expand beyond Physics and Bioengineering to all of UCSD Five interviews with first-gen UCSD undergrads who've actually tried to break into labs, to find out what we got wrong
Built With
- anthropic
- claude
- javascript
- semanticscholar
Log in or sign up for Devpost to join the conversation.