Sounds a good start to me.
You could have one array for each npc game object, then you could have a bool array that reflects the employment status of each npc using the same indexes as the game object array.
Id be tempted to experiment with an array on each building too that stores the npc index numbers from the main employee array, so locating your workers would be something simple like checking the index numbers on file, 0,7,16,18,24, if you wanted to look at the fourth one for example, you could then query the main npc object array, asking it to get game object at index 18, store it as the current npc of interest, then say get position of current npc of interest, you can then move the camera to that location and expect to see them.
So yes I think you're starting in a good position, it should provide a good foundation.