A TOML-encoded resume file format with strict validation.
JOBL (v20251211) is a structured resume format using TOML encoding.
.jobl
jobl_version(required): Version string inYYYYMMDDformatperson(required): Personal information tableskills(optional): Skills organized by categoryexperience(optional): Array of work experienceprojects(optional): Array of projectseducation(optional): Array of education entries
Required:
name: Full name
Optional:
headline: Professional headlinelocation: Current locationemail: Contact emailwebsite: Personal website URLphone: Contact phonesummary: Professional summary
A table mapping category names to arrays of skill strings.
Example:
[skills]
languages = ['Rust', 'Python', 'JavaScript']
devops = ['Docker', 'Kubernetes']Required:
title: Job titlecompany: Company name
Optional:
location: Job locationstart: Start date (recommend 'YYYY-MM')end: End date or 'present'summary: Role summarytechnologies: Array of technologies usedhighlights: Array of achievement highlights
Required:
name: Project name
Optional:
url: Project URLsummary: Project descriptionrole: Your rolestart: Start dateend: End datetechnologies: Array of technologies
Required:
institution: School or institution namedegree: Degree or certification
Optional:
location: Institution locationstart: Start dateend: End datedetails: Array of additional details
use jobl::{parse_str, parse_file};
// Parse from string
let doc = parse_str(jobl_content)?;
// Parse from file
let doc = parse_file("resume.jobl")?;
// Access data
println!("Name: {}", doc.person.name);The parser performs strict validation:
- Version must be '20251211'
- Unknown top-level keys are errors
- Unknown fields in sections are errors
- Type mismatches are errors
- Multiple errors are collected and reported
Errors include path context:
person.name: Missing required fieldexperience[0].unknown: Unknown field in first experience itemskills.languages: Invalid type
MIT