Recommendation/matchmaking algorithm

Apologies for this very newbie question.

I have 2 databases. One with a list of 100+ individual profiles (name, age, country, city, passion, work info, environment, diploma, family, stats, psychological aspects etc.) and a second one with a list of 100+ city profiles (country, law, number of inhabitants, % of tech firms, % of finance firms, political representation, culture etc.). Basically I would like to build an algorithm that would be able to match an individual with some cities that correspond best to him taking into account all the profiles’ criteria.

e.g: individual X is 26yo, lives in Berlin, as an modern art passion, been raised in X religion, works in history research field has a 88% match with Rome, Italy because public universities there are looking for history researchers and because it matches with his passion for modern art and all other criteria within his profile. 77% with Paris, France, and 61% with London, UK etc.

e.g 2: another example would be that the individual has already 3 preferred choices in mind (Rome, Paris and London let’s say) and the algorithm runs the databases to give him a classification between the 3 choices.

What do you reckon? What kind of algorithm would fit best? Many thanks for your help.