4 Different Ways to Generate Job Offer Letters in Bulk

Blog image
Author By DocuGenerate

December 26, 2023

What is a job offer letter

A job offer letter is a formal document that is issued by an employer to a candidate who has been selected for a job position. It provides the details of the job offer, including the position title, start date, compensation, and benefits. It serves as a written agreement between the employer and the candidate, and sets expectations for the employment relationship.

The job offer letter is an important step in the hiring process, as it lays out the terms and conditions of employment, and helps to ensure that both the employer and the candidate are on the same page. It also provides an opportunity for the candidate to review the details of the job offer, and to ask questions or request clarifications before accepting the position.

In addition to the terms of the job offer, the letter may also include information about the company, such as its mission, values, and culture, as well as any relevant policies and procedures. Overall, the job offer letter is a crucial document that helps to ensure a smooth transition into a new job and a positive working relationship between the employer and the employee.

Finding the right letter template

There are several resources available for finding templates for job offer letters. Here are a few options:

  • Online Template Libraries that offer free and paid templates for job offer letters. These templates are easy to customize and provide a basic structure for creating a professional-looking job offer letter.

  • Human Resources Websites that offer templates and sample job offer letters for their members. These templates can be a useful resource for HR professionals and managers who need to create job offer letters for their organizations.

  • Legal Websites that offer templates and guidance on creating job offer letters that comply with employment laws. These templates can be especially useful for small businesses and startups that need to create legally compliant job offer letters.

  • Professional Service Providers, like employment law firms and HR consulting firms offer job offer letter templates as part of their services. These templates are typically more comprehensive and may include information on compliance with employment laws, as well as guidance on customizing the letter to meet the specific needs of your organization.

Regardless of the source, it is important to carefully review any template or sample job offer letter before using it. A good idea is to consult with a lawyer or HR professional to ensure that the letter complies with all relevant employment laws and regulations.

Get started by uploading the template

For the purpose of this tutorial, we’ll use a standard Job Offer Letter template with a pretty simple structure and containing merge tags like Employee Name, Company Name, Position Title, Start Date and a few others. On your DocuGenerate account, go ahead and create a new template by uploading the letter template file, and you should see something like in the image below.

Invoice template containing merge tags

If you want to find more about how to transform an existing letter into a template, take a look at the previous blog article How to Transform an Existing Invoice into a Template, the principle being the same.

Generate the job offer letters

When it comes to generating job offer letters, having the right template in place is a crucial first step. Once the template is set up, the next step is to generate the letters in bulk. There are two main approaches to doing this. The first approach is to use the web application and generate the letters through the web interface, which is the simpler and more straightforward option.

The second approach, which is more technical in nature, involves using the API. This method is typically used by organizations with more advanced technical requirements and a need for more customization and automation. The API allows the organization to integrate the job offer letter generation process with their existing systems and processes, making it easier to generate the letters in bulk and streamline the hiring process.

For each approach, the data for generating the letters will come from 2 different sources (an Excel file and a JSON object), bringing the total number of ways to generate the letters to 4. So let’s dive in!

1. Using the Web app & Excel data

First, let’s generate the job offer letters from the web application and using the Excel file as the data source. Click on New document and then select the Excel or CSV file option. You can learn more about generating documents with data from Excel in this article.

Selecting the Excel data source

For each selected row in the Excel file, a PDF document will be generated from the template by replacing the merge tags with the actual data. By default, all rows from the Excel file will be used to generate the job offer letters. But you can also select which ones to use by clicking on the rows, the selected ones being highlighted in yellow. If you want to quickly preview how the letter looks, you can just select one row like in the video below:

Generate a PDF letter from Job Offer template and Excel data

Important: In order for the documents to be generated correctly, the column names in the Excel file must match exactly the merge tags from the template: Employee Name, Company Name, Position Title, Start Date and so on. You can download the generated letters if you want to see the end result.

2. Using the Web app & JSON data

Next, we’ll generate the job offer letters from the web application and using JSON data. Click on New document and then select the JSON data option. You can learn more about generating documents using JSON in this article.

