When we opened hiring for two roles last spring, I volunteered to handle the rejection emails. There were about 200 of them. I thought I'd write one polite template, swap the name, and move on. Three days in, I realized the template was the least of the problem.

The issue was context. A candidate we screened out after a 15-minute call deserves a different message than someone we spent three interviews with and then chose not to hire. Sending the same neutral "we went with another candidate" to both felt either cold or dishonest. I needed a small set of messages keyed to the stage, and I needed them to stay short.

Stage-aware copy is not the same as one template

Screening-stage rejections should be light and fast — the candidate invested minutes, not weeks. Final-stage rejections carry more weight; the person likely told their current employer they were looking, and a careless line can burn a bridge you might want later.

I started keeping two buckets: a warm version and a neutral version. The warm one for final-stage and referred candidates, the neutral one for early screens. The hard part was remembering which bucket each person fell into when I was processing a backlog at 11pm. A stage-aware generator removes that bookkeeping. RejectMail takes the stage and your tone choice and returns copy matched to it — warm or neutral — which is exactly the split I was maintaining by hand in a spreadsheet.

The "keep the door open" line is its own skill

Rejections that close the loop entirely feel final. But for passive candidates or strong runners-up, you often want a line that leaves the relationship open without making a promise you can't keep. I used to write that line last, and it showed — it was always vague.

A good keep-the-door-open line is specific enough to feel real ("we'll reach out if a role closer to your background opens") and vague enough to be honest. I've found it's worth drafting deliberately rather than appending "we'll keep you in mind," which reads as filler. RejectMail includes a keep-the-door-open line as a standard part of its output, which saved me from writing the same awkward sentence 200 times.

Short and respectful beats clever

Early on I tried to make rejections warm with personality. That backfired — a joke in a rejection email lands differently depending on the reader's mood, and you can't A/B test it. The version that worked was short, respectful, and free of false praise. No "you were amazing, we just had one spot." No invented compliments.

If you're sending these manually, the trap is volume. At 200 messages the cost isn't writing, it's the mental tax of switching tone per person. A tool that holds the tone and stage for you lets you review instead of compose, which is the right unit of work for this task.

FAQ

Should I send a rejection to everyone who applied?
For high-volume top-of-funnel applicants, a brief neutral note is fine. For anyone who interviewed, a warmer, stage-aware message is worth the extra lines.

Is a generated rejection legally risky?
It's standard correspondence, not an employment decision. Keep it factual and non-discriminatory in language, and don't invent reasons you didn't act on.

How do I avoid sounding like a robot?
Pick the warm tone for people you actually met, and add one specific sentence where you can. The generator handles structure; your one line adds the human.

Can this replace a recruiter?
No. It handles the drafting so a person can review and send. The decision and the relationship still belong to you.