If the live demo is unavailable, I may have exhausted my API credits. The GitHub repository includes instructions for running Steppi locally.
Inspiration
I came from a very large high school and now study at NYU, but I did not always have access to guidance that understood my situation. As an international student, the guidance available to me was not very helpful when it came to navigating the US college system.
My plans changed repeatedly. I considered Computer Science, Industrial Engineering, and Economics before eventually choosing Computer Science at NYU. I often had to do the research myself and work out how my interests connected to possible fields of study and careers.
Today, I also conduct research on AI in education. Steppi grew from both sides of that experience: being a student who needed more personalized guidance and studying how AI might make education more responsive to individual students.
I wanted to create a tool that starts with the interests, experiences, and questions a student already has, then helps them see possibilities they may not have discovered alone.
What it does
Steppi helps high-school and college students discover career roles without asking them to choose one immediately.
The experience begins with a short conversational intake about the student’s interests, classes, projects, responsibilities, dislikes, strengths, and practical considerations. GPT-5.6 transforms that conversation into a structured profile and a short reflection. Before any careers are generated, the student can confirm or rewrite what Steppi understood.
Steppi then creates 12 to 15 varied career possibilities and presents them in an unranked visual role space. Students can choose any role to learn:
- What the role actually involves
- Why it may fit their interests and experiences
- What aspects may not fit their preferences
- What its day-to-day work looks like
- How they could explore it through a small, low-risk next step
Students can also ask natural follow-up questions and continue exploring each role through its own conversation.
Steppi is built around breadth before depth. Its goal is not to predict the correct career. It helps students see more possible futures, understand them, and decide which ones are worth exploring further.
How we built it
Steppi was built with Next.js, React, TypeScript, Tailwind CSS, the OpenAI Responses API, GPT-5.6, Zod, and Vitest.
GPT-5.6 Luna is central to the product. It synthesizes a natural conversation into structured student context, distinguishes what the student explicitly shared from tentative inferences and uncertainties, and generates career roles grounded in that context. It also explains the potential fit, possible tensions, day-to-day experience, and next steps for each role.
All OpenAI calls run through server-side routes. Model responses are validated with explicit Zod schemas and additional deterministic checks before reaching the interface. Role generation can make up to three bounded attempts, but only a complete and validated set is shown to the student.
The selected-role conversation also uses the confirmed profile and role context to provide concise, personalized answers. When a question depends on information that can change, such as current programs, costs, salaries, or professional requirements, Steppi can retrieve and validate current sources.
The interface was built around one focused loop: talk naturally, confirm what Steppi understood, discover possibilities, understand one role, and ask what matters next.
Challenges we ran into
The API calls could be unpredictable. Some requests failed outright, returned incomplete structured output, or produced results that passed basic validation but were not good enough for the experience. Making the model output reliable required stricter schemas, additional validation, bounded retries, careful error handling, and user-friendly failure states.
The larger challenge was realizing that the original product vision was wrong.
An earlier version generated only three career branches and presented them through a more graph-like experience. It technically worked, but it made Steppi feel too decisive and too much like a recommendation engine. That conflicted with the actual problem I wanted to solve.
Students did not need Steppi to narrow their future immediately. They needed it to expand what they believed was possible. I redesigned the experience around 12 to 15 varied, unranked roles and made the product about discovery before decision-making.
The difficult part was not simply implementing the original vision. It was recognizing when that vision was not serving the user and being willing to rebuild the core flow.
Accomplishments that we're proud of
I am most proud of the working core loop. A student can share their context, correct what Steppi understood, discover career roles, examine why each one may or may not fit, and continue exploring through conversation.
Testing Steppi with my own context was especially meaningful. It surfaced the roles I had already considered, which showed that it understood the direction of my interests, but it also offered new connections and insights that I had not reached myself. That balance is what I wanted from the product. It should recognize the student without simply repeating what they already know.
I am also proud of how GPT-5.6 turns scattered personal information into useful guidance. A class, project, responsibility, preference, or uncertainty can become part of a clear explanation for why a career may be worth investigating. Steppi does not just produce job titles. It connects each possibility back to the student and gives them a concrete way to explore it.
Beyond the ideal flow, the product includes loading, retry, failure, and malformed-output states. It works across desktop and mobile, supports keyboard navigation and reduced motion, and has been verified through more than 200 automated tests.
What we learned
I learned that an AGENTS.md file will not save you.
Detailed instructions and agentic coding tools can make development faster, but they do not replace staying involved. I still had to review the code, test the interface, challenge assumptions, correct the product direction, and repeatedly ask whether the experience was actually helping the student.
The biggest lesson was that AI can help execute a vision, but it cannot take responsibility for whether that vision is right. The first version of Steppi followed its requirements, yet the underlying flow was still wrong. Human judgment was necessary to recognize that and change course.
I also learned that valid AI output is not automatically useful AI output. A response can satisfy a schema while still being repetitive, overly confident, or poorly suited to the user experience. Building a good AI product requires constant attention to both technical reliability and product quality.
What's next for Steppi
The next step is to work directly with high-school and college students to learn what feels useful, what remains confusing, and what kinds of career exploration they actually want. I am particularly interested in hearing from international students and others who may not have access to guidance that understands their circumstances.
I would also like to let students save roles, return to earlier conversations, compare possibilities, and keep track of the next steps they want to try.
In the future, Steppi could integrate with high schools and universities through their available APIs and institutional data. Context about courses, majors, clubs, programs, and advising resources could make its guidance more relevant to what a student can actually access.
The long-term goal is not to turn Steppi into an admissions predictor or a system that chooses for students. It is to give more students the personalized context I wished I had, while keeping them in control of what they explore next.
Built With
- 5.6-luna
- 5.6-sol
- codex
- next.js
- openai
- react
- tailwind
- typescript
- vitest
- zod
Log in or sign up for Devpost to join the conversation.