1. Weather is a huuuuuge factor. The large, growing population centers in the US are in warm or mild climates. Nobody wants to live in Buffalo or Minneapolis unless you're from there.
2. Location is far less important to the industries that generate the majority of value today. A lot of industrial jobs (and cities) sprung up in the midwest in the early part of the 20th century thanks to its proximity to raw materials (iron ore, coal, etc) and easily navigable waterways. That's not as important to the economy as a whole anymore, so companies have little reason to start (aka create jobs) in locations that are otherwise undesirable.
3. Given that there are fewer job opportunities that are reliant on proximity to natural resources, and that more of the new job opportunities will be located in cities with milder climates, it's no wonder that rust belt cities are bleeding people. Would you start a new business in Buffalo? Or would you just go to Chicago, New York or Philadelphia instead?