Template variables reference

Owners and adminsUpdated 22 Oct 2026

Every field available to a template and the tag that reads it.

These are the variables a template can read. Text variables hold a single value. Variables marked as a list hold several values, so use them in a loop or with a filter such as {{ skills | join(", ") }}. A value Sourcemint does not have is empty text, or an empty list.

#Personal information

VariableTypeDescription
first_nameTextGiven name
last_nameTextFamily name
main_roleTextPrimary job title
total_experienceTextTotal experience, taken from the dated employment
summaryTextThe profile summary

#Contact and address

VariableTypeDescription
emailTextEmail address
mobileTextPhone number
linkedinTextLinkedIn profile URL
githubTextGitHub profile URL
other_urlsListPortfolio and other URLs
physical_addressTextThe full address as one line
detailed_address.addressTextStreet address
detailed_address.cityTextCity
detailed_address.postal_codeTextPostal code
detailed_address.countryTextCountry name

#Skills and technologies

VariableTypeDescription
skillsListSkills and areas of expertise
technologiesListAll technologies, as one flat list
category_techLists by categoryTechnologies grouped by category, read as category_tech["language"]
tech_listList of rowsOne row for each category that has technologies, with header (the category name) and content (the technologies, comma separated)

#Technology categories

category_tech always has these keys, each a list that is empty when nothing belongs to it:

VariableContains
category_tech["language"]Languages
category_tech["framework"]Frameworks
category_tech["database"]Databases
category_tech["cloud_platform"]Cloud platforms
category_tech["devtool"]Dev tools
category_tech["testing"]Testing tools
category_tech["os"]Operating systems
category_tech["other"]Everything that fits no other category

If your organization has its own technology categories, their identifiers are keys of category_tech as well.

#Experience

experience is a list. Loop over it with {% for exp in experience %} and read these fields from each entry. A job with several projects produces one entry per project, and independent projects follow the jobs.

VariableTypeDescription
exp.companyTextEmployer
exp.rolesListRoles held
exp.projectTextProject name
exp.locationTextWork location
exp.fromTextStart date
exp.toTextEnd date, or Current
exp.responsibilitiesListResponsibilities
exp.technologiesListTechnologies used

#Education

Loop over education with {% for edu in education %}.

VariableTypeDescription
edu.universityTextInstitution
edu.facultyTextFaculty or school
edu.degreeTextDegree
edu.majorTextField of study
edu.startTextStart date
edu.finishTextEnd date

#Languages and certifications

VariableTypeDescription
languagesListLoop with {% for lang in languages %}
lang.languageTextLanguage
lang.levelTextProficiency
certificationsListLoop with {% for cert in certifications %}
cert.certificateTextCertificate name, with the issuer in brackets when there is one
cert.dateTextDate obtained

#Additional information

VariableTypeDescription
hobbyListHobbies
additional_informationTextAdditional information
custom_fieldsName to valueYour custom fields, read by name

#How dates look

Dates are written as YYYY when only the year is known and MM-YYYY otherwise. A job that has a start date but no end date shows Current. If your organization enforces a date format in its conversion settings, dates are exactly as that setting wrote them when the CV was imported.