Tips on Machine Learning Algorithms to Study for a Candidate Job Matching Algorithm

I work for a two-sided web platform that matches available consultants to short-term contracts.

We currently have a rules-based algorithm that matches a small number of features such as industry, job title, rate, and availability. For this list of consultants, they calculate a percentage concordance based on other characteristics such as skills, qualifications, certifications, years of service, and so on.

We have data on accepted and rejected candidates.

I spent a year revising mathematics, statistics and studying the basics of machine learning with Python. But I'm no closer to understanding how machine learning could be used to match consultants to assigned tasks.

I guess what I need to look at is the engineering features and a sort of classification algorithm. It would seem that a contract assignment involves an ideal candidate. We therefore match all the other candidates to the characteristics of the ideal. Is it a kind of unsupervised learning to classify candidates into groups and put forward candidates who belong to the same group?

All indications on the best way to proceed or what to study so that I can understand how to do it best.