Scores how well a resume fits a job description, using DSPy instead of a hand-written prompt.
Most "AI resume scorer" projects are just a prompt someone tweaked until it looked right. This one is built differently:
matcher.pydefines a signature (inputs/outputs) instead of a prompt string. DSPy figures out how to prompt the model to hit that signature.optimize.pyshows how to give DSPy a small set of labeled examples (job + resume + expected score) and let its optimizer (BootstrapFewShot) build the few-shot prompt automatically, rather than me guessing at wording.
I built this to help sort my own job applications by fit, and as a way to actually learn DSPy's core ideas (signatures, modules, optimizers) instead of just reading about them.
pip install -r requirements.txt
export OPENAI_API_KEY=your_key_hereBasic scoring:
python matcher.pyOptimize with labeled examples:
python optimize.pymatcher.py - signature + module definition, run this for a quick test
optimize.py - trains the matcher on labeled examples using DSPy's optimizer
requirements.txt
For a given job description + resume bullets, it returns:
fit_score- 0-100matched_skills- what lined upmissing_skills- what's missingreasoning- short explanation of the score
- Grow the labeled training set from real applications
- Swap
BootstrapFewShotforMIPROv2once there's more training data - Hook this into the Airtable/Make job application tracker so scoring happens automatically on new applications