Back to Proof
industrial distributionIndustrial supply distributor (publicly traded)

Find matching parts without digging through catalogs

A distributor wins accounts by answering one question fast: here is the part number I buy from your competitor, what is your equivalent? This client's lookup tool failed three or four times out of ten. We built a Neo4j product knowledge graph holding more than 155,000 products across four catalogs, a search-score-approve workflow where consultants sign off on every match and each decision becomes permanent graph data, hybrid text, vector and image search for parts named for machines, an English-to-graph query layer, and a consultant workspace over Salesforce.

The owner & the bottleneck

Where it started.

The cross-reference question ran through an internal lookup tool that failed three or four times out of ten. What followed was the real workflow: catalog PDFs, supplier websites, a colleague who might remember, and an educated guess a customer's production line would depend on. Nearly 78,000 verified equivalences sat in a workbook that had never been queryable. Part names like HHCS 3/8-16 x 1-1/2 GR8 ZP break keyword search because every supplier abbreviates differently. And the daily pipeline around the catalog lived in Salesforce list views, record pages and the tracking spreadsheets the team had built because nobody could see it in one place.

What we built

The system we put in.

A Neo4j knowledge graph where equivalence is a relationship, not a column: the distributor's catalog, a sister division's and two national competitors' products, connected to suppliers, categories and each other, loaded through crawlers, per-source normalizers and a spec-parsing pass that promotes material, thread size and diameter to queryable properties. A match-and-approve workflow that searches, scores and lays evidence side by side; a human approves or rejects, and either decision is written into the graph with confidence, approver and timestamp so it never has to be made twice. Hybrid search blending full-text, text embeddings, product-image embeddings and spec-aware matching. A natural-language layer where Claude translates a question into a graph query, corrects its own errors and answers from real records. A consultant workspace that groups every open job by milestone with aging indicators and writes changes back to Salesforce. Started with fasteners, then expanded to nine categories.

The numbers

What changed, measured.

155,000+
Products in the knowledge graph
Four catalogs · Neo4j
78,213
Verified cross-references loaded on day one
CCSG ↔ MSC master mapping · Client workbook
80%
Cross-reference match rate in the proof of concept
Fasteners plus four categories · POC statistics dashboard
~1,650 hours
Manual research the unresolved backlog represents (est.)
15,000 unresolved SKUs × 6.5 min · Client pipeline estimate
5–8 min → 1–2 min
Review time per unresolved SKU (est.)
Manual lookup → search, score, approve · Demo estimate
3–4 in 10
Failure rate of the lookup tool it replaced
Before the build · Client interview

Resources

Keep learning

Browse all resources
Two rows of eval nodes labelled with plugin and without plugin inside a dashed sandbox boundary, one node escaping it marked 127, with a delta bracket between the rows

Claude Code Plugin Evals: The Traps the Docs Don't Mention

We ran Claude Code's new plugin eval harness on a real plugin: 8 cases, 46 agent runs, about $12. Here are the three ways the results JSON misleads you, what the eval sandbox can and cannot reach, and the five-line hook that fixes the plugin-root variable Bash never sees.

Jim DeolaSeptember 16, 2026
Freezing code was the easy part: adding determinism to generative AI workflows

The Benchmark Pointed at Itself

The first paired benchmark of our procedural-memory registry measured a deterministic share under 0.5% on one workload and about 55% on another, caught its own row-append step failing silently, and ran under two conditions that rule out any arm-versus-arm verdict. Here is what held up, what did not, and the six variables the next cohort holds fixed.

Jim DeolaAugust 26, 2026
Glowing AI subagents branch around a sealed library of skill cards beneath the headline “Your Subagents Aren’t Using Your Skills.”

Your Subagents Aren't Using Your Skills

We counted how often our AI subagents invoked skills from a several-hundred-skill library: zero of fifteen dispatches. Here is why cold-started agents never browse the library, the three injection levers that work, the spike methodology that proved the hook surface, and the log-first measurement instrument now watching every dispatch.

Jim DeolaAugust 26, 2026
A tangled improvised line resolving into a row of identical evenly spaced blocks, representing an AI system replacing per-run improvisation with a stored, repeatable procedure.

AI Agent Memory: Why Our Systems Stopped Re-Solving the Same Problems

Most AI automations re-derive the same work every run. Here is how procedural memory, storing the working code rather than a description of it, makes AI agent workflows faster, cheaper, and more predictable.

Jim DeolaAugust 23, 2026
Task cards flow through a secure local planning hub and human approval checkpoint into a scheduled daily timeline.

Rhize Tasks: A Local-First AI Task Planner for Jira and Calendar

Rhize Tasks turns Jira work into a realistic daily plan across Google Calendar and Apple Reminders, with local-first privacy and human approval controls.

Rhize Media TeamAugust 14, 2026
Left: a flat gray list of skill names. Right: a purple knowledge graph with labeled fork-of, replaces, and overlaps edges. Title: your skills need a graph, not a list.

We gave our AI agent 500 skills. It needed a graph, not a list.

Flat lists of AI agent skills fail silently as they grow. Every failure we hit was a relationship failure, so we built a generated graph, and the case for generating it came from our own code drifting within hours.

Jim DeolaAugust 9, 2026

What could this look like
in your business?

Start with a conversation.

Tell us about your operation and what you want to improve. We'll talk through whether a similar approach could help.

No pitch, no obligation.