Text Classification
Transformers
ONNX
Safetensors
English
bert
resume
job-post
document-classification
cpu
text-embeddings-inference
Instructions to use smr123/resume-job-classifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use smr123/resume-job-classifier with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="smr123/resume-job-classifier")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("smr123/resume-job-classifier") model = AutoModelForSequenceClassification.from_pretrained("smr123/resume-job-classifier", device_map="auto") - Notebooks
- Google Colab
- Kaggle
resume-job-classifier
CPU-friendly 3-class text classifier that routes documents into resume, job_post, or other.
Use it to pre-filter text before resume parsers, job extractors, or downstream LLM pipelines.
Labels
| Label | Description |
|---|---|
resume |
CVs, experience blocks, skills lists |
job_post |
Job descriptions, role requirements, hiring posts |
other |
Everything else (bios, emails, blog posts, product copy, etc.) |
Model details
| Base model | microsoft/MiniLM-L12-H384-uncased |
| Training | Full fine-tune on ~1,389 labeled examples |
| Max length | 512 tokens |
| Version | v1.0.0 |
Evaluation (test split, n=140)
| Metric | Value |
|---|---|
| Accuracy | 95.0% |
| Macro-F1 | 0.95 |
| Class | Precision | Recall | F1 |
|---|---|---|---|
| resume | 1.00 | 0.93 | 0.96 |
| job_post | 0.88 | 0.95 | 0.92 |
| other | 0.94 | 1.00 | 0.97 |
Known failure modes: very short text, and resume-style phrasing like "seeking a position" can be confused with job posts.
Usage โ Transformers
from transformers import pipeline
clf = pipeline(
"text-classification",
model="smr123/resume-job-classifier",
top_k=None,
)
result = clf("We are hiring a Senior Software Engineer with Python experience.")
print(result)
# [{'label': 'job_post', 'score': 0.59}, ...]
Usage โ ONNX INT8 (CPU)
Primary deployment artifact: onnx/model_int8.onnx (~34 MB).
import numpy as np
from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForSequenceClassification
model = ORTModelForSequenceClassification.from_pretrained(
"smr123/resume-job-classifier",
subfolder="onnx",
file_name="model_int8.onnx",
)
tokenizer = AutoTokenizer.from_pretrained("smr123/resume-job-classifier")
text = "Senior Engineer at Acme Corp. Built APIs with Python and Go."
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
padding="max_length",
max_length=512,
)
logits = model(**inputs).logits[0].numpy()
probs = np.exp(logits - logits.max())
probs /= probs.sum()
label = model.config.id2label[str(int(probs.argmax()))]
print(label, float(probs.max()))
Intended use
- Document routing in hiring/recruiting pipelines
- Pre-filtering before resume or job parsing
- Research and fine-tuning on custom labeled data
Limitations
- Not a hiring decision tool
- Not PII extraction or validation
- Not legal or compliance screening
- Performance drops on very short or ambiguous text
Artifacts in this repo
config.json
model.safetensors # PyTorch weights (fine-tune / reproduce)
tokenizer.json
onnx/model.onnx # float32 export
onnx/model_int8.onnx # INT8 โ recommended for CPU inference
Source code
Training, eval, and export code: https://github.com/semirturgay/resume-job-classifier
License
Apache-2.0
- Downloads last month
- 70
Model tree for smr123/resume-job-classifier
Base model
microsoft/MiniLM-L12-H384-uncased