CaseAtlas. 30,000+ ways to practice strategy.
A free, AI-powered case study simulator. Built solo because good preparation for strategy and consulting interviews should not cost $500 a year. Adopted by a group of consultants and MBA students who used it, gave direct feedback, and rewrote my roadmap for v2.
The existing tools were expensive, rigid, and fundamentally static.
Practicing business cases is how you get into consulting. The problem is that the tools available to practice with are subscription-based, typically $30 to $60 a month. What you get is a library of pre-written cases and, in better implementations, a chat interface that simulates a live interview.
The cases are fixed. The difficulty is fixed. The industry, function, and business tension are whatever the case writer chose. If you want to practice a cost-optimization case in healthcare, you take whatever the platform has in its library. If you want to go deep on a specific tension type, you either find it or you don't practice it.
The deeper problem is that the content gets stale fast. Once you've seen a case, you've seen it. For someone doing serious prep over weeks or months, the effective size of a fixed library shrinks quickly.
Anyone who has been through a consulting prep cycle knows these limitations and pays the subscription anyway, because there was nothing better.
A consistent pattern across seven to ten early users.
My early users were business consultants and MBA students from my immediate network, actively preparing for interviews or staying sharp. I had direct access to their frustrations because they were the same as mine.
- They mixed paid platforms, PDF case banks, and YouTube mock interviews
- Paid tools gave them structure, but not variety
- Free resources gave them variety, but not structure
- Nobody had both at once
I also looked at what the paid tools were genuinely good at: clean layouts, a sense of progression, real cases sourced from credible frameworks. Those were worth keeping as a benchmark. The weakness was configurability. The user had no control over what kind of case they got.
The insight: AI changes this constraint entirely. If the case is generated fresh for every session, the library is infinite. The only question becomes whether the generation quality is good enough to be worth practicing with.
An infinite library, calibrated on demand.
Four configuration axes: business function, industry, business tension type, and region. Three difficulty levels. The user assembles parameters and gets a unique, structured case they have never seen before, because it did not exist until they asked for it.
The math behind 30,000+ combinations is real, but the point is not the number. The point is that the user is never stuck repeating the same case twice, and the configuration options cover the actual dimensions that matter in a real interview.
- No gatekeeping. Free at the point of use, because the expensive tools were the problem being solved
- Quality over quantity. One well-structured case beats ten that feel like filler
- Configurable by default. The user should always be in control of what they practice
v1 validated the premise. v2 shipped what users asked for by name.
v1 · the narrow validation
The first version was narrow by design. A configurator across the four axes plus difficulty. An LLM pipeline that generated a structured case with company background, strategic challenge, stakeholder perspectives, supporting data and exhibits, and three to five discussion questions. A clean reading layout that felt like a Harvard-style case, not a chatbot response.
The goal was to validate one thing: can AI generate a case that is actually worth practicing with? The answer had to be yes before anything else mattered.
v2 · what real users surfaced
Accounts & case history
Google OAuth, saved case history, with a full lifecycle: active, archived, soft-delete with 90-day grace period. v1 had no persistence. Users wanted to find their cases again.
Case versioning
Practice the same scenario at different difficulty levels. Start at Foundational to learn the structure, return at Advanced to stress-test the analysis. Variants stay linked to the original.
AI answer evaluation
Step-by-step answer submission, scored across six dimensions: structured thinking, quantitative reasoning, business judgment, communication clarity, creativity, and synthesis. Per-question feedback on strengths and gaps.
Progress tracking
Score history across attempts, a progression chart, and a skill radar. Turns CaseAtlas from a one-off generator into a tool with a real feedback loop.
Framework panel
Strategic frameworks (Porter's Five Forces, SWOT, BCG, others) surfaced contextually on the case page. Lightweight reference. Quietly the most-loved addition.
PDF export
Cases downloadable for offline practice or sharing with a peer. Small but kept being requested.
Building the app was easy. Getting the model to write good cases consistently was not.
The failure mode was prompt drift. A well-tuned prompt that produced excellent cases for technology strategy scenarios would produce thin, generic output for niche combinations: a logistics cost-optimization in Central Europe at Advanced difficulty, for example. The model would satisfy the format while missing the substance. Cases that looked structured but had no real analytical tension.
Three things solved it.
Structured output with schema validation
The generation pipeline uses a Zod schema as a contract between the prompt and the application. The model returns JSON matching a defined shape, section by section, field by field. If the output does not validate, it is rejected. This forces the model to be specific rather than vague — because vague outputs tend to fail schema checks.
Retry logic on parse failures
Mistral is non-deterministic. Even with a well-formed prompt, occasional responses come back malformed. The pipeline retries up to two times before surfacing an error. In practice, the retry resolves the problem almost every time, and the user never sees it.
Difficulty-calibrated prompting
The prompt does not just pass the difficulty as a label. Each level has its own instruction set. Foundational cases establish context clearly and ask direct analytical questions. Advanced cases embed ambiguity, trade-offs with no clean answer, and qualitative data requiring interpretation. Difficulty is baked into the prompt logic, not left for the model to infer.
The broader lesson is how to think about AI in a product. The model is one stage in a pipeline, not the whole product. Reliability comes from building structure around the model, not from hoping the model behaves consistently on its own.
What I cut, and why.
Leaderboards and peer score comparison
An obvious social feature. Would have added stickiness. I cut it because it changes the incentive in a way that undermines the core purpose. The product is a practice tool. Optimizing for a visible score relative to other people is not the same as optimizing for getting better at case interviews. The two can look similar and diverge sharply. I wanted CaseAtlas to stay in the service of improvement, not performance.
A pre-built case library
The alternative to on-demand generation is curating a library of good cases. I considered it and dropped it immediately. A library turns CaseAtlas into the same kind of product it was built to replace: finite, static, stale. Configurability is the differentiator. As soon as you have a fixed library, you're competing on catalog size against platforms that have been building theirs for years.
A paid tier from day one
At several points the obvious move was to gate something behind a subscription: evaluations, advanced cases, account creation. I did not, and I would make the same call again. The product was built because expensive tools were the problem. Introducing a paywall before establishing that the product is genuinely better would have been inconsistent with the reason it exists. Free at the point of use is not a business-model decision at this stage. It is a product principle.
What surprised me
The framework panel turned out to matter more than I expected. I added it as a lightweight reference, something users could glance at without leaving the page. What I found was that it changed how people engaged with the case. Frameworks visible meant active rather than passive reading. Users started mapping case content against frameworks rather than just reading through. A small addition that changed the quality of the practice session.
Land on the page, click Sign in with Google, generate a case.
CaseAtlas is a web app at caseatlas.org. No install step, no platform fee, no native app. Users go to the site, create an account with email or Google, and start generating cases.
That simplicity was deliberate. The people I built this for are comfortable opening a browser. A web app with Google Sign-In removes every barrier between having the idea to practice and actually practicing. The onboarding funnel is three steps.
The early adopters came from my immediate network. Consultants and MBA students actively prepping or staying sharp. They didn't need convincing. They had experienced the same frustrations and a free configurable alternative was an easy switch.
v2 was written by early users.
Each feature below traces back to a moment where someone hit the edge of v1 and told me what came next.
Accounts & case history
Nobody asked for "user accounts" as a feature. They asked to find their cases again. Accounts were the implementation, not the request. Same with archive and soft-delete: people wanted a sane way to manage a growing list without losing anything by mistake.
Answer evaluation, six-dimension scoring
The discussion questions were useful. The feedback loop was missing. Evaluation closed the gap. The six-dimension scoring came from working backwards from what a real case interviewer actually evaluates — not what's easy to score.
Score progression & radar chart
A single score tells you how you did. A chart across sessions tells you whether the practice is working. The radar surfaces where you're improving and where you've plateaued.
Configurator, case, evaluation.
Drop your real screenshots onto the slots below. (Phone-sized for now; can be swapped to wider browser frames if preferred.)
Built solo. Live. Used.
v2 features were scoped and shipped based on direct feedback from the first group of users. The pipeline architecture — schema validation, retry logic, calibrated prompting — generalizes to any AI feature that needs to be reliable rather than impressive. Built and shipped solo across product decisions, infrastructure, AI pipeline, frontend, auth, admin tooling, and analytics.
What this taught me about shipping AI products.
Free is a product decision, not just a pricing decision
Choosing not to charge is a statement about what the product is for. Here, expensive tools were the problem being solved. The product had to be free to be coherent. That constraint shaped every other decision.
Treat AI as a pipeline, not a feature
One-shot prompts to an LLM are a prototype. A production AI feature is a system: inputs validated, outputs structured, failures handled, quality enforced. The difference between a demo and a product is what happens when the model returns something unexpected.
Let real usage rewrite the roadmap
I had a backlog. My early users had a different one. The features that made the biggest difference in v2 were not on my original list. They emerged from watching people use the product and listening to what they said when it ran out of road.
Scope discipline is how you ship
CaseAtlas doesn't have a leaderboard, a case library, or a monetization layer. Those were all reasonable ideas. Cutting them is what made it possible to ship a product that does its one job well instead of a half-built product that does four things poorly.
A solo product. Full-stack muscles.
Want to try it? It's free.
Live at caseatlas.org. No install. Sign in with Google, configure a case, practice.