Resume Agent is an intelligent application designed to help job seekers optimize their resumes for specific job descriptions, pass Applicant Tracking Systems (ATS), and effectively track their job applications. The platform uses AI-powered analysis to extract skills from job descriptions, compare them with your existing skills, and generate tailored resumes that maximize your chances of landing interviews.
- Features
- Technology Stack
- Prerequisites
- Installation & Setup
- Usage
- Project Structure
- Development
- Contributing
Analyze job descriptions to extract required skills and identify related skills that may not be explicitly mentioned. This helps you understand the full scope of what employers are looking for.
Compare your existing skills against the requirements in a job description. Get a clear breakdown of:
- Skills you already have
- Skills you're missing
- Skills that are related and could strengthen your application
Automatically customize your resume to match specific job descriptions while ensuring it passes ATS filters. The system optimizes keyword placement and formatting to avoid AI-generated content detection.
Generate professional, ATS-friendly resumes using LaTeX templates and export them directly to PDF format. This ensures consistent formatting and professional appearance.
Receive detailed feedback on your resume based on how well it matches the job description. Get suggestions for improvements, keyword optimization, and content adjustments.
Track all your job applications in one place. Each application is linked to its corresponding job description, allowing you to:
- Monitor application status
- Review tailored resumes for each position
- Track application dates and deadlines
Choose from multiple professional resume templates optimized for different industries and ATS systems. Each template is designed to maximize readability and keyword visibility.
The following features are planned to enhance job search effectiveness:
When skills are missing, receive recommendations for courses, tutorials, and learning resources to help you acquire those skills quickly.
Get suggestions for ATS-friendly keywords based on the job description. The system analyzes industry-specific terminology and suggests the best keywords to include in your resume.
Maintain multiple versions of your resume for different types of positions. Track changes and compare versions to see which performs best.
Automatically generate tailored cover letters that complement your resume and address specific points in the job description.
Generate potential interview questions based on the job description and your resume. Practice with questions that are likely to be asked for that specific role.
Get a compatibility score that indicates how well your resume will perform with Applicant Tracking Systems. Receive specific recommendations to improve your score.
Compare different versions of your resume side-by-side to see which format and content work best for different job types.
Set reminders for application deadlines and important dates. Never miss an opportunity due to missed deadlines.
Export your resume in multiple formats including PDF, Word, LaTeX, and plain text to meet different application requirements.
Create and manage resumes in different languages for international job applications.
Track your application success rates, ATS scores over time, and identify patterns that lead to more interviews and job offers.
Analyze keywords and skills from all job descriptions you've applied to across your application history. The system aggregates data from your job applications to identify which skills are most frequently requested in the market. Get insights on trending skills, understand market demand patterns, and discover which skills are highly sought after by employers. This helps you prioritize which skills to learn or highlight based on real market demand, making your job search more strategic and effective.
Link company information and research to your job applications. Keep notes about company culture, values, and recent news to help with interviews.
- Framework: FastAPI
- Language: Python 3.11
- Database: PostgreSQL
- ORM: SQLAlchemy 2.0
- Migrations: Alembic
- AI/ML: LangChain, LangGraph (for skill analysis and resume generation)
- Document Processing: LaTeX processing for PDF generation
- Package Management: Pipenv
- Framework: React
- Language: TypeScript
- UI Library: Tailwind CSS, Shadcn UI
- Build Tool: Vite
- Styling: Tailwind CSS with mobile-first responsive design
- Containerization: Docker
- Orchestration: Docker Compose
- Development: Hot-reload enabled development containers
Before you begin, ensure you have the following installed:
- Docker (version 20.10 or higher)
- Docker Compose (version 2.0 or higher)
- Git
For manual setup (without Docker):
- Python 3.11 or higher
- Node.js 18 or higher
- PostgreSQL 16 or higher
- Pipenv (for Python package management)
- npm or yarn (for frontend dependencies)
The easiest way to get started is using Docker Compose, which sets up both the backend and database services.
-
Clone the repository
git clone <repository-url> cd resume-agent
-
Set up environment variables
cp .env.example backend/.env
Edit
backend/.envwith your configuration:POSTGRES_DB=resume_agent POSTGRES_USER=postgres POSTGRES_PASSWORD=your_password POSTGRES_HOST=postgres POSTGRES_PORT=5432 DEBUG=true
-
Start the services
docker compose -f docker-compose.dev.yml up --build
-
Run database migrations
docker compose -f docker-compose.dev.yml exec backend-dev alembic upgrade head -
Access the application
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Frontend: http://localhost:3000 (when frontend is set up)
For detailed manual setup instructions, see:
- backend/README.md - Backend manual setup
- frontend/README.md - Frontend manual setup
Note: Detailed usage documentation will be available in the respective directory READMEs. See backend/README.md and frontend/README.md for more information.
-
Upload or Create Your Resume
- Start by uploading your existing resume or creating a new one using one of the available templates.
-
Add a Job Description
- Paste or upload a job description you're interested in applying for.
-
Analyze Skills
- The system will extract required skills from the job description and suggest related skills.
-
Review Skill Gap
- See which skills you have, which you're missing, and get recommendations for improvement.
-
Tailor Your Resume
- Use the resume tailoring feature to automatically optimize your resume for the specific job description.
-
Generate PDF
- Export your tailored resume as a professional PDF using LaTeX templates.
-
Track Application
- Save the job application with the tailored resume for future reference and tracking.
-
Get Feedback
- Review feedback on how well your resume matches the job description and make improvements.
To be continued...
resume-agent/
├── backend/
│ ├── alembic/ # Database migration files
│ │ ├── env.py
│ │ ├── script.py.mako
│ │ └── versions/ # Migration versions
│ ├── src/ # Main source code
│ │ ├── auth/ # Authentication module
│ │ │ └── config.py
│ │ ├── config.py # Application configuration
│ │ ├── database.py # Database connection and setup
│ │ ├── exceptions.py # Custom exception classes
│ │ ├── main.py # FastAPI application entry point
│ │ └── pagination.py # Pagination utilities
│ ├── tests/ # Test files
│ ├── templates/ # Template files
│ ├── scripts/ # Utility scripts
│ │ ├── lint.sh # Linting script
│ │ └── migrate.sh # Migration script
│ ├── alembic.ini # Alembic configuration
│ ├── dev.Dockerfile # Development Dockerfile
│ ├── entrypoint.sh # Docker entrypoint script
│ ├── Pipfile # Python dependencies
│ ├── Pipfile.lock # Locked dependencies
│ └── pyproject.toml # Python project configuration
├── frontend/ # Frontend React application
│ └── (to be implemented)
├── docker-compose.dev.yml # Docker Compose configuration
├── .env.example # Example environment variables
├── .gitignore # Git ignore rules
└── README.md # This file
Note: For detailed development documentation, including code style guidelines, testing, linting, and database migrations, see backend/README.md and frontend/README.md.
- Create a feature branch from
main - Make your changes following the code style guidelines (see directory-specific READMEs)
- Write tests for new features
- Run linting and tests
- Create a pull request
For detailed documentation, please refer to:
- backend/README.md - Backend-specific documentation (API details, database setup, etc.)
- frontend/README.md - Frontend-specific documentation (component structure, build process, etc.)
Contributions are welcome! Please follow these guidelines:
- Fork the repository and create a feature branch
- Follow the code style guidelines mentioned above
- Write tests for new features and ensure all tests pass
- Update documentation as needed (including directory-specific READMEs)
- Follow commit conventions - We use Conventional Commits 1.0.0 for commit messages. See CONTRIBUTING.md for detailed guidelines
- Submit a pull request with a clear description of your changes
For detailed contributing guidelines, including commit message conventions and examples, please see CONTRIBUTING.md.
If you encounter any bugs or have feature requests, please open an issue on the repository with:
- A clear description of the problem or feature
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Any relevant error messages or logs