Companies are risk adverse.

The goal isn't necessarily to hire the best candidate, but rather the least risky one. Often one gets a large set of resumes and most of them are clearly unqualified for the position and then upon interviewing many others are also unqualified.

The tools to mitigate that risk are things that qualified candidates are adverse to (see the "say no to take homes") and can often find a position through their networks of knowing who has a job open.

A person at the company attesting to "my friend John who I worked with before is looking for a job" which in turn drastically reduces the risk of hiring since this is a person who an employee has worked with before. It doesn't always mean a "hire right now" but if company policies allow for it, it can move a person to a short list.

With risky hires who turn out to not be qualified, the cost of the hire can be much worse than not hiring anyone in that spot. I have worked with people who have generated negative value and spent a good bit of the next year cleaning up things scattered through the codebase.

---

ROI

It often takes about a year for a new hire to become a positive contributor. The next year the balance of the slow down of work, training, etc... it then balances out.

There are few candidates who can hit the job running. Most people take that year to become productive.

When a candidate is hired and leaves within that time, this costs the company money. At some point the company is going to hire people who don't need training (see problem with testing and take home). Even then, it's often cheaper to not hire someone.

And so the "we want someone with all these skills since we're not going to train a random person on Oracle PL/SQL only to have them leave in 9 months."

---

Expectations

Most companies can't spend Big Tech money on salaries. And it is life changing amounts to move to it and furthermore, once you have a lifestyle associated with living in Big Tech compensation, it can be hard to leave - the golden handcuffs are real.

If you're working for a big tech company in the 10% of compensation, going somewhere else to work at the median is a big hit. This limits the pool where a person considers.

---

Shotgun resumes

If you get multiples of the number of people who can reasonably be considered, one of the first / easy passes is to remove resumes that haven't shown an indication that they've read the posting. This also means removing resumes from the candidate pool that appear to be technology packing their resume (more than 1 page per decade of experience, "worked with: list 20 technologies here" on each position.

This tends to remove people who are more risky to hire from the pool.

The part from the OP:

As first step, you start with the companies you like/know with being a bit more selective on the jobs but after some point you basically apply all somewhat related jobs and then want to see what happens after. (which only increase the complexity of the problem)

Once you start sending the same resume to everyone the rate of people looking at your resume drops off significantly since it doesn't resemble the position that is being applied for or have any reason why they are applying there... meaning that even if they do get hired, this is a position that they're looking to start searching for a new position on day one and as an employer, you're better off not hiring someone.