File size: 3,688 Bytes
d2b7a80 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | ---
title: ATS Resume Intelligence Engine
emoji: π
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
pinned: false
license: mit
suggested_hardware: cpu-upgrade
---
# ATS Intelligence Engine
<p align="center">
<b>An AI-powered Applicant Tracking System that scores resumes against job descriptions using semantic similarity.</b><br>
Built with FastAPI, LangChain, and Hugging Face β deployable as a Docker Space.
</p>
---
## Features
* Upload resume & job description (PDF or text)
* Extract text using PyMuPDF
* Semantic similarity via Sentence Transformers
* Keyword matching for skill overlap
* Final ATS score with LangChain + Hugging Face LLM feedback
* REST API built with FastAPI
* Docker Space ready (port **7860**)
---
## Tech Stack
| Layer | Technology |
| ---------------- | ----------------------------------- |
| Backend | FastAPI, Uvicorn |
| ML / Embeddings | Sentence Transformers, Scikit-learn |
| LLM / Feedback | LangChain, Hugging Face Inference API |
| PDF Parsing | PyMuPDF |
| Frontend | HTML / JS (served by FastAPI) |
| Deployment | Docker, Hugging Face Spaces |
---
## Deploy on Hugging Face Spaces (Docker)
### 1. Create a new Space
1. Go to [huggingface.co/new-space](https://huggingface.co/new-space)
2. Choose **Docker** as the SDK
3. Pick a name (e.g. `ats-resume-intelligence`)
4. Hardware: **CPU upgrade** (recommended for Sentence Transformers)
### 2. Push this repository
```bash
git remote add space https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
git push space main
```
Or clone the empty Space repo and copy these files into it, then commit and push.
### 3. Add your Hugging Face token (required for AI feedback)
In the Space β **Settings** β **Repository secrets**, add:
| Secret name | Value |
| ----------- | ----- |
| `HF_TOKEN` | Your Hugging Face access token ([create one](https://huggingface.co/settings/tokens)) with **Inference** permission |
The Space will rebuild automatically after you push or add secrets.
### 4. Open your live app
Your Space URL will be:
`https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME`
The UI and API run on the same origin (port 7860), so no CORS or proxy setup is needed.
---
## Run locally with Docker
### Prerequisites
* Docker
* Hugging Face API token
### Setup
Create a `.env` file:
```env
HF_TOKEN=your_huggingface_token_here
```
### Start
```bash
docker compose up --build
```
Open **http://localhost:7860**
---
## API Endpoints
### `POST /predict/ats` β JSON
```json
{
"resume_text": "...",
"job_description": "..."
}
```
### `POST /predict/ats/upload` β multipart
| Field | Type | Description |
| --------------- | ------ | -------------------- |
| resume_pdf | File | Resume PDF |
| resume_text | string | Resume text |
| jd_pdf | File | Job description PDF |
| job_description | string | Job description text |
### Response
```json
{
"semantic_score": 0.82,
"keyword_score": 0.74,
"final_ats_score": 0.79,
"summary": "..."
}
```
### `GET /health` β health check
---
## Development (without Docker)
```bash
pip install -r requirements.txt
set HF_TOKEN=your_token_here
uvicorn main:app --reload --port 7860
```
For local dev without the Space URL, in `Frontend/app.js` set:
```js
const API = 'http://localhost:7860';
```
---
## Environment variables
| Variable | Description |
| -------- | ----------- |
| `HF_TOKEN` | Hugging Face API token (Space secret or `.env`) |
---
## License
MIT License
|