Train with AI. Interview with confidence.
InterviewIQ is a web application designed to help job seekers prepare for technical and behavioral interviews. It leverages the power of Google's Gemini API to generate role-specific questions and provide real-time, constructive feedback on user answers, simulating a realistic interview experience.
- π€ AI-Powered Question Generation: Dynamically generates interview questions for a wide range of roles, including Frontend, DevOps, ML Engineer, QA, UI/UX Design, and Product Management.
- π― Role-Specific Tracks: Users can select a specific job role to receive a tailored set of relevant questions, covering various seniority levels.
- π Instant Feedback & Evaluation: The AI analyzes user-submitted answers and provides immediate, structured feedback on relevance, clarity, and depth.
- π Secure User Authentication: Integrated with Clerk for secure sign-in and user session management.
- π± Fully Responsive UI: A modern, responsive user interface built with Next.js and Tailwind CSS ensures a seamless experience on any device.
The application is built with a modern, full-stack JavaScript architecture.
| Component | Technology |
|---|---|
| Frontend | Next.js, React, Tailwind CSS |
| Backend | Node.js, Express.js |
| AI / LLM | Google Gemini API |
| Authentication | Clerk |
| Deployment | Vercel (Frontend), Your-Cloud-Provider (Backend) |
User (Browser) <--> Next.js Frontend <--> Express.js API <--> Gemini API | | +----------------> Clerk <---------------+ (Authentication)
To get a local copy up and running, follow these simple steps.
- Node.js (v18 or later)
- npm / yarn / pnpm
- Git
-
Clone the repository:
git clone [https://github.com/your-username/interview-iq.git](https://github.com/your-username/interview-iq.git) cd interview-iq -
Install dependencies for both frontend and backend:
# In the root directory npm install # Navigate to the backend directory cd backend npm install
-
Set up environment variables: Create a
.env.localfile in the root directory and a.envfile in the/backenddirectory. Add the necessary environment variables.-
Frontend (
.env.local):# Clerk Authentication Keys NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key # Backend API URL NEXT_PUBLIC_API_URL=http://localhost:3001
-
Backend (
/backend/.env):# Google Gemini API Key GEMINI_API_KEY=your_gemini_api_key # Server Port PORT=3001
-
-
Run the application: You'll need two terminal windows to run both the frontend and backend servers concurrently.
-
Terminal 1 (Frontend):
# In the root directory npm run dev -
Terminal 2 (Backend):
# In the /backend directory npm start
The application should now be running at
http://localhost:3000. -
The Express.js backend serves the following primary endpoints:
POST /api/generate-questions: Accepts a job role and generates a list of interview questions.POST /api/evaluate-answer: Accepts a question and a user's answer, returning AI-driven feedback.POST /api/sync-user: A webhook to sync user data from Clerk to a local database (if applicable).
A key feature of this application is the structured prompting strategy used to interface with the Gemini API. Prompts are carefully engineered to request strict JSON output, ensuring reliable and parseable data for various job roles and questions. This minimizes errors and provides a consistent user experience.
Distributed under the MIT License. See LICENSE for more information.
Project Link: https://github.com/gaghackz/AIJOB