I also over-engineered how I generate my CV[1], but went the opposite direction by using Dhall to create JSON and LaTeX files that I use to create a PDF and GraphQL API in Rust for it, automatically deployed via CI/CD to a VPS and a tagged GitHub release. It was a lot of fun to make, but is so over-engineered I hardly want to touch it anymore :)
[1]: https://github.com/sondr3/cv-aas