Bitten by the Vibe
← Demo library

Tagatron

Every email, tagged

An AI agent that reads every inbound support email, tags it with the reason the customer got in touch, and hands anything it is not sure about to a person.

Customer opsUsed every dayBuilt with Claude Code

The problem

The support team tagged every email by hand, and tags often got missed before a conversation was archived. We used those tags to decide what to fix in the product, so the gaps meant we were prioritising from patchy data.

What it does

  • Reads each new conversation as soon as it comes into the shared inbox.
  • Picks the single best tag, with a confidence score and a one-line reason.
  • Applies the tag when it is confident, and sends the rest to a review queue.
  • Learns from every correction the team makes, with no code changes.

Why I built it this way

  • Shadow mode first. It logged what it would have done and changed nothing until we had checked its accuracy on a pilot inbox.
  • It never guesses. Below a confidence threshold (starting at 0.85) a person decides.
  • One tag per email, so accuracy was simple to measure.
  • Personal data removed before anything was stored, in a UK/EU data region.
  • Every decision logged with its reason, and a switch to pause it at any time.

What changed

40% → 80%accuracy, as it learned from the team's corrections
8 hoursa week of the support leads' time saved
Every emailtagged, so contact data was reliable enough to set product priorities

Screens

Mock-ups with made-up sample data.

Review queue. Anything below the confidence threshold comes here with the agent's best guess and its reason. One click accepts or corrects it, and that answer becomes a training example.
Dashboard. The correction rate (how often a person overrode the agent) was the headline accuracy measure, tracked week by week as the agent learned.
Settings. The controls that made it safe to switch on: shadow mode, the threshold, which inboxes it watches, and a pause switch.