Resume Builder (ATS-Friendly) — Complete Project Blueprint
Resume Builder (ATS-Friendly) — Complete Project Blueprint
1. Project Overview
Project Name: Resume Builder (ATS-Friendly Resume Generator)
Goal: Build a cloud-deployed, microservices-based application where users provide a Job Description and Applicant Data, and the system generates an ATS-optimized resume that can be downloaded as a PDF.
Tech Stack: — Java 17 — Spring Boot — Microservices Architecture — AWS (EC2, S3, IAM, CloudWatch) — REST APIs
2. High-Level Architecture Diagram
┌────────────────────────┐
│ Landing Page (UI) │
│ HTML/CSS/JS or React │
│ Hosted on AWS S3 │
└───────────┬────────────┘
│
▼
┌──────────────────┐
│ Resume Service │
│ (Spring Boot) │
│ EC2 : 8081 │
└───────┬──────────┘
│ REST
┌───────────────┼────────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ ATS Service │ │ File Service │
│ Keyword + Score │ │ PDF + S3 Upload │
│ EC2 : 8082 │ │ EC2 : 8083 │
└──────────────────┘ └─────────┬────────┘
│
▼
┌────────────┐
│ AWS S3 │
│ Resume PDF │
└────────────┘
3. Microservices Breakdown
3.1 Resume Service (Core Service)
Responsibility: — Accept user input — Generate structured resume content — Call ATS Service — Call File Service
Port: 8081
API:
POST /resume/generate
3.2 ATS Service
Responsibility: — Extract keywords from Job Description — Match against resume content — Calculate ATS score
Port: 8082
API:
POST /ats/analyze
3.3 File Service
Responsibility: — Convert resume text to PDF — Upload PDF to AWS S3 — Return downloadable URL
Port: 8083
API:
POST /file/generate-pdf
4. End-to-End Flow
User → Landing Page
→ Resume Service
→ ATS Service
→ Resume Service
→ File Service
→ AWS S3
→ Download Resume PDF
5. Folder Structure (Root Level)
resume-builder/
│
├── resume-service/
├── ats-service/
├── file-service/
├── frontend/
└── README.md
6. Resume Service — Folder Structure
resume-service/
├── src/main/java/com/resumebuilder/resume/
│ ├── controller/
│ │ └── ResumeController.java
│ ├── service/
│ │ ├── ResumeGeneratorService.java
│ │ └── ExternalServiceClient.java
│ ├── model/
│ │ ├── ResumeRequest.java
│ │ ├── ResumeResponse.java
│ │ └── Applicant.java
│ └── ResumeServiceApplication.java
│
├── src/main/resources/
│ └── application.yml
└── pom.xml
7. ATS Service — Folder Structure
ats-service/
├── src/main/java/com/resumebuilder/ats/
│ ├── controller/
│ │ └── AtsController.java
│ ├── service/
│ │ └── AtsAnalyzerService.java
│ ├── model/
│ │ ├── AtsRequest.java
│ │ └── AtsResponse.java
│ └── AtsServiceApplication.java
│
├── src/main/resources/
│ └── application.yml
└── pom.xml
8. File Service — Folder Structure
file-service/
├── src/main/java/com/resumebuilder/file/
│ ├── controller/
│ │ └── FileController.java
│ ├── service/
│ │ ├── PdfGeneratorService.java
│ │ └── S3UploadService.java
│ ├── model/
│ │ └── FileRequest.java
│ └── FileServiceApplication.java
│
├── src/main/resources/
│ └── application.yml
└── pom.xml
9. Frontend Folder Structure
frontend/
├── index.html
├── css/
│ └── style.css
├── js/
│ └── app.js
└── assets/
10. AWS Deployment Mapping
Component
Get Niteshrana’s stories in your inbox
Join Medium for free to get updates from this writer.
AWS Service
Resume Service
EC2
ATS Service
EC2
File Service
EC2
Resume PDFs
S3
Frontend
S3
Permissions
IAM
Logs
CloudWatch
11. application.yml (Example)
server:
port: 8081
spring:
application:
name: resume-service
12. What This Project Proves (For Interviews)
· Microservices architecture
· REST-based inter-service communication
· ATS optimization logic
· AWS EC2 & S3 deployment
· Real-world problem solving
· Clean folder structure & separation of concerns
13. Next Steps
1. Build Resume Service first
2. Test APIs using Postman
3. Add ATS Service
4. Add File Service
5. Deploy on AWS EC2
6. Host frontend on S3





