cv_compiler
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
-
Install GIT LFS or make sure it is already installed.
-
Clone current repository.
git clone https://github.com/ultrablox/cv_compiler.git
-
Install docker according to official instruction and make sure service is running.
-
Compile Sample CV, which journal is in cv_compiler/sample_input.
scripts/generate.sh
- 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" : "[email protected]",
"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