Structured CV

Structured CV

Editing my CV is my bane, but I am recovering. Whenever I would work on the content of my CV, I would inevitably switch to the format of the CV. The inverse was often true as well. I also have challenges with Microsoft work, sometimes preferring water-color and ink. Another theory could be that I was a bit afraid to venture to the job market. Whatever the reason, it has taken me 18 months to redo my CV, and how I redid my CV has been a productive procrastination. This article describes my adventures in doing my CV.

A current version of my CV is here.

In this article, we will cover the following concepts:

  1. Serialisation formats for the CV
    1. FRESCA and JSONRESUME
    2. EUROPASS
    3. Word
    4. Latex
  2. Tools for creating the CV
    1. VeloCV
    2. Extract JSONRESMUME from LinkedIn Profile
    3. ProfileCV (of which I am now a co-author)
    4. Microsoft Word and Latex Editors like OverLeaf
  3. Tools for compiling the CV
    1. HackMyResume
    2. ResumeFodder to convert from JSON-Resume to Word

I have tremendous difficulty versioning my CVs. There are different ways I can construct my CV, and have worked on different was of presenting them. This has produced a lot of unfinished ideas that are correlated. For my limited brain, it is easy to lose track of what is what and what I wanted to do in each case.

RECVME

In 2020, my most concentrated effort was baptized "RECVME." It is actually a complex set of my wish to separate the content from the form. Recvme is designed to produced customized CVs form a unique truth. It uses the FRESH@^1.0.0-beta CV core "truth" format. The different CVs are produced with the JSNode "HackMyResume" series of scripts (including Powershell).

The versionning idea was to have one folder called "truth" from which configuration files would direct scripts to compose CVs specific for different needs. I actually used a folder called "source."

I initially imported my LinkedIn profile to JSON Resume with a tool in July through October 2020. The goal is to have a presentable and serviceable CV for myself. It would be nice just to have one working CV that I can improve upon.

I used the following tools:

Show My Work

This whole subsection was written an May 6, 2020, but lost in my infinite electronic filing. I just now, January 13, 2021, found it. I am sure if I look further, I will find content work I had forgotten. So many times in my life have I misplaced very important artefacts.

This is a report on different tools to create a CV ("Curriculum Vitae") and resume.

  1. Source core-information format(s)
  2. Processing
  3. Version Management
  4. Presentation format(s)

We are all different, but we all go through standard gates. Microsoft Word is all-too-ubiquitous, and horribly unconstrained for such a constrained information set. I am looking for a place to serialize (store) the boring information as easy read as forgotten, so that I can get to the important part: presenting a story with facts about who do I think I am!

Ideally, I would like the data and processing in open-source land. I believe that I may be able to modify the source data to be able to present it differently in different situations. This will be a little twisted, but I am a little twisted in my ways to solve problems.

How did I Think I Was?

Presenting my professional story was disorganized and incoherent. Here are a couple of places you or I could find my CV, resume or something equivalent:

  • LinkedIn
  • Monster
  • APEC
  • The CV folder in my own computer
  • Some job boards
  • Email I sent to recruiters
  • etc.

The info is out of date. One consideration is about my desire to present to whom I was considering at the time. Now, I would like to address how I would like to read the information myself. I would like to remind myself of who I am professionally. This way, my CV/resume will at least serve me.

Target Languages and Localizations

I am in American in Paris, wanting someday for nationalization. I think in English and am of American culture. I see four localizations, without talking about specialization for specific objectives, companies, needs etc.

  • en-US
  • fr-FR
  • en-EU (This is what I would call European-Union English with American influence and is already a thing according to Oracle)

Most often, this does require me to write two different source databases. I wonder if this practice will be the same here.

Laziness at First

So I started this article with my want to write and distribute a new CV. Years ago, I created a PHP website that allowed the visitor to produce his or her own version of my CV. I guess this is an extension of that effort.

As for content is concerned, upon looking everywhere, I decided that it would be useful to start with the content on LinkedIn. It is a common practice to get people to use LinkedIn as input info for the CV. Good enough for me. Actually many just leave it at LinkedIn, producing a PDF file from that a LinkedIn export. I want my info more readily accessible on my machine.

Standardized Source Formats

I am not the only person to think that some kind of universal labeling of an open format for describing common fields on resumes. Here are some other efforts:

It is important to note that these are file-serialization formats in XML or JSON. They are not database formats, nor processing tools.

Source-Maintenance Tools

Source formats seem to include:

Output Processing Tools

Outputters include :

Target output formats can be:

  • TEX
  • DOC / DOCX
  • HTML
  • PDF
  • PNG
  • JSON (JSON-Resume / FRESCA)
  • XML (EUROPASS / HR-XML)

Here are some processing themes:

Mix-and-Match Tools

The goal here is to selectively use source information to create targeted CVs/resumes for different needs.

