Every score on ShouldApply is a transparent, dimensional analysis. Not a black box. Here is exactly what goes into it, why each dimension matters, and how to read the output.
Your overall score is a weighted composite of two things: how well your actual profile matches the job, and how well your resume communicates that match. Profile fit is weighted significantly higher because it reflects reality.
Who you actually are: your skills, experience depth, seniority level, location, and salary expectations versus what the role requires.
How well your resume text communicates your profile. A strong profile with a weak resume loses points here. The fix is usually 20 minutes.
Why this weighting matters: A recruiter's first question is always "is this person qualified?" Not "does their resume have the right keywords." Profile fit is weighted higher because it reflects reality. A low resume match score usually means your skills are not surfaced in your resume text, not that you are a bad fit.
Each dimension contributes to your total score independently. You can see each sub-score in your dashboard alongside the overall number.
Every skill listed in the job description, required and preferred, is mapped against your skill profile. Required skills carry more weight. Preferred skills are scored but capped.
The engine distinguishes between required and preferred using semantic analysis of the JD language, not just explicit labels. 'Must have 3+ years SQL' and 'SQL expertise required' both map to a required skill even though neither uses the word required.
This is the dimension no other job tool measures. Having a skill is not enough. The depth of your competency must match what the role actually requires. SQL at Level 2 versus SQL at Level 5 are completely different qualifications.
Each skill is scored 1-5 based on signals in both the JD and your profile. A gap of 1 level costs fewer points than a gap of 2-3 levels. This drives the Why Not 100 breakdown: the point cost of each gap comes from this dimension.
Total years of experience, career trajectory, and seniority signals from your work history are matched against the role's stated and implied level requirements.
Many job descriptions are seniority-inflated: a Senior title with junior-level requirements, or a mid-level title that needs director-level scope. The engine detects these mismatches using the language in the JD, not just the title.
Location and salary preferences are treated as threshold filters. A role outside your stated geographic preferences with no remote option, or a role with a salary range well below your minimum, caps your score regardless of skill match.
These are weighted as on/off signals rather than gradients. A 92% skill match becomes a much lower overall score if the role requires on-site in a city you did not list and no remote option is available.
Posting age, salary transparency, applicant volume signals, and JD quality markers contribute to a job quality sub-score. A high-fit role on a stale or ghost posting gets flagged because your odds of a response are substantially lower.
This does not reduce your profile fit score. It is surfaced separately as a quality flag. You will see Stale (38 days) or Ghost flag (71 days) alongside your score so you can factor it into your application decision.
The number is a starting point for your decision, not the decision itself. Here is what each range typically means and what to do about it.
Apply immediately and prioritize this role. Your profile and resume both align closely with what the role requires. Spend time on a strong cover letter.
Worth applying. One or two addressable gaps. The Why Not 100 breakdown will show you which gaps are fixable before you submit.
The gaps are real but may not be disqualifying. Check whether they are in required or preferred skills. A fresh posting at this score is worth a targeted application.
The effort is probably better invested in higher-fit roles. Unless there are specific compensating factors, your odds improve significantly with a better-matched role.
Move on. The gaps across core dimensions are too large to overcome through application strategy alone.
A recruiter assessing your application is trying to evaluate your actual fit, not just whether your resume has the right words. A strong profile with a mediocre resume will still generate interviews. A perfectly optimized resume for a role you are not suited for creates bad outcomes for everyone.
That is the most common fixable gap. It means you have the skills and experience but your resume does not surface them in a way that maps to what the JD is asking for. The Why Not 100 breakdown shows specifically which skills are underrepresented in your resume text.
Yes. Your profile is re-scored whenever you update your skills or resume. The score input hash system means we only recalculate when something actually changes, so your scores stay current without unnecessary API calls.
ATS matching checks if specific words appear in your resume. The ShouldApply engine understands meaning: it knows that managed cross-functional teams and led interdisciplinary groups describe the same competency. It also evaluates depth, seniority alignment, and job quality signals that keyword matching completely ignores.
Run a free score on any job posting and get the full breakdown: profile fit, resume match, Why Not 100 gaps, and job quality signals.
Get Your Free Score