Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matching a combination of applicants to positions of a job based on their skills [closed]

Tags:

algorithm

Essentially I have a job with a fixed number of positions say 3 or 6 and N applicants.

The job requires a number of skills say skills a,b,c,...z.

Applicants have some skills the job requires but likely not all skills.

What I'm struggling to do is constructing an algorithm to match the 3 or 6 applicants such that their combined skills fulfills as many skills the job requires for all situations. Optimistically fulfilling all of them but at worst as many of them as possible

If this is similar or the same to any type of algorithm let me know I can't figure out how to research this.

I've tried thinking of a solution like adding the person who has the most skills the job requires then trying to find the person who has the most skills person 1 didn't have that the job requires. But that falls apart if the solution is a combination of people with a "medium" amount of skills.

I also thought of turning each applicants skills into binary 1 or 0 to signify if they have it but I'm struggling to turn that into something useful. I think doing this might be on the right track.

like image 234
Jaime Avatar asked Nov 10 '22 05:11

Jaime


1 Answers

This isn't a specific algorithm, but one approach for these sorts of problems is to use a constraint solver/optimizer. For example, in Java you could use OptaPlanner.

these are basically declarative systems, so instead of explaining the algorithm you have to program what the problem is. Basically describe the state space, and the constraints for what is or is not a solution. Then you run it, and it will tell you if it found a solution and what solution it found.

like image 105
Chris Pitman Avatar answered Nov 15 '22 06:11

Chris Pitman