Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/chamals3n4/OpenATS/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Templates in OpenATS provide a flexible, visual way to create professional emails and documents for candidate communications. Build reusable templates with a block-based editor that ensures consistent branding and messaging across your hiring process.

Template Basics

Creating a Template

Every template requires:

Name

Internal reference name (e.g., “Senior Engineer Offer”)Not visible to candidates

Type

Template category: offer, rejection, assessment_invite, or generalDetermines where template is used

Subject

Email subject line or document titleSupports variable placeholders

Body Content

Visual block-based contentBuild with multiple content blocks
Templates are created by specific users and tracked for audit purposes, but can be used by the entire organization.

Template Types

OpenATS supports four distinct template types, each serving a specific purpose in the recruitment workflow:

Offer Templates (offer)

Used for generating formal job offer letters: Offer Template Elements:
  • Company letterhead
  • Position details
  • Compensation breakdown
  • Benefits overview
  • Start date and next steps
  • Acceptance instructions

Rejection Templates (rejection)

Used for candidate rejection notifications: Rejection Template Elements:
  • Polite rejection message
  • Feedback (optional)
  • Thank you for applying
  • Encouragement to apply for future roles

Assessment Invite Templates (assessment_invite)

Used to invite candidates to take technical assessments: Assessment Invite Elements:
  • Assessment link with unique token
  • Time limit information
  • Instructions and expectations
  • Expiry date

General Templates (general)

Used for any other candidate communications: Common General Templates:
  • Application received confirmation
  • Interview invitation
  • Interview reminder
  • Reference request
  • Onboarding welcome
Create separate offer templates for different roles (executive, engineering, sales) or employment types (full-time, contract, intern) to include role-specific details.

Content Block System

Build template bodies using flexible content blocks stored as JSON:

Available Block Types

Purpose: Section titles and headersProperties:
  • type: “heading”
  • content: The heading text
Example:
{
  "type": "heading",
  "content": "Interview Invitation"
}

Building Template Content

Block Composition

Combine blocks to create rich, professional templates: Example Offer Letter Template:
[
  {
    "type": "image",
    "url": "https://company.com/letterhead.png",
    "alt": "Company Letterhead"
  },
  {
    "type": "spacer",
    "height": 30
  },
  {
    "type": "heading",
    "content": "Offer of Employment"
  },
  {
    "type": "text",
    "content": "Dear {{candidate.firstName}} {{candidate.lastName}},"
  },
  {
    "type": "text",
    "content": "We are pleased to offer you the position of {{job.title}} with a salary of {{offer.salary}} {{offer.currency}} per {{offer.payFrequency}}."
  },
  {
    "type": "divider"
  },
  {
    "type": "heading",
    "content": "Start Date"
  },
  {
    "type": "text",
    "content": "Your employment will begin on {{offer.startDate}}."
  },
  {
    "type": "spacer",
    "height": 20
  },
  {
    "type": "button",
    "label": "Accept Offer",
    "url": "{{offer.acceptUrl}}"
  }
]
Use spacers and dividers strategically to create visual hierarchy and improve readability.

Variable Placeholders

Templates support dynamic content through variable placeholders:

Candidate Variables

{{candidate.firstName}}
{{candidate.lastName}}
{{candidate.email}}
{{candidate.phone}}

Job Variables

{{job.title}}
{{job.department}}
{{job.location}}
{{job.employmentType}}

Offer Variables

{{offer.salary}}
{{offer.currency}}
{{offer.payFrequency}}
{{offer.startDate}}
{{offer.expiryDate}}

Company Variables

{{company.name}}
{{company.address}}
{{company.website}}

User Variables

{{hiring_manager.firstName}}
{{hiring_manager.lastName}}
{{hiring_manager.email}}
{{hiring_manager.title}}

Assessment Variables

{{assessment.title}}
{{assessment.timeLimit}}
{{assessment.accessUrl}}
{{assessment.expiryDate}}
Variables are automatically replaced with actual data when the template is used to send an email or generate a document.

Using Templates

In Pipeline Stages

Templates are assigned to pipeline stages for automatic use: Offer Stages:
  • Select offer template
  • Template renders when candidate reaches stage
  • Compensation variables auto-filled from job/offer
