How to Make an ATS Resume With Claude
Here's how to make an ATS resume with Claude: paste your current resume and the job listing into one well-built prompt, let it analyze before it writes, and get back a tailored, plain-text draft that mirrors the listing's language. Claude is unusually good at this layer. What it can't do is see the live listing's ATS-weighted keywords or score your draft against the parser that's actually filtering you.
You don't need a course on prompt engineering. You need one system prompt, one user prompt, and an honest read on where the output stops being enough.
Key Takeaways
- Claude is strong at the rewrite layer — voice, structure, and pulling listing language into bullets where your experience supports it.
- It can't see the live job listing or score your draft against the ATS. That's the gap it always leaves.
- Wrap your inputs in XML tags (
<resume>,<job_description>) so Claude knows exactly which text is which.- Force a
<thinking>step so Claude analyzes the listing before it writes a single bullet.- Most parsers choke on markdown, tables, and special characters. Flatten the output to plain text before you submit.
Why Claude is good at the resume layer — and the one thing it can't see
Claude is a strong writer. Hand it your resume and a job listing as text, and it will tighten your verbs, convert duties into accomplishments, and align your summary to the role in about a minute. The reason it's worth a separate prompt from ChatGPT or Gemini is structure: Claude responds well to explicit XML tags and an upfront reasoning step, which makes its output more controllable and less prone to drift.
That's the 70% it nails. Here's the 30% it can't reach.
Claude can't browse the live job listing — you paste the text in. More to the point, it has no visibility into the Applicant Tracking System scoring your submission. The parser runs on the employer's side. It weights keywords by placement, frequency, and proximity, and Claude can only guess at that weighting. According to the Bureau of Labor Statistics, hiring volume in most occupations is large enough that employers lean on software to filter first and read second. Claude rewrites the language a recruiter sees. It never touches the filter that decides whether a recruiter sees you at all.
The Claude ATS resume system prompt
This is the instruction layer. It sets Claude's role, its rules, and the analysis-before-writing structure that makes its output reliable. Drop this into Claude's system field, or into a Project's custom instructions so you can reuse it across every job you apply to.
You are an expert resume writer and ATS (Applicant Tracking System) analyst. You rewrite a candidate's existing resume so it mirrors a specific job description's language while staying strictly truthful.
You will receive two inputs, each wrapped in XML tags:
<resume> — the candidate's current resume
<job_description> — the full text of the target job listing
Before writing anything, work through your analysis inside <thinking> tags. In that block:
- List the 8 to 12 most emphasized terms in the job description (skills, tools, methods, recurring phrases).
- For each term, note whether the resume shows real evidence of it. Mark "supported" or "no evidence."
- Identify which supported terms are missing from the resume's wording and should be worked in.
- Decide the section order that puts the strongest matched experience nearest the top.
Then write the rewritten resume. Hard rules:
- Never fabricate. Do not invent employers, titles, dates, metrics, or skills.
- Quantify only where the source resume supports a number. If there is no number, keep the line qualitative.
- Use the candidate's real language and listing language only where their experience backs it. Never claim a "no evidence" term.
- ATS-safe formatting only: no tables, no columns, no graphics, no text boxes, no headers or footers, no special characters or emoji.
- Use standard section headings: Summary, Skills, Experience, Education.
- Lead every Experience bullet with a strong action verb. Vary verbs; repeat none more than twice across the document.
- Output as plain text only.
Structure your reply as:
1. The <thinking> block (your analysis).
2. The rewritten resume in plain text.
3. A short "Gaps" list: listing terms with no evidence in the resume, so the candidate knows what NOT to claim.
The user prompt
This is where you paste your two inputs. Keep the XML tags exactly as written — they're how Claude tells your resume apart from the listing.
Rewrite my resume to target the job below. Follow your system instructions: analyze inside <thinking> first, then output the plain-text resume, then the Gaps list.
<resume>
[PASTE YOUR RESUME]
</resume>
<job_description>
[PASTE THE JOB DESCRIPTION HERE]
</job_description>
How to run it
You have two ways to use this, and the second is worth setting up if you're applying to more than a couple of jobs.
One-off. Start a new chat. Paste the system prompt as your first message, or set it in the system field if you're using the API. Then send the user prompt with your resume and the listing pasted into the tags. Claude analyzes, then writes.
Reusable (recommended). Create a Claude Project and put the system prompt in the Project's custom instructions. Now every chat inside that Project already knows the rules. For each new job, you only send the user prompt with fresh paste. Claude's long context handles a full resume plus a long listing without losing the thread, so you can iterate — "tighten the summary," "the third bullet still sounds generic" — without re-pasting everything.
The honest friction
The method works. Here's the tedious part nobody mentions, the part that's the whole reason a $4.99 tool exists.
You re-prompt for every single job. A resume tailored to one listing is mis-tailored for the next. Different role, different weighted terms, different draft. That's a fresh paste-and-run every time you apply.
You're the judge — there's no score. Claude tells you what it changed. It can't tell you whether the draft beats the parser, because it can't see the parser. You read the output, you cross-reference the listing by hand, you decide if it's good enough. No number, no confidence reading, just your gut.
The formatting will betray you. Claude loves clean markdown — bold headers, bullet glyphs, the occasional table. Resume parsers are well-documented to mangle that kind of structure, reading a two-column layout as scrambled text or dropping a styled header entirely. Before you submit, paste the output into a plain .txt file, strip every special character, and confirm it reads top-to-bottom as one clean column. Harvard Business Review's research on hiring argues the underlying problem runs deeper: ATS-driven processes filter out qualified candidates before a human reviewer ever sees them, which is why surviving the parser matters at least as much as having the right experience.
No interview script. A tailored resume gets you in the room. It does nothing for the questions waiting there. You're on your own for the conversation.
If you'd rather skip the per-job grind, the same paste — your resume plus the listing — runs through Gate Crashers and comes back as three resume versions built around that specific listing, plus a 12-question interview script from the same context. Pay once, no subscription. $4.99. Files are yours, no card on file.
FAQ
Can Claude make an ATS-friendly resume? Yes, for the language and structure layer. Claude rewrites bullets into accomplishments, aligns your summary to the role, and outputs plain text that parses cleanly. It can't see the live listing or score your draft against the actual ATS, so you still do a manual keyword pass after.
Why use XML tags in the Claude prompt?
Claude is trained to read XML structure cleanly. Wrapping your inputs in <resume> and <job_description> tags removes any ambiguity about which block is which, so Claude doesn't blend the listing's requirements into your work history by accident.
What does the thinking step actually do? It forces Claude to analyze the listing — pull the emphasized terms, check them against your real experience — before it writes a word. That cuts down on fabricated claims and produces a more deliberately tailored draft than asking it to "just rewrite this."
Is Claude better than ChatGPT or Gemini for this? Each has a different strength, which is why each gets its own prompt. See the ChatGPT version and the Gemini version — same backbone, tuned to how each model behaves. Claude's edge is structured inputs and the explicit reasoning step.
Is one Claude prompt enough, or do I still need a paid tool? The prompt gets you roughly 70% — the rewrite. The last 30% is the per-listing keyword cross-reference and the parser weighting Claude can't see. You can do that by hand for every job, which is 20 to 30 minutes each, or run a session-based tool that handles it. Both are honest paths.
Claude writes the rewrite. The parser scores the last 30%. Run both passes, and don't ship the raw output without flattening it first.
