Mirror
Who did I want to help?

Listening to real students
Turning interviews into direction
Refining in Cursor
I knew exactly the look and feel of the interface that I wanted, including fonts, colors, even layout before ever touching any tool.

Taking a new approach
I'd always worked wireframes, then Figma, then dev. This time I flipped it: I wrote a concept, turned it into a PRD, and used Claude Code to build the whole app first, then refined subtractively. I knew the tradeoffs of skipping wireframes, but I was confident I could refine from an existing design.
It was a test of my UX brain. Could I look at a finished, imperfect interface, pinpoint what was wrong, and iterate? I split the PRD into nine phases, and created a markdown file explaining how to implement each phase so the build checked in at every step instead of vanishing into one giant prompt.


Fixing the results page

Designing the conversation
This was the heart of the project, and the first time I had ever designed an interaction with an AI.
I designed Mirror's persona to feel like a warm, grounded mentor. The conversation moves through three phases, but the user never sees a label or feels a transition. From their side, it just feels like a really good conversation.

Tuning the AI itself
Getting the conversation right took real iteration. Early on, Mirror asked too many follow-ups and lost track of where the user was. I also caught it leaking its internal reasoning into the visible chat, which I fixed in the system prompt.
Model choice mattered more than I expected. I tested across models and stuck with Opus, since its reasoning followed the system prompt far more reliably than the others.
Questions that reveal, not interrogate

Watching yourself take shape
As the conversation goes on, a profile sidebar fills in live: values, work style, interests, pressure flags. It gives users a sense of progress without a progress bar. You're not on question 12 of 20. You're watching a portrait of yourself form.

Keeping it in scope
I scope-locked Mirror to career and major advising only. When users go off-topic, it redirects warmly but firmly, like a focused mentor who stays on task because they care, not a system hitting a wall.
The final build
The conversation
The conversation

Recommendations based on real data

A document to advocate with

What did I learn?
Designing for AI is designing a personality.
This was my first time shaping an AI interaction, and most of the work lived in the system prompt, not the UI. Tone, pacing, when to push, and when to back off were all design decisions.
A finished build is just the starting point.
A finished build is just the starting point.




