Generate Bulk HR Documents Securely from a Spreadsheet

Creating fifty individual salary review letters by copying and pasting names into a Word document is a setup for a data breach. You are one distraction away from sending an employee a letter containing a colleague's bonus figure. Automating the process with a document generator and a clean spreadsheet removes that manual risk and turns an afternoon of repetitive work into a five-minute task.

You need two things to generate these documents in bulk: a template with placeholder tags, and a spreadsheet containing the employee data. A bulk document generator like ManyDocs merges them, producing one complete file for every row in your spreadsheet.

Documents suited for bulk generation

Bulk generation works best for standard HR documents where the core text remains identical and only specific details change per employee. If a document requires individually negotiated clauses or custom paragraphs for different staff members, you should draft it manually.

These are the most common HR documents to automate, along with the fields that typically vary:

  • Offer letters: Candidate name, job title, starting salary, start date, line manager name, and department.
  • Salary review letters: Employee name, current salary, new salary, percentage increase, and the effective date of the change.
  • Probation confirmations: Employee name, probation end date, and the confirming manager's name.
  • Training and compliance records: Employee name, course title, completion date, and renewal date.
  • Equipment handover forms: Employee name, asset tag number, laptop model, and issue date.

Cleaning up an HR system export

If you export a staff list directly from your HR software, it is rarely in the right shape for document generation. Systems often export files with visual formatting, merged cells, or multiple header rows that will break the merge process.

Before generating any documents, you must clean your spreadsheet. Follow this sequence:

  1. Delete extra top rows. Your spreadsheet's very first row must contain your column headers. Delete any title rows, report dates, or blank rows above the headers.
  2. Rename headers to match placeholders. If your Word template uses the placeholder ((FirstName)), your spreadsheet column must be named exactly FirstName. Change messy system headers like Emp_First_Name_v2 to short, clear names without spaces.
  3. Ensure one row per document. A document generator creates one file for every row. If your export includes three rows for one employee because it lists historical job titles, delete the old rows. You only want the current data.
  4. Convert formulas to values. ManyDocs reads the stored value in a cell, not the calculated result. If you use a formula to calculate a bonus amount, copy that entire column and use "Paste as Values" over itself to lock the numbers in place.
  5. Format numbers and dates as text. Cell formatting (like currency symbols or date layouts) is ignored during generation. If you want a date to appear as "14 March 2026" in the letter, format the column as plain text and type or formula-generate the date exactly as you want it read.

Sensitive data and browser-local processing

Salary data, home addresses, and national ID numbers are exactly the kind of sensitive information you are instructed never to upload to random online converters. Understanding where your data goes is critical when choosing an automation tool.

Most online document generators use server-side processing. When you use them, your employee spreadsheet and your template are uploaded to the provider's servers. The server merges the files, creates the documents, and you download the result. This means your sensitive employee data has left your device, triggering data processing and retention concerns.

ManyDocs uses client-side processing. The application runs entirely locally in your web browser using JavaScript. When you select your spreadsheet and template, the files are never uploaded to any server. The parsing, placeholder replacement, and ZIP file creation all happen directly on your own computer's memory.

In concrete terms, "your file never leaves your device" means there is no upload step, no copy stored on a remote server, no data retention, and nothing you need to request the deletion of. Once you close the browser tab, the session is gone.

Note: This explanation of processing architecture is not legal advice. Your specific compliance obligations depend on your jurisdiction and internal company policies.

A worked example: Generating offer letters

To see how this works in practice, start with a standard Word template. Replace the variable text with placeholders. ManyDocs accepts ((field)), {{field}}, or [[field]] syntax. Pick one style and use it consistently.

Your template might look like this:

Dear ((FirstName)),

We are pleased to offer you the position of ((JobTitle)) in the ((Department)) department. Your starting salary will be ((Salary)) per year, and your anticipated start date is ((StartDate)).

Next, prepare your spreadsheet. The column headers in the first row must match the placeholders exactly.

FirstName LastName JobTitle Department Salary StartDate
Sarah Jenkins Account Manager Sales £45,000 01 May 2026
David Chen Systems Analyst IT £52,000 15 May 2026
Aisha Patel HR Coordinator Human Resources £38,000 01 May 2026
Marcus Webb Graphic Designer Marketing £41,000 08 May 2026
Elena Rostova Office Manager Administration £40,000 01 May 2026

When you load this template and spreadsheet into ManyDocs, it will instantly generate five separate Word documents packaged in a single ZIP file.

Naming the output files for personnel folders

By default, bulk generators often name output files sequentially, like document-1.docx, document-2.docx. This is nearly useless for HR work. If you generate two hundred salary letters, you cannot tell which file belongs to which employee without opening every single one.

ManyDocs allows you to choose a specific spreadsheet column to name your output files. For HR documents, you should always include a column specifically designed for file naming.

Use an EmployeeID or a FullName column. If you select a column containing "Sarah Jenkins", the resulting file will be Sarah Jenkins.docx. This means when you extract the downloaded ZIP file, you can immediately drag the correctly named documents straight into the respective employee personnel folders on your shared drive.

Ensure the column you choose does not contain duplicate values, or the files will overwrite each other in the final ZIP.

Review and approval before distribution

Automation removes the risk of copy-paste errors, but it perfectly replicates systemic errors. If a column is misaligned in your spreadsheet, every subsequent document will be wrong.

Generated batches always require a human read before you distribute them to staff. You do not need to read all two hundred letters, but you must spot-check strategically.

Extract the ZIP file and open the first document to ensure the merge worked. Open the final document to confirm the batch completed successfully. Finally, find the document for the employee with the longest name or the longest job title to ensure the text has not pushed critical layout elements onto a second page.

Keeping your templates under version control

HR templates change frequently due to shifting company policies or updated employment law. When you automate your documents, controlling the source template becomes vital.

Because ManyDocs does not store templates in a cloud library, you manage your own files locally. Adopt a strict naming convention for your master templates. Include the date in the filename, such as Offer_Letter_Template_2026-03.docx.

If a policy wording changes midway through a hiring push, update the master template, save it with a new date, and simply re-run the spreadsheet through ManyDocs to generate a fresh batch of compliant letters in seconds.

Frequently asked questions

Does the generator upload my employee spreadsheet anywhere?

No. ManyDocs processes everything locally in your web browser. Your spreadsheet and template are never uploaded to a remote server, and no data is retained after you close the tab.

Can I generate the HR documents directly as PDFs?

No, ManyDocs outputs documents in either DOCX (Word) or ODT (LibreOffice) formats. If you need to send the letters as PDFs, you will need to convert the generated batch using Word or LibreOffice after downloading the ZIP file.

What happens if a cell is blank in my spreadsheet?

If a cell is blank, ManyDocs will insert nothing, leaving the space empty in the generated document. You must design your template sentences so they still make grammatical sense if an optional field, like a middle name, is missing.

Will my spreadsheet's currency formatting carry over?

No. ManyDocs reads the raw data stored in the cell, not the visual formatting applied by Excel. To ensure salaries print correctly, store them as text in the spreadsheet with the currency symbol and commas included.

Can I use spreadsheets containing calculation formulas?

Yes, but ManyDocs does not recalculate them. It reads the last saved value of the cell. It is always safer to copy your final calculated columns and use "Paste as Values" to lock the numbers before generating your documents.