A JSON-driven CV generator with AI background removal. Upload a profile photo and the background is automatically removed using RemBG.com API.
- Background Removal: AI-powered background removal for profile photos
- Dynamic Content: CV content loaded from
data.json - Color Customization: Customize profile photo border colors
- Print-Ready: Optimized for A4 printing (0.94 scale)
- File Upload: Support for JPG, PNG, WebP images (10MB max)
npm installCreate a .env file and add your RemBG API key:
# Create .env file
touch .envEdit .env and add your RemBG API key:
REMBG_API_KEY=your_actual_api_key_here
PORT=3000
Get your API key from RemBG.com
npm startOpen your browser and go to: http://localhost:3000
- Click on the profile photo area
- Select an image (JPG, PNG, WebP)
- Background is automatically removed
- Use color picker to change border color
- Print with "Get my CV" button
npm start- Start the production servernpm run dev- Start development server with live reloadnpm run server- Alternative way to start the server
cv/
├── data.json # CV content data
├── server.js # Express.js server with background removal API
├── index.html # Main CV page with image upload interface
├── styles.css # CSS styles with color customization
├── package.json # Dependencies including RemBG.js
├── .env # Environment variables (create this file)
├── .gitignore # Git ignore file (includes .env and uploads/)
├── uploads/ # Directory for processed profile images
├── assets/ # Demo images and assets
└── README.md # This documentation
REMBG_API_KEY- RemBG API key (required)PORT- Server port (default: 3000)
Example .env file:
REMBG_API_KEY=rembg_1234567890abcdef
PORT=3000
GET /- Main CV pageGET /api/cv-data- CV dataPOST /api/upload-profile-image- Upload and process profile imageDELETE /api/remove-profile-image- Remove profile imageGET /health- Health check
POST /api/upload-profile-image
- Content-Type:
multipart/form-data - Body:
profileImage(file) - Response:
{ "success": true, "imageUrl": "/uploads/profile-1234567890-nobg.png" }
Upload a profile photo and the background is automatically removed using RemBG.com API.
Supported formats: JPG, PNG, WebP (max 10MB)
Processing time: 2-5 seconds
Output: PNG with transparent background
Storage: /uploads directory
To update your CV, simply edit the data.json file. The structure includes:
{
"personalInfo": {
"name": "Your Name",
"title": "Your Title",
"location": "Your Location",
"phone": "Your Phone",
"email": "Your Email",
"email2": "Secondary Email",
"links": {
"stackoverflow": "https://...",
"github": "https://...",
"linkedin": "https://..."
}
}
}{
"workExperience": [
{
"period": "2021 - 2025",
"title": "Job Title",
"company": "Company Name",
"companyUrl": "https://company.com",
"companyDisplayUrl": "company.com",
"achievements": ["Achievement 1", "Achievement 2"],
"technologies": "Tech stack used"
}
]
}{
"education": [
{
"period": "2009 – 2015",
"degree": "Degree Name",
"school": "School Name",
"description": "Additional details"
}
]
}{
"skills": {
"technologies": "List of technologies",
"blockchain": "Blockchain skills",
"designPatterns": "Design patterns"
}
}{
"publicProjects": [
{
"year": "2024",
"title": "RemBG - AI Background Removal",
"url": "https://www.rembg.com",
"displayUrl": "www.rembg.com",
"description": "AI-powered background removal API with state-of-the-art computer vision",
"links": [
{
"text": "GitHub Repository",
"url": "https://github.com/Remove-Background-ai/rembg.js"
}
]
}
]
}{
"languages": [
{
"name": "ENGLISH",
"oral": "Good",
"written": "Very good"
}
]
}- Frontend:
CVLoaderclass loads data from API,ProfileImageUploaderhandles image uploads - Backend: Express.js server with multer for file handling
- AI Processing: RemBG.js SDK for background removal
- Storage: Local file system with automatic cleanup
- Install dependencies:
npm install - Configure environment variables in
.env - Start the server:
npm start
Image processing fails: Check REMBG_API_KEY in .env file
Upload fails: Check file size (max 10MB) and format (JPG, PNG, WebP)
Print issues: Use Chrome with 0.94 scale and enable "Background graphics"
Server won't start: Check port availability and .env file
- Easy Updates: Edit JSON file to update CV content
- Background Removal: Automatic AI-powered background removal
- Print Ready: Optimized for A4 printing
- Version Control: JSON data can be tracked in git
Chrome Print Settings:
- Press Ctrl+P (or Cmd+P on Mac)
- Set scale to 0.94 for perfect A4 fitting
- Enable "Background graphics" for colors
- Layout: Portrait, Paper: A4