Selecting the JSON data source

Open the JSON data file and copy its content, or copy it directly from the text box below. As you can see, the JSON value contains the equivalent of the Excel file, but instead of rows we have a list of objects representing the data. And like it was the case for the column names in the Excel file, the JSON keys must match exactly the merge tags from the template: Employee Name, Company Name, Position Title, Start Date and so on, in order for the mail merge to be done correctly.

[{"Employee Name":"Gerhardt Le Teve","Company Name":"Dynabox","Position Title":"Engineer III","Start Date":"5/4/2022","Manager Name":"Ripley Radin","Yearly Compensation":"$49790.29","Bonus Amount":"$3184.79","Commision Amount":"$3394.85","Stocks Number":43581,"Expiry Date":"4/29/2022","Name of Signatory":"Cally Pollak","Title of Signatory":"Analog Circuit Design manager"},
{"Employee Name":"Jobi Bertson","Company Name":"Twinte","Position Title":"Geologist II","Start Date":"4/20/2022","Manager Name":"Maxi Poge","Yearly Compensation":"$17782.46","Bonus Amount":"$4254.18","Commision Amount":"$2543.53","Stocks Number":27069,"Expiry Date":"12/18/2022","Name of Signatory":"Laurene Coldbathe","Title of Signatory":"Senior Financial Analyst"},
{"Employee Name":"Mitchell Brettel","Company Name":"Kazu","Position Title":"VP Accounting","Start Date":"4/28/2022","Manager Name":"Paolo Egerton","Yearly Compensation":"$56473.97","Bonus Amount":"$4753.14","Commision Amount":"$3355.65","Stocks Number":32523,"Expiry Date":"4/11/2022","Name of Signatory":"Laurence Glabach","Title of Signatory":"Environmental Specialist"},
{"Employee Name":"Terrye Barrs","Company Name":"Twitterwire","Position Title":"Senior Sales Associate","Start Date":"1/11/2023","Manager Name":"Deina Campana","Yearly Compensation":"$2850.24","Bonus Amount":"$6657.63","Commision Amount":"$2666.43","Stocks Number":32831,"Expiry Date":"3/26/2022","Name of Signatory":"Ginevra Stelfox","Title of Signatory":"Desktop Support Technician"},
{"Employee Name":"Orbadiah Seear","Company Name":"Zoozzy","Position Title":"Technical Writer","Start Date":"6/7/2022","Manager Name":"Filia Boutcher","Yearly Compensation":"$9147.02","Bonus Amount":"$410.52","Commision Amount":"$9620.76","Stocks Number":49604,"Expiry Date":"10/10/2022","Name of Signatory":"Tressa Lewendon","Title of Signatory":"Quality Engineer"},
{"Employee Name":"Kaja Kubek","Company Name":"Kamba","Position Title":"Software Engineer IV","Start Date":"1/7/2023","Manager Name":"Siobhan Rossi","Yearly Compensation":"$57442.88","Bonus Amount":"$4211.76","Commision Amount":"$556.41","Stocks Number":20061,"Expiry Date":"3/12/2022","Name of Signatory":"Phillipp Cromarty","Title of Signatory":"Technical Writer"},
{"Employee Name":"Sherry Slowly","Company Name":"Roodel","Position Title":"Web Designer III","Start Date":"12/7/2022","Manager Name":"Ranique Stockdale","Yearly Compensation":"$52731.84","Bonus Amount":"$454.63","Commision Amount":"$8856.27","Stocks Number":49158,"Expiry Date":"4/1/2022","Name of Signatory":"Vernen Hedaux","Title of Signatory":"Software Consultant"},
{"Employee Name":"Maje McElrea","Company Name":"Eazzy","Position Title":"Senior Quality Engineer","Start Date":"11/6/2022","Manager Name":"Mabel Alvis","Yearly Compensation":"$93416.00","Bonus Amount":"$5614.70","Commision Amount":"$1808.73","Stocks Number":23205,"Expiry Date":"5/29/2022","Name of Signatory":"Normie Mariaud","Title of Signatory":"Staff Scientist"},
{"Employee Name":"Babs Vsanelli","Company Name":"Blogtags","Position Title":"Food Chemist","Start Date":"7/9/2022","Manager Name":"Hertha Jancik","Yearly Compensation":"$94107.02","Bonus Amount":"$2421.30","Commision Amount":"$8328.46","Stocks Number":32179,"Expiry Date":"9/14/2022","Name of Signatory":"Stearn Dominec","Title of Signatory":"Marketing Assistant"},
{"Employee Name":"Justina Halbord","Company Name":"InnoZ","Position Title":"Chief Design Engineer","Start Date":"7/9/2022","Manager Name":"Tandie Goffe","Yearly Compensation":"$97200.78","Bonus Amount":"$3011.41","Commision Amount":"$9805.45","Stocks Number":33500,"Expiry Date":"6/3/2022","Name of Signatory":"Michal Paling","Title of Signatory":"Account Representative III"},
{"Employee Name":"Mark Dunstall","Company Name":"Zoonder","Position Title":"Programmer Analyst IV","Start Date":"9/26/2022","Manager Name":"Jennine Lilford","Yearly Compensation":"$73016.76","Bonus Amount":"$1984.14","Commision Amount":"$1870.99","Stocks Number":13785,"Expiry Date":"2/28/2022","Name of Signatory":"Amble Giller","Title of Signatory":"Desktop Support Technician"},
{"Employee Name":"Delmar O'Rodane","Company Name":"Trudeo","Position Title":"Human Resources Manager","Start Date":"6/5/2022","Manager Name":"Klemens Drover","Yearly Compensation":"$62596.21","Bonus Amount":"$414.20","Commision Amount":"$7814.08","Stocks Number":33729,"Expiry Date":"7/13/2022","Name of Signatory":"Shepard Skillen","Title of Signatory":"Software Engineer III"},
{"Employee Name":"Christophorus Breyt","Company Name":"Skinte","Position Title":"Structural Analysis Engineer","Start Date":"1/12/2023","Manager Name":"Cori Cattemull","Yearly Compensation":"$23244.42","Bonus Amount":"$8168.93","Commision Amount":"$3392.79","Stocks Number":37771,"Expiry Date":"7/12/2022","Name of Signatory":"Tim Bulstrode","Title of Signatory":"Nurse"},
{"Employee Name":"Ginelle Reams","Company Name":"Demizz","Position Title":"Recruiter","Start Date":"4/30/2022","Manager Name":"Bartram Whitlaw","Yearly Compensation":"$43442.37","Bonus Amount":"$1202.09","Commision Amount":"$8469.55","Stocks Number":31971,"Expiry Date":"9/14/2022","Name of Signatory":"Dusty Haisell","Title of Signatory":"Programmer Analyst III"},
{"Employee Name":"Doralynn Korlat","Company Name":"Topiclounge","Position Title":"Senior Developer","Start Date":"12/24/2022","Manager Name":"Dacy McGrath","Yearly Compensation":"$77291.56","Bonus Amount":"$9879.53","Commision Amount":"$7814.24","Stocks Number":20870,"Expiry Date":"3/30/2022","Name of Signatory":"Link Coggon","Title of Signatory":"Assistant Media Planner"},
{"Employee Name":"Aile Rist","Company Name":"Edgeclub","Position Title":"Cost Accountant","Start Date":"11/26/2022","Manager Name":"Evelin Rannald","Yearly Compensation":"$67605.67","Bonus Amount":"$8648.40","Commision Amount":"$636.04","Stocks Number":12029,"Expiry Date":"4/3/2022","Name of Signatory":"Saw Custance","Title of Signatory":"Junior Executive"},
{"Employee Name":"Ramon Fearn","Company Name":"Twiyo","Position Title":"Payment Adjustment Coordinator","Start Date":"1/17/2023","Manager Name":"Hunfredo Brinicombe","Yearly Compensation":"$96561.93","Bonus Amount":"$2201.53","Commision Amount":"$5735.85","Stocks Number":27966,"Expiry Date":"10/7/2022","Name of Signatory":"Kurt Ickovic","Title of Signatory":"Research Associate"},
{"Employee Name":"Laverna Fullalove","Company Name":"Buzzster","Position Title":"Civil Engineer","Start Date":"10/7/2022","Manager Name":"Avictor Rentalll","Yearly Compensation":"$22680.40","Bonus Amount":"$9615.83","Commision Amount":"$3511.52","Stocks Number":47127,"Expiry Date":"10/12/2022","Name of Signatory":"Moss Priden","Title of Signatory":"Community Outreach Specialist"},
{"Employee Name":"Lotte Piggford","Company Name":"Jaxbean","Position Title":"Electrical Engineer","Start Date":"2/13/2022","Manager Name":"Anjela Scone","Yearly Compensation":"$88211.64","Bonus Amount":"$2298.14","Commision Amount":"$209.56","Stocks Number":39588,"Expiry Date":"7/15/2022","Name of Signatory":"Izabel Kynaston","Title of Signatory":"Recruiting Manager"},
{"Employee Name":"Hansiain Hanmer","Company Name":"Bluejam","Position Title":"Project Manager","Start Date":"3/25/2022","Manager Name":"Nicolai Aleksich","Yearly Compensation":"$91649.01","Bonus Amount":"$3503.64","Commision Amount":"$6059.65","Stocks Number":34179,"Expiry Date":"3/10/2022","Name of Signatory":"Lukas Kenchington","Title of Signatory":"Marketing Manager"}]

