An AI-powered job matching platform that goes beyond traditional keyword matching to create meaningful connections between candidates and opportunities.
- Smart Job Matching: Utilizes Google's Gemini AI to understand job descriptions and candidate profiles contextually
- Skill Gap Analysis: Visualizes the difference between required and existing skills
- Interview Question Generator: Automatically generates relevant interview questions based on missing experience
- Vector-Based Search: Implements Pinecone for efficient and semantic search capabilities
- Interactive UI: Built with Next.js and Tailwind CSS for a smooth user experience
- Frontend: Next.js 13.5+, React, Tailwind CSS
- AI/ML:
- Google Gemini AI for natural language understanding
- HuggingFace transformers for text processing
- Pinecone for vector embeddings and semantic search
- UI Components: Custom-built components with modern design principles
Unlike traditional job matching systems that rely on keyword matching, Talent Match uses advanced AI to understand the context of job requirements. For example, it can differentiate between "5 years Java experience" and more nuanced requirements like "expert-level Java knowledge with microservices architecture experience."
The platform provides visual representations of:
- Required skills vs. candidate's existing skills
- Experience level matches
- Suggested areas for improvement
- Generates customized interview questions based on identified skill gaps
- Provides feedback on potential areas of focus for candidates
- Helps employers frame relevant technical discussion points
- Sentiment analysis for company culture matching
- Real-time market salary predictions
- Two-way matching system for companies
- Integration with popular ATS systems
- Enhanced analytics and reporting features
- Make job matching more accurate and meaningful
- Reduce time spent on initial candidate screening
- Help candidates identify and bridge skill gaps
- Provide actionable insights for both employers and job seekers
# Clone the repository
git clone [repository-url]
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Add your API keys for Gemini AI and Pinecone
# Run the development server
npm run devThis project was built as a demonstration of modern AI capabilities in the recruitment space. It's an experimental project that showcases the potential of AI in understanding and matching job requirements with candidate profiles.
Contributions are welcome! Feel free to:
- Submit bug reports
- Suggest new features
- Create pull requests
- Share feedback on matching accuracy
MIT License - Feel free to use this project for learning and development purposes.
Talent Match is an AI-powered job matching platform that connects employers with the most suitable candidates using advanced AI algorithms and vector embeddings. The application leverages Google's Gemini AI to provide intelligent matching, personalized feedback, and tailored interview questions.
- Post Job Listings: Create detailed job descriptions with requirements and qualifications
- AI-Powered Candidate Matching: Find the most relevant candidates for your open positions
- Smart Candidate Evaluation: Receive AI-generated feedback on candidate suitability
- Interview Assistance: Get AI-generated interview questions tailored to each candidate
- Profile Creation: Build a comprehensive profile showcasing skills and experience
- Resume Upload: Upload your resume for AI analysis and matching
- Job Matching: Get matched with jobs that align with your skills and experience
- Career Development: Receive feedback on how to improve your profile for better matches
- Frontend: Next.js, React, Tailwind CSS
- Database: Pinecone (Vector Database)
- AI/ML: Google Gemini AI, HuggingFace Embeddings
- Deployment: Nginx, PM2
- Authentication: Next-Auth
Before you begin, ensure you have:
- Node.js (v18 or later)
- npm or yarn
- Pinecone account for vector database
- Google AI API access (Gemini)
- HuggingFace API key for embeddings
-
Clone the repository
git clone https://github.com/sadiqhasanrupani/talent-match.git cd talent-match -
Install dependencies
npm install # or yarn -
Set up environment variables Create a
.envfile in the root directory with the following variables:# API Keys GOOGLE_API_KEY=your_google_api_key PINECONE_API_KEY=your_pinecone_api_key HUGGINGFACE_API_KEY=your_huggingface_api_key # Pinecone Configuration DEBUG_PINECONE=true # Set to false in production # Next Auth NEXTAUTH_SECRET=your_nextauth_secret NEXTAUTH_URL=http://localhost:3000 # Other Settings CANDIDATE_INDEX=candidate-index JOB_INDEX=job-index -
Build the application
npm run build # or yarn build
npm run dev
# or
yarn devnpm start
# or
yarn startWith PM2 (recommended for production):
pm2 start ecosystem.config.json- Create an account/Log in using the sign-in options
- Post a new job listing by navigating to "Add Job" and filling out the form
- Search for candidates by clicking on "Search Candidates" and entering your job details
- Review matched candidates sorted by match score
- Evaluate candidates with AI-generated feedback and suggested interview questions
- Create an account/Log in using the sign-in options
- Complete your profile by navigating to "Add Profile" and filling out the form
- Upload your resume to enhance matching accuracy
- Browse job matches sorted by relevance
- Apply to jobs directly through the platform
The application can be deployed using Nginx as a reverse proxy and PM2 for process management.
-
Set up Nginx configuration
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } -
Configure PM2 Use the provided ecosystem.config.json file:
{ "apps": [ { "name": "talent-match", "script": "npm", "args": "start", "interpreter": "none", "env": { "NODE_ENV": "production" } } ] } -
Start the application with PM2
pm2 start ecosystem.config.json
-
Set up PM2 to start on system boot
pm2 save pm2 startup
POST /api/add-candidate: Add a new candidate profileGET /api/candidates: Retrieve all candidatesGET /api/candidates/[id]: Get a specific candidate
POST /api/add-job: Add a new job listingGET /api/jobs: Retrieve all jobsGET /api/jobs/[id]: Get a specific job
POST /api/search-candidates: Find candidates matching a job descriptionGET /api/match-candidates/[jobId]: Get candidates matching a specific jobGET /api/match-jobs/[candidateId]: Get jobs matching a specific candidate
The following environment variables are required for the application to function properly:
| Variable | Description | Required |
|---|---|---|
GOOGLE_API_KEY |
API key for Google Gemini AI | Yes |
PINECONE_API_KEY |
API key for Pinecone vector database | Yes |
HUGGINGFACE_API_KEY |
API key for HuggingFace embeddings | Yes |
NEXTAUTH_SECRET |
Secret for NextAuth authentication | Yes |
NEXTAUTH_URL |
URL for NextAuth callbacks | Yes |
CANDIDATE_INDEX |
Name of Pinecone index for candidates | Yes |
JOB_INDEX |
Name of Pinecone index for jobs | Yes |
DEBUG_PINECONE |
Enable debugging for Pinecone connections | No |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository or contact the maintainers.