<!-- # Job Search AI - AI-Powered Job Search & Resume Tailoring Platform -->

## 🎯 What This Application Does

**Job Search AI** is a full-stack platform that helps professionals automatically tailor their resumes for specific job descriptions using AI-powered analysis. Instead of manually rewriting resumes for every role, users paste a job description and the AI generates a tailored resume highlighting their most relevant skills and experience. The platform also provides match scoring, ATS compatibility checking, cover letter generation, and a full application tracker.

**Tech Stack**: FastAPI Backend (Python), Next.js 15 Frontend, PostgreSQL Database, OpenAI GPT-4o-mini, Docker

---

## 🔧 Core Functionalities

### 1. 🤖 AI Resume Tailoring

-   **What it does**: Users paste a job description and the AI generates a resume tailored to the specific role
-   **AI Processing**: OpenAI GPT-4o-mini analyzes the job requirements against the user's profile data
-   **Output**: A complete tailored resume with match score (0-100%), strengths analysis, gap identification, and recommendations
-   **Workflow**: Multi-step process with Job Details, Generate, and Preview stages

### 2. 📝 Cover Letter Generation

-   **What it does**: Generates personalized cover letters based on the job description and user profile
-   **Tone Selection**: Three writing tones — Professional, Enthusiastic, and Conversational
-   **Personalization**: Optional hiring manager name for a personal touch
-   **Output**: Job-specific cover letter ready to submit

### 3. 📊 ATS Compatibility Check

-   **What it does**: Upload a resume (PDF or DOCX) and get AI-powered ATS compatibility analysis
-   **Checks**: Formatting & structure, keyword optimization, section completeness, file format compatibility, contact information clarity
-   **Output**: Detailed report with actionable suggestions for improvement

### 4. 📋 Application Tracking

-   **What it does**: Track every job application from draft to offer in one place
-   **Features**: Search, status filters (Draft, Applied, Interviewing, Offer, Rejected), salary ranges, job URLs, linked resumes
-   **Workflow**: Add applications via dialog with job title, company, location, work type, salary range, and posting URL

### 5. 👤 Profile Management & AI Resume Parsing

-   **What it does**: Store complete work history, education, skills, and professional summary
-   **AI Parsing**: Drag-and-drop resume upload with AI-powered parsing to auto-fill profile fields
-   **Integration**: Profile data is automatically used by the AI resume and cover letter generators

### 6. 🔐 Authentication & Security

-   **What it does**: Secure JWT-based authentication with dual-token strategy
-   **Security**: 30-minute access tokens, 7-day refresh tokens, bcrypt password hashing
-   **Protection**: Route protection via Next.js middleware, automatic redirect to login

---

## 🛠️ Technical Implementation

### Architecture

-   **Backend**: FastAPI (Python 3.11+) with Pydantic 2 for request/response validation
-   **Frontend**: Next.js 15 with App Router, React 19, TypeScript 5, Turbopack
-   **Database**: PostgreSQL 15 with UUID primary keys and soft deletes
-   **Styling**: Tailwind CSS 4 with Radix UI primitives, dark/light theme support
-   **AI Integration**: OpenAI GPT-4o-mini for resume generation, ATS analysis, and resume parsing
-   **API Layer**: Type-safe using openapi-fetch with auto-generated TypeScript types from OpenAPI schema
-   **Infrastructure**: Docker Compose for backend + database, Supabase migration support

### Key Technical Features

-   **20+ RESTful API endpoints** across auth, resumes, applications, users, and dashboard routers
-   **Service layer pattern** separating business logic from route handlers
-   **Type-safe API client** with auto-generated TypeScript types from OpenAPI schema
-   **JWT dual-token authentication** with middleware-based route protection
-   **Responsive UI** with full dark/light theme support and system preference detection
-   **File upload handling** for resume parsing (PDF/DOCX) with both regex and AI-based extraction
-   **Real-time form validation** and comprehensive error handling

### API Endpoints

-   `POST /api/auth/signup, /login, /refresh` — Authentication flow
-   `POST /api/resumes/generate` — AI resume generation from job description
-   `POST /api/resumes/ats-check` — ATS compatibility analysis (file upload)
-   `GET/POST /api/applications` — Application CRUD with pagination & filters
-   `GET/PUT /api/users/about-me` — Profile data used by AI generators
-   `POST /api/users/parse-resume-ai` — AI-powered resume parsing
-   `GET /api/dashboard/stats` — Dashboard statistics

---

## 📊 Project Scale & Metrics

-   **Full-stack application** with 10+ frontend pages and 20+ API endpoints
-   **Service-oriented architecture** with dedicated services for AI generation, ATS analysis, resume parsing, and CRUD operations
-   **Database schema** with 7 core tables using UUID primary keys and soft deletes
-   **Production-ready** with Docker containerization and environment-based configuration
-   **Modern tech stack** using current industry standards (Next.js 15, React 19, FastAPI, PostgreSQL)

---

## 💡 Skills Demonstrated

This project showcases:

-   **Full-stack web development** (FastAPI backend, Next.js frontend)
-   **AI/ML integration** with OpenAI GPT-4o-mini for multiple use cases
-   **API design** with OpenAPI schema and auto-generated type-safe clients
-   **Database design** with PostgreSQL, UUID keys, and soft delete patterns
-   **Authentication systems** with JWT dual-token strategy and middleware protection
-   **Modern frontend development** with Next.js 15 App Router, React 19, and TypeScript 5
-   **UI/UX design** with responsive layouts, dark/light themes, and accessible components
-   **DevOps practices** with Docker Compose containerization
-   **File processing** with PDF/DOCX upload and AI-powered content extraction

---

_A comprehensive AI-powered job search platform demonstrating modern full-stack development, AI integration, and production-ready architecture._
