No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A people explorer for a conference room. Each attendee gets their own FalkorDB graph, built from their public footprint. You pick someone, see their graph next to yours, and ask what you have in common. Every claim cites the nodes it came from.
You walk into a room of strangers with name tags. What they have shipped, talked about, and worked on is spread across LinkedIn, GitHub, talks, and posts. Luckdragon pulls that public footprint into one graph per person and answers questions against those graphs.
Before you walk up to someone here, luckdragon tells you who to meet, why now, what you share, and what to say, and shows you the evidence. Blue is you, amber is them, everywhere.
1. Who to meet (the home screen)
2. About this person (the person page)
3. Why you can trust it (the evidence)
Under the hood
person:<slug>) plus a room graph projected from them, so who to meet, why now, and intro paths are multi-hop Cypher./api/mcp gives Claude, Cursor, or any MCP client list_people, best_matches, brief, ask, run_cypher, and graph_summary.Graph name: person:<slug> (graphName in lib/falkor.ts). There is no shared room graph. Re-ingesting the same slug hits the same graph.
The root Person node id is always person_root. Every other id is <type-lowercase>_<first 10 hex of sha1(type + '|' + key)>, where key is the source URL when there is one, otherwise the normalized name (lib/graph/ids.ts).
Every node stores id, label, source_url, fetched_at, and confidence (0–1). Account nodes also store matched_via: luma, search, or agent.
| Node | Properties |
|---|---|
Person (exactly one, id person_root) | name, headline, avatar_url, location, luma_url |
Account | platform, handle, url, followers, matched_via |
Organization | name, kind (company / school / community), url, industry, size |
Post | platform, text, url, posted_at, likes |
Video | title, url, published_at, views, kind (talk / podcast / video) |
Repo | name, url, description, stars, language, pushed_at |
Package | registry, name, url, downloads |
Article | title, url, published_at, outlet |
Topic | name (free text from the model) |
Skill | name |
Location | name |
| Edge | From → To | Properties |
|---|---|---|
HAS_ACCOUNT | Person → Account | |
WORKS_AT / WORKED_AT | Person → Organization | title, start, end |
STUDIED_AT | Person → Organization | degree, start, end |
AUTHORED | Person → Post, Video, Repo, Package, or Article | at |
POSTED_ON | Post or Video → Account | |
ABOUT | Post, Video, Repo, or Article → Topic | |
USES | Repo → Skill | |
HAS_SKILL | Person → Skill | |
INTERESTED_IN | Person → Topic | weight |
BASED_IN | Person → Location |
Writes go through writeGraph in lib/graph/write.ts: batched MERGE on id, 80 rows at a time. Running ingest again is safe.
lib/ingest/pipeline.ts, started by npm run ingest or POST /api/ingest/[slug].
This is the beginning of the README. Read the rest at the original. Read the full README ↗