Custom Templates - Upload Your Own Word Template
Custom Templates - Upload Your Own Word Template
Bring your own branding. Build a cover-letter template once in Microsoft Word, drop in a few placeholders like [firstName] and [companyName], and every generation comes out looking like your own document - not a system default. This guide walks you through the two built-in templates, when custom templates are available, every placeholder the engine understands, how to upload, and the practical rules for a template that fills cleanly every time.
What Custom Templates Are For
Templates control the visual layout of your generated Motivational Letter - fonts, spacing, headers, footers, signature blocks, your name at the top in exactly the font you want. preparAItor ships with two built-in templates that look good out of the box. On top of those, the Premium plan lets you upload your own .docx template so every cover letter matches your personal style or your consulting letterhead.
You build a custom template once in Microsoft Word (or any editor that writes .docx), mark where content should be inserted using placeholder variables like [firstName], and upload the file. From that point on, any generation can be rendered through your template. Fully branded, zero manual formatting.
What custom templates apply to: the Motivational Letter only. The Application Email, Interview Q&A, Job Summary, and Job Posting continue to use the system layouts - those aren't user-templatable today.
Plan Availability
Custom template upload is Premium only. Free, Starter, and Pro users can only use the two built-in templates.
| Plan | Custom templates |
|---|---|
| Free | Built-in only |
| Starter | Built-in only |
| Pro | Built-in only |
| Premium | Up to 10 custom uploads |
This is the correct plan picture - custom templates are not included on Pro. If you need branded letterheads for every application, Premium is the plan that unlocks them.
The Two Built-in Templates
preparAItor ships with two system-provided templates, but they are not available on exactly the same plans:
- Standard Template - the default layout. On Free, the generated document carries a small "Generated with preparAItor" footer; on all paid plans (Starter, Pro, Premium) that footer is removed.
- Premium Professional - a clean, watermark-free layout. Available on Starter, Pro, and Premium.
Both are tested across all four output languages (English, German, French, Italian) and handle long cover letters cleanly. You can use them without configuration - just pick one at generation time or set a default in Settings.
If you're happy with one of the built-ins, you're done - no upload required. Custom templates are for when the built-ins aren't yours.
Requirements for a Custom Template
Before you upload, make sure the file meets these rules:
- Format -
.docxonly (Word 2007 or newer)..doc,.rtf,.odt, and.pdfare all rejected. Export from your editor to.docxfirst if needed. - Size - maximum 1 MB per file. A plain text cover-letter template is usually well under 100 KB; if you're hitting 1 MB, you likely have embedded images that should be lightened or removed.
- No macros - VBA / macro-enabled documents are blocked for security reasons. Save as
.docx, not.docm. - Not password-protected and not corrupted - the file must open cleanly.
Validation runs automatically when you upload, and you'll get a clear message back if it fails.
Placeholder Syntax - Three Rules
Placeholders are the magic that turns your layout into a filled cover letter. They follow three simple rules:
- Single square brackets -
[firstName], not{firstName}and not[[firstName]]. - camelCase names -
[companyName], not[company_name]or[company-name]. - Case-insensitive -
[firstName],[firstname], and[FIRSTNAME]all work the same way. Consistency inside your template is still a good habit.
At generation time, each placeholder is replaced with the corresponding value from your CV, the parsed job posting, or the AI-generated content.
Empty Fields Remove Their Line
If a placeholder has no value for a specific generation - say the job posting didn't include a contact person, so [companyContactPerson] is empty - the engine removes the entire line containing that placeholder rather than leaving a blank or the raw [companyContactPerson] text.
This is why your template can safely include optional fields: when they're present, they appear; when they're missing, the line disappears and the layout stays clean. Put each optional placeholder on its own line to take full advantage of this.
Full Placeholder Reference
Placeholders are grouped into four categories. These are the only names the engine recognises.
Personal (10 placeholders)
| Placeholder | What it inserts |
|---|---|
[firstName] | First name |
[lastName] | Last name |
[fullName] | First and last name combined |
[email] | Email address |
[phone] | Phone number |
[address] | Street address |
[city] | City |
[postalCode] | Postal / ZIP code |
[country] | Country |
[signature] | Signature block - name, email, and phone if available |
Company (15 placeholders, including enrichment fields)
| Placeholder | What it inserts |
|---|---|
[companyName] | Employer name |
[companyContactPerson] | Hiring manager name |
[companyAddress] | Company street address |
[companyCity] | Company city |
[companyPostalCode] | Company postal / ZIP code |
[companyCountry] | Company country |
[companyPhone] | Company phone number |
[companyEmail] | Company email address |
[companyWebsite] | Company website URL |
[companyOverview] | Short AI-generated company overview (from enrichment) |
[companyIndustry] | Industry classification |
[companySizeRevenue] | Company size / revenue band (from enrichment) |
[companyValuesTone] | Company values and cultural tone (from enrichment) |
[companyNewsTrends] | Recent company news and industry trends (from enrichment) |
[companyGoalsCulture] | Company goals and culture summary (from enrichment) |
Job (9 placeholders)
| Placeholder | What it inserts |
|---|---|
[jobTitle] | Position title |
[jobLocation] | Job location |
[jobDescription] | Full job description text from the posting |
[jobUrl] | Original job posting URL |
[applicationFor] | Language-aware label - "Application for", "Bewerbung für", "Candidature pour", "Candidatura per". Put it right before [jobTitle]. |
[currentDate] | Today's date, formatted for the selected output language |
[date] | Alias of [currentDate] - identical output |
[language] | Selected output language code (en, de, fr, it) |
[tone] | Selected writing tone (e.g. formal, confident, friendly) |
Content (1 required + 2 aliases)
| Placeholder | What it inserts |
|---|---|
[applicationText] | The main AI-generated body - salutation, paragraphs, and closing phrase. Required in every cover-letter template. |
[content] | Alias of [applicationText] - falls back to the email body if no letter was generated. |
[mainContent] | Alias of [content] - same fallback behaviour. |
Reserved Placeholders
[emailText], [emailSubject], [interviewText], and [jobSummaryText] are reserved for the system email, interview, and job-summary layouts. They're not consumed by uploaded custom cover-letter templates - putting them in your template won't do anything useful.
How to Upload a Template
Once your .docx is ready, the upload flow is quick:
- Open Settings → Templates.
- Click Upload New Template.
- Select your
.docxfile from your machine. - Give the template a name you'll recognise later (e.g. "Formal DE - long" or "Consulting letterhead EN").
- The file is validated automatically - usually in a second or two. If validation passes, the template appears in your library and is available for any new generation.
- The first template you ever upload becomes your default automatically. After that, you can promote any template to default whenever you like.
If validation fails, you'll get a message telling you why. Fix the problem and re-upload. Validation doesn't cost credits, so iterating is free.
What Validation Rejects
Common reasons an upload fails:
- Wrong format - file is not
.docx(e.g..doc,.rtf,.odt,.pdf,.txt). - Too big - file is over 1 MB. Usually embedded images; replace high-res logos with compressed versions.
- Contains macros - any VBA code is rejected. Resave the file as
.docx(not.docm) after stripping the macros. - Password-protected - remove the password before uploading.
- Corrupted - the
.docxcouldn't be parsed. Open it in Word, save a fresh copy, and upload that.
A Minimal Sample Template
A bare-bones cover-letter template looks like this in Word:
[fullName]
[address]
[city], [postalCode]
[email] · [phone]
[currentDate]
[companyName]
[companyAddress]
[companyCity]
[applicationFor] [jobTitle]
[applicationText]
[signature]
That's it. Every placeholder is on its own line where it makes sense, so if [companyAddress] or [companyCity] are missing, the lines collapse cleanly. Replace any line with your own phrasing - the engine only cares about finding placeholders in the right form.
Storage Cap and Deleting Templates
You can store up to 10 custom templates on Premium. If you hit that limit, delete one you no longer use before uploading a replacement.
If you delete the template that is currently set as your default, the newest remaining custom template is automatically promoted to be the new default. If you delete every custom template, generation falls back to the built-in Standard / Premium Professional layout.
Choosing a Template at Generation Time
There are two ways to pick which template is used:
- Default template - set it once in Settings → Templates. Every new generation uses this template unless you override it. Your first uploaded template is set as default automatically; you can change the default any time.
- Per-generation override - on the generation screen (Step 3 of the wizard), pick any template from your library (including the two built-ins) for that specific application. Useful when you want your branded template for serious applications and a neutral built-in for exploratory ones.
The same template can be used across all four output languages - language-aware placeholders like [applicationFor] and [currentDate] adapt automatically, so you don't strictly need separate files per language.
Best Practices for a Template That Fills Cleanly
A template the engine can fill cleanly is a template that uses standard tools and stays out of its own way.
- Use standard fonts. Arial, Times New Roman, and Calibri render predictably. Custom fonts may not render consistently in the final PDF document conversion.
- Keep formatting simple. Straightforward paragraphs and headings work better than complex multi-column layouts or custom styles.
- Avoid complex tables and graphics. They can interfere with how placeholders are replaced and how the document converts to a PDF document. Simple single-column layouts are safest.
- Put placeholders in body paragraphs, not in text boxes. Text-box replacement works but is more fragile than regular paragraph text. Put
[fullName]in a normal paragraph, not inside a text-box header. - Include every placeholder you actually need. Missing
[companyName]means the cover letter won't address the employer. Missing[applicationText]means the template has no body content at all. - No macros. VBA / macros are rejected on upload for security reasons. Save as
.docx, not.docm. - Test with sample data. Upload your template, run one generation, open the result, and check that every placeholder landed where you expect. Fix, re-upload, repeat. The validator catches syntax errors; only a real generation catches layout bugs.
- Keep one master template per language. Some conventions differ by locale - address formatting, date order, closing phrases. It's cleaner to duplicate your master template and tweak per language than to cram four variations into one file.
- Don't hard-code personal info. Use placeholders (
[fullName],[email],[phone]) so your template keeps working when your address or phone number changes.
Tips
A few practical shortcuts that save time:
- Start from a generated Editable Word document as reference. Download a finished cover letter from a recent generation (Pro and Premium include Editable Word document output), open it in Word, and use it as the skeleton for your own template. You get the expected structure for free - just add your branding and replace the filled values with the right placeholder names.
- Name your templates clearly. "Formal DE - long" beats "Template 3" when you're picking from the list six months from now.
- Remove old drafts before uploading replacements. If you're near the 10-template cap, delete obsolete versions first; don't stack v1, v2, and v3 in your library.
- Iterate with a sample job. Save a realistic test generation and re-use it every time you tweak your template. That way you're comparing apples to apples between versions.
- Keep a backup of your .docx locally. Templates are easy to replace, but if you've invested time in the layout, keep the source file on your machine. The uploaded copy is for generation; the master lives on your disk.
Related Guides
- How to Generate Your Application Documents - where you pick which template to use for a generation.
- Document Generation Process - deeper look at template selection, language, tone, and customization options.
- CV Optimization - the CV fields that feed
[firstName],[address], and[signature]in your template. - Subscription Management - what's included on each plan, including the Premium custom-template allowance.
Custom templates are a one-time setup that pays off every single generation after it. Spend the 30 minutes to build a clean .docx with the placeholders you need, upload it, and every cover letter you send from then on looks unmistakably like yours.
Ready to Put This Into Practice?
Start using preparAItor to accelerate your job search