I think there should be a monthly allocation of visas that can be issued, and companies are allowed to bid on the salary that they would pay the worker. Each month, the highest salaries get visas issued. If they don't bid enough, their candidate doesn't get in. If companies really need these specialists, they should pay them enough to secure a visa in a market-based system. I suspect this would create upward pressure on the salaries of these visa workers and prevent some of the abuse that we see today