Your resume is usually getting rejected for one of two kinds of reason. The ATS kind: the file cannot be read, it lacks the exact terms the recruiter searched for, or a screening answer tripped an auto-reject rule. The human kind: you applied late, the role was a stretch, or a recruiter simply picked someone else. Many rejections people blame on ATS are the second kind.
I want to be straight about this, because a lot of content sells fear. Most applicant tracking systems are not bouncers deleting resumes. They parse your file into fields and let recruiters search and filter. So “rejected by ATS” usually means one of three things: the parse broke, the search did not find you, or a rule the employer set excluded you. The ATS score explainer covers what the software does in full. Here is how to work out which one is happening to you.
The ATS reasons, in the order to check them
1. Your file has no readable text
The most complete failure and the easiest to miss. A scanned resume, a photo saved as PDF, or a design export with the text flattened into an image looks perfect to you and blank to software. Test: open the PDF and try to select your name. If it does not highlight, nothing downstream works. Can ATS read a PDF covers which exports are safe.
2. The layout scrambles when parsed
Two columns, tables, text boxes and sidebars. Many parsers read across the page line by line, so your skills sidebar ends up stitched into your job history and dates land next to the wrong company. You are not rejected for this exactly. You are filed under a mangled version of yourself that no search finds.
3. Contact details in the header or footer
Some parsers skip headers and footers. If your name, email and phone live there, your record can arrive with no way to contact you. Move them into the body, top of page.
4. You are missing the terms the recruiter searched
This is the big one for resumes that parse fine. A recruiter filters by “Power BI” and your resume says “dashboards”. You have the skill. You do not appear. The fix is to use the posting’s exact words for work you have done, which is what tailoring your resume to a job description means in practice.
5. Your title does not match theirs
Recruiters search titles as often as skills. If your official designation is “Associate II” and they search “Software Engineer”, add the market-standard title next to your internal one.
6. A screening answer hit a knockout rule
This is where genuine automatic rejection lives. Many systems let employers mark screening questions as knockouts: “Can you join within 30 days?”, “Are you based in Pune or willing to relocate?”, “Expected CTC?” Answer outside the range they set and you can be filtered before any human sees the resume. If your rejections arrive within hours, look here first. How to answer screening questions goes through the Indian ones field by field.
The human reasons nobody likes to hear
7. You applied late
A senior software role on Naukri can get 500+ applications within 48 hours of posting. Naukri sorts the recruiter view newest-first by default. Across 50,000+ ApplyCove sessions, applications sent between 9 and 11am IST got 2.4x more profile views than ones sent between 11pm and 6am. The reason is dull: recruiters work mornings, see the overnight pile newest-first, and stop scrolling around candidate 40. Your midnight application is candidate 380 by 9am. Nothing rejected it. Nobody reached it. The best time to apply for jobs has the detail.
8. The role was a genuine stretch
If the posting asks for 4-6 years and you have 1, or names three tools you have never used, the rejection is accurate. No resume edit fixes that. A JD match below 50% on a role is usually telling you this.
9. The role was already gone
Internal candidates, a referral who got there first, a posting left up after the hire. You will never know, and it has nothing to do with your resume.
10. The resume parsed fine and read vague
“Responsible for reports. Worked on dashboards.” A human opens it, finds no numbers and no verbs, and moves on in ten seconds. That is a human rejection caused by the document.
How to tell which one hit you
| What you see | Most likely cause | What to check |
|---|---|---|
| Rejection email within minutes or hours | Knockout screening rule | Your notice period, CTC, location and experience answers |
| Silence on every application, everywhere | File or layout problem | Run the ATS checker, copy-paste test |
| Silence on some, interviews on others | Keyword or fit mismatch | JD match on a role that went silent |
| Profile views on Naukri but no calls | Resume reads vague, or CTC mismatch | Numbers in bullets, expected CTC |
| Rejection after a recruiter call | Human judgement | Nothing to fix in the resume |
None of these are certain. They tell you where to look first, which beats editing everything at random.
If your Naukri dashboard shows statuses you cannot decode, what Naukri application status means explains each one.
When to stop blaming the resume
Here is the opinion I will spend on this post: “we’ll get back to you” is the most-told lie in hiring. Plan for silence. Plenty of applications get no response at all, not because something rejected them, but because nobody had time to reach them. When 500 people apply in two days, silence is the default, not a verdict.
So, rule of thumb. Fix the resume once: readable file, one column, dated roles, numbers, the right terms. If it scores around 80 and matches your target postings at 70% or so, it is not your problem any more. After that, the levers are applying early in the day, applying to enough well-matched roles, and answering screening questions honestly but carefully. Rewriting a fine resume for the fifth time is how a job hunt stalls while feeling productive. If you are wondering what “enough” means, how many jobs to apply for per day puts a number on it.
One thing to do before your next application
Take one job that rejected you or went silent. Copy the text out of your resume PDF into a notepad and read it as a stranger would. Then run the PDF through the ATS resume checker, and if that comes back clean, paste the posting into the JD match too. One of the three will show you the gap, or show you there was none, which is useful in its own way.
