Create Employment Agreements with Variable Clauses

Blog image
Author By DocuGenerate

January 30, 2024

What is an Employment Agreement?

An employment agreement is a legally binding document that establishes the terms and conditions of employment between an employer and an employee. It outlines the rights, responsibilities, and obligations of both parties, providing a framework for the employment relationship. Employment agreements typically cover essential aspects such as job title, duties and responsibilities, compensation, work hours, benefits, termination provisions, and confidentiality requirements.

These agreements serve as a foundation for the employment relationship, providing clarity and protection for both employers and employees. They help establish expectations, rights, and obligations, ensuring that both parties understand their roles and responsibilities. Employment agreements also play a crucial role in protecting the interests of employers, as they can include provisions related to non-disclosure of confidential information, non-compete clauses, and intellectual property rights.

In addition to addressing legal and practical considerations, employment agreements can foster a positive work environment by promoting clear communication, setting expectations, and preventing misunderstandings. They provide a comprehensive written record of the agreed-upon terms, which can help resolve disputes and disagreements that may arise during the course of employment.

Drafting an Employment Agreement

When it comes to drafting employment agreements, one of the most challenging aspects is creating a template that can accommodate variable clauses. Traditional templates often require manual editing for each agreement, which can be time-consuming and prone to errors.

However, with the use of dynamic conditions, it’s possible to create flexible templates that can generate customized employment agreements efficiently. In this article, we will explore the process of creating employment agreements with variable clauses and how this approach can streamline the document generation process.

Creating a Template with Merge Tags

Creating a template for an employment agreement involves adding merge tags that will be replaced with actual data when generating the final document. The template’s initial iteration includes merge tags such as [employee_name], [employer_name], [job_title], and others.

To make these merge tags easily recognizable during testing, they are highlighted in yellow within the template and the generated documents. However, it is generally recommended to remove the highlight once the template has been validated and is ready to be used.

Handling variable clauses in the template is achieved through the use of checkboxes. When filling out the template, the individual responsible for data input can check the corresponding checkbox to select the desired option. In instances where only one option should be chosen, the mention (Check one) is included in the template to indicate the requirement.

However, it is important to note that this approach results in the final document being longer than necessary since it includes all possible options for each clause. Additionally, from a privacy perspective, it may disclose more information than required, as employees might not need to know about certain clauses that could exist.

You can view the initial version of the template below, which contains only the placeholders and checkboxes, or you can download the template to examine it in detail.

Adding Conditions and Logical Expressions

While creating a template with multiple options for each clause is a good solution, an even better one is to use dynamic conditions and enhanced syntax in the template. These techniques allow for the inclusion of conditions, negations, and logical expressions that can control which clauses to be included in the final document, instead of using checkboxes.

As you can see in the updated template below, the conditions are highlighted in green to distinguish them within the template. When a document is generated the conditions are evaluated and the corresponding sections are either displayed or not in the final result. And of course, the condition tags don’t appear in the generated document, ensuring a clean and professional final agreement.

Simpler conditions and negations like [#full_time]full time[/][^full_time]part time[/] can be used by default on any template. However, in order to use expressions like [#payments_per_month == 1] the enhanced syntax needs to be enabled. By doing so it is also possible to use the “dot notation” in the template to reference object properties like [#non_compete.option1] and [#non_compete.option2].

Finally, please note that since the enhanced syntax is enabled for this template, you may observe that merge tags do not contain any whitespaces. It is important to ensure that there are no whitespaces within the merge tags, as this could affect the proper functioning of the document generation process.

Tailoring the Data Set to Match the Template

Creating dynamic employment agreements requires working with data that supports object notation. A suitable option for this is using JSON (JavaScript Object Notation), which is a lightweight data-interchange format that allows for the organized representation of structured data.

Unlike Excel data, which relies on a tabular format, JSON provides a hierarchical structure that aligns well with the variable clauses found in employment agreements. This hierarchical structure allows for better organization and representation of the data, making it easier to handle and manipulate the variables within the agreement.

To further enhance the organization and clarity of the JSON data, variables can be grouped using objects. Grouping similar variables under relevant object names improves readability and maintainability. For example, variables related to expenses can be grouped under an expenses object, while variables related to dispute resolution can be grouped under a dispute object. This approach facilitates the identification and management of specific clauses within the template.

You can explore the sample JSON data provided, which contains values corresponding to the variables in the template. This will give you context on how the clauses and merge tags will be populated.

    "effective_date": "March 29th, 2023",
    "employee_name": "Jane Smith",
    "employer_name": "Dream Marketing Inc.",
    "job_title": "Marketing Specialist",
    "full_time": true,
    "duties": [
      "Developing marketing campaigns",
      "Managing social media accounts",
      "Analyzing market trends"
    "fixed_term": false,
    "start_date": "April 1st, 2023",
    "end_date": null,
    "probation_period": 3,
    "salary_amount": 4000,
    "salary_interval": "month",
    "payments_per_month": 2,
    "payment_day": "15th",
    "overtime": {
      "rate": 20,
      "threshold": 40,
      "period": "week"
    "expenses": {
      "entertainment": true,
      "travel": true,
      "meals": true,
      "phone": true,
      "other": "Miscellaneous"
    "work_address": "456 Park Avenue, Cityville, USA",
    "work_hours": "9 AM - 6 PM",
    "work_days": "Monday to Friday",
    "time_off_days": 20,
    "sick_leave_days": 5,
    "personal_leave_days": 3,
    "other_benefits": "Health insurance, flexible spending account",
    "disability_days": 60,
    "disability_percentage": 75,
    "non_compete_months": 6,
    "non_compete": {
      "option1": true,
      "option2": true,
      "option3": true,
      "option4": true,
      "other": "Disclose marketing strategies, client lists, and upcoming product launches."
    "confidential_information": true,
    "employer_notice_days": 30,
    "employee_notice_days": 30,
    "severance_amount": 3000,
    "governing_state": "New York",
    "dispute": {
      "court": true,
      "arbitration": false,
      "mediation": false,
      "mediation_arbitration": false

Example of a Generated Employment Agreement

To illustrate the concepts discussed, you can see an example employment agreement generated based on the template with conditions instead of checkboxes and the provided JSON data.

You can generate a variety of agreement versions by simply modifying the data properties. For example, by using "expenses": null instead of the value in the sample data, the 5. Expenses section would contain only Employee will NOT be reimbursed for out-of-pocket expenses.

Feel free to try generating other employment agreement versions yourself by creating a new template using the agreement with conditions. Then, paste the JSON data into the data items field and modify some of the values as desired.

Create a new document


Creating employment agreements with variable clauses can be a challenging task, but with the use of enhanced syntax, dynamic conditions, and JSON data, it becomes much more manageable. By employing these techniques, organizations can streamline the document generation process, improve efficiency, and ensure the accuracy and customization of employment agreements.

Whether it’s handling different employment types, compensation structures, or benefits packages, dynamic templates provide the flexibility and control needed to generate comprehensive and tailored agreements. By embracing this approach, businesses can enhance their contract management processes and focus on more strategic initiatives while reducing administrative burdens.


  • The Employment Agreement template with conditions and logical expressions.
  • The sample JSON data used for generating the agreement.
  • The PDF Agreement generated based on the template with conditions and the JSON data.
Dotted shape Dotted shape

Join our newsletter!

Enter your email to receive the latest newsletter from DocuGenerate

Read articles on product updates, tutorials and API integrations