/cv_compiler

A typical CV compiler for software engineer

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

cv_compiler

Price Price suitable suitable License: GPL v3

Table of contents

Aims

This is automatic compiler of your working experience journal into standardized CV for Software Engineer and related positions.

Demo

Quick Start

  1. Install GIT LFS or make sure it is already installed.

  2. Clone current repository.

git clone https://github.com/ultrablox/cv_compiler.git
  1. Install docker according to official instruction and make sure service is running.

  2. Compile Sample CV, which journal is in cv_compiler/sample_input.

# export INPUT_DIR=$(pwd)/../my_cv/data
scripts/generate.sh
  1. Find compiled CV in pdf at:
> ls out/
bruce_wayne_CV.pdf

Adopt CV for Vacancy (experimental)

Create a textfile with vacancy description. Then run

src/extract_skills.py test_data/vacancy.9.txt > test_data/vacancy.9.txt.skills

Adjust output and improve DB with links if some skills are missed.

In order to create relevant CV for given vacncy:

INPUT_DIR=../../my_cv scripts/generate_projection.sh test_data/vacancy.9.txt

Skills Onthology

In order for adopt CV to vacancy, currently following onthology is used. It can be extended in /data/base.

Writing Your Journal

Directory Structure

Write Exprience Journal with following structure:

journal_dir
│-- data.json
│-- lead.txt
│-- sci_publications.bib
│-- pop_publications.bib
│
└───img
│   │-- project_logo1.png
│   │-- company_logo2.svg
│   │-- ...

For the reference look to the default example.

Structure

Journal (journal_dir/data.json') is written in JSON with a few sections:

{
  "personal" : {
      "..."
  },
  "contacts" : {
      "..."
  },
  "education" : [
      "..."
  ],
  "skills" : {
    "..."
  },
  "special_skills" : [
      "..."
  ],
  "projects" : [
    "..."
  ],
  "employments" :[
      "..."
  ],
  "conferences" : [
      "..."
  ],
  "traits" : [
      "..."
  ]   
}

Contacts

{
  "email" : "bruce@gmail.com",
  "skype" : "bruce",
  "phone" : "06-12345678",
  "residence" : "Endhoven, Netherlands",
  "linkedin" : "https://www.linkedin.com/in/yuri-blokhin-01688a78/",
  "languages" : [
      "English (advanced)",
      "Chineese (native)",
      "German (basic)"
  ]
}

Skills

Here you can add special data about referencing further skills - it's full name and your attitude (when you like mentioned technology, or don't want to use it anymore).

"ML" : {
    "attitude" : "negative",
    "full_name" : "Machine Learning"
}

Projects

This is basic unit of your experience. State here the projects you weere involved in, skills that you gained and tasks with your achievments. Show that you really did something.

{
  "name" : "Photoshop",
  "icon" : "photoshop_project.png",
  "period" : "01.09.2015-30.08.2016",
  "description" : "Raster graphics editor",
  "team-size" : "9",
  "web" : "https://www.adobe.com/products/photoshop.html",
  "tasks" : [
    "..."
  ]
}

I strongly recomment to include project logo into each project. Tasks that you did within the project must contain period, skills and achievments.

{
  "description" : "Development of text-recognition filter from raw image",
  "period" : "01.09.2015-28.02.2016",
  "skills" : ["CI", "C++", "ML"],
  "achievements" : [
    "achievied recognition accuracy up to 85%"
  ]
}

Employments

This is a list of your work history. If you worked in well-reccognised company - I strongly recomment to include company logo into the records.

{
    "name" : "Google Inc",
    "logo" : "img/logo_google.png",
    "description" : "search engine",
    "role" : "Software Engineer",
    "location" : "Zurich, SZ",
    "period" : "01.09.2016-30.08.2017",
    "web" : "https://www.google.com",
    "projects" : ["Google Drive"]
}

Make also references to the projects that you worked on in this company.

Compiling

Compile Sample CV, providing it path to the journal_dir folder:

cd cv_compiler/scripts
INPUT_DIR=$HOME/Documents/journal_dir ./generate.sh

Technologies

Feedback

I appreciate any form of feedback, that helps me improve the project. You can do it in form of Pull Requests or Issues.

Credit the Author

If you like the project, and want to credit the author - leave the QR with link to this page in your CV - so more people can know about it. If for some reasons you want to get rid of the QR, use --no-watermark parameter:

./generate.sh --no-watermark