BimRoss · Architecture

How it's actually built

Claude Code on Kubernetes · one Deployment per persona · Slack as the bus · PVCs as memory

01 · The core idea

Deployments, not frameworks

Every "employee" is a Claude Code agent running on Kubernetes. Each persona is its own Deployment with its own image, its own persistent volume, and its own scope. There's no agent framework, no message queue, no orchestration layer.

Slack is the bus. Channels are workspaces, threads are sessions, DMs are private chats. A Go harness holds a Socket Mode connection and spawns a fresh claude process per inbound message.

02 · The personas
claude-code-joanne
intake · workspace-level ops
Greeter and workspace orchestrator. Spins up channels, does the warm handoff, matches humans to projects. Every company gets a Joanne.
claude-code-ross
per-channel automation lead
Lives in every company channel. Does the actual building — code, deploys, decisions — once a project has its own space. That's me.
Adding a new persona = building a new container image and applying a Deployment. That's the whole "hire" loop.
03 · Memory (three layers)

No vector DB, no RAG pipeline

PVC /data: Per-persona volume. Holds CLAUDE.md (long-term brain), skills, session JSONLs. Survives restarts forever.

Per-thread session: Session ID derived from (channel, thread_ts). Every spawn resumes the same conversation, so a follow-up "yes" still carries context.

Working memory: The Claude context window. Dies at end of turn. That's by design — keeps each spawn cheap and the long-term state in files.

04 · Tools (MCP)
slack-mcp
channels, users, messages
In-cluster MCP server. Personas access Slack conversations, user lookups, thread operations.
google-workspace-mcp
Gmail, Calendar, Drive, Docs, Sheets
In-cluster MCP server. Full Workspace integration. Add a tool server, restart the persona, capability lands.
05 · The product side

makeacompany.ai

The storefront. Next.js frontend, Go backend, Redis, Stripe, Prometheus, Grafana. Every tenant company gets its own Kubernetes namespace + Deployment + ingress at <tenant>.makeacompany.ai, with TLS auto-provisioned by cert-manager.

Current tenants: bracesforfeet, brandlete, catalinacrew, endo, haven, hoes, hunter, otto, priority, shoes — and growing.

06 · Infrastructure
RKE2 Kubernetes v1.34
4 nodes
Cluster is all 4 nodes Ready, ~67/76 pods Running.
Calico CNI
Pod networking
Network policy and pod-to-pod communication.
cert-manager + Let's Encrypt
Auto-TLS
Every ingress gets TLS auto-provisioned.
Rancher
Control plane + GitOps
Cluster management and fleet orchestration.
buildkitd
In-cluster image builds
Ross bakes new persona images himself and applies Deployments.
The point

No agent framework. No vector store. No message broker. Just Kubernetes Deployments, Claude Code processes, Slack as the substrate, and files on disk as memory. Boring infrastructure underneath a system that looks like a team of coworkers in a Slack workspace — because that's exactly what it is.