πŸ‘·Creating / Updating a Template

Learn how to create or update a template by yourself.

Getting started

In order to create a new template or update an existing one, you can start with one of our templates, or just an empty .docx document. Here are our templates:

You can also download any template from the app.

How templates work

All templates are based on the docxtpl templating library, which uses the Jinja template engine. Working with the template engine requires basic programming knowledge, so we recommend non-technical users to use one of the templates prepared by us, and modify the styling to fit their needs. Because this is just a standard MS Word document, the possibilities for template customization are almost unlimited.

Working with templates

  1. Start with an existing template or a blank word document

  2. Upload the template in our Template Sandbox

  3. Verify that it renders correctly

  4. Update the template content & verify it still works

  5. Once you have a working template, go back into the app and add it to your account

Modifying templates

A template consists of two types of content:

  • Static content - this part will always be rendered in the exact form that is specified

  • Dynamic content - any section that is defined with the Jinja template tags, ex. {{ ... }} or {% ... %}

Both types of content can be fully styled with every tool MS Word has to offer - font size, weight, color, alignment etc. The rendered text will be replaced by the content of the blind when used, but the styling and formatting will be preserved.

Testing templates

We've built a dedicated sandbox, where you can upload a template and see if it works as expected.

Read more about it on the Template Sanbox page.

Examples

Static content example

Dynamic list example

{% for skill in skills %} - {{ skill }} {% endfor %} will render an array in the following format:

  • skill A

  • skill B

  • skill C

Dynamic map example

{% for tech in category_tech[β€œlanguage”] %}{{tech }}{% if not loop.last %}, {% endif %} {% endfor %}

will render a single in the following format: Java, Java 8/11, Python

Uploading a template

Adding a new template is as simple as uploading the template via a dedicated upload form available within the app. When uploaded, the template will be validated for correctness - if the template contains any errors, such as unclosed tags, the error message will be displayed upon uploading the file. If the template file is correct, it can be added to the template collection.

Technologies & tech categories

Profile technologies are available in two different forms:

  • As a simple array with all technologies

  • As a map, grouped by category

We provide both options so that you can choose which format suits your template the best.

Field Reference

Here's a full list of fields you can use in your templates. Please make sure to use the correct casing, ex. first_name not First_Name.

Basic fields

  • first_name - candidate's first name

  • last_name - candidate's first name

  • email - candidate's email address

  • github - candidate's Github profile address

  • mobile - candidate's mobile number

  • skills - a list of the candidate's skills. This contains skills that the candidate has listed in dedicated sections, such as "skills" or "abilities" in their CV

  • summary - a candidate's summary. If it's not provided, an autogenerated one is created

  • main_role - candidate's primary work role

  • linkedin - a candidate's LinkedIn address

  • experience - a list of Experience entries

  • education - a list of Education entries

  • languages - a list of Language entries

  • certifications - a list of Certificate entries

  • other_urls - a list of other url's detected in the CV

  • technologies - a list of all technologies listed in experience entries

  • physical_address - candidate's physical address

  • additional_information - any additional information that was extracted from the CV

  • hobby - candidate's list of hobbies

Complex fields

Detailed_address

  • country

  • city

  • address

  • postal_code

Experience:

  • to - employment finish date, in the MM-YY format

  • from - employment start date, in the MM-YY format

  • roles - a list of roles performed at that position

  • company - company name

  • location - a physical location of the workplace

  • project - project description

  • technologies - a list of technologies used in a particular position

  • responsibilities - a list of responsibilities held in a particular position

Education:

  • major

  • start

  • degree

  • finish

  • faculty

  • university

Language:

  • level

  • language

Certification:

  • certificate

  • date

Category_tech:

Category tech contains a mapping of category -> list of technologies. Available categories:

  • language - Programming Languages

  • database - Databases

  • devtool - Development Tools

  • framework - Frameworks

  • os - Operating Systems

  • cloud_platform - Cloud Platforms

  • other - All other technologies

JSON Sample

Here's a sample Blind in the JSON format - it contains a valid dummy Blind that you can use for reference, this is what's sent as input for each blind render.

Last updated