Advice on what Machine Learning Algorithms to study for a Job to candidate matching algorithm I have asked in a few places and this seems to get downvoted for some reason. If this is not the place to ask this then some advice on how and where to ask it would be appreciated.

I'm creating a web platform 2 sided market that matches available consultants to short term contracts.

We currently have a rules-based algorithm that matches based on a small number of features like industry, job title, rate, and availability. For that list of consultants, It then calculates a percentage match based on other features like skill set, qualifications, certifications, years of service, etc.

We have data on candidates that were accepted and candidates that were rejected.

I've spent a year revising maths, statistics, and studying basic machine learning with python. But I am no closer to understanding how machine learning could be used to match consultants to assignments.

I assume what I need to look into is feature engineering and some sort of classification algorithm. It would seem that a contract assignment would have an ideal candidate and so we are matching all other candidates to the features of the ideal. Is it some sort of unsupervised learning to classify the candidates into groups and putting forward those candidates that fall in the same group?

Does anyone have an idea on how best this would best be done?

I am looking at what to study to get closer to a solution so any advice to so that I can get to a point of understanding how this could best be done would be appreciated.
Very likely, there is too much noise in the data. Meaning there are hidden pieces of information that are dominating the decision for acceptance or not, which you don't find in the data. For example, if the client finds the consultant sympathic. Or if the client had a good day when deciding about the consultant.

I doubt that the rule system is overly complicated, so my advise is to stay with it.

If you want to get started with machine learning, look for MNIST examples (a handwritten digits dataset) and I recommend to use Keras with Tensorflow as a Backend.

(by the way: I'm a machine learning ;-) )