Salary negotiation script generator — exactly what to say
Answer five quick questions about your offer, your target, and your situation. You’ll get a personalized counter script in two flavors — an email you can send tonight and a verbal version you can read off in tomorrow’s call — plus pre-built responses to the four most common pushbacks. Free, no signup, runs entirely in your browser.
Build your counter in under a minute
Five questions. Nothing is sent anywhere — this runs only in your browser.
- Your current offer (base, bonus, equity)
- What you actually want
- Whether you have a competing offer
- Your experience and level
- Email or phone — we’ll generate both
1. The offer you have right now
Annual numbers. Equity = total grant value over the standard vest (use the company’s number, not what you think it’ll be worth).
2. What you actually want
Your honest target — not a moonshot, but the number that makes this an easy yes. The script frames this as the package you can say yes to today.
3. Do you have a competing offer?
It’s fine if you don’t — the script adjusts. Don’t lie about one you don’t have; recruiters call each other.
4. Your background
Used to add credibility to the market line. Skip anything you’d rather not put in writing.
5. Channel + a couple of names
We’ll generate both versions. This just picks which one we show first.
Your personalized counter
Edit freely — this is a starting point, not a prompt to read verbatim. Strong negotiators sound like themselves.
Most people leave money on the table by not asking
The single most common career-money mistake is accepting the first offer because asking for more feels rude. It isn’t. Recruiters expect a counter on roughly 80% of offers and explicitly hold back their first number for that reason. The candidates who skip the counter aren’t saving anyone time — they’re funding everyone else’s raises. A clean, non-confrontational counter takes 90 seconds to write and pays for itself for the next two to five years of your tenure.
The script this tool produces isn’t magic. It’s the framework that hiring managers and senior recruiters actually respond well to: acknowledge the offer, put the market context in writing, name a specific number, and then stop talking. The shape of a winning counter is boring on purpose — flashy is what gets ignored.
Anatomy of a winning counter
Every counter that lands has the same five beats. Lose any of them and the recruiter has an easy way to push back; keep all five and they have to actually engage with your number.
1. Acknowledge the enthusiasm
The first line of the email or call is not the number. It’s a clear, specific signal that you want the job. “Thanks again for the offer — I’m genuinely excited about <company> and the work this team is doing.” This is not flattery; it’s a frame. It tells the recruiter the conversation that follows is about how to make the deal work, not whether. Skip this step and your counter reads as “your offer was insulting,” which is the fastest way to get an offer pulled.
2. State the market context
One sentence on why your number is your number. If you have a competing offer, name it — or describe the company shape if you’d rather not name the brand. If you don’t, point to the public market data and the recent loops you’ve seen. The point isn’t to convince them on a spreadsheet; it’s to give them an external reason to come up so they don’t have to defend the move internally as a favor to you.
3. Name a specific counter ask
Vague counters die. “I was hoping for a bit more” gets “Let me check” and a week of silence. A specific number with a specific breakdown — base, bonus, equity — gets routed straight to whoever has the approval. If your top priority is base, lead with base. If you’d trade base for more equity, say that explicitly. The generator above pre-builds this from your inputs; if you tweak it, keep the specificity.
4. Open-ended close
End with a question, not a demand. “What’s the room you actually have on this?” “How would you like to walk through it?” Open-ended closes pull the recruiter into a working conversation. Closed closes (“Let me know if you can do it”) hand them a one-word out.
5. Then stop talking
The single most common failure mode on a verbal counter is filling silence. You ask for the number, the recruiter goes quiet for four seconds, and the candidate panics and says “but I’m flexible.” That’s the entire negotiation collapsing. On a call, make the ask, then physically wait. On email, send and don’t follow up for at least 24 hours.
What NOT to say
Most of the damage in a salary negotiation happens not from asking but from how candidates pad the ask. These are the phrases that quietly undercut every counter they’re attached to.
“I’m sorry to ask…”
You are not sorry. You are evaluating an offer. Apologizing for negotiating signals that you don’t believe your own number, which is permission for the recruiter not to either. Cut every “sorry,” “I know this is awkward,” and “hope this isn’t too much” from your draft before sending.
“I was thinking maybe…”
Hedging language is the second most common counter killer. “I was thinking maybe closer to 140 if possible” offers four ways to get told no. “The package I can say yes to today is 140” offers one. Be specific. Hedges read as a request for permission, not a position.
“Whatever you can do is great”
This phrase, anywhere in the email, deletes the rest of the email. The recruiter takes it as a green light to come back with a token bump and close the loop. If you’d genuinely sign for any improvement, fine — but say so on the second round, not in the opening counter.
Listing your current salary
Anchoring on your current pay is one of the worst moves a candidate can make in writing. The market doesn’t care what you make today; it cares what the role is worth. If the recruiter asks, redirect: “I’d rather anchor on the role and the market for it — the number that gets this to a yes is X.”
Threatening to walk when you won’t
Empty walk-away threats break trust the moment the recruiter calls the bluff. If you’re prepared to decline at the current number, say so calmly: “Where the offer sits today, I’d have to go with the other process.” If you aren’t, don’t bring it up. There’s a clear scripting pattern for this in the long-form negotiation script guide.
Over-explaining
Every extra paragraph you add to a counter weakens it. The platonic ideal of a salary counter is four sentences: enthusiasm, market context, specific ask, open question. Long counters read as anxious; anxious counters get small bumps.
How the generator builds your script
The output is templated — nothing is sent to a server — and every line slots in your inputs to keep the four beats intact:
What the generator personalizes
- Currency and exact numbers for current offer, target, and the delta
- Years of experience and role used to anchor the credibility line
- Competing-offer phrasing (named, vague, or absent) toggles automatically
- The counter ask is broken down by base / bonus / equity so the recruiter can route it
- The pushback responses cite your specific numbers, not generic templates
- Two versions: email (sendable as-is) and verbal (with stage directions for pacing)
The result is a starting point, not a prompt to read verbatim. Edit it in your own voice — the structure does the heavy lifting, the words make it sound like you.
Handling the four pushbacks
The generator builds responses to four specific recruiter moves: “we don’t negotiate,” “this is our max,” “what do you currently make,” and “we need an answer by EOD.” Each one is a test, not a wall. The right reply is short, calm, and routes the conversation back to a specific lever — signing bonus, equity refresh, start date, level — rather than fighting on the dimension they just closed off. Print the pushback panel and keep it next to you on the call.
FAQ
Is anything saved or sent anywhere?
No. The generator runs entirely in your browser. Nothing is uploaded, nothing is logged, and nothing persists once you close the tab. We don’t even use cookies for this page.
What if I don’t have a competing offer?
That’s the most common case. Pick “No” on step 3 and the script switches to a market-data framing — pointing at levels.fyi, Glassdoor, and recent loops you’ve done. It works. Lying about a competing offer you don’t have is risky and easy to catch; the recruiter network is small.
How big a counter is reasonable?
For most roles a 10–20% counter on base is in the normal range. 25–30% needs a strong competing offer or a clear underpay. Anything above 30% usually means the company is the wrong fit or the level was miscalibrated — renegotiate the level, not the comp.
Should I negotiate over email or phone?
If the offer came in writing, counter in writing. Email gives both sides time to think and creates a record the recruiter can forward internally. Phone is fine for the second round once the recruiter responds — the verbal version of the script is built for exactly that conversation.
What if I’ve already verbally accepted?
Your leverage is mostly gone, but signing bonus and start date often still flex. You can also push back on the written offer letter if the numbers come back different from the verbal — that’s legitimate. Trying to re-open base after a clear verbal yes burns trust and is rarely worth it. Next time, leave the verbal at “this sounds great, let me see the written details and I’ll come back tomorrow.”