It is a good idea to first shed some light on how the system's performance/accuracy will be gauged.
You said that the output of your recommender system is "what the next step in your career can be", but if the system tells me I should be a baker, how will you measure how good of a recommendation that is? Will it be based on how well it predicted my next career move? Will the system allow me to give it feedback on its recommendation, and gauge itself accordingly?
Once that is clarified, then you're in the game. You have some sort of goodness of fit function
g and you are now looking for a function
f such that
g(f(x), y) is maximized (or minimized, depending on your definition), where x is the data and y is the recommendation.
Then two questions remain: How do you encode the explanatory data
x and target variable
y? Again, it depends a lot on what the goal is, but given how unnormalized the data you have seems to be, I would indeed convert everything into a text mining problem: You'll need to map your data to a set of tokens (english words, or any other symbols), filter out patterns that you know carry little information (punctuation, numbers, etc.), and transform the bag of words to a vector (for instance, with
word2vec, mentioned by @Tom). You might want to also bucket y into categories, or on the contrary, expand it to a word vector as well, so that similar jobs can be compared.
Getting a model that predicts/estimates
y based on
x is then the easy part. You'll find plenty of off the shelf learners to try out (e.g. in
sklearn (python) or