If you force the user to go the way: City -> Job -> Speciality -> Person
the it is a simple tree structure.

The root node has a list of all cities as its children, each city has a list of jobs as...