What this ATS resume checker does
Paste a resume and one job posting into this ATS resume checker and a moment later it tells you how well the two match.
The resume goes in by paste or upload. The posting goes in by paste, or you hand it the link and press Fetch posting. Then Check my resume.
The resume score is out of 100.
Below the score I look at three things, in this order. The keywords from the posting, split into found and missing. The six checks, each with its weight and a fix. And the three bullets that scored lowest, because that is where the quickest points are.
No account. No cap on runs. The scoring runs in your browser, and your file stays on your device.
Two questions I want to settle before anyone presses the button. Does it work on a CV? Yes. Same document, different name, same ATS test, so use it as a CV checker too.
Will it run with no posting? No, because the keyword check would have nothing to compare against. If you only want the other five checks, which read your resume alone, paste any posting for your target role and ignore the keyword row.
Six checks, and what each one is worth
Keywords are 40 of the 100 points. The other five checks put together are 60. So start there, every time.
Here is what the checker does with the posting. It pulls out up to 25 terms, single words and phrases of two or three words.
Repeats rank higher. So do terms that show up early, terms that match your target title, and anything on its built-in skills list. A capitalized word mid-sentence gets a small nudge, since that is usually a product name.
Then it hunts for each term in your resume, whole words only. Plurals are fine. "Follow-up" and "follow up" are the same thing to it. A synonym gets you nothing. Match 70 percent of them and you've passed this one.
Impact language, 15 points, and it reads your bullets, or your sentence-like lines when it finds no bullet markers.
Sixty percent of the points come from bullets that open with one of 140 action verbs. The other 40 percent come from bullets with a number in them, or a percent sign, or a currency symbol.
"Responsible for customer tickets" gets zero on both counts. "Resolved 120 tickets a week" gets both. Same job.
Standard sections, 15 points. It looks for an Experience heading, an Education heading and a Skills heading, each on its own line of 40 characters or fewer. "Work Experience" is fine. "Where I've made a difference" is not, and an employer's parser would miss it too.
Then contact details, for 10. 5 for an email, 3.5 for a phone, 1.5 for a LinkedIn link. No link in the resume? The one you type in the optional LinkedIn box counts instead.
Formatting risks, 10 points, and every risk it finds knocks off 30 percent. What it treats as a risk:
- more than 8 tabs or more than 6 pipe characters, which nearly always means columns
- page numbers, decorative bullets
- more than four lines in all caps, or any single line over 400 characters
- the same line turning up more than once, which is what a header pasted on every page looks like as text
- dates written 01.2022, years with no month names, or no dates at all under your jobs
Length, 10 points. 400 to 800 words gets all ten. Under 400 or over 800 and you lose some. Under 250 or over 1,100 and you lose the most.
Two more results score nothing. Look at them anyway. First, a skills list. It runs the posting against a built-in list (271 hard skills, 42 soft) and ticks off the ones you've already got.
Second, your target title. Did it show up in the first 600 characters? Further down? Not at all?
80 and up reads Strong. 60 to 79, Fair. Under 60, Needs work. I call that our estimate and nothing more, because no tool, ours included, can see how one employer's system ranks you.
Jordan's resume, from 38 to 74
To show you what moves the number I wrote a short resume for a made-up person, Jordan Lee, and scored it against a customer support posting, the kind that wants Zendesk and Jira and a bit of SQL, plus troubleshooting and written communication.
Draft 1 ran 92 words, and I kept it plain on purpose. A one-line summary. A bullet that said "Helped with billing questions and refunds." Years on the dates but no months. No LinkedIn link anywhere. It scored 38.
So I did what the report told me to. Target title under the name. A LinkedIn link. Months on the dates, so "Mar 2022 - present" where draft 1 had "2022 - present."
Then I rewrote every bullet to open with a verb and end with a number, and Zendesk, Jira and SQL went into the bullets where Jordan had used them.
Draft 2 ran 218 words. It scored 74.
| Check | Draft 1 | Draft 2 |
|---|---|---|
| Keyword match (40) | 2 | 24 |
| Impact language (15) | 3.9 | 13.1 |
| Standard sections (15) | 15 | 15 |
| Contact details (10) | 8.5 | 10 |
| Formatting risks (10) | 7 | 10 |
| Length (10) | 2 | 2 |
Five things I took from that run.
Keywords did most of the work. Draft 1 matched 1 of the 20 terms. Draft 2 matched 12.
Zendesk, Jira, SQL, SLA and SaaS had all been on the missing list, and Jordan had used three of them, so in they went, in the posting's own words, and with the rest of the rewrite the keyword check climbed from 2 points to 24.
Impact language went from 3.9 to 13.1 on two counts. Draft 1 had 3 of 7 bullets opening with a verb and not one with a number in it. Draft 2 had 7 of 8 on both.
Headings were plain both times, so that check never moved off 15. Adding the LinkedIn link took contact from 8.5 to 10. Month names on the dates took formatting from 7 to 10.
Length never moved. I kept the sample short on purpose, so both drafts fell under 250 words and 8 of the 10 points sat there untouched. Your real resume, at 400 to 800 words, collects them with no other change.
And some of the 20 terms were noise. One was "Jira keep". A line break had glued two neighboring words together. "Austin tx" was another; both drafts say "Austin, TX" and the comma breaks the phrase, so it stayed on the missing list both times.
I skipped those. They cost the same as a real skill, and no recruiter searches for them.
Three Greenhouse facts worth acting on
I read the help pages of Greenhouse, one widely used applicant tracking system, so you do not have to. Three things in there change what you do with your file.
- Its parser fills profile fields from your upload, and that parse can fail or come back partial. Greenhouse's own list of causes: a file over 2.5 MB, graphics, tables, headers and footers, columns, spaced-out letters. An image file fails outright. Hence our tab, pipe, repeated-line and long-line checks.
- Recruiters can switch on full text search. Type a term, and every resume containing it comes up. Yours said the same skill in different words? Then it never comes up. That's why keywords carry 40 points here and nothing else comes close.
- Talent Matching rates candidates Strong, Good, Partial or Limited Match from skills, job titles, years of experience, employment dates and past employer names. Your name and contact details play no part. Greenhouse says it advances or rejects nobody; a recruiter does that. Our dates and title checks watch the same signals.
The other big systems publish help pages too. We wrote up each: Workday, Greenhouse, Lever, iCIMS.
What leaves your device, and what does not
Uploads stay put. The browser does the opening, PDF, DOCX or TXT, and drops the text into the resume box. Up to 8 MB. An old .doc file will not open. A scanned PDF fails too. A scan is a photo of text, with no actual text inside.
Read the box after an upload. Lines run together? Words missing? Then an employer's parser will struggle with that file the same way.
Fetch posting sends exactly one thing to our server, the link. Our server opens that page and reads up to 1.5 MB. If the page has structured job data, it uses that first. You get back as much as 12,000 characters.
Four links a minute. Some boards block us, or put the ad behind a login. Then paste it yourself.
Resume, posting, title and LinkedIn link sit in your browser's local storage. Reload and they're still there. No account holds them. Clear your browser data and they are gone.
Fix with AI is the one button that sends your resume anywhere. You log in with a verified email first. The resume needs 200 characters at least, the posting 100.
On a free account each box takes up to 2,000 characters, and you get 10 AI requests a day across our tools.
Out go your resume, the posting and your missing keywords. What comes back: two sentences on fit. A place for each missing keyword your resume can honestly carry. Three to five weak bullets, rewritten. Any ATS warnings.
The model is told: no made-up employers, dates, degrees, tools or numbers. If a figure is something only you know, it writes [X] and leaves it to you. Then read every line against what you really did, because your name is going on it.
The score itself never goes near AI. Same resume, same posting, same number, every single time.
Raise a low score in this order
- Start with the Missing list and go term by term. Do you have it, honestly? Then write it in, in the posting's words, where it is true. Click a term to copy it. Our guide on resume keywords from a job posting shows the method on a real ad.
- Put each skill in two places, your Skills section and one bullet that shows it in use. "Data visualization" in the posting and "built charts" in your resume is no match, to this resume keyword scanner or to a recruiter's search box.
- Rewrite the three weakest bullets. Verb first, number in it, result last.
- Then the dates and the headings. Jan 2022 to Mar 2024 under each job, and plain headings in one column.
- Run it again. Which edit moved the score? That answer matters more than the score does.
- Next posting, same routine. Every posting brings a new keyword list. One resume, 80 for this role and 50 for that one? Fine. Both numbers are correct.
And please don't chase 100. Those last few terms rarely fit your background anyway. And the recruiter who opens a Skills section with 60 items in it will see padding.
What this checker cannot tell you
- How the employer's own system will rank you. Every ATS parses and ranks its own way. The number shows where your resume is weak against this posting, and that is all it shows.
- That two words mean the same thing. "Customer support" and "customer service" are two different terms to it. So are "SQL" and "databases." Use the posting's version, where it is true.
- Which extracted terms are noise. Line breaks can sneak in odd pairs like "csat write". Commas split phrases, so "Austin, TX" will never match "austin tx."
- What your file looks like. Pasted text loses its layout. Fonts, text boxes, tables, two columns: the box keeps none of it. Open your file, select all, copy, and look at what really came through.
- Every skill in your field. Its lists are fixed at 271 hard skills, 42 soft skills and 140 action verbs, covering common office, tech, health, trade and retail terms. A niche tool may be missing, though the posting can still surface it as a keyword if it repeats.
- Spelling or grammar. It does not check either. Neither does an ATS. A recruiter does.
Who made it
GetJobTools built this resume checker and keeps it current. The checks are our own code, and the rules above describe that code as it runs today; when a weight changes, this page changes with it. Our about page has the editorial policy behind the guides and tools here.
Resume done? The cover letter generator writes a letter for the same posting, and the jobs board has live listings.
Resume keywords by job title
Not sure which keywords to go after? Each page below is one role, with counts of the skills, tools and certifications its real postings ask for.
- Software Engineer resume keywords
- Data Analyst resume keywords
- Accountant resume keywords
- Marketing Manager resume keywords
- Marketing Coordinator resume keywords
- Customer Service Representative resume keywords
- Registered Nurse resume keywords
- Sales Representative resume keywords
- Project Manager resume keywords
- Administrative Assistant resume keywords
- Executive Assistant resume keywords
- Human Resources Manager resume keywords
- Business Analyst resume keywords
- Financial Analyst resume keywords
- Graphic Designer resume keywords
- UX Designer resume keywords
- Product Manager resume keywords
- DevOps Engineer resume keywords
- Data Scientist resume keywords
- IT Support Specialist resume keywords
- Systems Administrator resume keywords
- Cybersecurity Analyst resume keywords
- Social Media Manager resume keywords
- Content Writer resume keywords
- Recruiter resume keywords
- Operations Manager resume keywords
- Warehouse Associate resume keywords
- Truck Driver resume keywords
- Retail Sales Associate resume keywords
- Restaurant Manager resume keywords
- Medical Assistant resume keywords
- Pharmacy Technician resume keywords
- Licensed Practical Nurse resume keywords
- Paralegal resume keywords
- Electrician resume keywords
- Elementary School Teacher resume keywords
FAQ
What is an ATS resume checker?
It puts your resume next to one job posting and shows which of the posting's keywords you have and which you're missing. Then it checks headings, contact details, formatting and bullets. Ours is a free ATS checker: score out of 100, runs in your browser, no sign-up.
What is a good ATS score?
On this checker 80 and up says Strong, 60 to 79 says Fair, and anything lower says Needs work. Treat the number as our estimate from the six checks above; an employer's system would not hand you the same figure. Keywords are 40 of the 100 points, so those come first.
Is my resume uploaded when I use the checker?
Not for the score. Your browser opens the PDF or DOCX itself, and anything you type is saved there and nowhere else. Two buttons reach our server: Fetch posting sends the posting's link, and Fix with AI sends your resume, the posting and the missing keywords when you click it.
What is an ATS friendly resume, and does formatting matter?
One that screening software can read and a recruiter's search can find. And yes, formatting matters. The checker flags tabs or pipes that suggest columns, page numbers, repeated header lines, decorative bullets, all-caps blocks and dates without month names, and each one takes 30 percent off the 10-point formatting check.