⚠️ STALE — sales-engineer material from April 2026 (v1.0.0-rc.1). The numbers here are out of date (conformance was 1305/1329; it is now 1360/1363, and the RC1 ingest race and unfused-hybrid caveats it warns about are fixed). This kit pitches XERJ to enterprise buyers; it is not the guide to XERJ as an AI-agent tool. For that — how XERJ saves an AI coding agent time and tokens, with reproducible measurements — seedemo/agent-gate/SCENARIOS.mdanddocs/TOKEN_USAGE.md. Kept for reference; refresh the numbers before any external use.
This folder is a complete demo kit for sales engineers pitching XERJ to enterprises adopting AI (RAG, agents, internal copilots). Everything here is reproducible — every command was run on the demo machine while authoring; every claimed number has a receipts file behind it.
| Path | What it is | Audience |
|---|---|---|
DEMO_RUNBOOK.md |
The five-act demo flow with copy-paste commands, expected outputs, and timing | Sales engineer running the call |
pitch/PITCH.md |
Discovery questions, three pitch arcs (5/10/45 min), 12-question objection bank, closing patterns | Same SE plus account exec |
scripts/setup.sh |
Build, start, wait-for-green | Same SE, run before the call |
scripts/teardown.sh |
Graceful stop, optional --purge for a clean slate |
Same SE, run after the call |
data/ai_kb.ndjson |
40-doc enterprise-AI knowledge base with 8-dim cosine vectors (hand-authored, real) | Ingested by the runbook |
data/generate_ai_kb.py |
Generator script — extend or regenerate the corpus | SEs who want to customize per buyer |
data/extras/generate_demo_corpus.py |
Reproducible (seed=42) generator for the synthetic LLM-telemetry / agent-memory / anomaly / ingest-event corpora that drive the AI / vector / agent / anomaly / ingest dashboards | SEs running the full Xerj Console demo |
data/extras/*.ndjson |
The synthetic NDJSON corpora produced by the generator above (chat-events, vector-ops, agent-memory, anomalies, ingest-events) |
Ingested into matching xerj indices for the dashboard demos |
About the data shown in the Xerj Console dashboards. The demo blends three kinds of data, and we call out which-is-which everywhere:
- Real public data — the
logs-ssh-authindex is loaded from the logpai/loghub OpenSSH server log corpus that lives atengine/demo-data/ssh_one.ndjson(655 K real auth events; the demo ingests the first 50 K with timestamps shifted to the last 24 h so the dashboard's default time range catches them). This is real production traffic captured by the loghub project.- Hand-authored real corpus —
data/ai_kb.ndjsonis 40 enterprise-AI knowledge-base documents (RAG topics: chunking, hybrid search, agent memory, …) authored to demonstrate the kNN + dense_vector path. Real text, real 8-dim embeddings, just small.- Reproducible synthetic — the five
data/extras/*.ndjsonfiles (chat-events, vector-ops, agent-memory, anomalies, ingest-events) are generated bygenerate_demo_corpus.pywithrandom.seed(42). Distribution shapes (model mix, latency means, error rate, diurnal QPS curve) are modelled on typical enterprise LLM ops; specific values are not from any real customer. We use synthetic here because we don't ship a real LLM-traffic capture, and the AI / vector / agent dashboards need that shape to render meaningfully.Every dashboard's status pill says either
LIVE · XERJ(data fetched from a running xerj engine onlocalhost:9200) orMOCK FALLBACK(the dashboard's backend adapter returnednullbecause the live shape isn't wired yet). It is never both. There is no JS-hardcoded mock data presented as real numbers — when the pill says LIVE, every metric you see came out of an_searchcall to the engine reading data from/tmp/xerj-demo-data/segments/.
# From the repo root (the directory containing engine/Cargo.toml)
demo/scripts/setup.sh # ~3-5 min first time, ~2s thereafter
curl -s localhost:9200/_cluster/health | jq # expect "status":"green"Then open DEMO_RUNBOOK.md and start at §1.
- Build before the call. First-time
cargo build --releaseis slow. Always do asetup.shdry-run at least 30 minutes before the buyer dials in. - Reset between buyers.
demo/scripts/teardown.sh --purgethensetup.shagain — this guarantees no cross-talk between demos. - Read the gap list. §5.1 of the runbook is the gap list; §3 of the pitch is the objection bank. If you don't know both cold, don't take the call solo — pair with someone who does.
- The receipts file.
engine/reports/2026-04-25T22-50-00_xerj_vs_elasticsearch_rerun.mdis the one source-of-truth benchmark to link if a buyer wants methodology.
| Persona | Compress | Expand |
|---|---|---|
| VP Eng / CTO | Act 2 | Act 5 (pilot ask) |
| Head of AI Infra | Act 1 | Act 2 (kNN, hybrid) |
| SRE / Platform | Act 2 | Act 3.1 (cold start), Act 4 (ops APIs) |
| CISO / Compliance | Act 3 | Act 4 (durability), Act 5.1 (be candid about RBAC) |
| CFO-influenced exec | Act 2 | Act 3.4 (disk), Act 5.2 (pilot economics) |