I mentioned that part; that's the "prevailing wage" requirement in (1) in my comment above. I'm proposing prioritizing by wage beyond that, e.g. if there are 300,000 applications that meet the "prevailing wage" requirement, and 50,000 slots, instead of allocating the slots randomly or first-come-first-serve, allocate them highest-wage-first.
Sure, markets are an imperfect way to allocate limited resources. But is a lottery really a better way? At least markets would allocate the slots in way that bears some relationship to where the maximum demand in the economy for those workers is.