Build and visualize a candidate knowledge graph backed by Neo4j + GDS with sentence-transformer embeddings and clean community detection. See similary between candidates and generated ideal profiles based on job opening descriptions. Built as an R&D project for candidate matching and recruitment at Lovable 6-7th September.
image.png
- Python 3.11+
- uv (
pip install uv) - otherwise can use apt or package manager - Docker with Docker Compose (recommended, for Neo4j + GDS)
uv venv
source .venv/bin/activate
uv pip install -r requirements.txtuv run langflow run
python src/scrape/main.pypython src/scrape/analysis.pyNote: sometimes the agent tweaks out and mismatches csv headers, drop rows that cause problems.
python src/graph/setup_neo4j.pypython src/graph/test_graph.pyOutputs:
candidate_knowledge_graph_gds.html(interactive graph)- Data written to Neo4j (Browser at
http://localhost:7474)
- Fewer, larger groups: lower edge
threshold, raisetop_k, or settarget=3/4for Leiden.
NEO4J_URI,NEO4J_USER,NEO4J_PASSWORD(see.envcreated by setup)
- Add column type and classes "Human" or "Generated".
- (OPTIONAL) Unfuck pipeline agent -> graph.
- Script to find people similar to imaginary engineers.