๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini

Struggling to tailor your resume for specific job postings? I built an AI-powered Resume Optimizer that helps you analyze your resume against any job description using Google Gemini. Here’s how I built it using the MEAN stack (MongoDB-free) with Angula…


This content originally appeared on DEV Community and was authored by Manthan Ankolekar

Struggling to tailor your resume for specific job postings? I built an AI-powered Resume Optimizer that helps you analyze your resume against any job description using Google Gemini. Here's how I built it using the MEAN stack (MongoDB-free) with Angular standalone components, Tailwind CSS, and Googleโ€™s Generative AI API.

๐Ÿ’ก Why I Built This

Every job role has unique expectations, but most resumes stay generic. I wanted to automate the process of matching resumes with job descriptions, highlighting what's missing, and suggesting improvementsโ€”all with the power of AI.

๐Ÿ›  Tech Stack

Layer Stack
Frontend Angular 20, Standalone Components, Tailwind CSS, Signals, Reactive Forms
Backend Node.js, Express, Multer
AI Engine Google Gemini via @google/genai
Parsing pdf-parse and mammoth for file extraction

๐Ÿง  Features

  • โœ… Upload Resume (PDF or DOCX)
  • โœ… Upload or Paste Job Description
  • โœ… Get AI analysis:

    • Match Score
    • Missing Keywords
    • Tailored Suggestions
  • ๐ŸŒ— Dark Mode Support

  • ๐Ÿ“ฑ Fully Responsive UI

๐Ÿงฉ System Architecture

[Angular UI] --> [Express API] --> [Gemini API]
                    |
             [PDF/DOCX Parser]

๐Ÿ–ฅ๏ธ Frontend Highlights

  • Standalone Angular Components
  • Signals for local state (resumeFile, jdFile, etc.)
  • Native control flow (@if, @else) over structural directives
  • Reactive Forms for input validation
  • Markdown rendering using ngx-markdown for AI response formatting
const form = fb.nonNullable.group({ jdText: '' });
const resumeFile = signal<File | null>(null);
const result = signal<string | null>(null);

๐Ÿ”ง Backend Highlights

  • File parsing using pdf-parse (PDF) and mammoth (DOCX)
  • Gemini prompt format:
Compare the following resume and job description. Provide:
- Match score (0-100)
- Missing keywords
- Suggested improvements
  • AI integration via @google/genai:
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const response = await ai.models.generateContent({ model: 'gemini-2.5-flash', contents: prompt });

๐Ÿš€ How to Run It Locally

๐Ÿ”— Clone the Project

git clone https://github.com/manthanank/resume-optimizer.git
cd resume-optimizer

โš™๏ธ Backend Setup

cd backend
npm install
cp .env.example .env
# Add your GEMINI_API_KEY
npm run dev

๐ŸŒ Frontend Setup

cd frontend
npm install
ng serve

๐ŸŒ Hosted Live (Demo)

๐Ÿ“ฆ Future Improvements

  • ๐Ÿ” Auth for saving resume history
  • ๐Ÿ“ Editable resume templates
  • ๐Ÿ“„ PDF download of feedback
  • ๐ŸŒ Multi-language support

๐Ÿ“ƒ License

MIT โ€” Free to use and modify. Contributions welcome!

โœจ Final Thoughts

This project taught me how to combine real-time file processing with AI content generation in a full-stack TypeScript environment. Whether you're building something for HR, job seekers, or just love AIโ€”this app is a perfect side project to learn from.

๐Ÿ‘‰ Want to try it?
๐Ÿ”— GitHub Repo
๐Ÿš€ Live Demo


This content originally appeared on DEV Community and was authored by Manthan Ankolekar


Print Share Comment Cite Upload Translate Updates
APA

Manthan Ankolekar | Sciencx (2025-07-23T04:47:09+00:00) ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini. Retrieved from https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/

MLA
" » ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini." Manthan Ankolekar | Sciencx - Wednesday July 23, 2025, https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/
HARVARD
Manthan Ankolekar | Sciencx Wednesday July 23, 2025 » ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini., viewed ,<https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/>
VANCOUVER
Manthan Ankolekar | Sciencx - » ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/
CHICAGO
" » ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini." Manthan Ankolekar | Sciencx - Accessed . https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/
IEEE
" » ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini." Manthan Ankolekar | Sciencx [Online]. Available: https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/. [Accessed: ]
rf:citation
» ๐Ÿš€ Building an AI-Powered Resume Optimizer with Angular, Node.js & Gemini | Manthan Ankolekar | Sciencx | https://www.scien.cx/2025/07/23/%f0%9f%9a%80-building-an-ai-powered-resume-optimizer-with-angular-node-js-gemini/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.