Curriculum Vitae specification - NOOP! Framework

User

Curriculum Vitae

Specification

This page explains how the CV file is structured.

Introduction

Everyone who wants to work in a profession needs a CV. It gives a potential employer the opportunity to quickly find out where, when and as what the applicant has previously worked and what he has learned. The problem is that the structure of a CV is only roughly predefined. Different employers expect different layouts as to the order in which the data should be listed. It is therefore cumbersome to create CVs in different layouts using normal word processing. That is why this page and a file format that is independent of the layout were created. You only have one file that contains all the information for the CV, and you can use this file to create printable CVs in different layouts. Every time something changes on the CV, adding another entry to the file is trivial and quickly done.

Why YAML?

YAML (Yet another markup language) was chosen as the file format because it is the easiest of all data description languages for humans to read. All the necessary information of a CV can be described in a simple, structured and clearly comprehensible way. YAML has many features, but only some of them are used and are important to understand. What these are is explained in the data types.

Data types

All data types used in the CV file are explained here.

Comment

Comments can be used to save additional information in the file without it being processed further by the program. The # (double cross) is used as a comment character and can be used per line or at the end of a line.

# A comment in a line.
Car: Audi
Fruit: Apple # A comment at the end of a line.
Animal: Ape

Boolean

The Boolean is used to express a simple yes or no. Many different symbols are supported to express a yes or no.

Booleans:
  - yes
  - no
  - true
  - false
  - on
  - off

Date

The date is always given in the format YYYY-MM-DD. The YYYY stands for the four-digit year, the MM for the two-digit month and the DD for the two-digit day.

Dates:
  - 1984-01-01
  - 2019-12-31
  - 2025-01-01

Enumeration

Enumerations are used to express a list of predefined values. The enumeration is defined by the program and only one entry from the enumeration is permitted as the value for the data type. The entries in the lists are explained where they are used.

Enumerations2:
  dateFormat: monthyear
  type: education

Integer

Integers are used to express whole numbers. They can be positive or negative.

Integers:
  - -211
  - 211
  - 2015

Object

Objects contain one or more key-value pairs, whereby the value can be of any data type. The file itself is effectively an object that contains key-value pairs. Objects can also contain sub-objects. A named object indents its key-value pairs by two spaces.

Object:
  String: 'String'
  Integer: 211
  Boolean: yes

String

Strings are used to express text. They can be any length and can contain any characters. Character strings that contain special symbols or keywords such as yes and no can be enclosed with a ' (single quotation mark) or a " (double quotation mark). Escape sequences are also supported, e.g. '', "" and \t.

Strings:
  - String 1
  - 'String 2'
  - "String 3"

Translation

Translations are used to express text in different languages. The translation is always an object with character strings whose keys correspond to a country code, and the character string is translated into the language of the country code.

Translation2:
  de-DE: Die Übersetzung auf deutsch.
  en-EN: The translation in English.

URL

URLs are used to express a web address. They can be any length and can contain any characters. The URL must start with a protocol, e.g. https://.

URLs:
  homepage: https://cisco211.de/
  photo: https://cisco211.de/img/noop.svg

Array

Arrays are basically a list of any data type. You can recognize them starting with a - (hyphen) over several lines. In order to access the list, it is usually a named component of an object itself. A named list indents its list items by two spaces.

Array:
  - 1
  - 2
  - 3

Array<Object>

Arrays of objects are used to express a list of objects.

Objects:
  -
    String: 'String 1'
    Integer: 211
    Boolean: yes
  -
    String: 'String 2'
    Integer: -211
    Boolean: no

Array<String>

Arrays of strings are used to express a list of strings.

Strings:
  - 'String 1'
  - 'String 2'
  - 'String 3'

Array<Translation>

Arrays of translations are used to express a list of translations.

Translations2:
  -
    de-DE: Objekt
    en-EN: Object
  -
    de-DE: Array
    en-EN: Anordnung
  -
    de-DE: Zeichenkette
    en-EN: String

Template

To help you get started with the CV file, here is a complete template.

Download

Show
# CV data file
version: 1
lastChange: 2025-01-28
username: anonymous
public: no
password:
printSettings:
  dateFormat: monthyear
  dateCollapse: no
  lastChangeIsNow: yes
  reducePersonalForHeader: yes
  useFooter: yes
  useHeader: yes
currentLocation: Halle (Saale)
languages:
  - de-DE
  - en-EN
personal:
  name: Cat Musterkatze
  birthDate: 1984-02-11
  birthPlace: Halle (Saale)
  marital:
    de-DE: ledig
    en-EN: single
  nationality:
    de-DE: deutsch
    en-EN: german
  address: Merseburger Str. 211
  place: 06114 Halle (Saale)
  religion:
    de-DE: diskordianisch
    en-EN: discordianic
  country:
    de-DE: Deutschland
    en-EN: Germany
  phone: +49 211 211 211 211
  mobile: +49 151 211 211 211
  email: cat@musterkatze.de
  homepage: https://cisco211.de/
  photo: https://cisco211.de/cv/photo.png