Rejection Stages:
  • Select rejection email template
  • Email sent when candidate moved to stage
  • Maintains professional candidate experience

In Offer Creation

When creating offers manually:
1

Select template (optional)

Choose an offer letter template
2

Fill offer details

Enter salary, dates, and other specifics
3

Generate preview

System renders template with actual data
4

Review and customize

Make any final adjustments
5

Send to candidate

Deliver the rendered offer

Managing Templates

Viewing Templates

Access your template library to:
  • Browse all templates by type
  • Search by name or content
  • See who created each template
  • Check when templates were last updated

Editing Templates

Update existing templates:
Changes to templates affect future use only. Already-sent emails and generated offers preserve their original rendered content.
What you can edit:
  • Template name
  • Subject line
  • Body content blocks
  • Add/remove/reorder blocks
What you cannot edit:
  • Template type (email vs. offer)
  • Creator
  • Creation date

Deleting Templates

Removing templates: Impact on existing records:
  • Pipeline stages: Template reference set to null
  • Offers: templateId set to null
  • Rendered content: Preserved in renderedHtml
Deleting a template does not affect previously sent emails or offers. The rendered HTML is stored separately and remains intact.

Template Best Practices

Name templates for their purpose and audience (e.g., “Phone Screen Invite - Engineering” vs. just “Interview Email”).
Include logo or letterhead image blocks at the top for professional appearance.
Use headings to break up long content. Recipients skim before reading in detail.
Send test emails to verify all placeholders render correctly with real data.
Use button blocks for important actions like scheduling interviews or accepting offers.
Ensure all templates reflect your employer brand voice - friendly, formal, enthusiastic, etc.
Update templates periodically to ensure information (benefits, policies, contact info) stays current.
Create dated versions of offer templates if terms change to track what was offered when.

Example Templates

Application Received Email

Subject: Application Received - {{job.title}} Body:
[
  {
    "type": "heading",
    "content": "Thank You for Applying"
  },
  {
    "type": "text",
    "content": "Hi {{candidate.firstName}}, thank you for applying to the {{job.title}} position at {{company.name}}."
  },
  {
    "type": "text",
    "content": "We've received your application and our team will review it shortly. If your skills and experience match our requirements, we'll reach out to schedule an interview."
  },
  {
    "type": "divider"
  },
  {
    "type": "text",
    "content": "Best regards,\n{{company.name}} Talent Team"
  }
]

Technical Assessment Invitation

Subject: Technical Assessment - {{job.title}} Position Body:
[
  {
    "type": "heading",
    "content": "Next Step: Technical Assessment"
  },
  {
    "type": "text",
    "content": "Hi {{candidate.firstName}}, we'd like to invite you to complete a technical assessment for the {{job.title}} role."
  },
  {
    "type": "text",
    "content": "Assessment: {{assessment.title}}\nTime Limit: {{assessment.timeLimit}} minutes\nExpires: {{assessment.expiryDate}}"
  },
  {
    "type": "spacer",
    "height": 20
  },
  {
    "type": "button",
    "label": "Start Assessment",
    "url": "{{assessment.accessUrl}}"
  },
  {
    "type": "spacer",
    "height": 20
  },
  {
    "type": "text",
    "content": "Good luck!\n{{hiring_manager.firstName}}"
  }
]

Rejection Email (After Interview)

Subject: Update on Your Application - {{job.title}} Body:
[
  {
    "type": "heading",
    "content": "Application Update"
  },
  {
    "type": "text",
    "content": "Hi {{candidate.firstName}}, thank you for taking the time to interview for the {{job.title}} position."
  },
  {
    "type": "text",
    "content": "After careful consideration, we've decided to move forward with other candidates whose experience more closely aligns with our current needs."
  },
  {
    "type": "text",
    "content": "We were impressed by your skills and encourage you to apply for future openings that match your background."
  },
  {
    "type": "divider"
  },
  {
    "type": "text",
    "content": "Best wishes in your job search,\n{{company.name}} Team"
  }
]

Next Steps

Configure Pipeline Stages

Assign templates to stages for automated sending

Create Offers

Use offer templates to generate job offers

Manage Candidates

Send template-based emails to candidates

Set Up Assessments

Create assessment invitation templates

Build docs developers (and LLMs) love