A TOML-encoded resume file format with strict validation.
Format Specification
JOBL (v20251211) is a structured resume format using TOML encoding.
File Extension
.jobl
Top-Level Keys
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
Person Section
Required:
name: Full name
Optional:
headline: Professional headlinelocation: Current locationemail: Contact emailwebsite: Personal website URLphone: Contact phonesummary: Professional summary
Skills Section
A table mapping category names to arrays of skill strings.
Example:
[skills] languages = ['Rust', 'Python', 'JavaScript'] devops = ['Docker', 'Kubernetes']
Experience Items
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
Project Items
Required:
name: Project name
Optional:
url: Project URLsummary: Project descriptionrole: Your rolestart: Start dateend: End datetechnologies: Array of technologies
Education Items
Required:
institution: School or institution namedegree: Degree or certification
Optional:
location: Institution locationstart: Start dateend: End datedetails: Array of additional details
Usage
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);
Validation
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
License
MIT