A next-generation, AI-powered interview preparation and tailored resume generation platform built to bridge the gap between candidates and job descriptions.
PrepMind aims to democratize competitive job-hunting by providing job seekers with bespoke prep environments. By extracting profile data directly from uploaded PDF resumes or manual self-descriptions, PrepMind uses advanced generative AI to align candidate capabilities with specific job descriptionsโformulating interactive match scores, structured learning roadmaps, targeted interview prep, and keyword-optimized resume generation to bypass ATS filter grids.
| Problem | PrepMind's Solution |
|---|---|
| Candidacy Ambiguity | Generates a metric-driven 0-100 Match Score by comparing the candidate's history side-by-side with the target role. |
| Hidden Skill Gaps | Pinpoints exact missing technologies and methodologies, tagging them as High, Medium, or Low severity checklists. |
| Generic Interview Prep | Engineers custom Technical & Behavioral questions unique to the candidate and role, providing interviewer intention and suggested answers. |
| Unstructured Study Paths | Computes a chronological, Day-by-Day Preparation Roadmap complete with focus topics and concrete tasks. |
| ATS Rejections | Compiles job-specific, keyword-rich resumes dynamically as polished, A4 downloadable PDFs. |
| Capability | Description |
|---|---|
| ๐ Match & Gap Analytics | Provides an analytical baseline representing role-fit and displays severity badges indicating which lacking skills to study first. |
| ๐ง Deep Prep Questions | Renders realistic behavioral scenarios (following the STAR framework) and core coding queries customized to the target stack. |
| ๐บ๏ธ Interactive Study Map | Houses chronological day-cards showing specific tasks. Includes checklist items and progressive learning blocks. |
| ๐ ATS-Tailored Resumes | Generates professionally styled HTML resumes tailored to the job's keywords and converts them on-demand to PDF. |
| ๐ Secure Credentials | Features robust JWT session handling via HTTP-only cookies and database-backed token blacklisting for safe logouts. |
| ๐ Plan History Dashboard | Integrates an elegant, real-time search and filter panel allowing users to instantly manage previous preparation reports. |
PrepMind utilizes a modern full-stack decoupled architecture. Below is a map outlining the code dependencies and communication flows:
- Front-End Client: Engineered as a high-speed React 19 SPA compiled via Vite, using Tailwind CSS v4 and oklch-based dark-glassmorphism accents.
- Back-End API: Formulated as an Express.js Node API connected to MongoDB Atlas. Integrates the new Google GenAI SDK (
gemini-2.5-flash) utilizing structured JSON schema modes. - Dynamic Document Renderer: Integrates a hybrid browser engine. Launches Puppeteer locally for lightweight development, and automatically maps
@sparticuz/chromium+puppeteer-corein production for flawless Vercel serverless execution.
PrepMind/
โโโ client/ # Vite + React Frontend Client
โ โโโ src/
โ โ โโโ components/
โ โ โ โโโ ui/ # Low-level layout components (Card, Dialogue, Inputs)
โ โ โโโ features/
โ โ โ โโโ auth/ # Auth pages (Login, Register), context bounds & hooks
โ โ โ โโโ interview/ # Dashboards, preparation lists, and sidebar modules
โ โ โโโ App.tsx # Main entry point mounting hooks & context wrappers
โ โ โโโ index.css # Tailwind resets, OKLCH theme presets, and styles
โ โ โโโ app.routes.tsx # React Router 7 mappings and protected views
โ โโโ package.json
โ
โโโ server/ # Express.js backend API server
โโโ config/ # Database connections
โโโ routes/ # REST route bindings (Auth, Interviews)
โโโ controllers/ # Business logic handlers (PDF extractors, reports)
โโโ models/ # MongoDB schemas (Users, Reports, Blacklist)
โโโ services/ # Gemini integrations & Puppeteer engines
โโโ middlewares/ # Authorization bounds and Multer file upload filters
โโโ server.js # Port bindings & serverless handler endpoints
โโโ package.json
| Category | Technologies |
|---|---|
| Frontend Framework | React, TypeScript, Vite, React Router |
| State & Fetching | React Hooks, Context API, Axios Client |
| UI & Styling | Tailwind CSS, SCSS/SASS, shadcn/ui, Lucide Icons |
| Backend & Logic | Node.js, Express.js (ES Modules) |
| Database | MongoDB Atlas, Mongoose ODM |
| AI Integration | Google Generative AI (@google/genai) with JSON response schemas |
| Document Processing | Puppeteer Core, @sparticuz/chromium, pdf-parse (mehmet-kozan/pdf-parse) |
| Security | JSON Web Tokens (JWT), HTTP-Only Cookies, bcryptjs, Token Blacklisting |
1. Setup Environment Variables
Create a .env file in the server root directory:
PORT=3000
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.hn75bvj.mongodb.net/prep-mind
JWT_SECRET=your_jwt_cryptographic_secret_key
GEMINI_API_KEY=your_google_gemini_api_key
NODE_ENV=development2. Install Dependencies
Install packages for both modules from the root directory:
# Install Server dependencies
cd server
npm install
# Install Client dependencies
cd ../client
npm install3. Run the Applications
Start the development servers concurrently:
cd server
npm run devcd client
npm run dev4. Local Access Points
- Frontend Client: http://localhost:5173
- Backend API Service: http://localhost:3000/api