After copying the JSON data, go back to DocuGenerate’s web app and paste the value in the field that says Enter a JSON array of objects. As opposed to the Excel data option, when using JSON it is not possible to select which items from the JSON array to be used, and by all data items will be used to generate the documents.

Generate multiple PDF letters from Job Offer template and JSON data

If you want to see the job offer letters generated from the JSON data, you can download the PDF file.

3. Using the API & Excel data

For the last two sections, we’ll be using DocuGenerate’s API to generate the job offer letters. And to make it easier to interact with the API, we created a Postman collection that you can import into your Postman workspace. After importing the collection, you should see the Template and Document endpoints listed like in the following image:

Setting DocuGenerate's API Collection

Next, you’ll need to configure the Authorization section of the Postman collection by entering your unique API key, which can be found on the Settings page after you log in. For the purpose of this tutorial, we’ll be using the demo key 491c000c5fad32ed7787005b0723ad55, but you can replace it with your own API key.

Setting DocuGenerate's API Key in Postman

Open the Document / Generate Document endpoint from the Postman collection and specify the template_id parameter. If you created a template with the Job Offer Letter, use the id of that template. Otherwise, you can use the demo template id ZtHBhb9jLh6TcZuaVteI, associated with the demo API key.

And finally, don’t forget to select the Job Offer Letter.xlsx for the file parameter of the request. The output_format parameter is optional, the default value being .docx, but you can also generate the job offer letter in the .pdf, .doc or .odt format, as you can see in the API Reference.

Generate multiple PDF letters from Job Offer template with Postman using Excel data

You can see in the previous image all the request parameters, as well as the response from the server. The document_uri field is a link to the generated PDF containing the job offer letters.

4. Using the API & JSON data

Finally, the last way to generate the job offer letters is to use the API with JSON data. The request parameters are pretty much the same as before, but instead of specifying the file parameter, you need to select the data parameter and paste the JSON data as the value. Take a look at the following video to see what that process looks like:

Generate multiple PDF letters from Job Offer template with Postman by calling DocuGenerate's API

Like for the previous response object, the document_uri field is a link to the generated PDF containing the job offer letters. If you need more info about the other fields in the response object, you can find the detailed Document schema on the API Reference page.


In this article we showcased how to generate job offer letters in bulk from a pre-defined template using 4 different methods. For the first two methods, we used the web application to generate the letters through the web interface and provided the data either as an Excel file, or as a JSON object. The last two methods involved using the API with the same two data types as for the first ones. This is a more technical option, but offers greater flexibility in terms of customization and automation.

Share This Post
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