career:
  -
    from: 1984-01-01
    to: 1993-07-30
    where:
      de-DE: Halle (Saale)
      en-EN: Halle (Saale)
    what:
      de-DE: Kind
      en-EN: Child
    description:
      de-DE: -
      en-EN: -
    hide: no
    hideForPrint: yes
    type: other
  -
    from: 1993-08-01
    to: 2003-07-30
    where:
      de-DE: Fiktive Hauptschule in Halle (Saale)
      en-EN: Fictional secondary school in Halle (Saale)
    what:
      de-DE: Schüler
      en-EN: Pupil
    description:
      de-DE: Erweiterter Realschulabschluss
      en-EN: Extended secondary school certificate
    hide: no
    hideForPrint: no
    type: education
  -
    from: 2003-07-31
    to: 2006-07-30
    where:
      de-DE: Fiktive Berufsschule in Halle (Saale)
      en-EN: Fictional vocational school in Halle (Saale)
    what:
      de-DE: Fachinformatiker für Anwendungsentwicklung
      en-EN: IT specialist for application development
    description:
      de-DE: Abschluss mit Note 1,0
      en-EN: Graduated with a grade of 1.0
    hide: no
    hideForPrint: no
    type: training
  -
    from: 2007-08-01
    to:
    where:
      de-DE: Fiktive Firma, Merseburger Str. 212, Halle (Saale)
      en-EN: Fictional Company, Merseburger Str. 212, Halle (Saale)
    what:
      de-DE: Fachinformatiker für Anwendungsentwicklung
      en-EN: IT specialist for application development
    description:
      de-DE: Entwicklung von Software
      en-EN: Software development
    hide: no
    hideForPrint: no
    type: profession
skills:
  -
    category:
      de-DE: Sprachen
      en-EN: Languages
    entries:
      -
        de-DE: Deutsch, Muttersprache
        en-EN: German, native language
      -
        de-DE: Englisch, Gute Kenntnisse
        en-EN: English, good knowledge
  -
    category:
      de-DE: EDV
      en-EN: IT
    entries:
      -
        de-DE: Grafische Bildbearbeitung mit MSPaint, GIMP und vergleichbaren
        en-EN: Graphic image editing with MSPaint, GIMP and similar
      -
        de-DE: Professioneller Umgang (Konfiguration, Wartung) mit Hardware und Software
        en-EN: Professional handling (configuration, maintenance) of hardware and software
interests:
  -
    de-DE: Wissenschaft, Astronomie, Computertechnik & Software
    en-EN: Science, Astronomy, Computer technology & Software
  -
    de-DE: Elektronische Musik und Kunst
    en-EN: Electronic music and art
remarks:
  -
    de-DE: Nicht aufgeführte Zeiträume betreffen Jobsuche, selbstständige Weiterbildung und unentgeltliche Arbeiten.
    en-EN: Unlisted periods concern job search, self-study and unpaid work.
  -
    de-DE: Detaillierte Informationen zum Thema selbstständige Weiterbildung oder unentgeltliche Arbeiten finden Sie in meinem Portfolio.
    en-EN: Detailed information on self-study or unpaid work can be found in my portfolio.
# EOF

Structure

Data type: Object

A CV file always begins with the comment # CV Data file and expects the key version.

# CV data file
version: 1
# ...

version

Data type: Integer

The key version is used to indicate the version of the CV file. Only version 1 is currently available.

version: 1

lastChange

Data type: Date

The key lastChange is used to indicate the last change to the CV file. That date is also used in the signature of the print output.

lastChange: 2025-02-22

username

Data type: String

The key username is used to indicate the the username this CV file belongs to. The setting for username is unused right now.

username:

public

Data type: Boolean

The key public is used to indicate whether the CV file is publicly accessible or not. The setting for public is unused right now.

public: no

password

Data type: String

The key password is used to indicate a password for the CV file. The setting for password is unused right now.

password:

printSettings

Data type: Object

The key printSettings is used to configure print related settings.

printSettings:
  # ...
dateFormat

Data type: Enumeration

The key dateFormat is used to indicate the date format for the print output.

  dateFormat: monthyear

The following values are in the dateFormat enumeration:

  1. en-ENYYYY-MM-DD2025-02-22
  2. de-DEDD.MM.YYYY22.02.2025
  3. monthyearMM.YYYY02.2025
  4. yearYYYY2025
  5. yearmonthYYYY.MM2025.02

The YYYY stands for the four-digit year, the MM for the two-digit month and the DD for the two-digit day.

dateCollapse

Data type: Boolean

The dateCollapse key is used to determine whether the from and to values for the entries in career should be reduced to one value if they are identical.

  dateCollapse: no
lastChangeIsNow

Data type: Boolean

The lastChangeIsNow key is used to determine whether the lastChange value should be set to the current date for the print output. This means that the date in the CV file does not have to be constantly changed when the CV is printed out again later.

  lastChangeIsNow: yes
reducePersonalForHeader

