File size: 3,049 Bytes
554fb1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
license: mit
tags:
  - resume-parsing
  - information-extraction
  - token-classification
  - pytorch
  - minilm
library_name: pytorch
---

# Parselex — Resume Parsing Model Weights

13-stage PyTorch checkpoint set for [Parselex](https://github.com/karan-963/parselex), a
deterministic, offline resume-to-JSON extraction pipeline. No LLM involved — each stage is a
small MiniLM-backbone classifier (~23M params) fine-tuned for one step of the pipeline (section
detection, entry boundary detection, field classification, run separately per resume section).

**This repo hosts weights only — no inference code.** Clone the code repo and point it at these
weights: https://github.com/karan-963/parselex

## Contents

Both FP32 and INT8 (quantized) checkpoints for all 13 stages, ~2.5GB total:

| Folder | Stage | Files |
|---|---|---|
| `section_p1/` | Section heading detection | `best_model_line_minilm.pt`, `best_model_line_minilm_int8.pt` |
| `section_p2/` | Section classification | `best_model.pt`, `best_model_int8.pt` |
| `education_phase1_segment/` | Education phrase segmentation | `best_model.pt`, `best_model_int8.pt` |
| `education_phase2_divider/` | Education entry boundaries | `best_model.pt`, `best_model_int8.pt` |
| `education_phase3_classify/` | Education field classification | `best_model.pt`, `best_model_int8.pt` |
| `experience_phase1_segment/` | Experience phrase segmentation | `best_model.pt`, `best_model_int8.pt` |
| `experience_phase2_divider/` | Experience entry boundaries | `best_model.pt`, `best_model_int8.pt` |
| `experience_phase3_classify/` | Experience field classification | `best_model.pt`, `best_model_int8.pt` |
| `project_phase1_segment/` | Project phrase segmentation | `best_model.pt`, `best_model_int8.pt` |
| `project_phase2_divider/` | Project entry boundaries | `best_model.pt`, `best_model_int8.pt` |
| `project_phase3_classify/` | Project field classification | `best_model.pt`, `best_model_int8.pt` |
| `skills_classify/` | Skills BIO tagging | `best_model.pt`, `best_model_int8.pt` |
| `personal_classify/` | Personal info BIO tagging | `best_model.pt`, `best_model_int8.pt` |

`best_model.pt` = FP32 checkpoint. `best_model_int8.pt` = quantized (smaller, faster, slightly
lower accuracy). Folder layout matches `model_weights/<stage>/` in the code repo exactly — no
renaming needed to use these.

## Usage

```bash
git clone https://github.com/karan-963/parselex
cd parselex/model_weights
python3 download.py   # pulls this repo via huggingface_hub, extracts into place
```

Or manually:

```python
from huggingface_hub import snapshot_download
snapshot_download(repo_id="karan963/parselex-weights", local_dir="model_weights")
```

## Training data & accuracy

See the paper for full methodology, held-out test numbers, and known limitations (small
training set, single-column resumes only, synthetic-data ceiling):
`<arXiv link — filled in once submitted>`

## License

MIT — same as the code repository. See [`LICENSE`](https://github.com/karan-963/parselex/blob/main/LICENSE).