Inspiration

Healthcare teams keep patient data in tons of tables: patients, claims, billing, clinical records. Nobody has time to check every table for problems. Bad data slips through all the time — missing owners, missing descriptions, and worse: SSNs, dates of birth, and other private patient info sitting in open datasets with no one watching.

We wanted an agent that could do that checking for us — and write the fixes back, not just complain. DataHub's Agent Context Kit gave us a clean way to read schemas, lineage, and metadata, and then actually update the catalog. That read-and-write loop is the whole idea: find the problem, fix it, and leave DataHub in a better state.

What it does

Pixels is an AI data steward for healthcare datasets in DataHub.

Give it a search like "healthcare patient" and it:

Discovers datasets in DataHub matching your search Inspects each one: schema fields, lineage, owners, tags, glossary terms, and even the SQL queries people run against it Assesses it for problems — PHI/PII fields (SSN, DOB, MRN), data-quality issues (negative billing amounts, impossible ages), and governance gaps (missing owners, descriptions, tags) Acts by writing the fixes back into DataHub: tags like PHI, glossary links, governance notes in the description, and assigning owners Reports everything in a clear Markdown report you can read on screen or in chat You can drive it three ways: the web console, a chat interface, or a command line for bulk runs.

How we built it

Frontend: React + TanStack Start web app with sign in / sign up (Convex Auth) Backend: Python + FastAPI server that runs a LangGraph agent DataHub: DataHub running locally via Docker Quickstart, loaded with a synthetic healthcare sample dataset DataHub integration: the DataHub Agent Context Kit (datahub-agent-context) for search, schema, lineage, ownership, tags, glossary terms, and descriptions — both read and write Sample data: a generator script that produces realistic healthcare metadata with problems planted on purpose (SSN fields, negative billing, unowned datasets) so the agent always has something real to find The agent works with or without an LLM key — the detection rules are deterministic, and an optional LLM adds friendly chat answers and summaries.

Challenges we ran into

Multi-word searches returned nothing. DataHub search matches all words, so "healthcare patient" found zero datasets even though "patient" alone found plenty. We added a fallback that searches each word individually and combines the results. Writing back was harder than reading. DataHub only lets you add tags and owners that already exist. We planned actions with tags and teams that weren't in the sample catalog, and every write back failed. We fixed it by making the sample data actually create those tags and team entities, so the agent's actions validate. Convincing write-backs that actually work. Making the agent not just detect issues but successfully assign owners and add tags required aligning the whole pipeline — sample data, detection rules, and action planning — so everything it tries to do, DataHub accepts. Getting three systems to talk to each other — web app, Python agent, and DataHub — each with its own port and config, and making the whole thing easy to set up from scratch.

Accomplishments that we're proud of

A working end-to-end loop: **discover → assess → **fix(back into DataHub) → report A real agent that writes knowledge back to the catalog instead of just reading metadata Deterministic detection rules that work even without an LLM, plus optional AI chat Sample healthcare data that demonstrates privacy and quality problems comparable to real practitioners' pain A repo with clear setup instructions that runs from a clean clone

What we learned

Agent Context Kit makes both reads and writes to DataHub straightforward — but DataHub is strict about what you can change, and you have to align your data model (tags, owners, terms) with what actually exists in the catalog Search semantics matter: a tool that "mostly works" fails hard at the edges, and graceful fallbacks make the difference between a demo and something dependable A three-tier app (UI + agent + catalog) is a lot of moving parts — but clear scripts and env files make onboarding painless

What's next for Pixels

Package as reusable skills so other teams can drop the checks into their own catalogs More checks: FHIR field validation, duplicate/lookup consistency, PII at row-level vs field-level Broader actions: glossary creation, column-level descriptions, suggested data-quality tests Team workflows: approval-before-write and a review trail of every change the agent makes

Built With

Share this project:

Updates