An AI-powered suite designed to streamline and revolutionize your recruitment workflow.
AI Recruiter is a modern, full-stack web application built to help recruiters and hiring managers make smarter, faster, and data-driven hiring decisions. By leveraging the power of Google's Gemini AI through Genkit, this platform automates the tedious tasks of resume screening, candidate ranking, and interview preparation, allowing you to focus on what truly matters: finding the best talent.
This project is built with a production-ready stack and serves as a comprehensive example of integrating modern web technologies with cutting-edge AI capabilities.
- π§ AI Resume Ranker: Upload multiple job descriptions and resumes to intelligently rank candidates. The AI provides a match score, ATS compatibility score, and detailed feedback for each candidate.
- π ATS Score Finder: Analyze individual resumes for Applicant Tracking System (ATS) compatibility. Get actionable suggestions to optimize resumes for automated screening processes.
- β AI Interview Question Generator: Automatically generate a comprehensive set of technical, behavioral, situational, and role-specific interview questions by simply uploading a job description.
- π Secure Authentication & Data Storage: Built-in user authentication (Sign Up/Login) powered by Firebase Authentication. All user data, including uploaded roles and screening results, is securely stored in Firestore and tied to the user's account.
- π± Fully Responsive Design: A sleek and modern UI built with ShadCN and Tailwind CSS, ensuring a seamless experience on both desktop and mobile devices.
- π¨ Light & Dark Mode: A beautiful, themeable interface that respects user preferences.
- Framework: Next.js (React)
- Generative AI: Google AI (Gemini) via Genkit
- Backend & DB: Firebase (Authentication, Firestore)
- Styling: Tailwind CSS
- UI Components: ShadCN UI
- Deployment: Ready for Firebase App Hosting
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ResumeRank AI Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Interface Layer β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Landing Page β β Dashboard β β Auth Pages β β
β β (Next.js) β β (Protected) β β (Login/Signup)β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Resume Ranker β β ATS Score Finderβ β Interview Q Gen β β
β β Feature β β Feature β β Feature β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β Built with: Next.js (App Router), React, ShadCN UI, Tailwind CSS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Authentication & Data Layer β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Firebase Auth β β Firestore DB β β User Sessions β β
β β (Email/Password)β β (NoSQL) β β (Secure) β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β Stores: User data, Job Descriptions, Resumes, Screening Results β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI Processing Layer β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Genkit Flows β β AI Prompts β β Data Analysis β β
β β (Server Actionsβ β (Structured) β β (Resume/JD) β β
β β in Next.js) β β β β β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β Flows: Rank Candidates, Calculate ATS Score, Generate Interview Questions β
β β
β βββββββββββββββββββ β
β β Google AI Geminiβ β
β β (LLM Model) β β
β βββββββββββββββββββ β
β β
β Powered by: Genkit Framework, Google AI API β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Deployment & Hosting β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Firebase App β β CI/CD β β Environment β β
β β Hosting β β (GitHub) β β Variables β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β Ready for production deployment with Firebase β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The architecture of ResumeRank AI is designed as a modern, scalable full-stack web application that integrates cutting-edge AI capabilities with robust backend services. It follows a layered architecture pattern to ensure separation of concerns, maintainability, and extensibility.
- Technology: Next.js with App Router, React components, ShadCN UI library, Tailwind CSS for styling.
- Purpose: Provides the frontend interface for user interactions, including landing pages, authentication forms, dashboard, and feature-specific pages (Resume Ranker, ATS Score Finder, Interview Question Generator).
- Key Features: Responsive design, light/dark mode support, drag-and-drop file uploads, real-time loading indicators, and toast notifications.
- Data Flow: Handles user input (file uploads, form submissions), displays results, and manages client-side state with React contexts (AuthContext, LoadingContext).
- Technology: Firebase Authentication and Firestore NoSQL database.
- Purpose: Manages user authentication (email/password), session handling, and secure data storage.
- Data Storage: User profiles, uploaded job descriptions (as data URIs), candidate resumes, screening results, and generated interview questions.
- Security: All data is tied to authenticated users, ensuring privacy and data isolation.
- Technology: Genkit framework integrated with Google AI's Gemini 2.0 Flash model.
- Purpose: Handles all AI-driven operations through structured flows and prompts.
- Key Components:
- AI Flows: Server-side functions (rank-candidates, calculate-ats-score, extract-job-roles, generate-jd-interview-questions) that orchestrate AI processing.
- Prompts: Structured prompts that guide the LLM to perform specific tasks like resume analysis, scoring, and question generation.
- Data Processing: Converts uploaded files to data URIs for AI consumption, processes AI responses, and formats results for frontend display.
- AI Capabilities: Leverages Gemini's natural language understanding for intelligent candidate ranking, ATS compatibility analysis, and contextual interview question creation.
- Technology: Firebase App Hosting for seamless deployment, GitHub Actions for CI/CD.
- Purpose: Ensures reliable, scalable hosting with automatic builds and environment management.
- Configuration: Environment variables for API keys, Firebase config, and other secrets.
- User Interaction: User uploads job descriptions and resumes via the UI.
- Authentication: Firebase Auth verifies user identity.
- Data Storage: Files are temporarily processed and stored in Firestore.
- AI Processing: Genkit flows invoke Google AI Gemini to analyze documents and generate results.
- Result Delivery: Processed data (scores, feedback, questions) is stored and displayed to the user.
- Persistence: All results are saved in Firestore for future access and analysis.
This architecture ensures high performance, security, and scalability while providing a seamless user experience for AI-powered recruitment workflows.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Node.js (v18 or later recommended)
- npm or yarn
- A Firebase project.
- A Google AI API Key.
git clone https://github.com/your-username/resumerank-ai.git
cd resumerank-ainpm installYou'll need to provide your secret keys for Firebase and Google AI. Create a file named .env.local in the root of the project by copying the example file:
cp .env.example .env.localNow, open .env.local and fill in the required values.
- Go to your Firebase Console.
- Create a new project (or select an existing one).
- In your project, go to Project Settings (the gear icon).
- Under the "General" tab, scroll down to "Your apps".
- Click the Web icon (
</>) to create a new web app. - Give it a nickname and register the app.
- Firebase will provide you with a
firebaseConfigobject. Copy the values from this object into the correspondingNEXT_PUBLIC_FIREBASE_*variables in your.env.localfile. - Enable Authentication (with Email/Password provider) and Firestore Database in the Firebase console.
- Visit Google AI Studio.
- Click "Create API key in new project".
- Copy the generated API key and paste it as the
GOOGLE_API_KEYvalue in your.env.localfile.
Once your environment variables are set, you can run the application:
npm run devThe application should now be running on http://localhost:3000.
The project follows a standard Next.js App Router structure with some key directories:
/
βββ src/
β βββ app/ # Main application pages and layouts
β βββ ai/ # Genkit AI flows and configuration
β βββ components/ # Reusable UI components
β βββ contexts/ # React contexts (Auth, Loading)
β βββ hooks/ # Custom React hooks (useToast)
β βββ lib/ # Libraries, utilities, and type definitions
β βββ services/ # Firestore service functions
βββ public/ # Static assets (images, fonts)
βββ .env.local # Your secret environment variables (ignored by Git)
