ChatGPT Prompts for Resume Tailoring That Stay Honest

Copyable ChatGPT prompts for resume tailoring that keep the model honest: extract, map, rewrite without new facts, self-check. They work in Claude too.

S
ChatGPT Claude AI prompts resume tailoring job search
Watercolor of a human hand and a hand made of light pinning and marking a sewing pattern on blue fabric

You already use ChatGPT or Claude for code review and commit messages, so pasting a job posting and your resume into the same chat feels like the obvious next step. The output reads well. The trouble starts in the details: a bullet that gained a percentage you never measured, a job title promoted one level, a tool you have never run. The ChatGPT prompts for resume tailoring below are built to stop that. Each one gives the model a narrow job, forbids new facts, and produces output you can verify line by line. They work the same in Claude, Gemini or any other capable model.

This post covers the prompts and the guardrails. For the method itself, how to read a posting, map your experience and keep the result honest, read how to tailor your resume to a job description. The prompts here assume you have a master resume (CV), the full version with every role and project, since the model can only select from what you give it.

Why ChatGPT prompts for resume tailoring need guardrails

A language model completes text. Ask it to “improve my resume for this job” and it produces what its training data suggests a tailored resume looks like: confident verbs, round numbers, a skills list that mirrors the posting. It has no way to know which of those details are true for you, and it will not stop to ask.

Three design choices fix most of this.

One task per prompt. Extraction, mapping, rewriting and checking are separate jobs. A single “do everything” prompt lets the model smuggle an invented metric into a rewrite while you are reading the keyword list.

Original text in, original text out. Every rewrite prompt asks for the original bullet next to the new one. You can diff the pair in seconds. A prompt that returns only the new version hides the change.

An explicit ban on new facts, with a list. “Don’t make things up” is too vague for a model. “Do not add numbers, tools, employers, titles, dates, degrees or certifications that are not in the master resume” is a rule it can follow, and a rule you can check.

Run the four prompts below in order. Paste your master resume where it says [paste master resume] and the posting where it says [paste job description].

Prompt 1: Extract the requirements as a table

The tailoring guide linked above describes four buckets to sort a posting into. This prompt gets the model to do the sorting, with two additions a chat model tends to skip: verbatim quotes and repeat counts.

You are extracting requirements from a job posting. Do not infer,
summarise or add requirements that are not in the text.

Return a Markdown table with these columns:
1. Requirement, quoted verbatim from the posting
2. Type: required, preferred, responsibility, or domain term
3. Times it appears in the posting
4. The sentence it came from, quoted

Rules:
- Quote the posting's exact spelling and capitalisation (for example
  "PostgreSQL", not "Postgres").
- If the posting is ambiguous about whether something is required or
  preferred, mark it "unclear". Do not guess.
- Do not comment on my fit. I have not shown you my resume yet.

Job description:
[paste job description]

The last rule matters. If the resume is in the same chat, the model starts matching before you asked, and the table drifts toward requirements you happen to meet.

Prompt 2: Map your experience to each requirement

Now the model sees the master resume for the first time. Its job is to find evidence, with a hard rule that gaps stay gaps.

Below are a requirements table and my master resume. For each
requirement, find the strongest evidence in the resume.

Return a table with:
1. Requirement (from the table)
2. Evidence: the bullet or line from my resume, quoted word for word
3. Match type: direct (same tool or skill named), adjacent (same
   skill, different tool; name both), or gap (nothing in the resume)
4. Where it should go in a tailored version: summary, a specific
   role's bullets, skills list, or omit

Rules:
- A gap is a valid answer. Do not fill a gap by stretching a bullet
  or suggesting I add experience I have not listed.
- Do not rewrite anything yet.
- If a bullet supports two requirements, list it twice.

Requirements table:
[paste the table from Prompt 1]

Master resume:
[paste master resume]

Read the gap rows before you continue. If the posting lists ten required skills and the table shows six gaps, the right move is a different posting, and no prompt fixes that.

Prompt 3: Rewrite bullets in the posting’s wording, without new facts

