For what it's worth, as an ex-FB engineering manager, this isn't how Facebook works at all. 99% of software engineers are not hired into an "open position". Facebook hires all software engineers that pass the hiring process without regard to whether they are US citizens or not. Then, after starting work for Facebook, there is a trial period where software engineers figure out what team they are going to work for, usually working a bit on a few different teams.
Unfortunately, immigration law seems to be written by people who had no familiarity with how modern large software engineering companies operate. Tech companies are essentially forced to make up "positions" for the purposes of immigration law. This makes the law pointless, except for the occasional fine for not obeying the meaningless rules precisely enough, which is just the cost of doing business.
There is just no way to make a company "first consider US citizens for every open job" when you don't hire one person at a time for separate jobs. What does that even mean when you are trying to hire 100 people a week, and you just want to hire the 100 best people you can find every week? This law fundamentally has an incoherent goal.