--- title: TalentFit emoji: 🎯 colorFrom: indigo colorTo: blue sdk: gradio sdk_version: 6.13.0 app_file: app.py pinned: false license: mit --- # TalentFit — Resume ↔ Job Match & Salary Intelligence A decision-support assistant for recruiting. Given a **résumé** (pasted text or an uploaded scan/image) and a **job description**, TalentFit returns a **match score**, an **expected salary range**, and a **natural-language rationale with a gap analysis**. It is **not** an automated hiring decision system — outputs are explained estimates meant to assist a human reviewer. ## AI blocks (combined into one coherent app) | Block | Contribution | Integration | | --- | --- | --- | | **NLP** (primary) | LLM extracts skills / experience / seniority from text; semantic match vs. job requirements | feeds structured features to ML; writes the final explanation | | **ML Numeric** (primary) | Salary regression from structured + NLP-derived features; ≥2 models compared | consumes NLP features; its prediction feeds the NLP explanation | | **Computer Vision** (bonus 3rd) | Classifies an uploaded résumé scan (résumé vs. other) and reads its text | gates the pipeline and produces the text input for NLP | **Pipeline:** image → *(CV)* validate + extract text → *(NLP)* extract + match → structured features → *(ML)* salary + score → *(NLP)* explanation & gaps. ## Run locally ```bash python -m venv .venv .venv\Scripts\activate # Windows PowerShell pip install -r requirements.txt setx OPENAI_API_KEY "sk-..." # or set as an environment variable for the session # 1) Train (writes artifacts/) python src/train.py # 2) Launch the inference app python app.py ``` Training and inference are **separated**: `src/train.py` produces everything in `artifacts/`; `app.py` only loads artifacts and serves the UI. ## Data sources All datasets are **new** (not the semester's Zurich-apartment or dog-breed data) and publicly available. See the project documentation (`documentation.md`) for the full list, sizes, and roles. ## Documentation Full project documentation: [`documentation.md`](documentation.md).