This blog is highly personal, makes no attempt at being politically correct, will occasionaly offend your sensibility, and certainly does not represent the opinions of the people I work with or for.
A nameless algorithm for hiring
avatar

There is a simple and fun algorithm that I don't know the name of (if it ever had one). If somebody does, please let me know.

In its most general form it allows for the selection of a element from a possibly infinite totally ordered set, after having analysed a finite set of elements. Note that in the most general form, there is a situation where the process doesn't terminate, but this case would not occur in the real life situations I will refer to.

So imagine that you have to hire a sales assistant for, say, a shopping centre. There is no time constraint for the recruitment (if there was, you would just put a deadline on CV applications and only work with the CVs you have received before the deadline) and you can also assume know that lots of people will be applying (you can assume an infinite number of people).

To simplify things, let us say that you can hire people on their CVs alone. Otherwise assume that people have to hand over their CVs in person, and that they get an instant face to face interview. In which case, you can use the CV together with the result of the interview to value the application.

One method is to go as follows: You first build a pool of 7 CVs using the first 7 CVs. Then, for each new CV, referred to as "incoming CV", you do:

  • If incoming CV is better than any of the CVs in your pool, you insert incoming CV to the pool (which then has 8 elements) and then you remove the weakest CV (so the pool goes back to 7 elements).
  • Otherwise, you discard incoming CV.
Then we need an additional rule: If the last 5 incoming CVs were all discarded (meaning that none of the last 5 incoming CVs were better than the weakest CV currently in the pool), then you stop the process and hire the best CV currently in the pool.

I don't know the name of that algorithm.

Obviously the general assumption that the set is totally ordered translates to always be able to compare any two given CVs. In real life this is harder than it sounds (but not impossible). More interestingly, the size of the pool (number 7 in the above example) and the termination condition (number 5 in the above example) can be customised (they are parameters of the algorithm). There might be good methods to chose the optimal values (I think statisticians know those kind of things), but I don't know it. Also you might want to put a sort of minimal condition to be met in order to apply, because you obviously should not even put in your pool of CVs any CV that you would actually mind hiring if that one person ended up at the top of your pool once the process stops.


Archives