Upload your resume (PDF/DOCX/TXT) and job description — AI analyzes keyword matching, skill gaps, and provides actionable improvements.
0 words
Upload resume or drag & drop
.txt · .pdf · .doc · .docx · .md
or type / paste below
0 words
Upload job description or drag & drop
.txt · .pdf · .doc · .docx · .md
or type / paste below
🔒
Secure & private. Your files are read locally — only the extracted text is sent to our secure backend.
Upload or paste your resume and job description to begin
How It Works
What This ATS Checker Actually Does
This tool does one specific thing: it compares your resume against a job description and tells you exactly what is missing. You upload your resume — as a PDF, DOCX, or plain text — and paste the job description from the position you are applying for. The AI reads both documents, identifies every keyword and skill the employer is looking for, and checks whether each one appears in your resume.
I built this after watching people in my network apply to dozens of jobs and hear nothing back. The resumes were not bad. The qualifications were there. The problem was that the resume was written in different language than the job description. The employer says "stakeholder management," the resume says "worked with clients." The employer says "Agile methodology," the resume says "fast-paced environment." Technically the same thing. To an ATS scanner, completely different.
The tool uses Gemini with a Groq fallback to do the matching. I chose this approach because keyword matching without context produces terrible results — "Python" as a programming language and "Python" as a snake are the same word but obviously not the same thing. The AI understands the difference. It also recognizes synonyms and related terms, so "managed a team" and "team leadership" are treated as matches even though the exact words differ.
What Each Tab Shows You
📊
OverviewTab 1 of 6
The first screen you see after analysis. It shows your overall ATS score out of 100, broken down into four components: keyword match percentage, formatting score, content quality score, and skill match percentage. It also shows how many keywords matched, how many are missing, how many years of experience the AI detected in your resume, and what level it classified you at — entry, mid, senior, or executive. The verdict at the bottom is a plain-English summary of where you stand.
🔑
KeywordsTab 2 of 6
This is the most important tab. It splits into two columns: matched keywords on the left in green, missing keywords on the right in red. The first five missing keywords are highlighted more heavily because those are the ones the AI judged most important for the role. These are the exact terms you need to add to your resume. If "project management" is in the red column, add "project management" to your resume — in that exact phrasing, not a paraphrase of it.
⚡
Skill GapsTab 3 of 6
Where keywords show individual terms, the Skill Gaps tab shows categories. If the job requires cloud infrastructure and your resume has AWS but not Kubernetes or Terraform, the skill gap analysis will show your cloud category as partially matched. This helps you understand not just which specific words are missing but which entire skill areas are underrepresented. A frontend developer applying for a full-stack role might have excellent JavaScript coverage but zero backend or database skills listed.
✅
FormattingTab 4 of 6
Twelve specific checks your resume passes or fails. Things like: does it have a phone number, does it have a LinkedIn URL, are bullet points used for job descriptions, are dates formatted consistently, are there quantified achievements or only vague statements. These are not stylistic preferences — they are signals that ATS software looks for when deciding whether a resume is complete and professional. A resume missing a phone number or using paragraph blocks instead of bullets will score lower in real ATS software.
✨
RewritesTab 5 of 6
This tab takes weak bullet points from your resume and rewrites them. The before version is shown in a red-tinted block, the improved version in green. The rewrites add specificity, action verbs, and measurable outcomes. "Helped with marketing campaigns" becomes "Led digital marketing campaigns that increased website traffic by 40% over six months." You do not have to accept every rewrite exactly as written — they are starting points for improving your own language.
🚀
Action PlanTab 6 of 6
A numbered list of specific things to do, each labeled High, Medium, or Low priority. High priority items are the ones with the most direct impact on your score — typically adding missing keywords, fixing formatting issues, and quantifying achievements. Each action item includes an impact statement explaining what improvement that specific change will make. Work through the high priority items first, re-analyze, then move to medium.
Understanding Your Score
The score is not a single keyword match percentage. It is a weighted combination of four sub-scores: how many keywords from the job description appear in your resume, whether your resume is formatted in a way that ATS software can read correctly, whether your content demonstrates real experience rather than vague responsibilities, and whether your skills align with what the role specifically requires.
75 – 100Excellent
Strong keyword alignment, good formatting, and solid skill coverage. Your resume will pass most ATS filters and is likely to be seen by a human recruiter.
55 – 74Good
Some keywords are matching but gaps remain. A recruiter might see your resume but will notice the missing skills. Worth improving before applying.
35 – 54Needs Work
Significant keyword gaps and likely formatting issues. Many ATS systems will filter this resume out automatically. Fix the Action Plan items before applying.
0 – 34Poor
Major misalignment between resume and job description. Either the job is not a good fit, or the resume needs substantial rewriting to reflect the role language.
One thing worth saying clearly: a high score does not guarantee an interview. It means your resume aligns with what the job description says the role requires. If the job description is poorly written, or if you are applying to a role where your background is genuinely not a fit, no tool will fix that. What this checker removes is the unnecessary rejections — the ones where you were qualified but your resume did not show it in the right language.
File Formats and How Text Extraction Works
The tool accepts PDF, DOCX, DOC, TXT, and MD files. Text extraction happens entirely in your browser using PDF.js for PDF files and Mammoth.js for Word documents. Nothing is uploaded to any server during this step. Only the extracted plain text is sent to the analysis backend — not your original file.
PDF
Works for text-based PDFs. Image-based or scanned PDFs cannot be extracted — paste text manually instead.
DOCX / DOC
Best supported format. All formatting, bullet points, and sections are preserved during extraction.
TXT / MD
Simplest format. No extraction needed — plain text is read directly. Use this if other formats fail.
🔒 What Happens to Your Resume Data
Your resume file never leaves your device. The browser extracts plain text locally using PDF.js or Mammoth.js, then sends only that text — no file, no metadata — to the analysis backend. The backend passes the text to Gemini or Groq for analysis and returns the results. No resume text is stored, logged, or saved anywhere after the response is returned.
I built this as a solo developer. I have no interest in storing resume data — no infrastructure to handle it, no reason to keep it, and no intention of building anything that does. The tool analyzes your resume in the moment and discards the text immediately after.
How to Get the Best Results
1
Use the full job description, not a summary
Copy everything from the job posting — responsibilities, requirements, preferred qualifications, even the company description if it mentions skills. The more text you provide, the more keywords the AI can extract. A three-line summary gives you three lines of keywords. A full posting gives you fifty.
2
Upload the resume you actually plan to submit
Do not paste a cleaned-up version. Upload the exact file you would send to this employer. If the PDF does not extract properly — some are image-based or have unusual encoding — use the paste option instead and copy the text directly from your resume.
3
Start with the Keywords tab, not the score
The score is a summary. The Keywords tab is the actionable data. Find the missing keywords listed in red, identify which ones are genuinely part of your background, and add them to the relevant sections of your resume. Do not add keywords for skills you do not have — add them for skills you have but described differently.
4
Re-analyze after making changes
After updating your resume, run it through the checker again. Your score will typically improve by 10 to 25 points just from adding the missing keywords the first analysis identified. Continue until you are above 75, then focus on the formatting and rewrite suggestions.
5
Check every job description separately
A resume optimized for one job posting will not be optimally matched for a different posting, even at the same company. Different postings emphasize different things. If you are applying to five roles, run each job description through the checker against your resume and make targeted adjustments for each application.
Frequently Asked Questions
Q. Why does the tool sometimes say the AI is busy?
The tool uses Gemini as the primary analysis engine with Groq as a fallback. Both services operate on free-tier API limits. During high-traffic periods, both can hit their rate limits simultaneously, which triggers the "AI is taking a short break" message. It resets automatically — waiting two to three minutes and trying again almost always works. I built in the retry button specifically for this.
Q. My resume is in Urdu or another language. Will it work?
The analysis is designed for English-language resumes and job descriptions. If your resume or job description is in another language, the keyword matching will be unreliable. For best results, use an English version of your resume for roles where English is the working language.
Q. The score seems low even though I am qualified for this job.
Qualification and keyword matching are two different things. You can be completely qualified for a role and still score 45% because your resume uses different terminology than the job posting. The score measures language alignment, not your actual fitness for the job. Add the missing keywords that genuinely reflect your experience and your score will increase.
Q. Should I add every missing keyword the tool identifies?
Only add keywords that honestly reflect your experience. If a keyword describes a skill you have but phrased differently, add it. If it describes something you have never done, do not add it. ATS software gets you past the filter, but a human recruiter reads what passes through. A resume padded with skills you do not have will fail in the interview.
Q. What is the minimum resume length for a reliable analysis?
The tool requires at least 100 words in the resume field before analysis is enabled. In practice, a resume with less than 300 words will produce a low content quality score because there is not enough text to demonstrate experience. Most resumes are 400 to 800 words, which gives the AI enough to work with.
Q. Why does it detect my experience level as wrong?
The tool estimates experience level from the years mentioned in job dates and the seniority of roles described. If your resume has gaps, uses only years without months, or describes senior responsibilities without senior titles, the detection can be off. The experience level shown is for context — the keyword analysis is what matters for improving your application.
Q. Can I use this for academic CVs or government job applications?
The tool works for any text-based job application where keywords matter. Academic CVs and government applications have different conventions than corporate resumes — longer, more detailed, different emphasis. The keyword matching will still be accurate, but some formatting checks may not apply to those formats.
Q. Is this tool free to use?
Yes. Free forever, no signup required, no usage limits. The backend uses Gemini and Groq APIs which have free tiers. When those limits are hit, the tool queues you for a retry rather than cutting you off. I built this as a developer who wanted job seekers to have access to real AI analysis without paying for it.
About This Tool
This ATS checker is part of ToolLabHQ — a collection of free browser-based tools built by Abdul Wahab, a full stack MERN developer based in Lahore, Pakistan. Every tool on the platform was built to solve a real problem encountered in actual work.
This tool was built after watching people in my network apply to many jobs without callbacks — not because they were unqualified, but because their resumes did not speak the same language as the job descriptions. The ATS checker exists to close that gap. It is free because job searching is already stressful enough without paying for tools that should be freely available.