SAS founded in 2013 in Paris | http://linkurio.us | @linkurious
HR analytics and graphs : job recommendations.
Introduction.
CMO
>5 years in consulting
MSc Political sciences and Competitive
Intelligence
JeanVilledieu
SébastienHeymann
RomainYon
CEO
Gephi Founder
Phd in Computer Science and Complex
Systems
CTO
Engineer (Microsoft, Spotify)
Machine Learning at Georgia Tech
Linkurious is a French startup founded in 2013.
Father Of
Father Of
Siblings
What is a graph ?
This is a graph.
Father Of
Father Of
Siblings
This is a node
This is a relationship
What is a graph ? / Nodes & relationshipsWhat is a graph : nodes and relationships.
A graph is a set of nodes linked by relationships.
Human resources and recruitment.
How can HR departments match jobs and candidates?
Making the right recommendation.
Making a good recommendation is hard.
Why some companies do it better than others?
Graphs can help.
Graphs are great for recommendations.
The graph of human resources.
Python Programming(Competency)
Financial Management(Competency)
James(Person)
Paul(Person)
HAS_COMPETENCY
WORKS_FOR WORKED_FORAcme(Company)
General Management(Competency)
HAS_COMPETENCY
HAS_COMPETENCY HAS_COMPETENCY
FRIEND_OF
People, skills, companies.
Graph databases are great to store this information.
Let’s try to play matchmaker with Neo4j!
Download the Neo4j dataset used for this presentation.
Find top 5 competencies at “Siliconfind”.
Step 1 : What are the competencies in my company?
//What kinds of competencies are in my company
match (n:Person)-[:HAS_COMPETENCY]->(co:Competency), (n)–>(cp:Company
{name:’Siliconfind’})
return co.name as competencies, count(n) as number_of_experts
order by count(n) desc
limit 5
This query is written with Cypher the Neo4j query language. It returns us 25 results.
A data problem.
The top 5 competencies at “Siliconfind”.
competencies number of experts
People Management 13
General Management 9
Carpenter 8
Java Programming 7
Scala Programming 6
Let’s look within the network of our employees for a recruit.
Step 1 : What are the competencies in my company?
//Find friends of our employees that have a skill in java and python programming
match (c:Company {name:’Siliconfind’})<-[WORKS_FOR]-(p1:Person)-[:
FRIEND_OF]-(p2:Person) with p2 match (p2)-[:HAS_COMPETENCY]->(c2:
Competency {name:”Java Programming”}), (p2)-[:HAS_COMPETENCY]->(c3:
Competency {name:”Python Programming”})
return distinct p2.first_name as first_name, p2.last_name as last_name
We are looking for friends of Siliconfind’s employees who know Java and Python.
A data problem.
Potential matches within our company’s social network.
first_name last_name
Damon Cruz
Gina Jenkins
Rick Carpenter
Whitney Ryan
//Find a perfect candidate for our software engineer position
match (o:Job {name:’Software Engineer’})-[:IS_REQUIRED]->req<-[:
HAS_COMPETENCY]-p
with o, p, count(req) as c
where length(o-[:IS_REQUIRED]-()) = c
return p, c
We are looking for someone who matches the competencies required by the job ad.
Matching a job ad and people.
Step 1 : What are the competencies in my company?
A data problem.
We have 3 perfect matches.
p c
(18:Person {first_name:"Alberto", gender:"Male", id:19, last_name:"Boone"}) 3
(98:Person {first_name:"Tommie", gender:"Male", id:99, last_name:"Holland"}) 3
(53:Person {first_name:"Jaime", gender:"Male", id:54, last_name:"Rogers"}) 3
Some of the domains in which our customers use graphs.
People, objects, movies, restaurants, music…
Suggest new contacts, help discover new music
Antennas, servers, phones, people…
Diminish network outages
Supplier, roads, warehouses, products…
Diminish transportation cost, optimize delivery
Supply chains Social networks Communications
Differents domains where graphs are important.
GraphGist : http://gist.neo4j.org/?94e1a2e66a34bd2a5ee0
Blog post on HR analytics : http://linkurio.us/hr-analytics-graphs-match-person-job/
Sample dataset : https://www.dropbox.com/s/5y6581iqcsvwtpq/hr_analytics.zip?dl=0
Additional resources.