Tutorials

How to Automatically Generate Employment Agreements from Notion

Turn your Notion HR database into ready-to-sign employment agreements — no copy-pasting, no formatting headaches, just automated PDFs generated straight from your employee records.

By Sanat Biswal · 2026-07-15 · 10 min read

How to Automatically Generate Employment Agreements from Notion

Notion is the go-to tool for HR teams who are looking to keep track of the candidates, onboarding details and employee records, and company policies so that all live inside one connected system.

But problem arises when a decision is made to hire a person, i.e. turning the Notion data into an actual employment agreement document and it can be e-signed, shared, and stored back into the database.

Most teams today are still doing this manually even today:

  • Opening a Word Document
  • Copying over all the details from the notion Database one by one
  • Formatting the document to match the exact styling and design as expected.
  • This often works for one offer letter created but doesn't work when there are dozens of agreements to be created within a week's time.

    Quite often errors crop up such as a wrong salary figure, missing out on a clause or using an outdated template that holds no relevance etc.

    This guide is a walkthrough on how to connect your Notion HR database to an automation tool called PDFOutput so that every employment agreement gets generated automatically, styled exactly the way you want, without a single manual export involved in the process.


    Why Notion's Native Export Doesn't Work

    Notion's built-in export option, present under the ••• menu at the top-right, isn't actually built for exporting any type of formatted documents (including legal or HR documents).

    It works well when you need to create a PDF file for a notion page but doesn't help to fetch the relation, rollups or other linked database details as expected.

    Besides this, the export breaks when long table or table having many columns are being used.

    As such this is a key limitation of using the tool which presents a challenge for the users when it comes to designing the document properly and also being able to generate the file with proper branding.


    What Do You Need To Create a Real Employment Agreement

    A properly generated agreement should always follow the following guidelines:

    • Every Employment Agreement must have a consistent structure and layout.
    • Correct branding must be applied uniformly across all the employment agreements created without any leftover fields.
    • Easy readability is one of the key aspects of being able to generate and read an employment agreement.
    • All of the above are something which the notion native pdf export misses out and thus PDFOutput will resolve the issues with the right formatted document as expected.


      How to Fix the Export Problem for Employment Agreements

      The fix is simple - separate the agreement design (template file) from the database being used (notion database).

      Template can be built in either of following 4 ways:

    • Microsoft Word File or
    • Google Document or
    • PDF File or
    • Notion Pages
    • The template created must be added with placeholders in the form of {{placeholder_text}} (eg: {{Employee Name}}, {{Job Title}}, {{Start Date}}) and then it can be connected with Notion Database (Agreements Database) to generate PDFs.

      This is exactly how PDFOutput works.

      > Note: Fields must be marked using double curly braces, matching the exact property names in your Notion database.


      Step-by-Step Guide: Generating Employment Agreements from Notion

      Step 1: Set Up the Notion HR Database

      Before building the template, your Notion Database structure must support the automation. For this automation guide, we will use two connected databases:

      1. DB_Employee Records (Primary Database)

      PropertyUsed For
      Employee ID (Title Property)Unique identifier for the employee record
      Employee Name (Text Property)Full name of the employee
      Employee Email (Email Property)Employee's email address
      Department (Text Property)Department the employee belongs to
      Job Title (Text Property)Designation being offered
      Employment Type (Select Property)Full-time, Part-time, or Contract
      Reporting Manager (Text Property)Manager the employee reports to
      Start Date (Date Property)Date of joining
      Base Salary (Number Property)Fixed monthly or annual salary
      Compensation Details (Relation to DB_Compensation Benefits)Links to benefits and allowances
      Total Compensation (Rollup Property)Rolled-up total from the connected benefits database
      Status (Status Property)Draft, Offer Sent, or Signed
      HR Rep Name (Text Property)HR representative handling the agreement
      Here's how the DB_Employee Records look like:

      !DB_Employee Records - Primary Database showing Employee IDs, Names, Emails, Department, Job Title, and Employment Type fields


      2. DB_Compensation Benefits (Connected Database)

      PropertyUsed For
      Benefit (Title Property)Name of the benefit or allowance
      Employee Records (Relation Property)Connects back to DB_Employee Records
      Benefit Type (Select Property)Health insurance, bonus, stock options, etc.
      Value (Number Property)Monetary value of the benefit
      Here's how the DB_Compensation Benefits database would look like:

      !DB_Compensation Benefits - Connected Database showing Benefit names, Employee Records relation, Benefit Type, and Value fields

      For adding the properties in the database, make sure to keep the exact same matching properties in the document.

      Notes:

    • Placeholders used in the document must match the name used in the database. Eg: "Base Salary" and "base salary " (shown with a trailing space) are 2 different placeholders and will not work as expected.
    • So if the Notion Database contains "Base Salary" and the template file contains "base salary ", it will break and thus won't work.
    • Make sure all the connected databases used for relation and rollups are also connected with PDFOutput, otherwise the databases won't work with the expected data.

    • Step 2: Prepare the Agreement Template

      Next step is creating the Agreement Template.

      A template can be created in one of the following 4 ways:

    • Word File or
    • Google Document or
    • PDF File or
    • Notion Pages.
    • So choosing over any type of template allows us to have control over the formatting as required and then we are ready to proceed with setting up the automation.

      For this demonstration, I will be using the following Employment Agreement template created in a Google Document…

      !Employment Agreement template in Google Document showing placeholders for Employee Name, Department, Job Title, Employment Type, Start Date, Base Salary, and signature fields

      > Note: Notice how all the placeholders added into the document use the format {{placeholder}} as expected.


      Step 3: Connect the Database and Template in PDFOutput

      !PDFOutput - Document automation for Notion, built for scale

      In this step, once the template and the notion database are ready, its time to connect the database and the template together in PDFOutput.

      I have written a detailed guide showing how to create NDA Agreements in Notion.

      Refer to this detailed guide which explains step-by-step process on how to connect Notion Database and Template File to setup automation using PDFOutput.

      We need to follow the same steps but for Employment Agreements using the Notion Database (Employment Agreements) and template file (Google Document).

      But, before activating the automation, we must use the Preview Document feature to confirm every placeholder gets pulled with the correct values, then click Setup Automation to activate it.

      !PDFOutput Automation Dashboard showing the Employment Agreement automation with Active status


      Generating Agreements Inside Notion

      Once the automation is live, generating an agreement is as simple as changing a property.

      !Employment Agreements database showing GeneratePDF property with Completed and Ready to Generate statuses and PDFFiles column

      Mark a record's GeneratePDF property to Ready to Generate, and the finished PDF is created automatically inside the PDFFiles column.

      The status updates to Completed once it's done.

      If you need to generate bulk PDFs at once, there's option to also generate PDFs in batches like 100 PDFs at once.

      !PDFOutput Automation Dashboard showing the 3-dot menu with Batch PDFs option

      For this click on 3-dots and then click on "Batch PDFs", it will start to produce PDFs in batches of 100 PDFs at once.

      !PDFOutput Automation Dashboard with Batch PDFs option highlighted in the automation menu


      Who Needs Employment Agreement

    • HR teams who are issuing the offer letters and employment agreements at scale.
    • Startups who are onboarding multiple hires without a dedicated legal ops team to handle things.
    • Agencies and staffing firms who are generating contractor agreements on a regular basis.
    • People operations teams who are managing renewals or amendment letters that are tied to employee records.

    • Common Mistakes to Avoid During Employment Agreements

    • Placeholder names that almost match the property name but aren't exact, including capitalization will not work correctly.
    • Using one template for both offer letters and full contracts isn't recommended, they rarely follow a structure and thus don't work as expected.
    • Testing the template upon one simple record must be avoided. Always test against multiple records to make sure automation works as expected.
    • Skipping Preview Document feature without checking the output isn't recommended.

    Frequently Asked Questions

    1. Is there a free way to try this first?

    Yes, PDFOutput offers 10 free PDF generations to test the setup, no credit card required.

    2. Can Notion generate employment agreements on its own?

    Not reliably — native export handles simple pages but breaks down with rollups, relations, and branding.

    3. Does the agreement template need to be a Google Doc?

    No. Word files, Google Docs, PDFs, and Notion pages are all supported.

    4. Will it pull salary and benefits data from a connected database?

    Yes, as long as the related database is also connected within PDFOutput.

    5. Is coding required to set this up?

    No. It's placeholder-based — wrap a field in double curly braces, match it to a property name, and the automation handles the rest.

    6. Does PDFOutput also create e-signatures for agreements created?

    Yes, PDFOutput does support e-signature for PDFs created. Click Here to learn more.


    Wrapping Up

    A Notion HR database is a great place to track employees, roles, and compensation — but it was never built to generate legal documents on its own.

    Separating the agreement's design from the database, and letting automation handle the matching, turns every new hire's record into a ready-to-sign agreement without manual drafting.

    If agreements are still being written by hand, automating this one recurring task is worth setting up the first time it runs across a full hiring batch.


    Need to automate your employment agreements? Get started for free and set up your first PDF automation in minutes.