A modern resume optimization tool with CLI, web application, and AI-powered matching capabilities.
- Interactive Resume Customizer with responsive design and component-based architecture
- Mobile-First Responsive Design with DaisyUI drawer hamburger menu for phones/tablets
- Real-time Statistics showing dynamic content metrics that update as you customize
- 34 DaisyUI Themes with seamless switching and consistent component library
- DaisyUI Wrapper Components for buttons, toggles, cards, badges, and form elements
- 9 Strategic Presets (Comprehensive, One-Page, Senior Engineering Leadership, Startup Pioneer, AI & Innovation Leader, Principal IC+, Consultant/Advisory, Tech Teacher/Coach, Reference Sheet)
- Section Toggles with category-specific all/none controls
- Strategic Content Curation System with index-based selection for intelligent content optimization
- Intelligent Bullet Priority Filtering with baseline priorities across all sections
- Two-Tier Content Density System with section-level and bullet-level filtering
- Preset Priority Override System for role-specific content emphasis
- Hierarchical State Resolution with unified filtering controls (checkboxes > timeframe > density) eliminating mode toggles
- URL State Management for bookmarkable resume configurations with compact encoding supporting sections, density, and timeframe parameters
- Universal Timeframe Filtering across all 9 sections (experience, projects, education, volunteering, honors-awards, activities, recommendations, certifications, courses) with intelligent date parsing
- Centralized Filter Utilities with reusable FilterUtils eliminating code duplication across section renderers
- Responsive Design optimized for all devices with mobile hamburger navigation
- PDF-Ready Styling with scoped CSS architecture, static white background, and max-width content containers
- Theme-Aware PDF Export - Generated PDFs automatically inherit current DaisyUI theme colors for cohesive visual branding
- One-Click PDF Export with auto-generated filenames (
joseph-sangiorgio-resume-2025.pdf) - Production Cloud Infrastructure - Gotenberg service deployed on Google Cloud Run with auto-scaling and free tier hosting
- Modern HTML โ PDF conversion with Playwright (CSS Grid, modern layouts)
- ES Module architecture with path aliases
- Consistent tooling (ESLint, Prettier, TypeScript support)
- Shared utilities for CLI and web components
For current development priorities and session planning, see docs/next-session.md
# Install dependencies
npm install
# Start the web development server
npm run dev:web
# Open browser to localhost:3000
# Customize your resume with interactive controls
# Use density slider to filter content intelligently# Install dependencies
npm install
# Convert HTML to PDF
npm run html-to-pdf input.html --css styles.css -o output.pdf
# View all commands
npm run cli -- --helpresume-optimizer/
โโโ src/
โ โโโ cli/ # CLI tool (production ready)
โ โ โโโ convert.js # Main CLI script with Playwright
โ โโโ shared/ # Shared utilities
โ โ โโโ resume-generator.js # Resume generation logic
โ โโโ web/ # SvelteKit Web Application
โ โ โโโ app.html # App shell with theme loading
โ โ โโโ routes/ # SvelteKit routes
โ โ โ โโโ +page.svelte # Main resume customizer interface
โ โ โ โโโ +page.server.js # Server-side data loading
โ โ โโโ lib/
โ โ โโโ components/ # Svelte components
โ โ โ โโโ ThemeSelector.svelte # 34 theme selector
โ โ โ โโโ DensityControls.svelte # Priority-based filtering
โ โ โ โโโ ResumeViewer.svelte # Scoped resume display
โ โ โโโ utils/ # Section renderers with priority filtering
โ โ โโโ experience-renderer.js # Priority-based bullet filtering
โ โ โโโ projects-renderer.js # Strategic project curation
โ โ โโโ activities-renderer.js # Activity importance ranking
โ โโโ functions/ # Netlify Functions (future)
โโโ input/ # Input data (organized by type)
โ โโโ profiles/ # Profile data with bullet priorities
โ โ โโโ profile.json # Full profile with resume_config
โ โ โโโ sections/ # Section data with baseline priorities
โ โ โ โโโ experience.json # All 18 entries with bullet_priorities
โ โ โ โโโ projects.json # All 20 entries with bullet_priorities
โ โ โ โโโ activities.json # Activity entry with bullet_priorities
โ โ โโโ presets/ # Preset configurations
โ โ โ โโโ one-page.json # Strategic overrides for space optimization
โ โ โโโ skills-inventory.json # Skills with proficiency data
โ โ โโโ profile-resume-schema.json # Data structure schema
โ โโโ templates/ # CSS templates
โ โ โโโ resume-styles.css # CSS Grid layout (scoped in components)
โ โโโ working/ # Auto-saved working files
โ โโโ examples/ # Sample resumes (HTML/cleaned)
โโโ docs/ # Documentation
โ โโโ bullet-priority-system.md # Priority framework and implementation
โโโ output/ # Generated files (HTML/PDF)
โโโ public/ # Static assets for web app
โโโ package.json # Unified CLI + web app scripts
โโโ vite.config.js # SvelteKit + build configuration
โโโ tailwind.config.js # DaisyUI + Tailwind CSS 4 config
โโโ netlify.toml # Netlify deployment config
# Web Application Development
npm run dev:web # Start SvelteKit development server
npm run build:web # Build web app for production
npm run preview:web # Preview built web app
# CLI Development
npm run dev:cli # Run CLI in development mode
npm run build:cli # Build CLI for production
# CLI Operations
npm run cli -- --help # Show all commands
npm run html-to-pdf # Convert HTML to PDF
npm run json-to-html # Generate HTML from profile.json
npm run json-to-pdf # Generate PDF from profile.json
# Development Tools
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint errors
npm run format # Format code with Prettier
npm run clean # Clean build artifactsdocs/roadmap.md- Complete project roadmap and historical progress trackingdocs/next-session.md- Active session planning and immediate prioritiesdocs/state-resolution.md- Technical architecture decisions and state management
docs/system/bullet-priority-system.md- Core content curation and filtering logicdocs/system/pdf-generation-system.md- PDF generation architecture and deployment
input/profiles/- Profile data (originals preserved, working copies auto-created)input/templates/- CSS and HTML templatesinput/working/- Auto-saved working filesinput/examples/- Sample resumesinput/assets/- Images, fonts, etc.
@/*โsrc/*@cli/*โsrc/cli/*@shared/*โsrc/shared/*@functions/*โsrc/functions/*@web/*โsrc/web/*
- Originals preserved: Files in
input/profiles/are never modified - Working copies: Auto-created in
input/working/for safe editing - Safe iteration: Multiple versions can be saved and compared
- Framework: SvelteKit with server-side rendering
- Styling: DaisyUI 5.0.46 + Tailwind CSS 4
- Architecture: Slot-based components with scoped CSS
- State Management: URL parameters + SvelteKit stores
- Themes: 34 responsive DaisyUI themes
- Runtime: Node.js with ES Modules
- PDF Generation: Playwright (Chrome-based, CSS Grid support)
- Data: JSON profiles with structured metadata
- PDF Service: Gotenberg deployed on Google Cloud Run
- Auto-scaling: 0-to-N instances based on demand
- Cost: Free tier with 2M requests/month
- Performance: ~200-500ms PDF generation times
- Linting: ESLint with oclif configuration
- Formatting: Prettier
- TypeScript: Type checking and path aliases
- Build: Vite for web app, Node.js for CLI
- Deployment: Netlify-ready structure
For detailed progress tracking and current status, see docs/roadmap.md
- โ Phase 1A: CLI tool with modern PDF generation
- โ Phase 1B: SvelteKit web application with theme system
- โ Phase 2A: JSON-driven dynamic content generation
- โ Phase 2B: Enhanced CLI workflow features
- โ Phase 3: Universal renderer architecture and component system
- โ Phase 4: Advanced UX controls and content management
- โ Phase 5: Strategic content curation and intelligent filtering
- โ Phase 6: Complete bullet priority system implementation
- โ Phase 7: Advanced content optimization and filtering architecture
- โ Phase 7.5: Universal timeframe filtering system across all sections
- โ Phase 7.8: Centralized filter utilities and hierarchical state resolution
- โ Phase 8: Advanced preset variations and content optimization (COMPLETE)
- โ Phase 9: Advanced theming and user experience polish (COMPLETE)
- ๐ฎ Phase 10: ResumeWorded integration and AI optimization
- Full CSS Grid support (WeasyPrint doesn't support CSS Grid)
- Modern CSS features (flexbox, custom properties, etc.)
- Better file sizes (204KB vs 15KB truncated files)
- Pixel-perfect rendering (Chrome engine)
- Modern import/export syntax
- Better tree shaking for smaller bundles
- TypeScript integration with path aliases
- Netlify Functions compatibility
- Single package.json (recommended by Netlify)
- Automatic dependency bundling for Functions
- Shared code between CLI and web app
- Production-ready structure
This project follows the oclif coding standards with:
- ESLint configuration
- Prettier formatting
- TypeScript type checking
- Consistent file organization
Built with modern JavaScript and designed for the future web.