Data type: Boolean

The lastChangeIsNow key is used to determine whether the personnel details should be moved to the header of the paper in order to save space. Please note that not all browsers support this feature.

  reducePersonalForHeader: yes
useFooter

Data type: Boolean

The useFooter key is used to determine whether the footer of the paper should be used. Please note that not all browsers support this feature.

  useFooter: yes
useHeader

Data type: Boolean

The useHeader key is used to determine whether the header of the paper should be used. Please note that not all browsers support this feature.

  useHeader: yes

currentLocation

Data type: String

The key currentLocation defines the location in the signature of the CV print output.

currentLocation: Halle (Saale)

languages

Data type: Array<String>

The key languages is used to define the languages in which the CV is available. This list is necessary so that the program knows how to retrieve the translations.

languages:
  - de-DE
  - en-EN

personal

Data type: Object

The key personal is used to define the personal data of the CV owner.

personal:
  # ...
name

Data type: String

The key name is used to define the name of the CV owner.

  name: Max Mustermann
birthDate

Data type: Date

The key birthDate is used to define the date of birth of the CV owner.

  birthDate: 1984-02-11
birthPlace

Data type: String

The key birthPlace is used to define the place of birth of the CV owner.

  birthPlace: Halle (Saale)
marital

Data type: Translation

The key marital is used to define the marital status of the CV owner.

  marital:
    de-DE: ledig
    en-EN: single
nationality

Data type: Translation

The key nationality is used to define the nationality of the CV owner.

  nationality:
    de-DE: deutsch
	en-EN: german
address

Data type: String

The key address is used to define the address of the CV owner.

  address: Merseburger Str. 211
place

Data type: String

The key place is used to define the place of residence of the CV owner.

  place: 06114 Halle (Saale)
religion

Data type: Translation

The key religion is used to define the religion of the CV owner.

  religion:
    de-DE: diskordianisch
    en-EN: discordianic
country

Data type: Translation

The key country is used to define the country of residence of the CV owner.

  country:
    de-DE: Deutschland
	en-EN: Germany
phone

Data type: String

The key phone is used to define the telephone number of the CV owner.

  phone: +49 211 211 211 211
mobile

Data type: String

The key mobile is used to define the mobile phone number of the CV owner.

  mobile: +49 151 211 211 211
email

Data type: String

The key email is used to define the email address of the CV owner.

  email: Max@Mustermann.de
homepage

Data type: URL

The key homepage is used to define the URL of the homepage of the CV owner.

  homepage: https://cisco211.de/
photo

Data type: URL

The key photo is used to define the URL of the photo of the CV owner.

  photo: https://cisco211.de/cv/photo.jpg

career

Data type: Array<Object>

The key career is used to define the career of the CV owner.

career:
  -
    # ...
from

Data type: Date

The key from is used to define the start date of the career entry.

    from: 2007-08-01
to

Data type: Date

The key to is used to define the end date of the career entry.

    to: 2025-02-22
where

Data type: Translation

The key where is used to define the place of the career entry.

    where:
      de-DE: Fiktive Firma, Merseburger Str. 212, Halle (Saale)
      en-EN: Fictional Company, Merseburger Str. 212, Halle (Saale)
what

Data type: Translation

The key what is used to define the activity of the career entry.

    what:
      de-DE: Fachinformatiker für Anwendungsentwicklung
      en-EN: IT specialist for application development
description

Data type: Translation

The key description is used to add a further description of the career entry.

    description:
      de-DE: Entwicklung von Software
      en-EN: Software development
hide

Data type: Boolean

The key hide is used to hide the career entry.

    hide: no
hideForPrint

Data type: Boolean

The key hideForPrint is used to hide the career entry for the print output.

    hideForPrint: no
type

Data type: Enumeration

The key type is used to define the type of the career entry.

    type: profession

The following values are in the type enumeration:

  1. education → Education
  2. profession → Professional career
  3. study → Study
  4. training → Training
  5. other → Other
  6. unknown → Unknown

skills

Data type: Array<Object>

The key skills is used to define the skills of the CV owner. The skills are divided into groups.

skills:
  -
    # ...
category

Data type: Translation

The key category is used to define the category name of the skill group.

    category:
      de-DE: Sprachen
      en-EN: Languages
entries

Data type: Array<Translation>

The key entries is used to define the skills in the current skill category of the CV owner.

    entries:
      -
        de-DE: Deutsch, Muttersprache
        en-EN: German, native language

interests

Data type: Array<Translation>

The key interests is used to define the interests of the CV owner.

interests:
  -
    de-DE: Wissenschaft, Astronomie, Computertechnik & Software
    en-EN: Science, Astronomy, Computer technology & Software

remarks

Data type: Array<Translation>

The key remarks is used to define additional remarks to the CV print output.

remarks:
  -
    de-DE: Nicht aufgeführte Zeiträume betreffen Jobsuche, selbstständige Weiterbildung und unentgeltliche Arbeiten.
    en-EN: Unlisted periods concern job search, self-study and unpaid work.