The schedule / Entry 01 / AI operations

OpsPilot.

ProductionIn daily use since 2025 / Oracle Cloud, systemd

The AI from chapter 2. It lives in Teams, reads every document my company has ever filed, pulls live accounting and CRM data, and drafts answers in my voice. Nothing sends without my approval.

97,000lines of Python
28AI tools, one orchestrator
6,124+documents indexed
100%on a 50-query test suite
Note 1: The problemWhere the hours went

I run finance and operations at a tech company. My day is split across Teams, SharePoint, Xero, HubSpot and email. Someone asks a question in one system, the answer lives in another, and the context for why it matters is in a third. I was spending hours just pulling data, missing follow-ups because nobody tracked who said what, and scrambling for context five minutes before meetings.

"What does the contract say about payment terms?" That's a SharePoint search. "Who hasn't paid us?" That's Xero. "What deals is the sales team working on?" HubSpot. "Tell me about this customer." That needs all three. The information always existed. It was just scattered across 6,124+ files, multiple systems, and years of accumulated documents.

Debit: before

  • Dig through 6,124+ SharePoint files by hand
  • Log into Xero, HubSpot, email and calendar separately for every question
  • Miss follow-ups because nobody tracked who promised what
  • Scramble for context five minutes before a meeting

Credit: after

  • Ask a question in Teams, get an answer from any source in seconds
  • Morning briefing with everything that matters before 9am
  • Commitment tracker catches every promise, nudges when overdue
  • Pre-meeting brief lands 15 minutes before every call
Note 2: How it worksNine stages, one approval

Someone asks a question in Teams. The pipeline triages it, figures out whether it needs documents, live accounting data, CRM data, or all three at once, and returns an answer as an Adaptive Card with approve, edit and reject buttons. Live data questions hit Xero or HubSpot directly, zero LLM cost. Document questions run a hybrid search. Cross-source questions go through a single orchestrator call with 28 combined tools. A PII blocker sits in front of everything that leaves.

  1. Teams webhook receives the message inside the Bot Framework turn
  2. Dedup gate drops repeats before they cost anything
  3. Smart triage, two layers: keywords first, a fast model for the rest. Work, personal or noise
  4. Intent router picks the source: documents, Xero, HubSpot, multi-source, reconciliation or journal
  5. Retrieval: BM25 + FAISS hybrid with reciprocal rank fusion and an AI reranker for documents; direct API reads for live data
  6. Multi-draft generation in my writing style, several answer shapes to choose from
  7. Sensitivity gate: UK PII detector, a hard blocker before anything can auto-send
  8. Adaptive Card builder formats the answer with sources and figures
  9. Approve, edit or reject. A human signs every entry. That's the design, not a limitation
Test suiteScopeResult
Document search50 production queries50/50
Triage20 labelled messages20/20
Intent routing45 queries across 6 sources45/45
Conversation follow-up54 multi-turn cases54/54
The search pipeline is frozen at 100%No changes until it misses
Note 3: What it doesBeyond answering
Note 4: ExhibitExhibit A
OpsPilot dashboard showing finance and pipeline panels
OpsPilot dashboardSample data, real figures stay private
Note 5: StackCarrying values
Python 3.1297,000 lines, one codebase
Gemini 2.5 Flash / ProPrimary models: triage, drafting, reasoning
ClaudeTool-use orchestration and fallback in the LLM cascade
FAISS + BM25Hybrid retrieval with rank fusion
Microsoft GraphTeams, SharePoint, calendar, email
Bot FrameworkTeams webhook handler, aiohttp
Xero APIAccounting data, read-only by design
HubSpot APICRM and sales pipeline
React 19 + ViteDashboard, TypeScript throughout
FastAPI + SQLitePrecomputed state, no live waits
APSchedulerBriefings and scheduled jobs
Oracle CloudUbuntu VM, systemd, auto-deploy

Nobody could find anything in 6,124 files. Now the files answer back.

Other entriesSame ledger
02 Trading Bot Four AI agents that veto my trades. 62 sessions, zero impulsive trades let through. Paper trading
03 Uni-Nation Digital Website, inventory PWA and Hindi voice stock entry for the family fabric business. Live
04 WhatsApp Smart A Chrome extension that gives WhatsApp scheduling, AI replies and summaries. Prototype