Shorten temporary work visas to one year from three years. Require a renewal based on a lottery every year.
This has the effect of destroying banking and tech's reliance on these temporary visas to permanently replace American workers. Greatly increases the carrying cost, like a tax, and increases the instability and churn of temporary visa holders. This would return the "temporary" to temporary visas.
Make visa quotas by country reciprocal, like trade. Your country only gets issued as many work visas as your country issues to Americans to work in your country. Fairness to the American worker.