What this salary negotiation email generator writes
Feed this salary negotiation email generator three things: their offer, the base you're after, one reason. It writes the counter offer email; you edit and send. Rather talk on the phone? Then you get a short phone script.
Picture a salary negotiation email template where somebody already did the filling in. That's the idea, for when you'd rather negotiate salary in writing.
Two parts, two places. The gap box under the salary fields does the percentage math right in your browser, the moment both numbers are in.
The message is another matter. An AI model drafts it on our server, and that step wants you logged in, on a free account whose email you have verified.
What comes back for an email? A subject line first. Then three short paragraphs, 120 to 180 words in all: you want the job, here is the number and why, can we make it work. Then one extra line that starts "If they say no:".
The phone script is three short lines to read out, plus the same "If they say no:" line.
One counter offer, start to finish
For this page I pressed the form's sample button, Try an example, on November 6, 2026, and got a Marketing Coordinator offer at Northwind Traders: $60,000 offered, $66,000 wanted.
The gap box read "You're asking for $6,000 more. +10.0% above the offer." Next to it, a green badge: Comfortably inside the normal range.
The reason box held 156 characters:
"The posted range goes to $66,000, I bring two years of HubSpot campaign experience the role asks for, and comparable roles in Austin pay $64,000 to $68,000."
Extras: Two remote days a week. Tone Warm, format Email.
Press Write counter offer and the server turns the form into a 489-character note for the model. Four of its lines, word for word:
- Offered base: $60,000
- Target base: $66,000 ($6,000 more, 10% above the offer)
- Negotiation read: This is a modest 10% ask: it is well inside the normal range, so be direct and confident about the number.
- Non-salary asks: Two remote days a week
Above that note goes our own instruction, 888 characters you never see. What it tells the model:
- Say you want the role before anything else.
- One ask. Make saying yes simple.
- No ultimatum tone. Nothing that endangers the offer.
- Add no competing offer, market figure or job detail the candidate did not type.
- US English, no bullets, no markdown, nothing before or after the message.
A note on the draft below. The AI step is off on my local copy of GetJobTools, so there was no real reply to quote. I wrote this one by hand, following that instruction. Yours will read differently.
Subject: Marketing Coordinator offer
"Hi Dana, thank you for the offer for the Marketing Coordinator role. I enjoyed meeting the team, and I would like to join Northwind Traders. The launch planning we talked about is the work I want to be doing next."
"One thing before I sign: could we set the base at $66,000? That is the top of the posted range. I bring two years of the HubSpot campaign work this job needs, and similar Austin jobs pay between $64,000 and $68,000."
"I would also value two remote days a week. I'm sure we can find a version of this that works for both of us. If we can agree on those two points, I'm ready to accept and talk about a start date. Thank you again, Sam"
"If they say no: Ask whether the base can be reviewed in writing after six months."
127 words in the body. The tool's target is 120 to 180, so it fits.
Then I check it myself. $66,000, and $64,000 to $68,000: all typed by me. If a number appears that you didn't give it, delete it. Models do slip.
What the badge says about your ask
The badge reads the gap as a percentage of the offer. The note to the model carries a matching instruction.
- Target at or below the offer: "At or below the offer, ask for the non-salary items instead". The draft accepts their base and asks only for your extras.
- Up to 10% above: green, "Comfortably inside the normal range". The model is told to state the number plainly.
- Over 10% and up to 20%: amber, "Meaningful but common, lead with your reason". The reason comes first.
- Over 20%: amber, "A large ask, signal flexibility so the offer stays safe". The number still goes in, after the reason and with a clear sign you can move.
I tried a few more. $72,000 against $80,000 came to +11.1%, amber. Against $88,000 it was +22.2% and the large-ask badge.
Typed a target under the offer by mistake? With $72,000 offered and $70,000 wanted, the box reads "You're asking for $2,000 less. −2.8% below the offer", and the badge tells you to ask for the non-salary items instead.
The bands are this tool's way of pitching a higher salary request. No employer works from them.
The reason box carries your case
It needs at least 15 characters and takes up to 2,000 on a free account. One reason a hiring manager can repeat to their own boss does more than three soft ones.
Reasons I'd actually use:
- another offer, in writing, with its figure and a similar title
- pay data for this role in your city, plus where it came from
- work the posting never mentioned, say a system migration or a team to lead
What I leave out when I ask for more money: rent, the commute, student loans. They are real. They are also my costs, and the company prices the job.
The model only knows what you type. "I have another offer" with no number gets you a vague line back, since it may not make up the figure.
Ask for a better package with one or two extras
Extras gets 300 characters. Room for a sign-on bonus. Or more paid time off, remote days, a later start date, an earlier pay review.
I stop at two. Five extras turn one email into a long compensation negotiation. Our guide to total compensation beyond salary puts a dollar value on the bigger items, from a 401(k) match to paid time off.
Email or phone, warm or direct
Answer the way the offer came. The recruiter called? Pick Phone script and keep it on your screen during the call. Our counter offer phone script guide covers the pauses and the replies.
The offer came by email? Push back on the offer by email too, so the numbers stay in writing.
Warm fits most first offers. Direct suits the moment you hold a written offer somewhere else with a deadline on it.
The draft always comes out in US English. Sending it in London or Sydney? Change "organization" to "organisation" first. In Australia, ask whether the figure is base pay or base plus super before you counter.
Free limits on the counter offer generator
- Sign in first. A guest sees Log in to write counter offer where the button would be.
- Free means 10 AI runs per day, one pool for every AI tool on GetJobTools. Pressing Regenerate spends another. Midnight UTC refills the pool.
- Field by field: job title 120 characters, company 120, reason 2,000, extras 300. Salaries anywhere from 1 to 100,000,000.
- No plan gets more than 10 AI requests a minute.
- Pro: 200 runs a day, a 10,000-character reason box, our provider's bigger model, and History that keeps old drafts 90 days. The pricing page has the prices.
- Running on an API key of your own, saved in your account under AI keys? Those runs skip the daily 10. The one-minute cap stays.
- If the run errors out, it is not taken from your 10.
What goes to our server
The gap math never leaves your browser. Press Write counter offer and the whole form goes to us: job title, company, currency, both salaries, the reason, the extras, tone and format. None of those fields is filled in from your account.
We build the note shown above and send it, with our instruction, to an AI provider; the privacy policy lists which. The provider doesn't get your name, your email address or your account number.
Our log gets a row per run. In it: tool, provider and model, whose key, token counts, how many milliseconds, success or not, and a hash of your IP. Salaries aren't in it. Neither is anything you wrote.
Your daily 10 is a different tally: one figure for each account on each UTC date.
Anything saved? Free accounts keep nothing. Pro accounts start with History switched on, and History holds every field you filled in plus the draft for 90 days.
Started it from an application in your account? The draft gets filed with that application, on any plan. And nothing you type here trains an AI model.
Closing the tab sends us one small tally: this tool's slug, used or not, seconds spent. None of your field values.
Who made it
GetJobTools wrote and runs this generator; the about page says who we are. It belongs to our salary and offers topic, next to the pay raise calculator and the job offer comparison calculator.
Did a draft make up a figure? Use the contact page to send us the draft and what you typed, and we'll check.
FAQ
How do I write a salary negotiation email?
Keep it to three short paragraphs. Thanks, and yes, you want the job. Your number, with one reason. Then say you're ready to wrap it up. The generator above writes exactly that from your offer, target and reason.
How much more can I reasonably ask for?
Nobody has a fixed rule. Here's how this tool reads it: up to 10 percent over the offer is a plain ask. Over 10, up to 20, is common if your reason comes first. Past 20 percent counts as large.
Should I counter with a range or one number?
The generator names one target. Shorter, clearer. Going with a range anyway? Make the bottom of it the pay you really want, because the bottom is what they may choose.
Will the email invent a competing offer or market data?
It's told not to: no competing offer, market figure or job detail unless you typed it. Still, go through the numbers. Any you didn't enter, delete.
What should I do if they say no?
Your draft ends with an "If they say no" line. Start there. Then try the extras: a sign-on bonus, or a pay review after six months, in writing. Still nothing? Then you're deciding on the offer as is.
Does it work for UK, Canadian and Australian offers?
Yes. Pick $, £, C$ or A$ in the currency menu; it's a label, nothing is converted. Spelling comes out American, so for a UK or Australian employer change words like "organization".