The game has a rudimentary prioritization system, but it appears half-baked. It fills what it thinks is the most important empty job with the first available pop, no matter how suitable it is. But if you fire everyone and then start rehiring, it will pick the best pop for each job from the pool of the unemployed. And unfortunately never shuffles working pops on its own.