0% found this document useful (0 votes)
24 views5 pages

ATS Score Calculation API Using LLM

The ATS Score Calculation API allows users to upload resumes and calculates an ATS score based on job description matching using text extraction and a Large Language Model (LLM). The system outputs results in JSON format, including matched and missing keywords, and intelligent suggestions for improvement. The project aims to automate resume screening using NLP and LLM technologies, providing accurate scoring and actionable insights for recruitment workflows.

Uploaded by

23ce2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views5 pages

ATS Score Calculation API Using LLM

The ATS Score Calculation API allows users to upload resumes and calculates an ATS score based on job description matching using text extraction and a Large Language Model (LLM). The system outputs results in JSON format, including matched and missing keywords, and intelligent suggestions for improvement. The project aims to automate resume screening using NLP and LLM technologies, providing accurate scoring and actionable insights for recruitment workflows.

Uploaded by

23ce2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

ATS Score Calculation API Using LLM

[Link]
This project implements an ATS (Applicant Tracking System) Score Calculation API where a
user uploads a [Link] score refers to how well your resume matches a job description
when it is scanned by an Application Tracking System. ATS score is usually shown as a
percentage. The system extracts text from the resume, compares it with a job description,
calculates an ATS score, and uses a Large Language Model (LLM) to generate intelligent
[Link] final output is returned in JSON format.

2. Project Objective

● The main objectives of this project are:

● To allow users to upload resumes via an API

● To extract text from resumes (PDF/DOCX)

● To calculate an ATS score based on job description matching

● To use an LLM to generate intelligent improvement suggestions

● To return results in JSON format

[Link] Architecture

● User uploads resume (PDF/DOCX)

● Resume text is extracted

● Job description text is provided

● Keyword & semantic matching is performed

● ATS score is calculated

● Extracted text is sent to LLM

● LLM returns suggestions in JSON

● Final JSON response is returned to the user

4. API Design
Endpoint
POST /api/ats-score
Input

● Resume file (PDF/DOCX)

● Job description text

Output (JSON)
{
"ats_score": 78,
"matched_keywords": ["Python", "SQL", "Machine Learning"],
"missing_keywords": ["Docker", "AWS"],
"ai_suggestions": [
"Add cloud computing experience",
"Mention Docker projects",
"Improve skills section keyword density"
]
}

5. Resume Text Extraction


Tools Used
File Type Library
PDF PyMuPDF /
pdfplumber
DOCX python-docx

Why Text Extraction?


ATS systems do not read visual [Link] process plain text, so accurate extraction is
essential for correct scoring.

6. ATS Score Calculation Logic


6.1 Keyword Matching
● Skills are extracted from job description

● Resume text is compared with JD keywords

● Score is assigned based on matches

Keyword Match Score = (Matched Keywords / Total JD Keywords) × 100

6.2 Section Matching


The following sections are checked:

● Skills
● Experience
● Education
● Projects

Each section contributes a weighted score.


Section Weight
Skills 40%
Experience 30%
Education 15%
Projects 15%

6.3 Final ATS Score Formula


Final ATS Score =(Skills × 0.4) +(Experience × 0.3) +(Education × 0.15) +(Projects × 0.15)

Recommended Approach: Hybrid ATS Scoring (Rule-Based + LLM-Assisted) as Real ATS


systems never use only keywords or only AI. They use rules + semantics + ranking.

7. Which LLM to Use?


LLM Free/Paid Reason

OpenAI GPT-4 Paid Best accuracy


Groq (LLaMA 3) Free Very fast
Mistral Free Good open source
Ollama Free No API cost
Gemini API Free+Paid Google backed

Best Recommended LLM:LLaMa-3 via Groq API as Free tier available, very fast inference,
excellent at text analysis & suggestions, perfect for JSON outputs, easy FastAPI integration
8. LLM Input & Output Format
Input to LLM
{
"resume_text": "...",
"job_description": "..."
}
Output from LLM
{
"ats_score_estimate": 82,
"suggestions": [
"Add more quantified achievements",
"Include missing technical keywords",
"Optimize resume for ATS formatting"
]}

9. Third-Party API Analysis


Paid ATS APIs

● Jobscan

● HireVue

● Pymetrics

These are not ideal for academic or student projects due to cost.
Free / Custom Implementation (Recommended)

● Custom ATS logic using NLP

● Libraries: spaCy, NLTK, scikit-learn


● LLM integration for reasoning

10. Resume Length Guidelines

Candidate Recommended Pages


