Showing results for 
Search instead for 
Did you mean: 

Head's Up! Site maintenance this Wednesday, February 1. Disruptions expected as we migrate the forums.

Graph modeling of a career trajectory

Node Link


I would like to try to build a graph database of career trajectories that could be used to identify possible trajectories for new employees. In particular I would like to include education, internships, job types with specifics. For example:

  • Mary earned her Bachelors of Science degree in Nursing in 2018
  • Part of her training while earning that program included an internship at the Jewish General Hospital in Montreal
  • After graduating in 2021 Mary took a job at the same hospital as a nurse in the ED
  • After two years she moved to the recovery room in the same hospital
  • While working in the recovery room she started working on a M.Sc. in nursing also at McGill at night
  • One and a half years later she took a job as an ICU nurse at the McGill University Health Center
  • One and a half years later she finished her M.Sc.
  • One year later she was hired as a manager in the CCU of the Centre Hopatelier Universite Montreal

As mentioned above I would like to be able to use the database model to identify possible career and education trajectories while taking into consideration both the specifics of the degrees earned and the job experience, and the order in which they all occurred. (This of course is made a little complicated by the M.Sc. degree being earned after starting one position but before finishing another position.) Also of interest are the schools attended and the hospitals worked at, as some schools are better than others and some work locations are better than others.

asonable Is the attached diagram below a restart to creating a graph database of this type of data. The node types are schools, departments, people, Institutions and I think the edges are fairly obvious.

If yes, would I be able to take a similar but smaller graph for a new employee and then look for all graphs that started in a similar way?

Thanks . . .

Phil Troy



Graph Maven
Here is my attempt::

merge (p:Person {name: "Mary"})
merge (a:EarnedDegree {degree: "Bachelors of Science", field: "Nursing", year: 2018})
merge (b:CareerGoal {career: "Nursing"})
merge (p)-[:CAREER_GOAL]->(b)
merge (b)-[:EARNED_DEGREE]->(a)

merge (c:Hospital {hospital: "Jewish General Hospital", city: "Montreal", country: "Canada", graduationYear: 2021})
merge (a)-[:INTERNSHIP]->(c)

merge (d:Job {position: "Nurse", department: "ED", endingYear: 2023})
merge (c)-[:FIRST_JOB]->(d)
merge (d1:Job {position: "Nurse", department: "Recovery Room", shift: "Night Duty", endingYear:2024})
merge (d)-[:NEXT_MOVE]->(d1)
merge (f:HigherEducation {degree: "Masters of Science", university: "McGill", graduationYear: 2024})
merge (d)-[:HIGHER_EDUCATION]->(f)
merge (g:Job {position: "Manager", department: "CCU", hospital: "Universite Montreal"})
merge (d1)-[:NEXT_MOVE]->(g)



Thanks for responding to my question!

Are you suggesting that the data be structured as a sequence of nodes in date order, or are you suggesting that dates be treated as entities?

If you are suggesting that the data be structured as a sequence of nodes in date order, that would work very well for the type of question I asked, but would it work well for finding all the individuals that are currently in a particular type or class of positions?

I used to try out (partially) the second approach. It looks different than what you suggested but I would appreciate your feedback on it. FYI, I left out one of the positions as well as the internship, but I think they could readily be included using the same approach.

THANKS . . .

Phil Troy

Your approach is also good and is date centric. I just tested with small data. This is how it looks.

Nodes 2022
NODES 2022, Neo4j Online Education Summit

All the sessions of the conference are now available online