A simple enough solution is to require H-1B to be given only if the salary is X% above the industry average for the position. Then companies will only use them for people whose skills are actually difficult to find in the USA.
It's the whole company that operates in a given industry, not the particular position. If you're a software consulting company, you can't say you want a visa for a farming position...
Edit: wording