Kotae
答え · Daily English & Japanese interview practice
I built Kotae to prepare for engineering interviews at international companies in Japan. Every day Claude writes questions from my background, corrects my English answers, and turns them into natural interview Japanese. Spaced repetition makes sure I can still say them weeks later.
Screens





The daily loop
- AnswerClaude writes new questions each day from my background. I answer in English, by typing or with Apple Pencil.
- FeedbackA score, every grammar fix marked in the text with the reason, what the interviewer is really asking, and a polished answer.
- JapaneseThe polished answer turned into natural interview Japanese, with furigana on every kanji and read-aloud.
- ReviewSpaced repetition at 1, 3, 7, 14 and 30 days. I rewrite English answers from memory and Claude scores them; Japanese uses flashcards.
How Claude is used
The right model for each jobSonnet writes questions, feedback and translations. Haiku scores reviews, which is faster and cheaper.
Structured outputEvery call returns JSON that matches a schema, so the app can show grammar diffs, scores and furigana reliably. The app also checks that the grammar fixes rebuild the original answer.
Prompt cachingThe long, fixed instructions are cached. Only the question and the answer change between calls.
Tuned for speakingPrompts ask for short, common words that are easy to say. Capitalization and punctuation are ignored, because these answers are spoken, not written.
Cost trackingEvery call is logged with its tokens and estimated cost. Settings shows today, this month and all time.
How it was made
- Wrote the spec and designed all 9 screens in two color themes before writing any code
- Built in about 2.5 weeks with Claude Code, while learning Next.js and TypeScript for the first time
- Moved from SQL Server to PostgreSQL midway and migrated all the existing practice data
- The demo runs on a separate database schema with sample data, so visitors never touch real data or call the API
Tech
Next.js 16React 19TypeScriptPrismaPostgreSQL (Neon)Claude APIWeb Speech APIPWAVercel