Case study
careerexplorer.ai: a solo-built AI career coach
A full-stack career-guidance product — LLM coaching grounded in a knowledge graph — built and operated by one person, with 2,350 users and 12,000+ coaching conversations.
- The constraint
- One person end to end — product, code, infrastructure, content
- Outcome
- 2,350 users, 12,000+ coaching conversations
- Time to first value
- First useful output within the first sprint
The situation
Young people choosing what to study and what to become mostly get guidance that is generic, late, or expensive — a brochure, a single appointment, or nothing. I built careerexplorer.ai to make decent career coaching something a young person can just open and use: a conversation that knows the actual landscape of studies and occupations, available at the moment the question is real.
The constraints
- One person, end to end. Product decisions, architecture, code, infrastructure, prompt design, content — there is no one to hand any layer to. Every hour spent on one part is taken from another.
- Built in the margins. This runs alongside a full-time engineering job. Progress happens in the hours a side project actually gets, which forces ruthless scope decisions.
- A young, real audience. Coaching conversations with young people making genuine decisions leave no room for confident nonsense. The model can't free-associate about careers that don't exist or paths that don't lead where it claims.
- No ready-made domain data. The structured map the coach needed — studies, occupations, skills, and how they connect for this audience — didn't exist off the shelf. It had to be built and maintained as part of the product.
What I built
A full-stack product with three load-bearing parts:
- a knowledge graph of occupations, studies, and skills — the ground truth the product stands on
- an LLM coaching layer that runs the conversation but stays grounded in the graph, so advice references real paths rather than plausible inventions
- the product around them: web app, accounts, persistence, infrastructure — everything a real user touches, owned and operated by me
The grounding decision is the architecture. A raw LLM sounds convincing about careers; wiring it to the graph is what makes it checkable, and the graph is what makes 12,000 conversations something other than 12,000 opportunities to improvise.
Time to first value
First useful output within the first sprint — and in front of real users early, deliberately. The graph and the coaching both improved in production, against real conversations, not in a backlog waiting for a polished launch.
What changed
2,350 people have used it, across more than 12,000 coaching conversations. At that volume the coaching loop has been exercised far beyond what any test plan would have covered, and the product has kept running under one person's operation — which was itself a design requirement, not an accident.
What I won't claim: that it changed study choices or career outcomes. I haven't instrumented decisions people made after talking to it, and guessing at that number would be exactly the kind of claim this product exists to avoid.
What I'd do differently
I built the knowledge graph too wide too early. Breadth felt like rigour — a coach should know everything — but wide-and-shallow taught me less than narrow-and-connected would have. The conversations, once real users arrived, pointed at the parts of the graph that actually carry weight; I'd let them do that pointing months earlier and build the graph outward from demand.
And I'd treat content operations as a system from day one. On a solo product, every piece of the graph that needs manual updating is future maintenance debt with my name on it. The parts I tooled early have aged fine; the parts I maintained by hand are the ones that drift.