A Go-based tool that converts YAML resume files into beautiful HTML resumes with modern styling using Tailwind CSS.
- Convert YAML resume data to professional HTML resumes
- Clean, modern design with Tailwind CSS
- Responsive layout that works on all devices
- Automatic index page generation for multiple resumes
- Support for comprehensive resume sections:
- Personal information and contact details
- Professional summary
- Key skills
- Work experience
- Education
- Certifications
- Projects
- Technical skills
- Community involvement
- References
- Go 1.23.1 or higher
- Git (for cloning the repository)
- Clone the repository:
git clone https://github.com/dknathalage/resumes.git
cd resumes- Install dependencies:
go mod tidy- Create a new YAML file in the
resumes/directory following the structure below:
name: Your Name
email: your.email@example.com
phone: "+1 (555) 123-4567"
linkedin: https://www.linkedin.com/in/yourprofile/
github: https://github.com/yourusername
summary: |
Your professional summary goes here. This should be a brief overview
of your experience, skills, and career objectives.
key_skills:
- Skill 1
- Skill 2
- Skill 3
education:
- institution: University Name
degree: Bachelor of Computer Science
year: "2023"
details:
- GPA: 3.8/4.0
- Relevant coursework: Data Structures, Algorithms
certifications:
- institution: Certification Body
certification: Certification Name
year: "2023"
details:
- Description of certification
experience:
- company: Company Name
position: Software Engineer
duration: "Jan 2023 - Present"
details:
- Developed and maintained web applications
- Collaborated with cross-functional teams
projects:
- name: Project Name
technologies: ["Go", "React", "PostgreSQL"]
details:
- Built a full-stack web application
- Implemented RESTful APIs
technical_skills:
- category: Programming Languages
skills: ["Go", "Python", "JavaScript"]
- category: Frameworks
skills: ["React", "Express.js", "Gin"]
community:
- role: Volunteer Developer
duration: "2022 - Present"
details:
- Contributed to open-source projects
references: Available upon requestTo generate an HTML resume from a YAML file:
go run cmd/main.go resumes/your-resume.yamlThis will create an HTML file in the docs/ directory.
To generate HTML files for all YAML resumes and create an index page:
./generate-resumes.shThis script will:
- Create a
docs/directory if it doesn't exist - Generate HTML files for all YAML files in the
resumes/directory - Create an
index.htmlfile listing all generated resumes - Add a
.nojekyllfile for GitHub Pages compatibility
After generation, you can:
- Open the HTML files directly in your browser
- Serve the
docs/directory with a local web server - Deploy to GitHub Pages or any web hosting service
For local viewing with a simple web server:
# Using Python
cd docs && python -m http.server 8000
# Using Node.js (if you have npx)
cd docs && npx serve
# Then open http://localhost:8000 in your browser├── cmd/
│ └── main.go # Main application logic
├── resumes/
│ └── *.yaml # Your resume YAML files
├── docs/ # Generated HTML files (created automatically)
├── generate-resumes.sh # Script to generate all resumes
├── go.mod # Go module file
└── README.md # This file
The resume YAML files support the following structure:
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Your full name |
email |
string | No | Email address |
phone |
string | No | Phone number |
linkedin |
string | No | LinkedIn profile URL |
github |
string | No | GitHub profile URL |
summary |
string | Yes | Professional summary |
key_skills |
array | No | List of key skills |
education |
array | No | Education history |
certifications |
array | No | Professional certifications |
experience |
array | No | Work experience |
projects |
array | No | Personal/professional projects |
technical_skills |
array | No | Technical skills by category |
community |
array | No | Community involvement |
references |
string | No | References statement |
The generated HTML uses:
- Tailwind CSS for styling (loaded via CDN)
- Computer Modern Serif font for a professional academic look
- Responsive design that works on desktop and mobile
- Clean, minimal layout optimized for readability
- Push your repository to GitHub
- Run
./generate-resumes.shto generate the HTML files - Commit and push the
docs/directory - Enable GitHub Pages in your repository settings, pointing to the
docs/folder - Your resumes will be available at
https://yourusername.github.io/repository-name/
Simply upload the contents of the docs/ directory to any web hosting service.
- Fork the repository
- Create a feature branch
- Make your changes
- Test with sample resume data
- Submit a pull request
This project is open source. Please check the LICENSE file for details.
You can see an example resume by looking at resumes/don-athalage-generic.yaml and generating it with the provided tools.