[Feature] JD-Augmented Scoring and Multi-Candidate Batch Processing #167
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementation Details
Usage
1. JD-Augmented 1-to-1 Scoring
Enables users to provide both a resume and a job description for detailed fit analysis:
2. Multi-Candidate Batch Processing and Shortlisting
Accepts a directory of resumes, a single job description, and a cutoff score threshold. Processes all resumes, ranks them, and outputs a shortlist of candidates meeting the minimum score:
Core Module Changes
models.py
ScoresWithJDandEvaluationDataWithJDmodels to structure enriched evaluation (with JD) outputtemplate_manager.py
jd_system_messageandjd_evaluation_criteriaprompts for fit analysisevaluator.py
_load_evaluation_prompt_with_jdfor loading the final, decorated JD-based evaluation promptevaluate_resume_with_jdto handle the JD-based evaluation flowtransform.py
transform_evaluation_response_with_jdto parse LLM output into CSV rows (to be saved)score.py
_jd_contextfunction for job description parsing from PDF to textevaluate_resume_with_jdas the core 1-to-1 scoring functiondir_mainfunction to orchestrate batch processing and ranking workflow in the directoryprint_evaluation_results_with_jdfor clean, user-facing output formatting like the base evaluation outputOutput (1-to-1):

Output (N-to-1) (snippet)

If this PR is accepted, it will close #166.