| Crates.io | jobl |
| lib.rs | jobl |
| version | 20251215.0.0 |
| created_at | 2025-12-14 22:34:46.308121+00 |
| updated_at | 2025-12-15 22:34:26.369619+00 |
| description | TOML-based resume format with strict validation |
| homepage | https://jobl.dev |
| repository | https://github.com/ducks/jobl |
| max_upload_size | |
| id | 1985203 |
| size | 230,106 |
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 in YYYYMMDD formatperson (required): Personal information tableskills (optional): Skills organized by categoryexperience (optional): Array of work experienceprojects (optional): Array of projectseducation (optional): Array of education entriesRequired:
name: Full nameOptional:
headline: Professional headlinelocation: Current locationemail: Contact emailwebsite: Personal website URLphone: Contact phonesummary: Professional summaryA table mapping category names to arrays of skill strings.
Example:
[skills]
languages = ['Rust', 'Python', 'JavaScript']
devops = ['Docker', 'Kubernetes']
Required:
title: Job titlecompany: Company nameOptional:
location: Job locationstart: Start date (recommend 'YYYY-MM')end: End date or 'present'summary: Role summarytechnologies: Array of technologies usedhighlights: Array of achievement highlightsRequired:
name: Project nameOptional:
url: Project URLsummary: Project descriptionrole: Your rolestart: Start dateend: End datetechnologies: Array of technologiesRequired:
institution: School or institution namedegree: Degree or certificationOptional:
location: Institution locationstart: Start dateend: End datedetails: Array of additional detailsuse 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:
Errors include path context:
person.name: Missing required fieldexperience[0].unknown: Unknown field in first experience itemskills.languages: Invalid typeMIT