--- title: Alture AI β€” Job Intelligence & Explainable ATS Engine emoji: 🧠 colorFrom: blue colorTo: indigo sdk: gradio sdk_version: "4.44.0" app_file: app.py pinned: false license: mit short_description: Hybrid NLP Job Recommendation & ATS Engine --- # Alture AI β€” Hybrid NLP-Based Job Recommendation and Resume–Job Matching System ## πŸ“Œ Problem Statement Most job-search and ATS (Applicant Tracking System) tools match resumes to jobs by simply looking for matching keywords. This project builds a **smarter matching system** that understands the actual meaning behind a resume and a job description β€” not just the words used β€” and gives a clear, **explainable match score**. The system combines three signal types: 1. **Semantic Similarity** β€” Sentence-BERT embeddings capture meaning beyond keywords 2. **Skill Overlap Extraction** β€” spaCy NER + custom skill dictionary identifies matched/missing skills 3. **Structured Features** β€” Text length, keyword density, and other engineered features A gradient-boosted meta-learner (XGBoost) combines these signals to predict ATS compatibility scores, outperforming any single approach alone. ## πŸ“Š Dataset - **Name**: Resume-ATS Score Dataset v1 (English) - **Source**: [Hugging Face β€” 0xnbk/resume-ats-score-v1-en](https://huggingface.co/datasets/0xnbk/resume-ats-score-v1-en) - **Size**: ~6,400 resume–job description pairs (5,100 train / 1,300 validation) - **Features**: Resume text, Job Description text, ATS compatibility score (18.3–90.7), Fit label (No Fit / Potential Fit / Good Fit) - **Target Variable**: ATS compatibility score (continuous) > **Note**: The dataset is automatically downloaded when you run the notebooks. No manual download needed. ## πŸ—οΈ Project Structure ``` Project-Folder/ β”œβ”€β”€ README.md # This file β”œβ”€β”€ requirements.txt # Python dependencies β”œβ”€β”€ .gitignore # Git ignore rules β”‚ β”œβ”€β”€ notebooks/ # Jupyter analysis notebook with all outputs β”‚ └── Capstone_Full_Pipeline.ipynb # End-to-end executed notebook (Parts 1-9) β”‚ β”œβ”€β”€ src/ # Reusable source modules β”‚ β”œβ”€β”€ __init__.py β”‚ β”œβ”€β”€ data_loader.py # Dataset downloading & loading β”‚ β”œβ”€β”€ preprocessing.py # Text cleaning & feature engineering β”‚ β”œβ”€β”€ feature_extraction.py # TF-IDF, SBERT, skill extraction β”‚ β”œβ”€β”€ models.py # Model training & evaluation utilities β”‚ └── utils.py # Helper functions β”‚ β”œβ”€β”€ deployment/ # Production Full-Stack Deployment β”‚ β”œβ”€β”€ backend/ # FastAPI REST Microservice β”‚ β”‚ β”œβ”€β”€ main.py # Application entrypoint & static mounting β”‚ β”‚ β”œβ”€β”€ matcher_service.py # Hybrid NLP & 500+ Skill Ontology engine β”‚ β”‚ β”œβ”€β”€ schemas.py # Pydantic V2 request/response schemas β”‚ β”‚ └── sample_data.py # Global tech job postings & candidate personas β”‚ └── frontend/ # Modern Modular React UI β”‚ β”œβ”€β”€ index.html # HTML5 shell β”‚ β”œβ”€β”€ app.js # React 18 state & component architecture β”‚ └── styles.css # Modern dark SaaS design system β”‚ β”œβ”€β”€ models/ # Saved trained models β”‚ └── (auto-generated .joblib files) β”‚ β”œβ”€β”€ data/ # Cached dataset files β”‚ └── (auto-downloaded) β”‚ β”œβ”€β”€ outputs/ # Generated figures and results β”‚ └── figures/ # EDA and evaluation plots β”‚ └── paper/ # IEEE LaTeX research paper β”œβ”€β”€ main.tex # LaTeX source β”œβ”€β”€ references.bib # Bibliography β”œβ”€β”€ figures/ # Paper figures └── main.pdf # Compiled PDF ``` ## πŸš€ Setup & Installation ### Prerequisites - Python 3.9 or higher - pip package manager ### Step 1: Clone the Repository ```bash git clone https://github.com/Ahmad-Mustafa-Iqbal/Alture-AI.git cd Alture-AI ``` ### Step 2: Install Dependencies ```bash pip install -r requirements.txt python -m spacy download en_core_web_sm ``` ### Step 3: Run the Notebook (Optional for inspection / re-training) Open and run `notebooks/Capstone_Full_Pipeline.ipynb` in Jupyter Lab, VS Code, or Google Colab. All cells are pre-executed with visible outputs and visualizations. ### Step 4: Launch Production FastAPI Backend & React UI ```bash # Launch the server (Serves both the REST API and the React Frontend on Port 8000) python -m deployment.backend.main ``` Or with Uvicorn: ```bash uvicorn deployment.backend.main:app --reload --port 8000 ``` - 🌐 **Interactive Web UI**: Open [http://localhost:8000](http://localhost:8000) in your browser. - πŸ“– **Interactive OpenAPI Swagger Docs**: Open [http://localhost:8000/docs](http://localhost:8000/docs). ## πŸ“ˆ Model Performance & Results (Alture AI v2.0 Benchmark) | Model | Architecture Type | MAE ↓ | RMSE ↓ | RΒ² ↑ | Precision@Top25% ↑ | F1-Score ↑ | nDCG@10 ↑ | |:---|:---|:---:|:---:|:---:|:---:|:---:|:---:| | Baseline 1: TF-IDF + Ridge | Lexical Linear | 17.55 | 21.40 | 0.265 | 0.674 | 0.611 | 0.670 | | Baseline 2: TF-IDF + Random Forest | Lexical Ensemble | 20.53 | 24.07 | 0.070 | 0.444 | 0.090 | 0.490 | | Baseline 3: SBERT + Ridge | Dense Semantic | 19.37 | 22.75 | 0.169 | 0.587 | 0.263 | 0.860 | | **Proposed: Cross-Encoder + XGBoost** | **Hybrid Attention** | **17.15** | **20.79** | **0.306** | **0.672** | **0.524** | **0.943** | | **Proposed: Cross-Encoder + LightGBM** | **Hybrid Fast Tree** | **17.17** | **20.63** | **0.316** | **0.688** | **0.529** | **0.905** | | **Proposed: Cross-Encoder + CatBoost** | **Hybrid Categorical** | **18.54** | **21.84** | **0.234** | **0.632** | **0.378** | **0.964** | | πŸ† **Proposed: Stacking Super-Ensemble** | **Multi-Modal Blend** | **17.32** | **20.72** | **0.311** | **0.709 (71%)** | **0.502** | **0.947 (95%)** | *Note: Evaluated on out-of-sample holdout test split (1,275 samples).* ## πŸ“ Evaluation Metrics - **MAE** (Mean Absolute Error) β€” Average prediction gap - **RMSE** (Root Mean Squared Error) β€” Penalizes large errors - **RΒ² Score** β€” Variance explained by the model - **Precision / Recall / F1-Score** β€” Classification performance on fit categories - **nDCG@K** β€” Ranking quality for recommendation ## πŸ› οΈ Technologies Used - **Python 3.9+** - **FastAPI & Uvicorn** β€” Production asynchronous REST API - **React 18** β€” Component-driven interactive web interface - **Pydantic V2** β€” Data validation and schemas - **scikit-learn** β€” TF-IDF, linear models, ensemble metrics - **sentence-transformers** β€” Sentence-BERT (`all-MiniLM-L6-v2`) & Cross-Encoders - **spaCy** β€” Named entity recognition & skill extraction ontology - **XGBoost / LightGBM / CatBoost** β€” Gradient boosted meta-learners - **matplotlib / seaborn** β€” Statistical evaluation visualization - **datasets** (HuggingFace) β€” Ingestion of resume-ATS corpus - **matplotlib / seaborn / plotly** β€” Visualization - **datasets** (HuggingFace) β€” Dataset loading ## πŸ“ Research Paper The IEEE-format research paper is located in the `paper/` folder: - `paper/main.tex` β€” LaTeX source file - `paper/main.pdf` β€” Compiled PDF - `paper/references.bib` β€” Bibliography ## πŸ‘€ Author Ahmad β€” Internship Capstone Project (Week 7–8) ## πŸ“„ License This project is for educational purposes as part of an internship program.