ijsasif/Module-1-Skill-Extractor
0
1---2title: TalentPulse Skill Extractor Backend3emoji: ๐4colorFrom: green5colorTo: blue6sdk: docker7app_port: 78608pinned: false9license: mit10short_description: GLiNER skill extraction API for TalentPulse Module 111---12 13# TalentPulse - Module 1 Skill Extraction API14 15Backend-only Hugging Face Space for the TalentPulse Module 1 recruitment workflow.16 17## What this Space does18 19- Accepts `PDF`, `DOCX`, and `TXT` CV files20- Extracts resume text from the uploaded file21- Runs GLiNER skill extraction22- Returns categorized skills with confidence scores for the frontend23 24## Endpoints25 26| Method | Path | Description |27|--------|------|-------------|28| `GET` | `/` | Health check |29| `GET` | `/health` | Runtime and model status |30| `POST` | `/extract-skills` | Upload CV file using `multipart/form-data` with field `file` |31| `POST` | `/extract-text` | Extract categorized skills from raw text |32 33## Frontend usage34 35The recruitment page should call:36 37```bash38POST /extract-skills?mode=gliner39```40 41The response contains:42 43- `categorized`: grouped skills by category44- `skills`: flat skill list45- `total`: total extracted skills46- `meta`: model and runtime info47 48## Example response49 50```json51{52 "filename": "resume.pdf",53 "extractor": "gliner",54 "mode": "gliner",55 "total": 4,56 "skills": [57 { "name": "python", "category": "programming language", "score": 0.95 },58 { "name": "sql", "category": "database", "score": 0.91 }59 ],60 "categorized": {61 "programming language": [62 { "name": "python", "score": 0.95 }63 ],64 "database": [65 { "name": "sql", "score": 0.91 }66 ]67 },68 "meta": {69 "text_length": 1820,70 "gliner_model": "urchade/gliner_medium-v2.1",71 "gliner_threshold": 0.35,72 "device": "cpu",73 "supported_extensions": [".docx", ".pdf", ".txt"]74 }75}76```77 78 