Five years ago I played around with a PHP class to contain my resume content and abstract out optional pieces. This work ended up being unwieldy and largely unused - I had to create custom exporters to get the data out and rarely needed alternate versions of my resume. Shortly after building a few core classes I gave up working on my portfolio site and moved to more fun projects.
Well, it's about time to get back to that area of my website, particularly the resume. There were a few things that I did like about the original work that I wanted to bring back, or at least dig a bit deeper on. HTML microformats and a defined internal schema made things easy to work with, and I wanted to have some sort of raw format that could be imported into different systems. Luckily, there has been some great progress over the last few years in those areas.
The hresume 0.1 microformat spec has been replaced with microformat2 h-resume, which is a quite a bit simpler. I prefer the new spec because it makes less assumptions about the structure and contents of the data. I went ahead and embedded a few h-card and h-event structures for different areas, also following the newer microformat2. The one bad side of this is that some of the schema interpreters out there don't understand the new structures yet, something I hope will change over the coming months.
As for internal schema of the root resume data, I bumped into JSON Resume and am in love. It leans on JSON Schema with defined key/value pairs to standardize a resume object. They've already built a number of tools that can understand adhering objects, like an editor, publisher, pre-built themes, and even a hosting registry for resumes. If I structured my resume using their schema I'd get a lot of tools for free.
So I did. The interpreted version is live on the JSON Resume registry. I'm almost done with rebuilding my portfolio site, and when that goes live I'll add a link to my raw schema for reference here. It was a painless process and something that I'm grateful for the contributors for - the tools are easy to use and the schema is smartly designed.
There are a few things I'm a bit wary of. Using the same schema structure across industries seems to go against what I've been taught in Career Finding 101 and I've had to restructure my resume accordingly. Overall, though, going this route to store my resume beats the pants off of defining my own structure and interpreters, and it does mesh very well with h-resume.