pgx
PGX — Lightweight Postgres for AI agents. Written in Rust. Thousands of isolated databases in one runtime. 🐘
Translation pending
Drop in your LinkedIn connections and see them arranged by what people do. Search, orbit and ask questions in plain English. Runs in your browser; nothing is uploaded. Open source.
DataJavaScript · CSSGitHub @asturkseverOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
See who you know: a 3D map of your LinkedIn connections, clustered by what people do. Runs in your browser; nothing uploaded.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
See who you know. Drop in your LinkedIn connections and they arrange
themselves by what people do: thousands of names become a few dozen clusters
you can orbit, search and question in plain English. It runs entirely in your
browser. Nothing is uploaded.
Try it → Start with
the built-in demo of 250 invented people, or drop your own export in.
LinkedIn search answers "who matches this keyword". It doesn't answer "who do
I already know in PropTech?", and that is the question that matters when you
need an introduction.Read the full README ↗See who you know. Drop in your LinkedIn connections and they arrange themselves by what people do: thousands of names become a few dozen clusters you can orbit, search and question in plain English. It runs entirely in your browser. Nothing is uploaded.
Try it → Start with the built-in demo of 250 invented people, or drop your own export in.
LinkedIn search answers "who matches this keyword". It doesn't answer "who do I already know in PropTech?", and that is the question that matters when you need an introduction.
Connections.csv on the page.
It is read and classified in that tab, and kept in that browser.| Your first session → | A ten-minute walkthrough of everything, on the demo, with screenshots. |
| Install and self-host → | Run it locally, build a single file, put your own copy on GitHub Pages, and troubleshooting. |
| How questions are answered → | How a question becomes a filter, with measured results. |
| Ask from your AI tools (MCP) → | Use your network from Claude, Cursor, VS Code and other MCP clients. |
The same engine also runs as an MCP server, so Claude, Cursor, VS Code and other AI tools can answer questions about your network in the chat, like "who do I know at Esri?" or "which three VCs do I know best?".
Claude Desktop: download
network-constellation.mcpb,
double-click it, choose your Connections.csv (not the .mcpb itself), and
start a new chat. Everything else, for example Claude Code:
claude mcp add network-constellation --scope user -- npx -y github:asturksever/network-constellation --csv /full/path/to/Connections.csv
It runs on your machine and reads only that file, but what it returns (the names, titles and employers of the people a question matches) is sent to your AI tool's provider as part of the conversation. It never returns email addresses, and returns profile links only if you ask it to. Setup for every client, and the six tools: docs/mcp.md.
Your CSV is read in the tab you dropped it into and kept in that browser's storage (IndexedDB). It is never uploaded. There is no backend, no account and no analytics. Forget in the control panel erases everything the page kept.
Without an API key, the page makes one request to anyone else: it loads the 3D
library from cdn.jsdelivr.net.
With your own Anthropic key, three things can be sent to Anthropic, and nothing else:
Never email addresses or profile links. Requests go straight from your browser
to api.anthropic.com, and the page's Content-Security-Policy lets its scripts
send data nowhere else. If a brief finds a public photo, your browser loads it
from the site that hosts it, as it would any image. Results are kept in your
browser, so nothing is paid for twice. Your key is kept only if you tick
Remember. Use a key with a spend limit.
What that costs: about $0.06 to place the employers that two or more of your connections share, in a 10,000-person network. About $0.70 to place all of them. $0.10–$0.30 for each Enrich profile.
The MCP server is separate from the page and has its own trade-off, described above and in docs/mcp.md.
npm run logos is a separate, optional build step on your own machine. It
sends domain guesses made from employer names to unavatar.io, DuckDuckGo and
Google to fetch favicons. Company names only, never people's.
src/taxonomy.js: it is
readable and editable on purpose. The same rules that classify a job title
also parse a question.Node 18 or newer. There are no dependencies, so there is nothing to install.
git clone https://github.com/asturksever/network-constellation.git
cd network-constellation
npm run dev # http://localhost:8080
npm test # the tests
npm run pages # the site as GitHub Pages serves it, on :8090
npm run bundle:demo # one self-contained HTML file with the demo, safe to share
npm run mcpb # the Claude Desktop extension, dist/network-constellation.mcpb
npm run bundle # the same with YOUR graph inside: keep it to yourself
The install guide covers deploying your own copy, other hosts, and what to do when something goes wrong.
A static page with no framework, no bundler and no dependencies. The ES modules run the same in the browser and in Node, which is how the tests run.
index.html the page, the landing and the Content-Security-Policy
src/taxonomy.js the classification rules: edit here when a field is wrong
src/classify.js headline -> role, company, seniority, field
src/csv.js CSV reading, including Excel's encoding and wrong-file detection
src/build.js rows -> the graph (shared by Node and the browser)
src/ask.js question -> filter -> ranked shortlist, no model involved
src/graph.js the 3D scene: nodes, links, colour, camera
src/palette.js generated colours for every field
src/labels.js field labels projected from 3D
src/highlight.js the marker that locks onto a found person
src/logos.js employer logos, when you have fetched them
src/dom.js the small DOM helpers every UI module shares
src/ui.js the control panel, tooltip and status line
src/overview.js the network overview at the top of the panel
src/askui.js the question box and its answer panel
src/detail.js the person and employer panels
src/upload.js the landing page, the drop and the column mapper
src/store.js IndexedDB: your graph, employer facts and research briefs
src/llm.js the optional Anthropic calls, with your key
src/enrich.js employer names -> headquarters and organisation type
src/askllm.js question -> extra filter constraints
src/research.js one person -> a sourced brief, on a button only
src/enrichui.js the Settings sheet
src/main.js boot: find a graph or show the landing, then wire it all
mcp/server.mjs the MCP server: JSON-RPC over stdio, six read-only tools
mcp/network.mjs what those tools do, over the same build and ask modules
mcp/icon.png the Claude Desktop extension's icon
scripts/ the dev server, the data build, logos and the bundler
test/ node:test, no framework
Built on 3d-force-graph.
See CONTRIBUTING.md. The most useful change is to
src/taxonomy.js: it is wrong in ways only someone with a different network
can see. If your field comes out as "Other", that is the file to fix.
MIT. See LICENSE.
Network Constellation is not affiliated with or endorsed by LinkedIn.