๐ค
SYSTEM ONLINE
ATS RESUME PIPELINE
// Automated Talent Screening & AI Scoring Platform โ v2.0
๐
// STEP 01
Resume Submission
Candidate emails resume PDF to recruiter inbox
Subject: Application for Software Engineer ยท Attachment: resume.pdf
CANDIDATE
๐ง Email arrives in Gmail inbox
๐ Attachment: resume.pdf detected
๐ค Triggers automated pipeline
๐ง
// STEP 02
Gmail Inbox
Email sits in inbox awaiting Apps Script polling cycle
status: UNREAD ยท has:attachment ยท filename:pdf
GMAIL
๐ฌ Unread email detected
๐ Search filter applied
โฑ Awaiting next poll interval
โ๏ธ
// STEP 03
Gmail Monitor โ Google Apps Script
Time-triggered function continuously polls for new resume emails
query
โ
"is:unread has:attachment filename:pdf"
trigger
โ
time-based ยท every 5 minutes
APPS SCRIPT
โ๏ธ Google Apps Script runtime
๐ Polls every 5 minutes
๐ Reads all matching threads
๐
// STEP 04
PDF โ Base64 Encoding
Reads PDF bytes from attachment, encodes for HTTP transport
resume.pdf โ JVBERi0xLjQgMSAwIG9iaiA8PC...
ENCODE
๐ Reads raw PDF attachment bytes
๐ข Encodes to base64 string
๐ฆ Wraps in JSON payload
๐
// STEP 05
AWS API Gateway
HTTPS entry point into AWS cloud โ routes request to Lambda
POST
https://YOUR_API_GATEWAY.amazonaws.com/upload
body
โ
{"body": "<base64_encoded_pdf>"}
AWS
๐ช AWS Cloud entry point
๐ Auth & rate limiting applied
โก๏ธ Triggers Lambda function
โก
// STEP 06
AWS Lambda โ resume-processor
Serverless orchestrator: parse โ extract โ score โ store
runtime: Python 3.11 ยท memory: 512MB ยท timeout: 30s
LAMBDA
โก Serverless cold start ~200ms
๐ Python 3.11 runtime
๐ฏ Orchestrates all sub-tasks
๐
// STEP 07
PDF Text Extraction โ PyPDF2
Decode base64 โ load PDF โ iterate pages โ extract raw text
output
โ
"Sarthak Ravindra Jadhav\nB.Tech Electronics & Telecommunication\nSkills: Python, AWS, VHDL\nCGPA: 7.02"
PyPDF2
๐ Page-by-page text scan
๐ค Strips formatting noise
๐ Avg 2โ3 pages processed
parallel processing
๐
// STEP 08a
Regex Extraction
email
:
[\w\.-]+@[\w\.-]+
phone
:
\d{10}
cgpa
:
7\.02 โ
experience
:
0 yrs โ
AND
๐ง
// STEP 08b
Groq AI Extraction
name
:
"Sarthak Jadhav"
skills
:
["Python","AWS","VHDL"]
education
:
"B.Tech ECE"
โถ MERGE โถ
๐
// STEP 09
Unified Candidate Profile
Regex deterministic data + Groq AI structured fields merged
name
:
"Sarthak Jadhav"
email
:
example@gmail.com
phone
:
9850286690
cgpa
:
7.02
exp_years
:
0
skills
:
["Python","AWS","VHDL"]
MERGED
๐งฉ Deterministic + AI data fused
โ Schema validated
๐ Ready for ATS scoring
๐ฏ
// STEP 10
ATS Score Engine โ Groq AI
AI evaluates holistic candidate quality and generates score + written evaluation
72
/100
ATS SCORE
Good technical foundation with strong programming background. Recommended for technical screening.
SCORE
๐ค Groq LLM evaluator
๐ Score range: 0โ100
๐ Written evaluation output
๐๏ธ
// STEP 11
AWS DynamoDB Storage
Persistent NoSQL document store ยท Table:
candidates
PK: candidate_id (uuid) ยท GSI: ats_score ยท TTL: none
DYNAMO
๐ NoSQL document store
๐ UUID primary key
๐ GSI on ats_score for queries
๐ก
// STEP 12
Lambda โ Apps Script Response
Full candidate JSON sent back over HTTP 200 OK
status
:
200 OK
name
:
"Sarthak Jadhav"
ats_score
:
72
evaluation
:
"Good..."
RESPONSE
โ HTTP 200 OK returned
๐ฆ Full JSON payload
โฌ ๏ธ Back to Apps Script
๐
// STEP 13
Google Sheets โ Write Row
Apps Script appends candidate data as a new row
Name ยท Email ยท Phone ยท Skills ยท Education ยท CGPA ยท Exp ยท ATS Score ยท Evaluation
SHEETS
๐ New row appended
๐ข 9 columns populated
๐ Timestamp auto-added
๐
// STEP 14 โ PIPELINE COMPLETE
Auto Candidate Ranking
Sheet auto-sorted by ATS Score descending ยท Top candidates surface instantly for recruiters
๐ฅ
RANK #1
TOP PICK
๐ฅ
RANK #2
STRONG
๐ฅ
RANK #3
REVIEW
โ DONE
๐ฝ Sort: ATS Score DESC
๐ Recruiter dashboard ready
๐ Full pipeline complete!
14
Pipeline Stages
72
ATS Score
2ร
AI Extractors
~3s
End-to-End
โบ REPLAY ANIMATION
LIVE
Pipeline active ยท
Lambda: resume-processor RUNNING
ยท DynamoDB write OK ยท
Last score: 72/100 โ Sarthak Jadhav
ยท Groq AI connected ยท
Gmail monitor: polling every 5 min
ยท PyPDF2 extraction OK ยท Regex patterns loaded ยท API Gateway: 200 OK ยท Sheets row appended ยท
Candidate ranked #1
ยท Pipeline active ยท
Lambda: resume-processor RUNNING
ยท DynamoDB write OK ยท
Last score: 72/100 โ Sarthak Jadhav
ยท Groq AI connected ยท
Gmail monitor: polling every 5 min
ยท PyPDF2 extraction OK ยท Regex patterns loaded ยท API Gateway: 200 OK ยท Sheets row appended ยท
Candidate ranked #1
ยท
ATS: 72/100