为什么我把关系型数据库换成 Neo4j 来构建 Skill-Gap Identifier 🚀
Source: Dev.to
简历作为数据的问题
简历通常是平面文件(PDF/Word)。但技能并不是平面的——它们是一个网络。如果你会 React,你很可能也会 JavaScript、JSX 和 Virtual DOM。如果你缺少 Redux,你与高级前端岗位之间的“差距”并不是页面上缺少的一个词,而是你职业图谱中缺失的一个节点。
我创建了 SkillNode,把职业路径视作它们真实的形态:知识图谱。
架构:Neo4j + Gemini AI
1. 为什么选 Neo4j?
传统的 SQL 联接在“路径寻找”(例如 找出从 Node.js 到云架构师的最短学习路径)时非常痛苦。
在 Neo4j 中,我这样建模:
- 节点(Nodes): 技能、职位角色和学习资源。
- 关系(Relationships):
REQUIRES、IS_PREREQUISITE_FOR和HAS_SKILL。
这使得能够进行闪电般的遍历,精准定位用户当前“技能簇”结束的位置以及目标角色的起点。
2. 逻辑层:Gemini AI
我使用 Gemini AI 处理非结构化的繁重工作。
- 技能提取: 解析用户的项目描述,识别 ATS 可能遗漏的“隐含”技能。
- 路径生成: 当 Neo4j 确定了差距后,Gemini 会生成个性化的学习路线图,解释基于用户现有技术栈为何需要这些特定的桥梁。
关键要点
不要让 ATS 循环定义你的价值。如果你相信项目比简历更能说明问题,你需要把技能看作网络,而不是列表。
在此查看 SkillNode: SkillNode
期待听到你的想法: 你是否曾在非社交网络应用中使用图数据库?欢迎在评论区聊聊!

