Inspiration

Every company runs on two kinds of knowledge. There's the official kind: policies, inventories, business data. It's verified, like laws carved in stone. And there's the organic kind: what employees actually say in Slack every day. Organic data is sporadic and chaotic, but it's where problems show up first, and often where their solutions are hiding.

A diamond is just a rock until it's cut. Organic problems can't be tracked by hand; even a full-time team would fall behind. So a problem that comes up organically has to be solved organically. Company Brain is the cutter that connects the two.

What it does

Company Brain watches workplace chat, detects recurring problems, finds the solution hidden in the same conversation, and checks it against company policy before recommending what to do.

The demo follows Big Bee's IT team:

  1. 🔴 Problem detected: more than 5 employees in #it-help report that the Next button on the internal expense portal does nothing. Triggerware fires, and the IT manager gets an in-app alert and an email.
  2. 🟢 Solution emerges: a few employees say it works fine for them. Nobody mentions a browser, but the brain joins the chat authors to the verified IT laptop inventory and finds the pattern: every stuck employee is on a MacBook with Safari, and everyone who got through is on Windows.
  3. 💎 Match: the problem and solution groups match on meaning (similarity 0.91), and the brain writes a report.
  4. Checked against the laws in stone: the obvious workaround, "just use Chrome," breaks Big Bee's software policy on Macs. The report warns about that risk, estimates about 143 affected employees ahead of Friday's expense deadline, and recommends the policy-approved path: a Sev-2 fix, a temporary IT-managed workaround, and a status update.

How we built it

  • Digo app-starter (NestJS, Next.js, Postgres) provides login, organizations, the notification bell and email.
  • Triggerware runs three SQL triggers on a schedule: problem threshold, solution signal, and problem/solution match. Triggerware reports only new rows, so each alert fires exactly once.
  • Custom Triggerware tables written in JavaScript let Triggerware read the app's Postgres database.
  • Vector embeddings come from transformers.js with all-MiniLM-L6-v2, running locally. Each message becomes a 384-number vector representing its meaning, and similar messages are grouped together.
  • pgvector in Postgres handles similarity search. A SQL view joins chat messages to the laptop inventory to find the browser contrast.
  • Everything is free and runs offline on one laptop, with no paid API keys.
  • Built solo in about 2 hours, pair-programming with Claude Code.

Challenges

  • Triggerware's installer had two Mac bugs. The Python runtime looked for python (Macs only have python3), and the Node runtime was missing a dependency. I worked around both by installing the missing package and writing our own Postgres connector as a Triggerware Node table.
  • Live wording beat the classifier. In the feedback demo, I typed "hive isn't working for me either," and the keyword-based problem detector didn't recognize "isn't working." The problem group stayed at 5, one short of the trigger. Understanding messy human wording is the brain's whole job, so the classifier needs to handle natural phrasing.
  • Vectors capture topic, not yes or no. "It works" and "it doesn't work" have nearly identical vectors, so the brain uses a separate classifier for problem vs. success and uses vectors only for meaning and matching.

What we're proud of

  • The brain finds a solution nobody stated, by combining organic chat with verified company data.
  • The report doesn't just repeat the crowd's workaround. It checks it against policy and warns about the risk.
  • An end-to-end working pipeline, three live Triggerware triggers and a custom connector, built in about two hours on an entirely free stack.

What we learned

  • Organic signals are most valuable when joined with verified data. Neither one alone would have found the Safari bug.
  • Triggerware's "only report what changed" model is a natural fit for alerting: select IDs, not counts, and each alert fires exactly once.
  • Always test your demo again right before your turn.

What's next

  • Swap the keyword classifier for an AI classifier (such as Gemini's free tier) so it understands any phrasing.
  • Connect real Slack instead of the simulated channel.
  • Let managers approve a solution with one click, promoting it into the company's verified knowledge.
  • Generalize beyond IT to HR questions, policy confusion and customer support trends.

Built With

  • claude
  • claudecode
  • claudecowork
  • digo
  • triggerware
Share this project:

Updates

Submission history