High-performance, ATS-optimized software engineering resume builder.
Features • Quick Start (Docker) • Local Development • Environment Variables
GGResume is a fast, minimalist, and document-first resume builder built specifically for software engineers. Instead of generic "AI-styled" templates, GGResume follows strict typography, spacing, and ATS (Applicant Tracking System) layout principles so your resume parses accurately and reads cleanly.
- 10 ATS Fonts & Monospace Typography: Literata, Merriweather, Lora, EB Garamond, Source Sans 3, Inter, Roboto, Open Sans, Lato, and Plus Jakarta Sans.
- Natural CSS Float Text-Wrapping: Accomplishment bullets flow seamlessly around right-aligned dates and locations without arbitrary vertical gaps or collisions.
- ATS Bullet Indents: Hanging indents with square markers (
■), discs, or dashes. - Keyword Formatting: Instant Markdown bold helpers (
**tech_stack**) for ATS keyword recognition. - Two-Column Contact Headers: Clean vector iconography for GitHub, LinkedIn, Email, Phone, and Portfolio.
- Manage Multiple Resumes: Create blank resumes, clone existing versions, rename, and organize tailored resumes for different roles.
- Search & Filter: Instant search across job titles, candidate names, skills, and companies.
- Sort & Views: Sort by recently updated, oldest, or alphabetical order; toggle between responsive Grid and Table/List views.
- Import & Export: Backup or restore any resume as a standalone JSON file.
- Real-Time A4 Preview: True-to-scale A4 page rendering with zoom controls (Zoom In, Zoom Out, Fit to Window).
- Drag & Reorder Sections: Personal Info, Summary, Skills, Work Experience, Projects, Education, References, and Custom Sections.
- Density Controls: Configurable font sizing (Compact, Standard, Spacious), line heights, page margins, and divider styles.
- Native Browser Print (
window.print()): Generates pixel-perfect, vector-sharp PDFs directly using the browser's native print engine. - Dedicated Print Stylesheet: Precision
@media printrules with zero-margin A4 pagination, exact color reproduction, and full font fidelity.
- Resumes are stored directly in PostgreSQL with
JSONBfor schema flexibility and fast queries. - Automatic table initialization with persistent Docker volume.
- Zero third-party cloud database dependencies or vendor lock-in.
The fastest way to run GGResume and PostgreSQL together is using Docker Compose:
# 1. Clone the repository
git clone https://github.com/belikesohan/ggresume.git
cd ggresume
# 2. Start the services
docker compose up -d --buildOnce running:
- GGResume App: http://localhost:3000
- PostgreSQL:
localhost:5432(POSTGRES_DB=ggresume,POSTGRES_USER=postgres,POSTGRES_PASSWORD=postgres)
If you prefer to run the Next.js development server locally while running PostgreSQL in Docker:
docker compose up -d postgres# Install node packages
npm install
# Start Next.js in development mode
npm run devOpen http://localhost:3000 in your browser.
# Type check and build standalone production bundle
npm run build
# Start production server
npm run start| Variable | Default (Local / Docker) | Description |
|---|---|---|
DATABASE_URL |
postgresql://postgres:postgres@localhost:5432/ggresume |
Full PostgreSQL connection string |
POSTGRES_USER |
postgres |
PostgreSQL username |
POSTGRES_PASSWORD |
postgres |
PostgreSQL password |
POSTGRES_DB |
ggresume |
PostgreSQL database name |
POSTGRES_HOST |
postgres (Docker) / localhost (Dev) |
PostgreSQL host |
POSTGRES_PORT |
5432 |
PostgreSQL port |
AUTH_LOCAL_MODE |
true |
When true, email verification is bypassed (instant sign up for local/Docker dev) |
AUTH_SECRET |
secret |
Secret key for signing session tokens |
GOOGLE_CLIENT_ID |
(optional) |
Google OAuth 2.0 Client ID for Google Sign-In |
GOOGLE_CLIENT_SECRET |
(optional) |
Google OAuth 2.0 Client Secret for Google Sign-In |
RESEND_API_KEY |
(optional) |
Resend API key for sending verification emails |
EMAIL_FROM |
GGResume <noreply@ggresume.com> |
Sender address for transactional emails |
APP_URL |
http://localhost:3000 |
Application base URL used in verification email links |
PORT |
3000 |
Port for the Next.js frontend service |
- Bold Keyword: Wrap terms with
**keyword**inside summaries, bullet points, or skill lists. - Section Ordering: Use the Settings tab to toggle visibility or change section priority on the page.
- Page Overflow Control: Toggle between Compact (9.5pt), Standard (10pt), and Spacious (10.5pt) or adjust line spacing (0.9 – 1.4) to fit standard 1-page limits.
MIT
