๐Ÿค–
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
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