A comprehensive mock interview platform designed to simulate technical interviews and improve job-seeking candidates' performance through real-time feedback, resume optimization, and AI-driven assistance.
- Role-Specific Interview Questions: Leveraging Google Gemini API, the app generates interview questions tailored to the user's chosen job role, required skills, and years of experience.
- Real-Time Response Recording: Users can answer questions through webcam and microphone for a more immersive, realistic interview simulation.
- Automated Feedback: AI-driven feedback from Gemini analyzes each response, providing suggestions and insights to help users refine their answers.
- Resume Content Analysis: Users can upload their resume contents as texts, and match the details (such as skills, education, and experiences) with a job description for targeted resume improvement.
- Interactive AI Questioning: Users can ask real-time questions to the AI to clarify doubts or improve understanding during interview preparation, receiving instant results and guidance.
- React.js: Utilized for building a dynamic, interactive user interface.
- Vite: Chosen as the build tool to enable faster development and efficient module bundling.
- Tailwind CSS & ShadCN UI: Used to style the components with a clean, responsive design for an intuitive user experience.
- Google Gemini API: Powers question generation, feedback on answers, and real-time user support.
- PostgreSQL Database: Stores user data, questions, and responses for quick retrieval and secure storage.
- Drizzle ORM: Simplifies interaction with PostgreSQL by providing a lightweight Object Relational Mapper for managing database queries.
- Netlify: The app is deployed on Netlify for efficient, user-friendly continuous deployment and hosting.
- Version Control: Git is used for version control, ensuring structured code management and collaborative capabilities.
- VS Code: Primary code editor for development, supporting extensions for streamlined coding and project management.
The project follows a modular structure for organized, scalable code management:
src
├── App.jsx # Main application component
├── main.jsx # Entry point for the application
├── dashboard
│ └── interview
│ └── [interviewId]
│ └── page.jsx # Interview page with dynamic routing
├── components # Reusable UI components
│ ├── ResumeSkillMatcher # Component for uploading and analyzing resume content as texts
│ ├── MatchResultPage # Component for displaying resume feedback from AI
│ └── AskQuestions # Component for generating questions based on role and skills
| └── Footer # Around all footer section components are here
| └── Header # Around all header section components are here
├── utils # Utility functions and constants
└── styles # Tailwind CSS and other custom styling files
├── home # Main home page of the site
└── lib # db
├── auth/sign-in # Basic authentication
Installation: Clone the repository and navigate into the project directory.
git clone https://github.com/marshadn/InterviewHub.git
cd InterviewHub
npm install
npm run dev
npm run build
_redirects file: Ensure you have a _redirects file in the root for Netlify client-side routing.
/* /index.html 200
Preparing for technical interviews can be challenging and overwhelming. Candidates often struggle with:
- Lack of real-time, job-specific interview questions.
- Difficulty in receiving immediate feedback on answers.
- Trouble optimizing resumes to match job descriptions effectively.
- Uncertainty in understanding and improving interview skills.
The Mock Interview Web App addresses these problems by providing:
- Job-Specific, Skill-Based Questions: Tailored interview questions that align with the candidate’s desired job role.
- Instant Feedback: Using AI to analyze and improve responses in real-time, helping users quickly identify strengths and weaknesses.
- Resume Analysis and Matching: Identifies discrepancies between a resume and a job description, guiding users to enhance their resume accordingly.
- AI Support for Clarifications: Real-time Q&A with AI for doubt resolution, helping candidates gain more clarity on complex interview topics.
- User Registration: New users can sign up and log in via Clerk authentication, creating a personalized account for interview preparation.
- Interview Setup: Users specify their job role, skills, and experience level to get questions suited to their career path.
- Mock Interview: The app generates questions, records responses via webcam and microphone, and stores them in the PostgreSQL database.
- Feedback Display: After each answer, the AI provides constructive feedback to help users identify areas for improvement.
- Resume Analysis: Users can upload the contents on the resume, display its contents, and compare it with a job description for skill and experience matching.
- AI Q&A: Users can ask questions to AI, receiving instant responses to clarify doubts and learn more effectively.
- Resume Parsing Accuracy: Some inconsistencies may occur in accurately matching resume content with job descriptions.
- Feedback Scope: Feedback focuses primarily on technical questions; expansion to behavioral aspects is desirable.
- Advanced Resume Analysis: Improve accuracy of resume parsing and add detailed insights based on job keywords.
- Behavioral Interview Feedback: Incorporate analysis for behavioral questions to provide a more comprehensive interview prep.
- Multi-Language Support: Expand language support to cater to non-English speakers.
- Additional Question Categories: Add more question types based on common interview practices for different levels.
[Muhamed Marshad] - Developer and Maintainer of the InterviewHub
Muhamed Marshad
TVE23MCA-2036
College of Engineering Trivandrum