Introduction
Resume Genie is a full-stack web application I designed and built to help job seekers instantly assess and improve their resumes based on the specific job postings they’re applying to. By combining document processing, AI analysis, cloud storage, and a clean frontend interface, users receive personalized, actionable feedback on their resumes in just a few seconds.You can test it out here.
Project Overview
Problem:
Job seekers often struggle to tailor their resumes effectively to each job posting, missing critical opportunities to align their qualifications with employer expectations.
Solution:
Resume Genie allows users to upload their resume and paste a job posting, then receive AI-generated, point-form feedback highlighting strengths, gaps, and improvement suggestions, tailored to that job description.
Key Features
- PDF Resume Upload: Users can securely upload their resume in PDF format.
- AI-Powered Analysis: Integrates OpenAI’s GPT-4o model to compare the resume content against the job posting and generate structured, human-readable feedback.
- Supabase Storage Integration: Resumes are uploaded to a Supabase Storage bucket, with URLs generated for access.
- Persistent Database Storage: Analysis results and resume URLs are saved to a PostgreSQL database hosted on Supabase.
- React Frontend: Clean, centered UI built with React and deployed on Netlify for a seamless user experience.
- Flask API Backend: RESTful backend built with Flask, handling file uploads, AI API requests, and database operations, deployed on Heroku.
- CORS-Enabled Communication: Secure, cross-origin communication between frontend and backend.
Technical Highlights
Languages & Tools: Python, JavaScript (React), HTML/CSS, Flask, OpenAI API, Supabase, PostgreSQL, Heroku, Netlify, PyMuPDF.
- Facade: In the backend upload_resume() function, coordinating file extraction, AI analysis, storage upload, and database entry in one simplified interface.
- Singleton: Single instantiated clients for Supabase and OpenAI connections to manage resources efficiently.
- Adapter: Using PyMuPDF to standardize PDF text extraction into plain text for AI processing.
Development Workflow
- Set up the Flask backend to handle file uploads, AI requests, and database interactions.
- Integrated Supabase Storage to securely store uploaded PDF resumes and generate public URLs for access.
- Configured a PostgreSQL database on Supabase to store resume URLs, job postings, and AI-generated feedback records.
- Built the AI integration using OpenAI’s GPT-4o API to analyze and compare resumes against job descriptions.
- Developed a React frontend to allow users to upload resumes, enter job details, and receive AI feedback.
- Styled the frontend for a clean, centered, and responsive user interface.
- Implemented CORS configuration to enable secure communication between the frontend and backend services.
- Deployed the Flask backend to Heroku and the React frontend to Netlify for full cloud-based deployment.
Learning Outcomes
- Deepened understanding of building scalable, cloud-deployed full-stack apps.
- Gained practical experience integrating AI APIs with web services.
- Hands-on experience implementing design patterns in backend service architectures.
- Strengthened deployment workflows using Netlify, Heroku, and cloud database/storage solutions.