Analysing a CV with machine learning What would you use to categorise or rank a Resume/CV with machine learning?
I would like to make particular CVs stand out to recruiters.
 A: I recommend you use MLLib from Spark if you have a lot of data.
My first point would be that it's not possible to have a single scorer, rather one scorer per Job Spec.  So the task is to classify a CV X with respect to a Job Spec Y.
Having personally had to sift through 100s of CVs for several positions over the years I too have thought quite a bit about what kind of feature extraction to use.  Note that all the following is highly focused to tech and data science type positions.
Parsing the Job Spec:


*

*Extract the occurrence of various keywords/skills/techs mentioned in the Job Spec

*Rank the keywords according to whether they occur under "required", "desirable", etc, and then further ranks them based on their order in the Job Spec


Parsing the CV:


*

*Chop CV into units - 1 unit is either a qualification, or a previous industry role.

*Perform similar feature extraction as we did on the Job Spec, perform this on the 'skills section' of the CV, and again for each unit.

*Use the time-series analysis to rank how much a candidate has actually used the skills.  Score industry experience much more highly than qualifications (this is quite a tech specific assumption)

*Use pre existing tools to grade the quality of the grammar and spelling (bad grammar IME usually indicates bad English or communication skills, which usually indicates they can't function in a team)

*Grades at uni, if not stated, assume a 2:1 or lower - if you get a 1st, you write it down. Similarly with masters degress (if they don't say they got a distinction, then they didn't).

*Other meta analysis like length of description of a unit with respect to length of time at the place of employment.  If a CV is overly long, then this indicates an inability to be concise nor communicate well.  Short CVs usually mean the person is better at communicating.

*Time series analysis to detect job hopping (so unreliability), but this will vary massively from area to area.  In tech it's not uncommon to reward job hopping as it will indicate a wide range of skills and a high level of curiosity.


You can then feed all these features into a model, most of which will be categorical. If your lucky, you might have access to a database of previous CVs and Job Specs, and data indicating which CV was successful. In which case you have your training set.  Use the training set to teach the model the predictive power of each of the features.
A: Since scoring a CV with some precision is probably not an easy task due to the inherent noise (even for human beings, could you really give a precise score to all your peers?), I would cast it to a binary classification task (or 3, or 5...).
A very important part here is to chose your attributes, for instance: 


*

*University: some score given to the university.

*Years of experience.

*Number of references given.

*Average number of years per company.


Then, since nowadays most companies have some system to evaluate their employees, I would use these evaluations as labels.
Then, you would have a dataset where every row would be like:

[attributes of employee CV], evaluation after 1 year.

The most important part would be to chose/find good predictive attributes.
As for the algorithm, I would start with regressions.
PS: Ethical issues (a lot) aside. I don't think that machine learning can beat a good interviewer here, unless you are hiring/interviewing/searching lots of people per day. At most, you could use it as a first filter to find good CV, but you will have lots of false negatives.
A: Building a parser would be your biggest problem, which I will not address in this answer, but there is an interesting way to find features that matter.
If you have access to CVs of employees who have turned out to be good hires and on the flip side, hires that weren't so good you can build a training set out of it.
Extract a standard list of features like years of experience, presence of various keywords etc.
Do feature selection among them based on experiential evidence from your training set.
Use this model to then score a larger pool.
You will end up with large number of false negatives, but you will tend to get a higher concentration of look-alikes of those who are good hires.
All bets however are off if these look alikes will actually function on the job as expected after hiring, but I'm pretty sure this method will work as a good first level filter.
A: The first thing I'd do is ask recruiters and if possible hiring managers what's in a good resume. I have a feeling that it's going to be a "the whole is greater than the sum of the parts" thing. I have a feeling that interactions are very important. I also suspect that recruiters put more weight on keywords.
