The hardest sentence in any job search is not on your resume. It is the one you have to say out loud after someone tells you the number: "Is there any flexibility on the salary?" Most people never say it. A frequently cited HBR analysis of job offers points out that the candidates who lose the most money are the ones who treat the first number as final — they accept it, feel a small flicker of regret, and live with that gap for years.
I built a free salary negotiation script generator — you pick the scenario, set a tone, paste in your numbers and a couple of wins, and it writes you a script. So I decided to do something I had never actually done with my own tool: run it across every combination and read the output critically, the way a hiring manager on the other side would. Four scenarios, multiple tones each, several versions per run. Thirty scripts in total.
I expected filler. What I found instead was that the good scripts and the weak ones differed by a handful of specific lines. Six of them did almost all the work. Here is what I pulled out.
The setup
I used one consistent, realistic profile across every run so I could compare like with like: a Senior Data Analyst moving inside the SaaS industry, six years of experience, an offer of $118,000, a target of $130,000, and two concrete wins ("cut reporting turnaround from 5 days to same-day" and "built the churn model that flagged $400K of at-risk accounts"). Then I generated scripts for all four scenarios the tool covers — new offer, raise request, promotion case, and counter-offer — rotating through the confident, collaborative, and data-driven tones.
Here is one real, unedited output — the data-driven tone on a counter-offer, exactly as the generator produced it:
COUNTER OFFER — DATA-DRIVEN (Version 1)
I'd like to discuss the offer of $118,000. Here's my analysis:
• Market rate for Senior Data Analyst in SaaS: $130,000 range
(based on multiple salary databases)
• My experience: 6 years with demonstrated results
• Gap: the current offer is well below the median
My results justify the higher end of the range:
• Cut reporting turnaround from 5 days to same-day
• Built the churn model that flagged $400K of at-risk accounts
I'm countering at $130,000. The data supports this ask.
What's your flexibility?
One of 30 scripts I generated — the data-driven counter-offer. The structure is the point: anchor, justification, evidence, open question.
Read enough of these side by side and the pattern stops being subtle. The scripts that read like something a real person could send all share the same skeleton. The weak ones drop a piece of it.
The 6 lines that actually do the work
1. Name a specific number, and name it first
Every script that worked put an exact figure on the table — $130,000, not "more than this" or "market rate." This is the single most researched move in negotiation. The Harvard Program on Negotiation summarizes decades of studies with one blunt finding: whoever puts the first concrete number down sets the gravitational center of the whole conversation. Vague asks ("I was hoping for a bit more") invite a vague answer. A number forces a number back.
2. Justify with the market, then with yourself — in that order
The best scripts opened the case with external data ("market rate for this role is X") before listing personal accomplishments. That ordering matters. Leading with "I deserve more" reads as ego; leading with "the market pays X, and here's why I'm at the top of that band" reads as a correction to an oversight. The collaborative tone did this gracefully: "Based on what these positions pay right now, and given what I bring..."
3. Attach a dollar figure to your wins
The scripts that included quantified results — "$400K of at-risk accounts," "5 days to same-day" — were dramatically more persuasive than the ones with generic strengths. A line like "I'm a strong team player" is invisible. "I built the model that flagged $400K of churn risk" is a price tag the other side has to weigh against the $12,000 you're asking for. When the ask is small relative to the value, saying yes gets easy.
4. Keep one collaborative sentence in
This surprised me. Almost every usable script contained a line that explicitly lowered the temperature: "I'm not trying to play hardball," or "I want us both to feel good about this." It is tempting to cut these as fluff. Don't. A salary conversation is the first interaction in a relationship that will last years, and the research on negotiation is consistent that a single combative exchange can poison everything that follows. One disarming sentence buys you the right to be firm on the number.
5. Offer flexibility on structure, never on the number
The strongest scripts held the salary figure firm but opened a side door: "I'm flexible on how we structure it — base, bonus, equity, signing bonus." This is the move that rescues a stuck negotiation. If the company genuinely can't move base pay, you've handed them three other levers to say yes with. Crucially, the flexibility is about form, not amount — the target stays $130,000.
6. End on an open question, not a demand
Every effective script closed with a question: "What's your flexibility?" — "Does that work on your end?" — "What options are available?" A statement ("I need $130,000") ends the conversation and dares them to say no. A question keeps it open and makes saying yes the path of least resistance. This is the difference between an ultimatum and an invitation, and across 30 scripts it was the most reliable tell of a good one.
What the weak scripts got wrong
Reading 30 of them back to back, the failures clustered just as neatly as the wins:
| Weak move | Why it backfires |
|---|---|
| Over-apologizing ("I'm so sorry to even bring this up...") | Frames a reasonable request as an imposition. You're negotiating, not confessing. |
| "Market rate" with no source | An unsupported claim is just an opinion. Cite a band or a database, even loosely. |
| A single number with no range | Leaves no room to land. Anchor high, but signal the zone you'll accept. |
| No mention of wanting the job | Reads as transactional. State enthusiasm and the ask — they're not in conflict. |
The generator's "confident" tone occasionally drifted toward that last failure — pure ask, no warmth. That's the one place I'd always edit: add a line that says you want the role. It costs nothing and it changes how the whole message lands.
How to actually use this
A generated script is a draft, not a send button. The workflow that works:
- Generate a version in the tone that matches your relationship with the person (data-driven for a formal recruiter; collaborative for a manager you like).
- Swap in your real numbers and your two best quantified wins — this is non-negotiable, it's lines 1 and 3 above.
- Read it out loud. If a sentence sounds like something you'd never say, rewrite it in your own words. The skeleton stays; the voice becomes yours.
- Cut it to the bone. The best scripts I generated were short. Five sentences beats fifteen.
You can run all of this for free in the browser — no signup, no email — with the salary negotiation script generator on my site (linked at the end). The same "run it, read it critically, keep what works" method is how I approached the 38 counter-offer negotiations I tracked and the six AI cover-letter generators I tested.
The takeaway
Thirty scripts, one consistent profile, and the difference between the ones worth sending and the ones that earn a polite "the budget's fixed" came down to six lines: a specific number, market-then-self justification, a dollar-tagged win, one disarming sentence, flexibility on structure, and an open question to close. A generator gets you 80% of that in four seconds. The last 20% — your real numbers, your voice, the cut to five sentences — is the part that gets you paid.
For the research behind why these moves work, the two best free reads are the Harvard Program on Negotiation's three winning salary strategies and Deepak Malhotra's 15 rules for negotiating a job offer in HBR. Both say, in more words, what 30 generated scripts said in six lines.
FAQ
Is it rude to negotiate a salary offer? No. Most employers expect it and build room into the first number for exactly this reason. The disarming-sentence move (line 4) exists precisely so you can ask firmly without straining the relationship.
What if I have no "market data"? You can build a defensible band in ten minutes from public sources — Glassdoor, Levels.fyi, LinkedIn Salary, and government wage data. You don't need a precise figure; you need a credible range to anchor against.
Should I negotiate over email or on a call? Email lets you control the wording, which is why a script helps most there. If it has to be a call, write the script anyway and use it as your notes — the six lines work spoken or written.
I write up these experiments in full on my own site — the free salary negotiation script generator and the original version of this post live there. If you want the full job-search script library — 100+ ready-to-edit prompts and templates for salary scripts, interview answers, cover letters, and recruiter outreach in one pack — it's the Job Search AI Toolkit.
Disclosure: this post links to a paid product I sell. The tools and research linked above are free; the toolkit is optional.
Top comments (0)