HR Skill Graph Tool — Neo4j + LlamaIndex + FastAPI. Query employee skills, find similar employees, analyze skill gaps, and ask natural language questions about the workforce.
Two tools with basic descriptions and visible schemas, but significant gaps in parameter documentation and output structure. search_employees has 8 optional parameters with minimal descriptions (e.g., 'Filter by skill name' is generic). query_graph has only 1 required parameter. Neither tool documents return structure or pagination. Error handling returns plain strings rather than structured responses. No parameter constraints (enums, ranges) despite many accepting free-form strings. Descriptions are adequate (100-150 chars) but lack actionable guidance on when to use each tool or how they differ.
Ask a natural language question about the employee skill graph. The question is converted to a Cypher query and executed against Neo4j. Examples: - "Who knows both Python and Docker?" - "Which employees worked at Canva and know Kubernetes?" - "What are the most common skills?" - "Find AWS-certified engineers in Melbourne"
Search employees in the HR skill graph. Filter by skill, name, department, company, certification, or city. Use similar_to to find employees with overlapping skills. Use skill_gap_with + name to see what skills one employee lacks vs another. Examples: - skill="Python" → employees who know Python - company="Canva" → employees who worked at Canva - similar_to="Daniel Chen" → employees with similar skills - name="Daniel Chen", skill_gap_with="Oliver Thompson" → skills Daniel lacks
Parameter descriptions are generic and lack actionable constraints. 'Filter by skill name' does not explain format, case sensitivity, or whether partial matches work. 'Filter by department' omits valid department values. LLMs cannot infer valid inputs.
Output schema not documented. search_employees returns formatted text; query_graph returns question/cypher/answer. LLMs cannot plan downstream calls or extract structured data without knowing response fields.
Error handling returns plain strings ('Error: Cannot connect to API server...') instead of structured error responses with recovery guidance. LLMs cannot distinguish retryable vs fatal errors or know what action to take next.
search_employees has 8 optional parameters with interdependencies (e.g., skill_gap_with requires name) that are not documented in parameter descriptions. LLMs will pass invalid combinations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No pagination support documented. search_employees may return many results; no limit, offset, or cursor parameters. Large result sets will blow context windows.