An open API service indexing awesome lists of open source software.

https://github.com/lissy93/cv

๐Ÿ’ผ Source code for my CV | LaTex PDF and interactive website are auto-generated from data defined following JSONResume spec - validated, compiled and released via GitHub Actions
https://github.com/lissy93/cv

curiculum-vitae json-resume latex resume resume-template

Last synced: 19 days ago
JSON representation

๐Ÿ’ผ Source code for my CV | LaTex PDF and interactive website are auto-generated from data defined following JSONResume spec - validated, compiled and released via GitHub Actions

Awesome Lists containing this project

README

        

Alicia Sykes - CV





This repo contains the source for my personal CV


A website (Svelte) and PDF (LaTeX) auto-built from jsonresume data


๐ŸŒ cv.aliciasykes.com | ๐Ÿ“„ Alicia-Sykes-CV.pdf

## Motive
To automate my CV generation, and make it easier to maintain.
All content defined in YAML, then a script generates a LaTeX PDF and deploy a web version.
I did it this way so that I don't need to f\*\*k around with Microsoft Word.

Motive (legacy)

> **Backstory**

> I'm just about to be made redundant ๐Ÿ˜ข (Aug '24), which I am gutted about. I've never been laid off before, and I loved my job and the people I worked with. So I'm now on the market, looking for a new role!
>
> I've kept my CV/resume **very** brief, in an attempt respect the hiring manager's time. But in short, I'm an experienced, Principle-level full stack engineer with a love for quality, performance, mentoring, tech and open source. The best judge of a developer is their code, and while I cannot share what I've done professional or for private clients, I have got many open source projects on my [GitHub](https://github.com/lissy93) and at [apps.aliciasykes.com](https://apps.aliciasykes.com).

---

## About

The resume content is defined in [`resume.yml`](/resume.yml) following the [jsonresume.org](https://jsonresume.org/) standard, and validated against [`schema.json`](/schema.json).
A LaTex document is then generated from [`template.jinja`](/template.jinja) formated with [`resume-format.cls`](/tex/resume-format.cls), which is then [compiled into a PDF](https://github.com/Lissy93/cv/actions/workflows/compile.yml) by GitHub Actions, and published under the [Releases](https://github.com/Lissy93/cv/releases) tab.
A markdown version is also generated by [`lib/markdown.py`](/lib/markdown.py), as well as a CV website which is built as a static site with SvelteKit, and deployed to GitHub Pages and Vercel, at [cv.aliciasykes.com](https://aliciasykes.com).

Why? ...Because why spend 30 minutes writing your CV, when you could spend 30 hours automating it, obviously!

---

## Usage

### Option #1 - GitHub
1. Fork the repo
2. Update resume.json with your own content
3. Create [a tag](/.github/workflows/tag.yml), or trigger the GH actions workflow
4. ....and a PDF and website gets magically generated

Workflows

| Workflow | Description | Status |
| :----------- | :--------------- | :------------------------: |
| `tag` | Creates a new Git tag. Optionally specify the tag name and description, or by default it will just bump the sem ver patch number by 1 | [![๐Ÿท๏ธ Tag](https://github.com/Lissy93/cv/actions/workflows/tag.yml/badge.svg)](https://github.com/Lissy93/cv/actions/workflows/tag.yml) |
| `generate` | Generates your resume in PDF form as an artifact. If triggered by a tag, then a new release will be created, with the PDF attatched | [![Generate PDF](https://github.com/Lissy93/cv/actions/workflows/compile.yml/badge.svg)](https://github.com/Lissy93/cv/actions/workflows/compile.yml) |
| `validate` | Validates your resume data against the schema. This will also run whenever a new PR is opened, to ensure it's valid and working | [![โ˜‘๏ธ Validate Resume](https://github.com/Lissy93/cv/actions/workflows/validate.yml/badge.svg)](https://github.com/Lissy93/cv/actions/workflows/validate.yml) |
| `mirror` | Backups up repository and content to our (non-Microsoft) Codeberg mirror | [![๐Ÿชž Mirror to Codeberg](https://github.com/Lissy93/cv/actions/workflows/mirror.yml/badge.svg)](https://github.com/Lissy93/cv/actions/workflows/mirror.yml) |

---

### Option #2 - Local
See the [`Makefile`](/Makefile) for all the available commands. Or, just run `make` from the root, to install deps, validate content, generate LaTex, and compile PDF

1. Clone the repo
2. Update resume.json with your own content
1. Run `make` from the root, to install deps, validate content, generate LaTex, and compile PDF

Or, to deploy the web version
1. Follow steps above (clone, edit, validate)
2. Run `make web` to generate `dist/`
3. upload to any CDN, web server or static hosting provider (I use Vercel)

Commands

- `make install` - Download dependencies
- `make validate` - Validate content
- `make generate` - Generate LaTex
- `make compile` - Compile PDF
- `make clean` - Remove generated files
- `make watch` - Watch for changes, recompile and refresh
- `make web` - Launches web version, installs NPM deps, builds and serves the site

```mermaid
flowchart LR
GA([๐Ÿค– GitHub Actions
Triggered on resume.yml change]) --> A3

A1([๐Ÿš€ Start
Clone repo & cd into it]) --> A2[โœ๏ธ Update resume.yml
Your resume content goes here]
A2 --> A3[โœ… make validate
Check for content or schema issues]

%% PDF PATH
A3 --> PDF[๐Ÿ“„ PDF Output]
PDF --> B1[๐Ÿ“ฆ make install
Install all dependencies]
B1 --> B2[๐Ÿ›  make generate
Generate LaTeX from resume.yml]
B2 --> B3[๐Ÿ“„ make compile
Compile LaTeX to PDF]
B3 --> B4([โœ… View at out/resume.pdf])

%% WEB PATH
A3 --> Web[๐ŸŒ Website Output]
Web --> C1[๐ŸŒ make web
Build static site into ./dist]
Web --> C2[๐Ÿงช make web_dev
Start local dev server at localhost:5173]
C1 --> C3([๐Ÿš€ Deploy ./dist to your host])
C2 --> C4([๐Ÿ” View site locally in browser])
```

---

## Editing
Modify data by editing [`resume.yml`](/resume.yml)

If you need to customize the layout, edit [`template.jinja`](/template.jinja)

Or to change the styles and formatting, edit [`resume-format.cls`](/tex/resume-format.cls)

All the scripts used to generate output are located in [`lib/`](/lib/)

These are triggered either by the [`Makefile`](/Makefile) or via GitHub Actions with the [`workflows/`](/.github/workflows)

The source for the website version is located in [`web/`](/web)

---

## Screenshot

Web ๐ŸŒ


PDF ๐Ÿ“„


---

## Contributing

### Pull Requests
No point contributing. Just fork the repo and do whatever changes you like there.

### Issues
No point in raising issues here. It works on my machine. Therefore I see no issue, lol

---

## Attributions

### Contributors

![Contributors](https://readme-contribs.as93.net/contributors/lissy93/cv)

### Sponsors

![Sponsors](https://readme-contribs.as93.net/sponsors/lissy93)

---

## License

> _**[Lissy93/CV](https://github.com/Lissy93/cv)** is licensed under [MIT](https://github.com/Lissy93/cv/blob/HEAD/LICENSE) ยฉ [Alicia Sykes](https://aliciasykes.com) 2025._

> For information, see TLDR Legal > MIT

Expand License

```
The MIT License (MIT)
Copyright (c) Alicia Sykes

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sub-license, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included install
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```


ยฉ Alicia Sykes 2025

Licensed under MIT



Thanks for visiting :)