Skip to content

ATS Scorer

The ATS Scorer is a Python package for evaluating resumes against job descriptions using Applicant Tracking System (ATS) algorithms. It provides both lightweight basic scoring and advanced ML-powered semantic analysis.

Overview

The ATS Scorer helps you: - Score resumes against job descriptions with detailed breakdowns - Identify gaps between resume content and job requirements - Get recommendations for improving resume match scores - Match semantically using ML models, not just exact keywords

Features

Two Scoring Algorithms

  1. BasicScorer: Fast, lightweight scoring
  2. Keyword matching (40% weight)
  3. Skills matching (60% weight)
  4. No ML dependencies
  5. Perfect for quick evaluations

  6. ProScorer: Advanced ML-powered scoring

  7. 9 evaluation categories
  8. Semantic similarity matching
  9. Context-aware analysis
  10. Detailed recommendations

Comprehensive Analysis

The scorer evaluates multiple aspects: - ✅ Keywords and phrases - ✅ Required and preferred skills - ✅ Work experience and years - ✅ Education requirements - ✅ Certifications - ✅ Location matching - ✅ Job title relevance - ✅ Achievements - ✅ Executive summary

Installation

# Basic installation
uv pip install at-scorer

# With ML dependencies (for ProScorer)
uv pip install "at-scorer[ml]"

Quick Example

from at_scorer import BasicScorer, ResumeData, JobDescriptionText

# Create scorer
scorer = BasicScorer()

# Prepare resume data
resume = ResumeData(
    executive_summary="Experienced Python developer...",
    skills=["Python", "FastAPI", "PostgreSQL"],
    # ... more resume data
)

# Prepare job description
job = JobDescriptionText(
    text="We are looking for a Python developer...",
    keywords=["Python", "FastAPI", "Docker"]
)

# Score the resume
result = scorer.score(resume, job)

print(f"Overall Score: {result.overall_score}/100")
print(f"Keyword Score: {result.breakdown.keyword_score:.1f}")
print(f"Skills Score: {result.breakdown.skills_score:.1f}")

# View recommendations
for rec in result.recommendations:
    print(f"{rec.priority}: {rec.message}")

Next Steps