Try it out at resumelm.com!
🚧 Under Active Development
An intelligent, open-source resume builder powered by AI that helps create and tailor resumes for specific job applications. Built with Next.js 15, React 19, TypeScript, and Shadcn UI.
This repository is a fork of the original ResumeLM project by olyaiy, available at https://github.com/olyaiy/resume-lm. All credit for the foundational work and initial vision goes to the original creator.
This fork has adapted its development methodology. Key changes for developers looking to contribute or understand this version include:
- Context Management: This project now utilizes Cline, an AI software engineering assistant, in conjunction with a structured Memory Bank (located in the
/memory-bankdirectory) to maintain project context, track progress, and guide development decisions. - Removal of Previous Context Systems: Any previous context management systems specific to other development environments (such as
.cursorrulesor similar hidden directory configurations) have been removed in favor of the Memory Bank approach. Future development and contributions should leverage and update the Memory Bank.
Check out the live demo at resumelm.com
- 📝 Two-tier resume system:
- Base Resumes: Foundation templates for your professional profile
- Tailored Resumes: AI-optimized versions for specific job applications
- 💼 Comprehensive section management for:
- Work Experience
- Education
- Projects
- Skills
- 📊 Resume scoring system to measure effectiveness
- 🗂️ Resume sorting and organization
- 📱 Mobile-first approach with responsive layouts
- 🎨 Modern, responsive design with soft gradient minimalist theme
- 🤖 AI-powered content suggestions for all resume sections
- 💡 Smart content optimization and improvement recommendations
- 🎯 Intelligent job description analysis
- 💬 Interactive AI assistant for resume writing guidance
- ✨ Real-time content enhancement suggestions
- 🔄 Multiple AI model support (OpenAI, Claude, Gemini, DeepSeek, Groq)
- 📝 Integrated cover letter editor
- 🤖 AI-assisted cover letter creation
- 🔄 Synchronized with resume data
- 📁 Export capabilities
- 👤 User profile creation and management
- 🎓 Education history tracking
- 💼 Work experience management
- 🛠️ Skills inventory
- 🚀 Projects showcase
- 🔒 Row Level Security (RLS) for data protection
- 🚀 Server-side rendering with Next.js 15 App Router
- 📄 PDF generation and preview
- 🎨 Custom design system with consistent UI/UX
- 🔄 Real-time updates and preview
- Layered Depth: Multiple translucent layers create visual hierarchy
- Organic Motion: Subtle animations suggest liveliness without distraction
- Purposeful White Space: Generous spacing improves content digestion
- Consistent Interaction: Predictable hover and active states
- Next.js 15 (App Router)
- React 19
- TypeScript
- Shadcn UI Components
- Tailwind CSS
- React PDF
- OpenAI Integration
- Server Components for AI Processing
- Structured JSON Data Format
- PostgreSQL with Row Level Security
- Prisma ORM
- Supabase Auth
This project uses Jest for running tests. The tests are located in the /tests directory.
Key tests include:
tests/ai.test.ts: Focuses on testing the AI-driven resume tailoring functionality, ensuring the output adheres to the defined Zod schemas and content expectations.- Sample data files like
tests/sample-base-resume.tsandtests/sample-job-description.tsare used to provide consistent input for these tests.
To run the tests, you can use:
pnpm test
# or if you use npm
# npm run test Ensure your .env.test file is configured with necessary API keys if tests involve live API calls.
- Clone the repository:
git clone https://github.com/olyaiy/resume-lm.git- Install dependencies:
npm install
# or
pnpm install- Set up your environment variables:
cp .env.example .env.localRequired environment variables: Copy .env.example to .env.local and fill in the values.
- Supabase Keys: Essential for database and authentication.
- AI API Keys: Required for AI features. You can add keys for services like OpenAI, Anthropic, etc. The application will allow selection based on configured keys.
- Redis Configuration (Optional): Used for rate limiting. The application will function without these, but rate limiting will be disabled.
- See
.env.examplefor all variables.
- Set up the database:
This application uses Supabase for authentication and database features. You need to create a Supabase project and set up the required tables.
Option 1: Using the SQL Editor in Supabase Dashboard
- Copy the contents of
schema.sqlfrom this repository - Open your Supabase project dashboard
- Go to SQL Editor
- Paste and run the SQL script
Option 2: Using the Supabase CLI (for migrations)
- If you are managing schema changes through Supabase migrations (typically in the
supabase/migrationsdirectory), you would use commands likesupabase db push. - However, for applying the consolidated
schema.sqlfile directly if you're setting up fresh and not using the individual migration files, Option 1 (SQL Editor) is generally more straightforward.
- Start the development server:
npm run dev
# or
pnpm devOpen http://localhost:3000 to view the application.
This application requires several tables in your Supabase database:
- profiles: Stores user profile information including work experience, education, and skills
- resumes: Stores user-created resumes and their content
- jobs: Tracks job descriptions for resume tailoring
- subscriptions: Originally for managing user subscription status. In this local version, its role is significantly reduced or vestigial as subscription features have been removed. Core user data is in
profiles.
The complete schema with all required fields is provided in the schema.sql file.
- ✅ Complete resume management system
- ✅ AI-powered content generation and optimization
- ✅ PDF export functionality
- ✅ Responsive design system
- ✅ User authentication and authorization
- ✅ Profile management
- ✅ Real-time preview and editing
- 🔄 Enhanced AI tailoring algorithms
- 🔄 Additional resume templates
- 🔄 Advanced PDF customization
- 🔄 Job application tracking
- 🔄 Analytics dashboard
We welcome contributions! Please see our Contributing Guide for details.
GNU Affero General Public License v3 (AGPL-3.0)
This project is licensed under the GNU AGPL v3 license. This means:
- ✅ You can view, use, and modify the code
- ✅ You can distribute the code
- ✅ You must keep the source code open source
- ✅ Any modifications must also be under AGPL-3.0
- ❌ You cannot use this code in closed-source commercial applications
- ❌ You cannot use this code to provide a similar service without making your code open source
For more details, see the full license text.
Built with ❤️ using Next.js


