Career Description Language

Career Description Language (CDL) is a very simple language designed to describe the contents of your career. Using this information, resumes/CVs can be generated automatically without you having to think about formatting, allowing you to focus more on what actually matters (the content, not date abbreviations/margins/etc.).

An implementation of such a compiler (cdlc) can be found here.

Schema

This is version 2 of the schema is implemented by cdlc versions 2.X.

The schema is composed of "directives" (instructions), signaled by the first character of each line (followed by a space). The rest of the line acts as the operand of the directive.

These directives are organized into "blocks" of directives grouped together to describe a section of data.

One special directive is # <text>, which represents a comment (the rest of the line is ignored).

The first non-comment directive must be V <number>, which declares the schema version. This version of the schema must have <number> be 2 (aka V 2).

Head Block

The head block contains basic information (name/links). There is only one head block in a file. The head block must be the first block in a file.

The head block starts with a N <name> directive, which sets your name to <name>.

It then may be followed by zero or more H <display> <url> directives, signaling you want to have a link with <display> text that leads to <url>. <display> may contain spaces, but <url> may not.

Example head block:

N John Doe
H duck.com https://duckduckgo.com/
H google.com https://www.google.com/

Area Block

Area blocks represent sections. Examples of areas are "education" and "experience."

Area blocks start with a A <id> directive, which declares an area with <id> which must be unique (this is not the title).

The A directive is then followed by some combination of the following directives:

Example area block:

A experience
T Experience
I cv
I resume
C 2

Job Block

Job blocks represent single entries.

Job blocks start with a J <id> directive, which declares a new job in the area <id>.

The J directive is then followed by some combination of the following directives.

Example job block:

J experience
T Professional Cool Guy
U Company
H example.com https://example.com/
B 2015-09-13
E 2017-12-13
S Did cool things.
L Did a cool thing.
L Did another cool guy.

Ideas/Open Questions