This project generates resume and CV HTML files from a Handlebars template with separate JSON data.
template.hbs- Handlebars template for the resume HTMLdata.json- All resume data (personal info, jobs, skills, translations, etc.)generate_html.js- Node.js script to generate a single index.html file from the templategenerate_pdfs.js- Original script to generate PDFs from HTML filesindex.html- Single HTML file containing all resume/CV variations (English/Russian)
The JSON file contains:
info- Personal information (name, position)links- Social and contact links with iconsskills- Primary and secondary skillsjobs- Work experience with projects and achievements in both languagestranslations- UI text translations for English and Russiannavigation- Language and type switching configurationseo- Comprehensive SEO data including meta tags and startup-targeted content
- SEO-friendly: All content is present in the DOM but visually hidden for search engines
- Multi-language: Supports English and Russian
- Multi-type: Supports both Resume and CV formats
- Responsive: Works on desktop and mobile
- Print-friendly: Optimized for printing
npm installnpm run generate-htmlThis will generate a single index.html file that contains all 4 variations:
- Resume in English
- Resume in Russian
- CV in English
- CV in Russian
The file dynamically shows the appropriate content based on URL parameters:
?lang=enor?lang=ru- Language selection?type=resumeor?type=cv- Document type selection- Defaults to English Resume if no parameters provided
npm run generateThe template automatically:
- Contains all data for all 4 variations (resume/CV × English/Russian)
- Dynamically shows content based on URL parameters or document lang attribute
- Filters jobs based on type (resume excludes CV-only jobs)
- Selects language content (achievements, translations)
- Generates navigation links for switching between languages and types
- Includes SEO content that's hidden but present for search engines
- Sets up PDF links based on the current type and language
- Add translations to
data.jsonundertranslations - Add language to the
navigation.langsobject - Update the
generate_html.jsscript to include the new language
- Add the type to the
navigation.typesobject - Update the filtering logic in
generate_html.js - Add any type-specific translations
Simply edit data.json to update:
- Personal information
- Work experience
- Skills
- Links
- Translations
The template will automatically reflect all changes when regenerated.
The generated HTML includes comprehensive SEO optimization:
- Primary Meta Tags: Title, description, keywords, author, robots
- Open Graph Tags: For social media sharing (Facebook, LinkedIn)
- Twitter Cards: Optimized for Twitter sharing
- Structured Data: JSON-LD schema.org markup for rich snippets
- Additional SEO: Language, revisit-after, distribution, theme-color
- Value Propositions: Highlighting startup-relevant experience
- Impact Metrics: Quantified achievements (100,000+ users, 40% performance improvement)
- Startup Skills: Rapid prototyping, technical leadership, MVP development
- Industry Experience: Fintech, healthcare, e-commerce, SaaS, etc.
- Technology Stack: Comprehensive list of relevant technologies
- Keywords: Optimized for startup founder searches
- Dual Content: Both traditional resume content and startup-focused content
- Hidden SEO Content: All content present in DOM but visually hidden
- Rich Keywords: Targeting "startup developer", "frontend engineer startup", etc.
- Performance Metrics: Quantified impact for credibility
- Industry Coverage: Broad industry experience for versatility
The generated HTML works in all modern browsers and includes:
- Responsive design
- Print styles
- Accessibility features
- Progressive enhancement