HireMind AI is a professional, enterprise-ready AI-powered mock interview platform designed to help job seekers practice and refine their interviewing skills. By combining Next.js, Tailwind CSS, Google Gemini, and Drizzle ORM, HireMind AI simulates realistic interview environments, parses speech in real-time, and provides detailed feedback and performance metrics.
- Dynamic AI Interview Generator: Tailors interview questions dynamically based on the job role, description, and years of experience.
- Speech-to-Text Integration: Transcribes user audio responses in real-time for subsequent parsing and evaluation.
- Personalized Feedback Engine: Evaluates answers against industry best practices and provides a score, list of improvements, and correct answers.
- Detailed Analytics Dashboard: Visualizes previous mock interviews, overall performance, and tracks course progress.
- Secure Authentication: Built-in authentication powered by Clerk.
- Modern Responsive Design: Fully responsive dark/light themed interface with fluid transitions.
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Database: PostgreSQL
- ORM: Drizzle ORM
- AI Core: Google Gemini Pro API
- Authentication: Clerk
- Styling: Tailwind CSS & Shadcn UI
Ensure you have the following tools installed locally:
- Node.js (v18.0.0 or higher)
- npm or yarn
- PostgreSQL (installed locally or running via Docker)
Clone the repository and install the dependencies:
git clone https://github.com/your-username/hiremind-ai.git
cd hiremind-ai
npm installCreate a .env.local file by copying the template:
cp .env.example .env.localOpen .env.local and configure your credentials:
DATABASE_URL: Your PostgreSQL connection string.GEMINI_API_KEY: Your Google Generative AI API key.- Clerk Auth variables (
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY,CLERK_SECRET_KEY, etc.).
Make sure your PostgreSQL instance is running. Then, push the Drizzle schema into the database:
npm run db:pushTo explore the database through a web dashboard:
npm run db:studioFor more details, see the PostgreSQL Setup Guide.
To run the development server:
npm run devOpen http://localhost:3000 with your browser to see the application.
βββ .github/ # GitHub Actions configurations (CI Pipeline)
βββ .husky/ # Git hooks for pre-commit validation
βββ actions/ # Server actions for business logic
βββ app/ # Next.js App Router (pages and API endpoints)
βββ components/ # Reusable UI component library (Shadcn/UI)
βββ docs/ # Project documentation (PostgreSQL config guide, etc.)
βββ lib/ # Core library helpers and shared utilities
βββ public/ # Static assets (images, icons, etc.)
βββ utils/ # Database initialization, schemas, and AI modals
βββ drizzle.config.js # Drizzle ORM generation settings
βββ tailwind.config.js # Tailwind CSS theme setup
βββ tsconfig.json # TypeScript compiler configurations
Comprehensive documentation is available in the docs/ directory:
- System Architecture
- Database Schema & Design
- API Route Reference
- Deployment Guide (Vercel & Docker)
- Local PostgreSQL Setup
- Folder Structure Reference
- Product Roadmap
Here is a list of commands available in the project:
npm run dev: Runs the Next.js app in development mode.npm run build: Compiles the application for production.npm run start: Starts the Next.js production build server.npm run lint: Performs static analysis of code via ESLint.npm run lint:fix: Fixes linting errors automatically where possible.npm run format: Validates file formatting using Prettier.npm run format:fix: Automatically formats files using Prettier.npm run type-check: Validates TypeScript types across files without compiling.npm run db:push: Applies database schema definitions directly to the database.npm run db:studio: Starts Drizzle Studio web administration interface.
To maintain high code quality, we enforce standard formats and static check rules prior to checking in code:
- Husky & Linting: ESLint, Prettier formatting, and TypeScript compiling checks run automatically on every commit. Commits fail if any check fails.
- CI Pipeline: A GitHub actions validation flow builds the codebase and runs checks on every push or pull request to the
mainormasterbranches.
- AI-Powered Mock Behavioral Interviews: Real-time behavioral prompt analysis.
- Speech Analysis / Tone Analytics: Track speaking pace and hesitation words.
- Resume Parsing Integration: Auto-generate custom job interviews by uploading a PDF resume.
- Mock Coding Challenges: In-browser code runner integrated with AI interviewers.