Metadata-Version: 2.4
Name: skill-extractor
Version: 0.1.0
Summary: Extract skills from job postings and resumes — 32K-skill gazetteer + MiniLM embeddings + MLP context classifier (73% F1, trained on 491K samples). ONNX Runtime, no torch.
Project-URL: Homepage, https://github.com/dreamjobs-tech/skill-extractor
Project-URL: Repository, https://github.com/dreamjobs-tech/skill-extractor
Project-URL: Built by, https://www.qarera.com
Author-email: Qarera <yashthenuan21@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: hr-tech,job-postings,ner,nlp,resume-parsing,skill-extraction
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.10
Requires-Dist: huggingface-hub>=0.20
Requires-Dist: numpy>=1.24
Requires-Dist: onnxruntime>=1.16
Requires-Dist: tokenizers>=0.15
Description-Content-Type: text/markdown

# skill-extractor (Python)

Extract skills from job postings and resumes. A 32,000-skill gazetteer proposes
candidates; a MiniLM + MLP context classifier accepts or rejects each one, so
"we value a can-do attitude" doesn't become a skill. Trained on 491K labeled
samples, 73% F1 on held-out job postings.

Runs on ONNX Runtime — **no torch, no transformers** (~60MB of deps, not ~2GB).
The MiniLM model (~90MB, or ~23MB quantized) downloads from the Hugging Face Hub
on first use and is cached.

```bash
pip install skill-extractor
```

```python
from skill_extractor import extract_skills

text = """Senior Backend Engineer. 5+ years Python or Go, REST APIs with
FastAPI, PostgreSQL, AWS (ECS, Lambda). Docker and Kubernetes required.
Strong communication skills."""

print(extract_skills(text))
# ['aws', 'communication', 'docker', 'ecs', 'fastapi', 'go', 'kubernetes',
#  'lambda', 'postgresql', 'python', 'rest apis']
```

Lower-level API:

```python
from skill_extractor import SkillExtractor

ex = SkillExtractor(quantized=True)   # 23MB model, ~4x faster, ~same accuracy
ex.extract(text, threshold=0.7)       # stricter
ex.candidates(text)                   # raw gazetteer hits + context windows
```

Part of the [skill-extractor](https://github.com/dreamjobs-tech/skill-extractor)
family (Python · JavaScript · Ruby · Rust — identical output, shared parity
fixtures). Built by [Qarera](https://www.qarera.com) — see our
[analysis of 360,000+ job postings](https://www.qarera.com/reports/most-in-demand-skills-2026)
for what this pipeline extracts at scale. MIT.
