tl  tr
  Home | Tutorials | Articles | Videos | Products | Tools | Search
Interviews | Open Source | Tag Cloud | Follow Us | Bookmark | Contact   
 Generative AI > Graph RAG > Department and Skills Graph - Finding Experts Across Teams

Department and Skills Graph - Finding Experts Across Teams

Author: Venkata Sudhakar

ShopMax India has departments spread across multiple cities - Engineering in Bangalore, Logistics in Mumbai, Customer Support in Chennai, and Sales in Delhi and Hyderabad. Each employee brings different technical and domain skills. When a new product feature requires React and payment integration expertise, the HR and tech leads need to quickly find who across all departments has those skills. Neo4j models employees, departments, and skills as separate node types connected by relationships, making cross-department expert discovery a simple graph traversal.

The graph uses three node labels: Employee, Department, and Skill. Relationships include WORKS_IN (employee to department) and HAS_SKILL (employee to skill) with an optional proficiency property. To find experts in a skill, match all employees with a HAS_SKILL edge to the target Skill node. To find all skills in a department, traverse WORKS_IN in reverse to collect employees, then follow HAS_SKILL to aggregate skills. Neo4j returns results without needing joins because relationships are direct pointers between nodes.

The example below creates ShopMax India departments, employees, and skills, then runs two queries: find all employees with Python expertise and their departments, then find all unique skills available in the Engineering department.


It gives the following output,

Python experts across ShopMax India:
  Ravi Kumar (Logistics) - Intermediate
  Amit Verma (Engineering) - Advanced
  Priya Nair (Engineering) - Expert

Skills available in Engineering:
  Java: ['Priya Nair']
  Python: ['Priya Nair', 'Amit Verma']
  React: ['Amit Verma']

In production, add a full-text index on Skill.name to support fuzzy searches like 'Python' matching 'Python 3' or 'PySpark'. Store proficiency levels as integers (1-5) in addition to labels so you can filter by minimum level. Use relationship properties like endorsedBy or certifiedDate to track skill credibility. For ShopMax India with thousands of employees, this graph-based skills registry eliminates the need for a separate HR skills management tool and lets the tech hiring team query it directly via the Neo4j Browser or REST API.


 
  


  
bl  br