This is where models invent. The prompt below narrows the task to selected bullets, requires before-and-after pairs, and spells out what counts as a new fact.

Rewrite the bullets below so they use the posting's wording where my
experience supports it. Keep each bullet true to the original.

For each bullet, return:
- ORIGINAL: the bullet as I wrote it, unchanged
- REWRITE: the new version
- CHANGED: a one-line list of what you changed and why
  (wording, order, emphasis)

Rules:
1. Keep every number, date, tool name, employer, title and degree
   as written. If the original has no number, the rewrite has
   no number.
2. Mirror the posting's spelling of a tool only if the original names
   the same tool. "Postgres" may become "PostgreSQL". "MySQL" may not.
3. For adjacent matches, keep my tool and borrow the category.
   "Built event pipelines on RabbitMQ" can become "Built event-streaming
   pipelines (RabbitMQ)". It cannot mention Kafka.
4. Do not change seniority words. "Contributed to" stays "contributed
   to"; it does not become "led".
5. Do not merge bullets or add a bullet.
6. Plain verbs. No "spearheaded", "leveraged" or "synergy".

Posting requirements: [paste the matched rows from Prompt 2]

Bullets to rewrite:
[paste the bullets]

Rule 6 is for the human reader. A recruiter who sees “spearheaded” and “leveraged” in consecutive bullets reads the resume as machine output, and the keyword gain is not worth that.

Prompt 4: A self-check that flags invented claims

Open a new chat for this one. A model asked to grade its own edits in the same conversation tends to defend them. A fresh session sees two documents and nothing else.

You are auditing a tailored resume against the master resume it was
built from. Find every claim in the tailored version that the master
does not support.

Return a table with:
1. Tailored text (quoted)
2. Closest master text (quoted), or "none"
3. Problem: new number, changed number, new tool, changed tool,
   changed title, changed date, changed degree, upgraded seniority,
   or unsupported claim
4. Severity: high (a fact a reference check could contradict) or low
   (wording)

Check these in particular:
- Every number, percentage, currency amount and duration in the
  tailored version must appear in the master.
- Every tool, language and platform name must appear in the master.
- Every employer, job title, date range and degree must match the
  master character for character.
- Flag any sentence whose meaning is broader than its source.

If you find nothing, say "No unsupported claims found" and list the
five changes you examined most closely.

Master resume:
[paste master resume]

Tailored resume:
[paste tailored resume]

The last instruction stops the model from returning an empty table to please you. If it has to show its work, it reads with more care.

Failure modes, and how to catch each one

Even with the prompts above, you will see these. Each has a mechanical check that takes under a minute.

Invented metrics. The model adds “reduced latency by 40%” to a bullet that said “reduced latency”. Catch it by listing every number in the tailored version and searching for each one in the master. A regex for digits (\d) in a text editor finds them all; any number without a match goes back to the original wording.

Changed dates or titles. A rewrite drops the month from “Mar 2022” or turns “Software Engineer II” into “Senior Software Engineer”. Catch it by pasting both resumes’ header lines (title, employer, dates) into two columns and comparing them. Dates and titles must be identical, character for character.

Swapped tools. You wrote MySQL; the posting says PostgreSQL; the rewrite says PostgreSQL. Catch it by extracting every capitalised technical term from the tailored version and checking each against the master. Prompt 4 does this, and so does a quick read of the skills section.

Keyword stuffing. The skills list grows from twelve items to thirty, each one lifted from the posting, half with no bullet behind them. A recruiter spots it at a glance. Catch it by requiring that each skill in the list appears in at least one bullet. The resume keywords guide covers where keywords belong and how many is too many.

Upgraded seniority. “Helped design” becomes “architected”. Catch it by searching the tailored version for lead, led, owned, architected and drove, then checking whether the master used each one.

Broadened scope. “Maintained the payments service” becomes “owned the payments platform”. No single word is false, and the sentence is. Prompt 4’s “broader than its source” rule exists for this one. It is the hardest to catch by regex, so read each rewritten bullet once with the original beside it.

Which AI is best for resume tailoring?

