
Application received
Confirms an application arrived, with a status track and what happens next.
6 stylesAn offer email with the start date, the manager and the date to sign by.

Read your offer for {{jobTitle}} and sign it by {{signBy}}.
{{companyName}}
Congratulations, {{firstName}}
We are pleased to offer you the role of {{jobTitle}}. Your offer letter and contract are ready for you to read and sign.
Start date
{{startDate}}
Reporting to
{{managerName}}
Sign by
{{signBy}}
Review and sign [{{offerUrl}}]
Take the time you need to read it. If anything is unclear, reply to this email and {{recruiterName}} will talk it through with you.
The offer stays open until {{signBy}}. If you need more time, tell us before then.
You are receiving this because {{companyName}} has made you an offer.Shown with sample values. The HTML and plain-text tabs keep the placeholders.
About
Send it when the offer letter and contract are ready to sign. It congratulates the candidate by name and sets out the key terms above one button, then makes clear they can ask questions or ask for more time.
9 values to fill
Required values have to come with every send. The rest fall back to the default shown here.
| Placeholder | Kind | Required | Default |
|---|---|---|---|
{{companyName}} | Text | Required | None |
{{firstName}} | Text | Required | None |
{{jobTitle}} | Text | Required | None |
{{startDate}} | Text | Required | None |
{{managerName}} | Text | Required | None |
{{signBy}} | Text | Required | None |
{{offerUrl}} | Link | Required | None |
{{recruiterName}} | Text | Required | None |
{{unsubscribeUrl}} | Link | Optional | None |
API
Create a template from this design once, then send it with the values for each message.
import { init, nextmail } from '@nextmail/sdk' init({ apiKey: process.env.NEXTMAIL_API_KEY }) await nextmail.templates.create({ name: 'Offer ready to sign', slug: 'offer-ready', starter: 'offer-ready', publish: true,}) const sent = await nextmail.templates.send('offer-ready', { from: 'Northwind <[email protected]>', to: '[email protected]', props: { companyName: 'Halden Labs', firstName: 'Maya', jobTitle: 'Senior Product Designer', startDate: 'Monday 4 January 2027', managerName: 'Sam Ortiz, Head of Design', signBy: 'Friday 20 November', offerUrl: 'https://example.com/offers/7c2e', recruiterName: 'Priya Shah', },}) console.log(sent.id, sent.status)Hiring

Confirms an application arrived, with a status track and what happens next.
6 styles
Invites a candidate to interview and links to a page where they choose a time.
6 styles
An interview confirmation with the date and time, who they will meet and a link to join.
6 styles
A respectful decline that thanks the candidate, gives the decision plainly and offers feedback.
6 stylesStart from one
Every template opens in the editor as blocks you can move, restyle or delete, and sends through the API with the values filled in.
Fifteen minutes on video with the people who build Nextmail. Free, at a time you choose.