ResumeLab is a modern resume builder focused on speed, clarity, and a polished editing experience. It helps you write, refine, preview, and export professional resumes with less friction.
This project is forked from Magic Resume and is now organized as a frontend/backend separated monorepo, with a standalone Hono API backend for AI-powered capabilities.
This project is forked from Magic Resume. The original project's license and additional commercial restrictions in LICENSE continue to apply to the upstream codebase.
- 🚀 Built with TanStack Start
- 💫 Smooth animations (Framer Motion)
- 🎨 Custom theme support
- 📱 Responsive design
- 🌙 Dark mode
- 📤 Export to PDF
- 🔄 Real-time preview
- 💾 Auto-save
- 🔒 Local storage
apps/web: TanStack Start, Vite, React, TypeScript, Tailwind CSS, Zustand, TipTapapps/backend: Hono, Node.js, TypeScript- Workspace: pnpm
.
├── apps
│ ├── web # frontend app
│ └── backend # Hono API service
├── docker-compose.yml
├── package.json
└── pnpm-workspace.yaml
- Clone the project
git clone git@github.com:1111-stu/resume-lab.git
cd resume-lab- Install dependencies
pnpm install- Prepare env files
cp apps/web/.env.example apps/web/.env
cp apps/backend/.env.example apps/backend/.env- Start both apps
pnpm dev- Open:
- Frontend:
http://localhost:5137 - Backend:
http://localhost:3000
Run both apps:
pnpm devRun frontend only:
pnpm dev:webRun backend only:
pnpm dev:backendThis currently builds the frontend only.
Frontend apps/web/.env.example:
VITE_API_BASE_URL=http://localhost:3000
FONTCONFIG_PATH=/var/task/fontsBackend apps/backend/.env.example:
PORT=3000
CORS_ORIGIN=http://localhost:5137Notes:
- The frontend reads
VITE_API_BASE_URLat runtime to call the standalone backend. - AI provider credentials are currently configured in the frontend settings and sent to backend API routes when needed.
Current backend routes include:
GET /healthPOST /v1/resume/grammarPOST /v1/resume/polishPOST /v1/resume/importGET /v1/media/image-proxy
The grammar check flow is the first fully migrated frontend-to-backend example in this architecture.
ResumeLab will continue to be maintained as an open-source project. The next stage will focus on improving the resume editing experience and expanding AI-assisted features, including interview question prediction, resume expansion, and self-introduction generation.
This project is designed for separated deployment:
apps/webcan be deployed as the frontend serviceapps/backendcan be deployed as the API service
Each app has its own Dockerfile:
apps/web/Dockerfileapps/backend/Dockerfile
For local or simple self-hosting, you can also use Docker Compose:
docker compose up -dDefault ports:
- Web:
5137 - Backend:
3000
The source code of this project is open-sourced under the Apache 2.0 license, but with strict commercial use restrictions:
- Free for Personal Use: Free to use purely for personal, non-commercial purposes.
- Commercial License Required: Unauthorized commercial use is prohibited. If you provide it as a service, use it in commercial operations, or perform secondary commercial development, you must obtain commercial authorization.
Please read LICENSE for the detailed terms.
- AI-assisted writing
- Multi-language support
- Custom model configuration
- Auto one page
- Resume diagnosis
- Interview question prediction
- Resume expansion
- Self-introduction generation
- More resume templates
- More export formats
- Import PDF / Markdown / more formats
- Online resume hosting
If ResumeLab helps you, a star is always appreciated.