An admissions platform with AI roadmaps and opportunity search
Personal application roadmaps, mentor booking and a self-updating catalogue of scholarships, internships and competitions.
Applying to university abroad is a multi-year project that most students plan alone: which activities matter, which deadlines are coming, who to ask. The scholarships, internships and competitions that would strengthen an application are scattered across thousands of pages that go stale every season.
For the admissions arm of WellPrepped, an international tutoring company, I built the product that handles this: a student app, a mentor app, a staff dashboard and the API behind them.
What it does
- Turns a student's onboarding answers into a personal roadmap, laid out as a board of milestones
- Matches students with university mentors and handles booking, video sessions and payment
- Recommends opportunities from a catalogue that maintains itself
A catalogue nobody curates
A Go worker runs on a schedule. It fans search queries out across scraping workers, uploads what it finds to the API, and the API deduplicates by source. A second pass archives anything past its deadline and re-checks the rest, archiving pages that have died. The worker has no database access; it talks to the API with its own key, so a scraper bug can't corrupt anything the API wouldn't accept from a stranger.
Retrieval
Students, mentors, opportunities and milestones each have their own embeddings in Postgres with pgvector. Recommendations are similarity searches across them, which keeps the whole system in one database with one backup.
Onboarding made two independent model calls in sequence on the critical path. Running them in parallel removes one call's latency, typically 1–3 seconds, from every signup without changing behaviour.
Under it
- FastAPI on Python 3.12, async SQLAlchemy, Postgres with pgvector, RabbitMQ, Redis
- 148 endpoints across 10 domain modules, 558 tests
- Onboarding, notifications and email driven by domain events
- Three Next.js apps; Stripe; video sessions