I think you’ll have to build a recommender system, something similar to how youtube figures out similar videos, or amazon recommends products depending on your browsing and previous purchases for example.

The idea simply is to map out the traits you want to base your selection on, maybe focus on a well-known type indicator, like the MBTI and choose these as features for your system. These traits will be the features of your system.

The next step is the learning phase. You’ll have to get a set of people who you know there personality types, and show them apps/songs/movies and ask them to rate them.

To make it more abstract, you’ll have to tag things to allow for new apps/songs/movies to be added. For example, the movie could be (action, thriller, drama, horror, …) that way you’ll map new movies to character traits from their tags depending on what your system learned before.