Student/Fresher 1 Page
2-5 Years Experience 1-2 Pages
Senior Level Max 2 Pages
Long or irrelevant resumes
negatively impact ATS scoring.

[Link]
This ATS Score Calculation API demonstrates how resume screening can be automated using
NLP and LLM technologies. The system provides accurate scoring, actionable insights, and
structured outputs suitable for modern recruitment workflows and academic projects.

Common questions

Powered by AI

The use of LLMs in generating suggestions improves the user's ability to enhance their resume by providing expert-level insights and recommended changes that are informed by a rich understanding of language and context . Examples of such suggestions include "Add more quantified achievements," "Include missing technical keywords," and "Optimize resume for ATS formatting" . These recommendations guide users in making specific, targeted improvements that increase the resume's alignment with job descriptions, enhancing the likelihood of being shortlisted by ATS systems .

LLaMA-3 via Groq API and other similar LLMs are recommended for the ATS Score Calculation API due to their free-tier availability, fast inference capabilities, and excellence in text analysis and suggestion generation . These LLMs offer the benefit of providing accurate ATS score estimates and suggestions, optimizing the resume's formatting and content to better match job descriptions . LLaMA-3's ease of integration with FastAPI and its capability to output structured JSON responses make it particularly suitable for this API's requirements .

The system ensures accurate text extraction from resumes using specialized libraries like PyMuPDF or pdfplumber for PDFs and python-docx for DOCX files . This step is crucial because ATS systems rely on processing plain text rather than visual formatting to assess the resume's content. Inaccurate extraction could result in missed keywords and incorrect section detection, leading to improper scoring .

The use of a JSON format for the API's output enhances the system's effectiveness and usability by providing a structured, machine-readable way to convey results that can be easily integrated into other applications or processed further by developers . JSON's clear key-value pair structure allows users to interpret ATS scores, matched or missing keywords, and AI suggestions effortlessly, facilitating automated workflows or user interfaces for resume improvement .

The hybrid ATS scoring approach combines rule-based methods and LLM-assisted processing by first establishing a framework of rules for keyword matching and section weighting based on skills, experience, education, and projects . These rule-based scores are then complemented by the semantic analysis and intelligent suggestions generated by a Large Language Model (LLM). This combination is recommended for real ATS systems because it ensures a comprehensive evaluation of a resume by balancing structured rule-based assessments with the nuances of semantic understanding and contextual insights that LLMs provide .

The rationale for recommending different resume lengths is based on the candidate's career stage: one page for students and fresh graduates, 1-2 pages for those with 2-5 years of experience, and a maximum of 2 pages for senior-level candidates . This recommendation affects ATS scoring as longer or irrelevant resumes can negatively impact the scoring by diluting the concentration of relevant keywords and details, potentially leading to poorer keyword matches and lower section scores .

The key factors affecting ATS score calculation in this system include keyword matching and section matching across skills, experience, education, and projects . Keyword match score is determined by the ratio of matched keywords in the resume to the total keywords in the job description . Section matching weights each section differently: skills (40%), experience (30%), education (15%), and projects (15%). The final ATS score is computed by applying these weights to produce a balanced evaluation of the resume's alignment with job requirements .

Semantic matching plays a pivotal role in this ATS system by analyzing context and the meaning behind words rather than relying solely on exact keyword matches . This enhances ATS score calculation accuracy by recognizing synonyms, related concepts, and the overall relevance of the resume content to the job description, thereby providing a more nuanced evaluation of a candidate's fit for the position . By including semantic analysis, the system can offer more intelligent suggestions for resume optimization, facilitating a deeper alignment with job requirements beyond purely quantitative keyword measures .

The API endpoint POST /api/ats-score facilitates various functionalities including the uploading of a resume file (PDF/DOCX), provision of a job description text, and outputting a JSON response with the ATS score, matched and missing keywords, and AI-generated suggestions for resume enhancement . These functionalities contribute to resume analysis by allowing users to directly compare their resumes against specific job requirements, receive quantifiable feedback on how well they match, and obtain actionable advice on improving areas where the resume may be lacking .

Using a custom ATS logic over paid APIs like Jobscan offers several implications, particularly for academic or student projects. Custom ATS logic is cost-effective, eliminates the need for expensive API subscriptions, and allows for tailored integration with NLP libraries such as spaCy, NLTK, and scikit-learn . This approach also enables flexibility in modifying and refining scoring algorithms according to specific project requirements, which is beneficial for educational purposes where understanding and customization of the process are crucial .

You might also like