I would recommend against obvious mismatches (ie: 10yr experience v. 1yr), but if you're hitting 50%+, and especially 75%+ of advertised requirements, then it's not a bad thing to submit your resume.
Especially with super specific skills which are unlikely to known by many people... It's either the main requirement and you have no chance in hell if you don't have it, and anyone with that skill will get the job regardless of their other skills, or it's something you can learn on the job and they just put it out there as a plus for people who can be onboarded faster.
If a job has a specific piece of software listed, i.e. Salesforce CRM, google the painpoints or ask people who do it ahead of time. When someone in the interview asks you about it, dont say "I CAN LEARN ANYTHING!", say.... "I understand the learning curve is hard because of X, but I'll just have to put the time in to pick it up quickly".
Recruiters are almost always non-technical - when they start to learn what we do, they become us, and find their own jobs. They are more likely to get lost in the "alphabet soup" of acronyms we treat as a "techie cant". And the hiring manager might not have been clear in the job posting. Best to get it directly from the source.
Your resume is a key to unlock the first few interview loops, where you can actually talk to people, find what they're looking for, and customize your pitch so you meet their current needs. Remember that companies are run by humans, not machines. Almost every hiring process is going to be steeped in NIH and defensiveness.
1. The descriptions are often incomplete or emphasize the wrong skills.
2. Needs change
3. You may have some skills they don't know they need
4. There might be no one else out there who meets 100% of the specs as written.
Also, read this:
https://hbr.org/2014/08/why-women-dont-apply-for-jobs-unless...
I know what I can pick up quickly and I know what would be a new paradigm for me. You give them an honest estimate about how long it will take to ramp up on their specific software and you'll be fine.
As a word of caution, a lot of overly-specific job postings are written with an internal hire in mind. HR departments often require that a public posting be made, but the manager seeking to fill the position writes it in such a way that it's basically impossible for an external applicant to satisfy the requirements. Unfortunately, there's no way of knowing, so you might as well apply.
Applying for a job is a marketing exercise, you're trying to convince them that you are the specialized person they need. So if you're missing one specialized skill they mention, try to find another to emphasize... ideally one that other candidates don't. More here: https://codewithoutrules.com/2017/01/19/specialist-vs-genera...
The reason why job posts like the one you're talking about have such specific requirements is because they get 100s of applications for each role and have to have some way to filter them.
We had a job opening that was opened specifically for a contractor we wanted to hire. But the guy messed something up (drug test, interview, background check, etc) and someone from the outside got the job.
Let's look at it from the employer's perspective. The employer doesn't maintain a blacklist of "bad match" applicants. The employer simply has a yes, no, and maybe pile. If you are a yes, you get the interview. If you are a maybe, you get the interview if there aren't enough applicants in the yes pile. Everyone in the no pile simply doesn't make it, but could a yes or maybe for a different position.
My big break into software development was because no one else was in the yes pile, and I the strongest (maybe the only) maybe.
For example, I recently read a job posting where "experience with subdomains" was sandwiched between "required 2 years exp with rails" and "postgresql". For people who haven't touched domain configuration, working with subdomains and basic DNS configurations is an absolutely trivial task.
So perhaps the missing requirement is actually something that could be picked up in a matter of minutes and isn't a deal breaker nor relatively important.
Regardless, you should apply.
Job descriptions never encapsulate everything, either completely or necessarily accurately. They were just written by some guy, and it's amazing how bad a lot of these people are at the hiring/job search process.
This is especially true for entry level. This means they don't expect you to hit the ground running. If your skills are related, you absolutely should apply.
You should also ignore most "x years" requirements. Just apply to the right class: junior, mid, or senior. Start applying for senior when you think you're a mid-mid.
What was it like being coached by Wayne Gretzky?
If you see a job posting that looks perfect except for some oddball requirement you don't meet, always go for it anyway. Much of the time the people interviewing you don't even know what the job posting contained, much less agree with the oddball requirements.
When I'm looking for a job, I basically apply to any posting that looks interesting to me.
Don't take that stuff too seriously. If you think you can do the job that needs done, apply. The worst that can happen is they'll say no.
If you don't want the job, don't apply for it.
Show them that you will add value to the company, and that you are keen to engage with the work, the product, the customers' requirements, and getting things done.
Apply.
Just put more info into a cover letter to say what you're interested in doing.