Skip to content

Add batch processing support for multiple resume evaluation #144

@rashim2104

Description

@rashim2104

Batch Processing Feature

Overview

Added support for processing multiple resumes from a folder with batch processing capabilities, significantly improving efficiency for recruiters and HR teams.

New CLI Options

Batch Processing

# Process all PDFs in a folder (non-recursive)
python score.py -f /path/to/resumes/

# Process all PDFs recursively (including subfolders)
python score.py -f -r /path/to/resumes/

# View help
python score.py --help

Single File (Unchanged)

# Original functionality preserved
python score.py resume.pdf

Features Added

  • Batch processing: Process multiple PDFs in one command
  • Error resilience: Continue processing if one resume fails
  • CSV export: All results saved to resume_evaluations.csv
  • Performance optimization: Single LLM provider initialization for entire batch

Performance Improvements

  • Before: 3-4 LLM provider initializations per resume
  • After: 1 initialization for entire batch

Example Output

Initializing LLM provider...
🔄 Using Google Gemini API provider with model gemini-2.5-flash

📁 Found 6 PDF file(s) in 'resumes/'
================================================================================

[1/6] Processing john_doe.pdf...
✓ John Doe: Score 87.5/100

[2/6] Processing jane_smith.pdf...
✓ Jane Smith: Score 92.0/100

[3/6] Processing bob_wilson.pdf...
✓ Bob Wilson: Score 68.0/100

================================================================================
📊 BATCH PROCESSING SUMMARY
================================================================================
Total files: 6
✓ Successfully processed: 6
❌ Failed: 0

Results saved to: resume_evaluations.csv
================================================================================

Implementation Details

Files Modified

  • score.py: Added argparse, batch processing logic, provider optimization
  • pdf.py: Modified PDFHandler to accept optional provider
  • evaluator.py: Modified ResumeEvaluator to accept optional provider
  • github.py: Modified GitHub functions to accept optional provider
  • README.md: Updated documentation with batch processing examples

Backward Compatibility

  • Single file mode works exactly as before
  • All existing functionality preserved
  • No breaking changes

Benefits

  1. Time-saving: Process 10-50 resumes in one command
  2. Better UX: Clear progress tracking and error handling
  3. Performance: Optimized LLM provider usage

This feature maintains full backward compatibility while adding powerful batch processing capabilities.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions