Companies hire only when they have to. Meaning they will postpone the hiring until it becomes urgent.
And then they hire whoever comes/applies at that time. Before it becomes urgent they will find any silly reason to reject the candidates: „you have 4 years of experience with X, we need 5 years” and so on.
Good teams don’t hire. Good teams with qualified, senior people just deliver, have good pay and stable team. Nobody is leaving so no need to hire.
If you do get a job, most likely it’s a team and a project that is already in crisis. They want you to save them and they even overlooked a lot of missing „musts” from your CV just for that. Probably the senior just left and hence the crisis.
Most interviewers don’t read your CV before the interview. Oftentimes they just printed the CV 2 seconds before you arrived. For them it’s just a task and most of them are just too lazy to even do that. They want to go and have a break, not read and understand your CV. Otherwise they would not ask the exact same thing they can read in the first line of the CV.
When they ask if you currently have a job is not just small talk. If you don’t, they will read that it means you are desperate and you will accept anything. Even if you are not, they will just not give you a better offer, offer that they probably already gave to a different candidate that currently has a job. Having a job while interviewing gives you leverage to ask for more.
Same if they ask you about your family, bank credit and so on. If you have them, then you are more vulnerable and you don’t have a leverage.
Most jobs suck. Like everything in life, good things are few and far between.