If you are choosing a resume tailoring AI, any current model from a major provider handles these prompts. The work in tailoring is selection and wording, and the difference between a good result and a bad one comes from the prompt structure and your review. The model’s leaderboard position matters less than either. I have not run a benchmark across models for this task, and I have not seen a credible one published, so I will not rank them.

Two things do matter.

Structured output. The prompts above ask for tables and labelled pairs. Large hosted models return them as asked. Small models, including the ones you can run on a laptop through Ollama, struggle with structured output of this kind. Resume Matcher’s design notes record the same finding for its own edit format: smaller models have trouble producing valid structured edits, and the result is a rejected change. If you want a local model, start with a mid-size one and expect to retry.

Cost per call. Each of the four prompts sends your whole resume. With a consumer chat subscription that cost is fixed. With API access, a larger model costs more per call for a task that a smaller one can do. For reference, Resume Matcher’s Settings page suggests these defaults: GPT-5 Nano for OpenAI, Claude Haiku 4.5 for Anthropic, Gemini 3 Flash for Google, and Gemma 3 4B for Ollama. You can type any model name your provider offers. Each of those defaults is a small model, which fits a task that needs rule-following more than prose.

Which Claude model is best for resume tailoring?

The same answer applies. Claude Haiku 4.5 is the default Resume Matcher’s Settings page suggests for Anthropic. The task is structured editing within strict rules, and a smaller model costs less per call for that. If you already pay for a larger Claude model and prefer its prose, use it; the prompts and the checks are the same.

When copy-paste prompting stops scaling

The four prompts work well for one application. By the fifth, the friction shows. You paste the same master resume into four prompts, then paste the output into a document, then run the audit, then fix the two invented numbers, then export a PDF whose formatting you adjusted by hand last time. Each application costs twenty minutes of copying, and the master resume lives in a chat history where you cannot find last month’s version.

A harness removes the copying and turns the rules in the prompts into code. Resume Matcher is the one I maintain: free, open source under Apache 2.0, and used by over 200,000 job seekers. It runs on your machine with the model you already have. The relevant parts for this post:

  • The model proposes edits; code checks them. The model returns targeted changes, each with the original text quoted, and code verifies the quote matches the resume before applying it. That is Prompt 3’s before-and-after rule, enforced.
  • Locked fields. Your name, contact details, employers, job titles, dates, institutions and degrees cannot be changed by the model. Edits that target them are rejected.
  • New numbers are reverted. A final pass compares every number in a rewritten line against the source. Any number that was not there before sends the line back to the original. That is Prompt 4’s number check, automated.
  • Before-and-after review. You see a diff of every change and the count of high-risk ones, then choose Confirm & Save or Reject & Regenerate for the whole preview. There is no per-change accept, so if one edit is wrong you regenerate.
  • One deliberate exception. The model may add a skill to your skills list if the posting names that skill verbatim as required or preferred. Those additions are flagged as high-risk in the preview so you can reject them. This is the one place the tool adds content you did not write, and it is there because matching a named skill is the point of tailoring. Delete any it adds that you cannot back with a bullet.
  • Plain verbs, by code. After tailoring, a local pass strips 59 overused phrases, “spearheaded” and “leveraged” among them, unless the posting itself uses them.
  • Master resumes and templates. You keep up to five master resumes, one per career track, and tailoring never overwrites them. Seven templates export a text-based PDF, printed from real HTML by a headless browser so a parser can read every word.

To connect the model you already use, see bring your own API key. Anthropic, OpenAI, Gemini, DeepSeek, OpenRouter, Groq, Azure AI Foundry and Ollama all work, and so does any OpenAI-compatible local server.

Whether you use the prompts or the harness, the rule is the same: the model rewrites, and you verify against the master. A model cannot know what you did. You can.

If this helped

If these prompts saved you a bad bullet or two, a star on Resume Matcher on GitHub helps other job seekers find it. You can follow me, Saurabh Rai, on GitHub, X and LinkedIn.

[This article was drafted, edited and formatted with the help of AI. Product facts were checked against the Resume Matcher source code, and outside sources are linked where they are used.]

Enjoyed this post? Star Resume Matcher on GitHub and follow along