The problem with doing it one by one
Picture a retailer or logistics company getting ready for its busy season. Two hundred new hires need offer letters by Friday. Each letter has the same structure but different details: name, role, start date, pay rate, location, manager. Done one at a time, each letter takes several minutes to prepare, check and send. That is days of work, and every copy-and-paste is a chance to put the wrong pay rate on the wrong letter.
Templates and bulk send in eSora Sign turn that into one setup and one send. Bulk send is part of the Teams plan and above. This walkthrough shows the steps.
Step 1: build the template once
Start from your standard offer letter. Upload it as a new template from the Templates page. Word files and PDFs both work.
Add roles instead of named people. For an offer letter you might have two: Candidate, who signs, and Hiring manager, who approves first. Roles are placeholders. When you send, each role is filled by a real person.
Add variables for every detail that changes. Variables are named fields you fill once and that appear everywhere you place them. For example, create variables called first_name, role_title, start_date, hourly_rate, location and manager_name. Place them in the document wherever those details appear. If the start date appears in the opening paragraph and again in the summary table, place the same variable in both spots. Fill it once and it fills everywhere.
Then add the fields the candidate completes: signature, date signed, and any text or checkbox fields you need, such as an emergency contact or a confirmation that they have read the policy handbook. Mark the important ones as Required.
Step 2: set the rules on the template
Settings you put on the template apply to every document sent from it, which saves you checking 200 sends individually.
Identity check: email code is usually enough for offer letters. If the letter includes banking details for payroll, consider an SMS code.
Reminders: first after 2 days, then every 4, stop after 3, with quiet hours on so reminders reach candidates at 9 AM their time on weekdays.
Expiry: set an expiry that matches your offer deadline, for example 7 days.
Approvals: if your workspace has an approval rule, such as letters above a certain pay rate needing an HR lead, it applies automatically.
Save the template. If you share it with your team, other senders can use the same approved version. Templates are versioned, so if HR updates the wording next month, the old version stays on record for the letters already sent.
Step 3: prepare the spreadsheet
Bulk send reads a CSV file. Each row is one document. Each column is either a role's name or email, or a variable.
A clean layout looks like this: candidate_name, candidate_email, candidate_phone, manager_name, manager_email, first_name, role_title, start_date, hourly_rate, location.
A few tips save trouble later. Use one date format across the whole file. Check that every email address is real and complete. Remove empty rows at the bottom. If you are using SMS, include phone numbers with the country code. Export the sheet as CSV from Excel or Google Sheets.
Step 4: match columns and check
Open the template and choose Bulk send. Upload the CSV. eSora Sign shows each column and asks you to match it to a role or a variable. Columns with the same names as your variables match automatically.
Before anything goes out, review. The preview shows the first few documents fully filled in, so you can read a real letter with real details. Look for formatting problems, such as a pay rate showing too many decimals or a date in the wrong format. Rows with missing required values or invalid email addresses are flagged so you can fix them in the sheet and upload again.
If you want extra confidence, send to yourself first. Put your own address in a single-row CSV and do a test run. It takes two minutes and catches surprises.
Step 5: send, now or later
Choose Send now, or Send later to schedule the batch for a specific time. Scheduling is useful if you want letters to arrive on Monday at 9 AM rather than late on a Friday.
Each person gets their own document, their own signing link and their own reminders. They never see each other's details. If a hiring manager approval is part of the template, each manager receives the letters for their own candidates first.
Step 6: track the batch
The batch appears in your inbox as a group. You can see at a glance how many are signed, waiting, declined or expired, and open any single document to see its timeline.
If a candidate's email bounced, use Change recipient on that document. Their old link stops working and the new address gets a fresh one. If you spot an error in one letter, use Correct to fix it while the document is out, without resending the whole batch. If a candidate declines, you see their reason.
When documents complete, each signed PDF has its own Certificate of Completion. You can export the list of completed documents, or file them into a folder with labels such as Season hires and the month.
Using the API instead
If your hiring system can call an API, you can skip the CSV. The eSora Sign REST API can send from a template with variables filled in, and webhooks signed with HMAC-SHA256 tell your system when each document is signed. The Teams plan includes 500 API calls a month. Larger volumes are available on Enterprise.
Not just offer letters
The same pattern works for anything that goes to many people with small differences: policy acknowledgements, annual contract renewals, consent forms for a program, supplier code of conduct updates, or lease renewals across a building. Build it once, check it once, send it once.
This article is general information, not legal advice.