Hack My resume seems to be a tool I can use to maintain my master CV source information. I can also sub-divide it into more or less detailed sections that are useful for zooming tin on such and such a theme. However, if you consider the example below, the results can be rather Frankensteinesque:
http://joshuamccall.com/articles/hackmyresume.html

Input Processing Tools

Here are some tools that can produce some of the above-mentioned source-maintenance formats:

JSON-Resume, Here I Come!

The JSON-Resume file format seemed the most arbitrary to a point where Microformats says it didn't take anything into account upon its specification, but also the most used elsewhere. So it seemed like the natural choice. JSON-Resume as a format also ids the basis for FRESH / FRESCA.

The tool JSON-Resume offers, however, seems a little out-of-date. I installed it al suggested here, but unfortunately the tool was last maintained in NodeJS version 8, whereas we are version 12 at the time of this writing. The Chrome extension for this tool was not accessible on the link provided by the website, but I was able to find it working here: https://chrome.google.com/webstore/detail/json-resume-exporter/caobgmmcpklomkcckaenhjlokpmfbdec

I had more luck with tools that used the JSON-Resume file format. Here they are:

See also : https://github.com/jsonresume

Target Workflow

Here is my target workflow:

  1. I have my CV/resume source data somewhere, let's call the thing recvme/source
  2. I have recipes for creating specific resumes according to different specifications in recvme/recipes
  3. I have processing scripts available in recvme/scripts
  4. I can initiate the scripts on recipes to produce output CVs in recvme/output (I may need some intermediary output in recvme/tmp or recvme/intermediary)
  5. Media for the recvmes are in recvme/media
  6. Sent or configured CVs are stored in recvme/published and/or recvme/sent, organized by date and target

It looks like the scripts will have to do some JSON manipulation. I would like to maintain the source information in Markdown files per experience or leaf entry. To do that, I will use markdown-to-json (m2j) with the flag -c to retain the full MD file. I could also may get away with some SED.

m2j outputs files in this format :

{
  "files": [
    {
      "meta-field1":"meta-value1",
      "meta-field2":"meta-value2",
      "meta-field3": [
        "meta-value3.1",
        "meta-value3.2"
      ],
      "content": "One-line content with the raw Markdown if -c flag in m2j -c ... (this can be very long)",
      "iso8601Date": "1893-04-01T00:00:00-07:00",
      "basename": "lottery.md"
    }
  ]
}

Whereas I would need this format for HackMyResume for example:

{
  "work": [
    {
      "company": "MEOTEC",
      "endDate": "2011-01-31",
      "highlights": [],
      "position": "PMO Production BNP Paribas ITPS, Fortis I&O",
      "startDate": "2010-09-30",
      "summary": "I provided PMO expertise for IT Production at the C-Level, putting in place quality control for 57 applications with shared international responsibility; tailored a custom PMO methodology to production and operations.",
      "website": "https://www.linkedin.com/company/131954"
    }
  ]
}

So, a hack for this would be to replace "files": [ with "work": [ on the third line, replace "content": [ with "summary": [ and remove the "iso8601Date" and "basename" lines entirely.

In the above example, the processed file would be JSON-Resume partial in recvme/tmp/work/2010-2011-meotec.json. So, I guess I already would have a Markdown-source-to-JSON intermediary step. I actually think that Markdown Source may be more useful in FRESCA format, because FRESCA is set up in order to be mapped to JSON Resume, whereas the invers is not quite the case.

So here is the revised workflow:

  1. Set up source data in recvme/source/fresca/ with markdown files where the meta-info has everything but the descriptive text field.
  2. Launch a custom batch script that converts the markdown files into compartmentalized JSON files in recvme/tmp/fresca/
  3. Choose or create recipes that work for the recvme I prefer
  4. Launch a process, probably hackmyresume, that produces an output format from the source files.
  5. Transmit the recvme somehow
  6. Copy the transmitted CV in recvme/sent or recvme/published by date and target

Random Ideas

I may try to use Jasonette to create a resume app. http://jasonette.com/

Awsome CV https://github.com/posquit0/Awesome-CV

https://realpython.com/python-json/

This looks like a great idea for manipulating MD data into a JSON file:

Pandoc does JSON <-> MARKDOWN conversions, but not the way I wish

NPM Applications Installed

fluentvc --help

resume --help

markdown-json - Converts to HTML

markdown-to-json - Keeps Markdown syntax

Notes for Incorporation in this Article

Use the following tool for JSON resumes:

https://profilestudio.co/

Use this tool to produce a Word Document resume

https://www.resumefodder.com/

Vision of success: I have a default CV that I am comfortable with and can share.

Here is another place with my CV from GIT

https://gitconnected.com/v1/portfolio/chris2fr

This is one place I stored my CV : https://www.velocv.com/chrismann https://velocv.com/home

I am starting to work on Europass https://ecas.ec.europa.eu/ https://europa.eu/europass/eportfolio/screen/profile-wizard?lang=fr&previous=https:%2F%2Feuropa.eu%2Feuropass%2Ffr