A modern, interactive resume management platform that transforms how job seekers organize and tailor their applications. Built with a visual, graph-based interface that makes managing multiple job applications intuitive and efficient.
RMS is an innovative approach to resume management that combines:
- Visual Organization: Interactive graph interface for managing companies and job opportunities
- Smart CV Management: Upload once, tailor intelligently for multiple positions
- AI-Powered Tailoring: Generate customized resumes based on company and role requirements
- Streamlined Workflow: From CV upload to tailored resume generation in just a few clicks
Traditional resume builders force users through complicated wizards and template selections when job seekers just want something simple and effective. Most tools focus on creating resumes from scratch rather than managing what you already have.
RMS is different:
- Management First: Organize your base CV and systematically tailor it for specific roles
- Visual Organization: See all your target companies and positions in one interactive view
- Smart Tailoring: Let AI handle the intelligent customization based on job requirements
- One Master Document: Upload once, generate focused variations as needed
RMS/
βββ π backend/ # Django REST API Server
β βββ accounts/ # User authentication & management
β βββ companies/ # Company data models & APIs
β βββ jobs/ # Job posting models & APIs
β βββ resumes/ # CV/Resume processing & storage
β βββ media/ # File uploads (CVs, generated resumes)
β βββ resumebuilder/ # Django project settings
β βββ requirements.txt # Python dependencies
β βββ manage.py # Django management script
βββ π frontend/ # React.js Web Application
β βββ src/
β β βββ components/ # UI Components
β β βββ services/ # API communication
β β βββ App.tsx # Main application component
β βββ package.json # Node.js dependencies
β βββ tailwind.config.js # Styling configuration
βββ π scripts/ # Setup & deployment scripts
β βββ setup_windows.ps1 # Windows environment setup
β βββ start_servers_windows.ps1 # Windows development server launcher
β βββ start_servers.sh # Unix development server launcher
βββ π images/ # Documentation assets
βββ LICENSE # License
βββ README.md # Project documentation
- React 18 - Modern UI framework with hooks and concurrent features
- TypeScript - Type-safe JavaScript for better development experience
- Tailwind CSS - Utility-first CSS framework for rapid styling
- Mantine UI - Professional React components library
- React Flow - Interactive graph visualization and manipulation
- Framer Motion - Smooth animations and transitions
- React Hook Form - Performant form handling with validation
- Axios - HTTP client for API communication
- Lucide Icons - Beautiful, customizable icon library
- Django 4.2 - Robust Python web framework
- Django REST Framework - Powerful API development toolkit
- SQLite - Lightweight database for development (PostgreSQL ready)
- PyPDF2 & pdfplumber - Comprehensive PDF text extraction
- ReportLab - PDF generation and manipulation
- OpenAI API - GPT integration for resume tailoring
- Pillow - Image processing capabilities
- Celery + Redis - Background task processing (optional)
- Gunicorn + WhiteNoise - Production deployment ready
- CORS Headers - Cross-origin resource sharing configuration
- Django Debug Toolbar - Development debugging tools
- Python Decouple - Environment configuration management
- PowerShell Scripts - Windows automation and setup tools
- Python 3.9+ - Backend development
- Node.js 16+ - Frontend development
- Git - Version control
- PowerShell (Windows) or Bash (Unix) - Script execution
# Clone the repository
git clone https://github.com/yechanlin/RMS.git
cd RMS
# One-time setup (installs dependencies, creates virtual environment)
.\scripts\setup_windows.ps1
# Start both servers
.\scripts\start_servers_windows.ps1# Clone the repository
git clone https://github.com/yechanlin/RMS.git
cd RMS
# Start both servers (auto-setup included)
./scripts/start_servers.shThis will automatically:
- β Install all Python and Node.js dependencies
- β Create and activate Python virtual environment
- β Run database migrations
- β
Start Django backend on
http://localhost:8000 - β
Start React frontend on
http://localhost:3000
Click to expand manual setup instructions
cd backend
# Create and activate virtual environment
python -m venv venv
# Windows:
.\venv\Scripts\activate
# Unix/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Setup environment variables
cp env.example .env
# Edit .env file to add your API keys
# Run migrations
python manage.py migrate
# Start Django server
python manage.py runserver 8000cd frontend
# Install dependencies
npm install
# Start React development server
npm startCreate a .env file in the backend/ directory:
# AI API Keys (choose one or both)
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# Django Settings
SECRET_KEY=your_django_secret_key
DEBUG=True- Frontend Application:
http://localhost:3000 - Backend API:
http://localhost:8000 - API Documentation:
http://localhost:8000/api/ - Django Admin:
http://localhost:8000/admin/
- Node-Based Graph: Intuitive drag-and-drop interface for managing companies and jobs
- Real-Time Updates: All changes sync instantly with the backend database
- Smart Layout: Automatic node positioning with manual adjustment capabilities
- Visual Relationships: Clear connections between companies and their job openings
- Multi-Format Support: Upload PDF, DOC, DOCX, or TXT files
- Text Extraction: Automatic content parsing from uploaded documents
- Version Control: Track different versions of your base CV
- File Management: Secure storage with organized file structure
- Company Profiles: Store company information, descriptions, and multiple job openings
- Job Details: Comprehensive job descriptions, requirements, and application status
- Bulk Operations: Create, edit, and delete multiple entries efficiently
- Search & Filter: Quickly find specific companies or positions
- OpenAI Integration: GPT-powered resume customization
- Anthropic Claude: Alternative AI provider for diverse output styles
- Context-Aware Generation: Tailors content based on specific job requirements
- Intelligent Formatting: Maintains professional resume structure and formatting
- Persistent Storage: SQLite database with PostgreSQL production support
- File Organization: Structured media storage for CVs and generated resumes
- Backup Ready: Easy data export and migration capabilities
- RESTful APIs: Clean, documented API endpoints for all operations
- Complete Django REST API with full CRUD operations
- Database Models: Companies, Jobs, BaseCV, and TailoredResume models
- File Upload System: Secure CV upload with validation and storage
- PDF Processing: Text extraction from uploaded documents
- API Documentation: Well-structured RESTful endpoints
- Database Migrations: Full schema with relationship integrity
- Interactive Graph Interface using React Flow
- Modern UI Components with Mantine and Tailwind CSS
- Real-Time Synchronization between frontend and backend
- File Upload Interface with drag-and-drop functionality
- Responsive Design optimized for various screen sizes
- Error Handling & Loading States for smooth user experience
- Cross-Platform Scripts for Windows and Unix environments
- Automated Setup with one-command installation
- Development Workflow with hot-reload and debugging tools
- CORS Configuration for seamless frontend-backend communication
- OpenAI API Integration: Connected and ready for resume tailoring
- Anthropic Claude Support: Alternative AI provider configured
- Content Processing Pipeline: Framework for intelligent text generation
- Template System: Structure for maintaining resume formatting
- Smart Resume Tailoring: AI-generated content based on job descriptions
- Multiple AI Providers: OpenAI and Anthropic integration with fallback
- Content Optimization: Industry-specific keyword optimization
- A/B Testing: Compare different AI-generated versions
- User Authentication: Secure login and personal data management
- Application Tracking: Monitor job application status and deadlines
- Template Library: Multiple resume formats and styles
- Analytics Dashboard: Track application success rates
- PostgreSQL Migration: Production database configuration
- Cloud Deployment: AWS/GCP deployment scripts
- Performance Optimization: Caching and background task processing
- Mobile Responsiveness: Enhanced mobile and tablet experience
GET /api/companies/- List all companiesPOST /api/companies/- Create new companyPUT /api/companies/{id}/- Update company detailsDELETE /api/companies/{id}/- Remove companyGET /api/companies/{id}/- Get specific company details
GET /api/jobs/- List all job positionsPOST /api/jobs/- Create new job postingPUT /api/jobs/{id}/- Update job detailsDELETE /api/jobs/{id}/- Remove job postingGET /api/jobs/by_company/?company_id={id}- Filter jobs by company
POST /api/resumes/base-cv/upload/- Upload new CV fileGET /api/resumes/base-cv/latest/- Retrieve most recent CVGET /api/resumes/base-cv/{id}/download/- Download CV filePOST /api/resumes/tailor/- Generate tailored resume (coming soon)
POST /api/resumes/generate/- Create AI-tailored resumeGET /api/resumes/tailored/{id}/- Retrieve generated resumeGET /api/resumes/tailored/by_job/{job_id}/- Get resumes for specific job
We welcome contributions from developers of all skill levels! Here's how you can help improve RMS:
-
Fork the repository and create your feature branch:
git checkout -b feature/amazing-new-feature
-
Set up your development environment:
# Use our setup scripts for quick start .\scripts\setup_windows.ps1 # Windows ./scripts/start_servers.sh # Unix/Mac
-
Make your changes following our coding standards:
- Backend: Follow PEP 8 for Python code
- Frontend: Use TypeScript and follow React best practices
- Comments: Write clear, descriptive comments
- Testing: Add tests for new functionality
-
Test your changes:
# Backend tests cd backend && python manage.py test # Frontend tests cd frontend && npm test
-
Commit and push your changes:
git commit -m "Add amazing new feature" git push origin feature/amazing-new-feature -
Submit a Pull Request with a clear description of your changes
- AI Integration: Enhance resume tailoring algorithms
- UI/UX Improvements: Make the interface more intuitive
- Performance Optimization: Database queries and frontend rendering
- Testing: Unit tests, integration tests, and end-to-end testing
- Documentation: API docs, user guides, and code comments
- Bug Fixes: Check our Issues tab for reported bugs
- Python: Black formatter, flake8 linter
- JavaScript/TypeScript: Prettier formatter, ESLint
- Git Commits: Use conventional commit messages
- Documentation: Update README and API docs for new features
cd backend
python manage.py test
python manage.py test resumes.tests # Specific app testscd frontend
npm test # Run all tests
npm test -- --coverage # Run with coverage reportUse the provided scripts for local development:
# Windows
.\scripts\start_servers_windows.ps1
# Unix/Mac
./scripts/start_servers.sh- Set up environment variables in
.envfile - Configure PostgreSQL database (optional, SQLite works for small scale)
- Collect static files:
python manage.py collectstatic - Use production server: Gunicorn + Nginx configuration included
- Deploy frontend:
npm run buildfor optimized React build
This project is licensed under the MIT License - see the LICENSE file for details.
- β Commercial use allowed
- β Modification allowed
- β Distribution allowed
- β Private use allowed
- β Liability not provided
- β Warranty not provided
- React Flow team for the excellent graph visualization library
- Django REST Framework community for robust API development tools
- Mantine team for beautiful, accessible UI components
- OpenAI & Anthropic for powerful AI text generation capabilities
- Tailwind CSS for making styling fast and consistent
- GitHub Issues: Report bugs or request features
- Project Lead: Ye Chan Lin
- Email: Contact through GitHub profiles
- Documentation: Check our Wiki for detailed guides
Built with β€οΈ by the RMS Team
