Prepme - AI Powered Interview Kit A developer built PrepMe, an open-source interview prep tool that parses a real job posting and generates requirement-based interview questions, flashcards, and a five-day study plan. The free tier runs Qwen 2.5 Coder 7B locally through Ollama, with Zod schemas and TypeScript validation ensuring every must-have requirement gets at least one question, and Playwright rendering JavaScript-heavy job boards. The developer argues local inference avoids per-token API costs—estimated at roughly $0.03 per kit—and keeps sensitive client data on the user's machine. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle What I Built PrepMe builds an interview prep kit from a real job posting. You paste the job description, and it pulls out the requirements, writes interview questions based on them, makes flashcards, and creates a 5-day study plan. Most interview prep is too generic. You end up practicing random LeetCode problems when the company cares about something else. PrepMe reads the posting you’re applying to and builds the questions around the skills it lists. Who would pay: Job seekers interviewing at several companies. The planned Pro plan is $19 a month with a cloud model for faster results. Career coaches who prep clients. The planned Coach plan is $49 a month with bulk generation and white-label exports. Bootcamp grads who need a structured way to prepare. The free tier runs a local model Qwen 2.5 Coder 7B through Ollama , so it costs nothing to run. Demo Video: https://youtu.be/aE5vZNURTYs https://youtu.be/aE5vZNURTYs Try it yourself: Clone the repo and run npm install. Install Ollama and run ollama pull qwen2.5-coder:7b. Start the backend with npm run dev:server. In packages/web, run npm run dev. Open http://localhost:3000 http://localhost:3000 and paste a real job posting. Try one from Vercel, Linear, Stripe, or Magica. Code https://github.com/ayuuuuu0-0/prepme https://github.com/ayuuuuu0-0/prepme Features: Uses Playwright to load JavaScript-heavy job boards before reading them. Checks that every must-have requirement has at least one question. Quotes the exact line from the posting for each requirement, so the model can’t make up requirements. Practice mode with a 60-second timer. Builds a 5-day study schedule and puts the harder topics first. Tech stack: Backend: Express, TypeScript, MongoDB with an in-memory fallback Frontend: Next.js 15 and Tailwind CSS AI: Qwen 2.5 Coder 7B through Ollama Validation: Zod schemas for the model’s output How I Built It I use Qwen 2.5 Coder 7B running locally with Ollama. I tried Gemma 2 9B and Llama 3.1 8B first. Qwen gave me the most reliable JSON output, and that matters because the app breaks if the output doesn’t match the schema. The pipeline works like this: The model reads the job posting and pulls out technical, behavioral, and domain requirements. Each one includes the exact line from the posting. Plain TypeScript code checks that every must-have requirement has a question. If something is missing, the model gets up to two more passes. After that, a fallback generator fills the gap. The model writes the flashcards. If that step fails, the flashcards come from the questions. A scheduling function spreads the questions across the number of days you pick. Many job boards load their content with JavaScript, so a plain fetch returns an almost empty page. Magica.com is one of them, and I tested PrepMe with a Magica job description in the demo video. PrepMe checks how much text it got compared to the size of the HTML. If the page looks empty, it renders the page with Playwright first. The code is split into three packages: @prepkit/core: the pipeline, with no framework dependencies @prepkit/server: the Express API and MongoDB storage @prepkit/web: the Next.js frontend Why Does Open Innovation Matter? Closed APIs charge per token. A job posting plus company research can use about 5,000 input tokens and 3,000 output tokens. At the rates I used, that works out to about $0.03 per kit. If a free tier gave 10,000 users 2 kits each, that’s roughly $600 a month with no revenue. The free tier would lose money on every user. Privacy matters too. Career coaches handle client resumes and job descriptions that aren’t public yet. If that data goes to a closed API, it leaves their control. Running the model locally keeps it on their own machine. Offline use is another reason. The model downloads once, about 5 GB, and after that the free tier works without internet. You can also swap models by changing one line in the .env file. Open weights are the only reason this free tier can exist. My First User A friend who is interviewing for backend roles tried PrepMe. They pasted two job descriptions and had both prep kits in about 5 minutes. Their feedback: “The questions are more specific than the LeetCode grind.” “I like that it quotes the exact requirement. No guessing.” “The practice timer showed me I ramble too much.” “2 to 3 minutes per kit is fine, but I’d pay $10 a month for instant generation.” The questions aren’t perfect yet. Some are still generic, and some don’t go as deep as they should. I’m working on the prompts and the repair step, and I expect the quality to improve over time. The quality issues are real, and I’d rather say so than hide them. Nobody has paid yet. The cloud Pro tier isn’t built, so their answer about paying is a guess for now. The free tier brings people in, and the paid tier is the next step.