The PERM process is flawed because it puts the onus of proving a need for international labor in the market on the company instead of doing it at a government level. Say in the market, you have 1000 jobs available for a role, but 900 US citizens available for doing the job. If the companies want to fill the 100 positions with non citizens and provide them to a path for permanent residency, they have to prove that no US citizens are available by advertising the position and hiring for it.
In a theoretical state, none of the 900 candidates will apply for that job because they are already employed. In reality candidates move around, so the test they ask companies to conduct is flawed.
I know people get emotional on this matter but they don’t understand the process. IMO all of this can be avoided if the labor market tests are managed centrally like a lot of countries do. You evaluate the shortage, fill those roles and then update the statistics to reflect that the shortage was filled.