Run Parselex yourself
Turn a resume PDF into structured JSON — no LLM, no API key, no per-resume cost. Everything runs on your own CPU. There's no hosted demo; clone the repo, download the model weights, and run the engine locally.
Clone the repo
Everything lives at github.com/karan-963/parselex.
git clone https://github.com/karan-963/parselex.git
cd parselexDownload model weights
Required either way (UI or API-only). Follow model_weights/README.md in the repo: download from Google Drive and drop files into model_weights/<stage>/. ~2.5GB total (fp32 + int8 checkpoints across 13 stages).
Run the engine
cd engine
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000Verify it's up:
curl localhost:8000/health # {"status":"ok"}This alone is enough for API-only usage — skip the UI step below if you just want JSON out.
(Optional) run the web UI
cd web
npm install
cp .env.local.example .env.local
npm run devOpen http://localhost:3000 — redirects to /inference-v2. Upload a resume PDF, or click “run default” to try the bundled demo resume. FASTAPI_URL in .env.local points the UI at the engine (defaults to localhost:8000).
Parse a resume via the API
One HTTP call, blocks until the full 13-stage pipeline finishes, returns structured JSON:
curl -X POST "http://localhost:8000/inference-v2/parse" \
-F "[email protected]"Optional ?precision=fp32|int8 query param (default fp32). Response includes personal info, a summary, work history grouped by job, projects, and a skills list — each field individually labeled with a confidence score. Takes ~5–10s per resume on CPU.
Before you wire it into a real workflow
- Trained on a limited, tech-resume-skewed dataset — expect more misclassifications on unusual layouts or non-English resumes.
- Single-column resumes only; two-column layouts produce scrambled section/field assignment, not a clean error.
- No overall resume score or ATS-match ranking — Parselex extracts and labels fields, nothing more.
- Confidence scores flag low-confidence extractions for review, but a high-confidence field can still be wrong.