This is normal in any slightly larger project, the company that wins the bid rarely has hundreds of people twiddling their thumbs waiting for the next contract to be won. Instead the contracting company goes out to find sub contractors who do have free labor.
This creates a chain where the main contractor goes out to find labor, they find someone who promises fifty engineers for a good price. This company doesn’t either have fifty engineers sitting idle. Maybe they have ten. So they go out to find forty engineers. Rinse and repeat until the price that’s offered is too low for anyone to accept, or they’ve found their allocation of engineers.
The only way to prevent this is for the original contracting company to hire all of the necessary staff themselves onto their staff, but this is slow and only works if the project is long enough so that you can entice people to switch jobs. All experienced engineers are already employed somewhere else.
This creates a chain where the main contractor goes out to find labor, they find someone who promises fifty engineers for a good price. This company doesn’t either have fifty engineers sitting idle. Maybe they have ten. So they go out to find forty engineers. Rinse and repeat until the price that’s offered is too low for anyone to accept, or they’ve found their allocation of engineers.
The only way to prevent this is for the original contracting company to hire all of the necessary staff themselves onto their staff, but this is slow and only works if the project is long enough so that you can entice people to switch jobs. All experienced engineers are already employed somewhere else.