CareerLens Resume-Job Fit Classifier

Fine-tuned version of jjzha/jobbert-base-cased (a BERT model continually pretrained on job postings) for 3-class resume-job description fit classification, built as the main model for the CareerLens capstone project (ULAB).

Labels

  • Good Fit
  • No Fit
  • Potential Fit

Training data

Fine-tuned on cnamuangtoun/resume-job-description-fit (8,000 resume-JD pairs), using a custom resume-level group-stratified split to prevent the same candidate's resume from leaking across train/validation/test (the original dataset's official split had ~99.8% resume overlap between train and test).

  • Train: 5,832 examples
  • Validation: 1,156 examples
  • Test: 1,011 examples (held out, zero resume overlap with train/val)

Evaluation results (held-out test set)

Metric Score
Accuracy 63.60%
Macro F1 0.63

Trained for 8 epochs in a single continuous run. A 20-epoch extension was also tried but showed overfitting after epoch 12 with no statistically significant improvement, so the 8-epoch checkpoint (epoch 7) was kept as final.

Important: use with the skill-overlap safety net

Adversarial testing found this model alone has weak sensitivity to the job description — it can rate an unrelated resume as "Good Fit". In the CareerLens pipeline, predictions from this model are combined with an ESCO-based skill-overlap check (see careerlens_pipeline.py, function predict_fit_safe) before being shown to users. Using this model's raw output without that check is not recommended.

Usage

from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("parvez30/careerlens-fit-classifier")
model = AutoModelForSequenceClassification.from_pretrained("parvez30/careerlens-fit-classifier")

inputs = tokenizer(resume_text, job_description_text, truncation=True, max_length=512, return_tensors="pt")
outputs = model(**inputs)

Limitations

Trained on a relatively small, English-only dataset skewed toward IT/Software job postings; performance on other industries or non-English resumes has not been validated. See the "safety net" note above regarding JD-sensitivity.

Downloads last month
85
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for parvez30/careerlens-fit-classifier

Finetuned
(3)
this model