Middle Mann  /  Work  /  Data Warehouse and AI Agents

Your own Power BI. Your own AI workforce. Built around how you actually run.

A self-hosted data warehouse that pulls every system you use into one place, kept current with webhooks and scheduled syncs. AI agents on top of it can read the unified data and act on it: qualify leads, follow up with prospects, generate reports, watch metrics, raise alerts. Owned end to end. Custom to the operator. No per-seat license, no monthly subscription, no vendor sitting between you and your own data.

Role Designed and built end to end
Type Custom warehouse and AI agent platform
Stack Node, Express, SQLite, Claude
Because

Operating data lives in four, six, ten systems. None of them talk to each other.

  • One Warehouse
  • Real-Time Sync
  • AI Agents
  • Custom Dashboards
  • Owned Data
  • Flexible Backups
  • Hardened Server
  • Encrypted Vault
  • Audit Trail
  • No Subscriptions

Most operations run on a stack of disconnected tools. A CRM, a payments processor, an operational pipeline, an accounting package. Anyone asking a real question has to ask several systems and reconcile by hand. Power BI exists to solve exactly this, rented per seat per month, forever.

A custom warehouse pulls every record from every source into one place and exposes the unified data to whatever dashboards, reports and AI agents the operator actually needs. Shaped to the workflow, not to whatever a SaaS vendor decided was the common case. Owned, not rented.

The Build

One warehouse. Any sources. Any agents.

A Node and Express backend with better-sqlite3, Knex migrations and a node-cron scheduler. Real-time webhooks for sources that support them. Scheduled incremental syncs for everything else. AI agents on top, scoped to the work and logged on every action. Runs under a process supervisor on the operator's own server, behind a hardened reverse proxy, with TLS and access locked down at the edge.

01Warehouse. One local database aggregating every connected source, queryable from anywhere
02Sync. Webhooks plus incremental pulls, on whatever schedule the workload calls for
03Agents. AI agents on top of the warehouse, each scoped to a workflow and grounded in real data
04Reports. Custom dashboards and pipeline visualizations rendered from live data, not from a vendor's template
05Vault. Encrypted secrets behind a second factor, admin-only access, session-timed
06Backups. Scheduled backups on whatever cadence makes sense, with manifest and audit log per run
The Agents

AI agents that know what the business actually knows.

An agent reads the warehouse, decides on an action and writes the result back. Some respond in real time. Some run on a schedule. Some chat with humans, some chat with other systems, some only speak up when something needs a human eye.

This build runs three agents as a working example: a qualifier handling inbound SMS, a reactivation worker nurturing cold contacts, a follow-up worker handling warm leads with full conversation context. The next build runs whatever agents fit the work. Same engine. Different shape.

The Cockpit

Every surface the operator needs, none of the ones they don't.

A self-hosted dashboard sits in front of the warehouse. Sync status, agent health, campaign control, custom reports and the secrets vault all live behind one login. KPI dashboards render from live warehouse data and can be shaped to whatever metrics actually matter to the operator. Hosted on the operator's own server, behind a hardened reverse proxy with TLS, rate limits and locked-down firewall rules. Anything privileged sits behind a second factor.

Sync
Status
Agent
Health
Pipeline
Receivables
KPI
Dashboard
Campaign
Control
Source
Connectors
Agent
Designer
Report
Builder
Secrets
Vault
Backup
Console
Audit
Log
The Stack

Boring on the outside. Production-grade underneath.

Every choice optimizes for ownership, durability and operational sanity. SQLite holds the truth. Express moves the bytes. Cron does the work. Claude (or whatever model the operator prefers) writes the messages.

Frontend
HTML Reports Live Dashboard Pipeline Diagrams Vanilla JS Server-Rendered
Backend
Node.js Express better-sqlite3 Knex node-cron axios bcryptjs AES-256-GCM TOTP 2FA
Infrastructure
Process Supervisor Nginx Reverse Proxy TLS Firewall Rules Encrypted Vault Self-Hosted
Integrations
Anthropic Claude BYO AI Provider CRM Connectors Payments Connectors Accounting Connectors Calendar APIs Webhook Signature Verification
FAQ

Frequently asked questions.

What is a custom data warehouse?

A custom data warehouse is a single database on your own server that aggregates every source system you use (CRM, payments, accounting, operational tools) into one unified schema. Real-time webhooks and scheduled syncs keep it current. Because it lives on your infrastructure, you can query it with any dashboard, report or AI agent you want, without per-seat SaaS licensing.

How is this different from Power BI or Tableau?

Power BI and Tableau are visualization layers rented per seat per month. They connect to whatever data sources you point them at, but the dashboards, the auth and often the cached data all sit on the vendor's servers under the vendor's terms. Middle Mann's custom warehouse owns the entire chain: the unified database, the dashboards, the AI agents on top and the hardware underneath. No per-seat license. No vendor lock-in.

Which source systems can be connected?

Any system with a REST API, webhook or database export. Common connectors include CRMs (HubSpot, Salesforce, Pipedrive), payment processors (Stripe, Square, NOWPayments), accounting (Xero, QuickBooks), operational tools (Airtable, Notion, Google Sheets), calendar APIs and any system that supports outbound webhooks. New connectors are a module, not a rebuild.

What can the AI agents actually do?

AI agents read the unified warehouse and write actions back. Real-time agents react to source-system events. Scheduled agents run on a cadence (daily digests, weekly KPI reports, reactivation campaigns). Watcher agents flag anomalies before they become problems (churn risk, aging receivables). Human-in-the-loop agents draft outbound messages for a person to approve. System-to-system agents wire two source systems together with intelligence in the middle.

Which AI model powers the agents?

Anthropic Claude by default. The agent framework is provider-agnostic so any OpenAI-compatible model can be swapped in, including local models. Every agent action is logged with the model used, tokens consumed and cost.

What is the technology stack?

Backend is Node.js and Express with better-sqlite3 for the warehouse itself, Knex for migrations, node-cron for scheduling and axios for source-system calls. Security uses bcrypt password hashing, AES-256-GCM secret encryption and TOTP two-factor auth. Infrastructure is a process supervisor behind Nginx with Let's Encrypt TLS and hardened firewall rules. Everything runs on the operator's own server.

Where does the data live and who can access it?

All data lives in a single SQLite database on your server. Access is role-based with per-user permissions on every warehouse table. Privileged operations sit behind a second factor. A forensic audit log records every login, every privileged action, every credential access and every agent decision. Middle Mann has no visibility into any of it after the handoff.

The Outcome

A back office shaped to the way you actually work.

Every system pours into one warehouse. Every dashboard answers a real question. Every AI agent acts on data the operator can see and audit. What's shown here is one example. The next build looks like whatever the next operator actually does for a living. Same engine. Different shape. Owned.

AI agents, one platform
1
Source of truth, every system
0
Per-seat licenses required
Build yours

Want a platform like this for your operation?