An advanced, intelligent, and fully interactive job application screening system that leverages multiple AI models (Custom LSTM, Fine-tuned Transformer, and Gemini Pro), NLP techniques, a Supabase backend for data persistence, and dynamic visualizations to assist HR teams and job seekers with smart matching and actionable insights.
This system aims to streamline the recruitment process, reduce manual screening time, and minimize potential bias by providing objective, data-driven insights.' This helps frame the value proposition immediately.
- ๐ Add, edit, and manage job listings stored in a Supabase database.
- ๐ Comprehensive analytics dashboard with interactive visualizations, including model performance comparisons, drawing data from Supabase.
- ๐ Real-time insights into job market trends and performance.
- ๐ Country-based and geospatial visualizations.
- ๐ Easily export prediction results (from applicant interactions logged in Supabase).
- ๐ง Intelligent resume matching with job descriptions.
- ๐ Upload resumes to get personalized job matches.
- ๐ Visual feedback on missing or suggested skills.
- ๐ค Choose between multiple analysis models:
- โ Custom Rule-Based Model (Fallback for quick analysis)
- ๐ง Custom LSTM Model (Deep Learning model for overall match score)
- ๐ค Custom Transformer Model (Fine-tuned DistilBERT for overall match score)
- ๐ฎ Gemini Pro (LLM via API) (For in-depth analysis and suggestions)
- ๐ See how your resume aligns with job expectations, with scores from different AI approaches. Your analysis history can be logged for dashboard insights.
- ๐ฏ Job title, employment mode, and location distributions from Supabase job data.
- โ๏ธ Skills WordCloud for demand overview.
- ๐ฐ Salary vs. Experience/Employment scatter plots.
- ๐ Country-based and geospatial plots.
- โ๏ธ Model Performance Comparison: Analyze average scores, score distributions, and trends for each AI model used, based on prediction history stored in Supabase.
- ๐จ Top missing skills analysis.
- Frontend: Streamlit
- Backend: Python
- Database: Supabase (PostgreSQL) for job listings and prediction history.
- AI Models:
- ๐งฌ Custom LSTM Model (Keras/TensorFlow, potentially with GloVe embeddings)
- ๐ค Custom Transformer Model (Fine-tuned DistilBERT via Hugging Face Transformers/PyTorch)
- ๐ฎ Gemini Pro (Google LLM via API)
- โ๏ธ Rule-Based System (Fallback and detailed analysis component)
- NLP & Data Processing: spaCy, NLTK (implicitly via text processing), pandas, numpy
- Machine Learning Libraries: Scikit-learn, TensorFlow, PyTorch, Hugging Face Transformers
- Visualization: Plotly, Seaborn, Matplotlib, WordCloud
- Geospatial Mapping: Plotly Express
- Model Development Environment: Jupyter Notebook (for experimentation, training, and evaluation)
git clone https://github.com/username/ai-powered-resume-scanning-system.git
cd ai-powered-resume-scanning-systempython -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the project root and add your API keys:
# For Gemini API
GEMINI_API_KEY="your_gemini_api_key_here"
# For Supabase
SUPABASE_URL="your_supabase_project_url"
SUPABASE_KEY="your_supabase_anon_key" - Go to Supabase, create an account and a new project.
- In the Supabase SQL Editor, run the SQL scripts provided in
sql/database_schema.sqlto create thejobsandprediction_historytables. - Initial Data Upload (Optional):
- To populate the
jobstable with initial data fromdata/job_dataset.csv, run the provided Python script:upload_jobs_to_supabase.py
- To populate the
For the Custom LSTM and Transformer models to function, place their trained files (generated from the Jupyter Notebook ) into an outputs/ directory at the root of the project:
- LSTM Model:
outputs/lstm_resume_matcher_model.kerasoutputs/lstm_tokenizer.json
- Transformer Model:
- The entire
outputs/transformer_resume_matcher_model/directory.
- The entire
(These models can be trained using the provided Jupyter Notebook.)
streamlit run streamlit_app.pyThe application will now connect to Supabase for job listings and prediction history.
A comprehensive Jupyter Notebook (AI_Resume_Screener_Models.ipynb) is included in data/resume-models. This notebook details the process for:
- Data loading, preprocessing, and visualization.
- Generating training labels using Gemini Pro.
- Training the Custom LSTM model.
- Fine-tuning the Custom Transformer (DistilBERT) model.
- Evaluating and comparing all models.
You can run this notebook in environments like Google Colab (recommended for GPU access for training) or your local Jupyter setup. It will generate the necessary model files that you then place in the outputs/ directory of the Streamlit application.
| Home Page | Resume Analysis | HR Panel |
|---|---|---|
![]() |
![]() |
![]() |
| Analytics Dashboard | Visualization |
|---|---|
![]() |
![]() |
This system integrates multiple AI models to provide a comprehensive and flexible resume screening experience:
A foundational system that performs matching based on direct keyword extraction for skills and predefined rules for experience levels. It serves as a fallback and provides detailed breakdowns for skill/experience matches when custom ML models are used for overall scoring.
A Deep Learning model built with Keras/TensorFlow, designed to predict an overall match score between a resume and a job description. It processes tokenized text sequences from both inputs through LSTM layers and can be initialized with pre-trained word embeddings like GloVe to capture semantic meaning. This model is trained on data potentially labeled by Gemini Pro for more nuanced understanding.
A powerful language model (DistilBERT from Hugging Face) fine-tuned on the specific task of resume-to-job description matching. It leverages the Transformer architecture's ability to understand context and relationships in text, providing an overall match score. This model is trained using PyTorch and the Hugging Face Transformers library.
A state-of-the-art large language model (LLM) by Google, accessed via API. Gemini Pro provides in-depth, context-aware analysis of resumes against job descriptions, offering not only match scores but also detailed textual feedback, identification of specific skill matches/gaps, and actionable suggestions for candidates.
Distributed under the MIT License. See the LICENSE for more information.
๐ Built with passion for the future of AI-driven hiring.
๐ฌ Contributions, feedback, and ideas are always welcome!




