All work⟶

Kiln product · multi-tenant Shopify agent · in pilot

ReplenishIQ — The Inventory Agent That Never Touches Your Store

A small merchant finds out about a stockout when the orders stop. The data to see it coming is already in Shopify, but nobody has time to read it every morning, and the analytics tools that do read it produce dashboards rather than decisions.

A ReplenishIQ daily brief — a critical stockout risk, a rapid demand increase, an overstock and a declining-sales item, each with the reason, the recommended action and four one-tap feedback buttons
The ReplenishIQ homepage, with a sample daily brief shown in an inbox beside the sign-up form
email a day, 3-5 decisions in it
1email a day, 3-5 decisions in it
writes to the merchant's store
0writes to the merchant's store
one-tap answers on every recommendation
4one-tap answers on every recommendation

The brief

Kiln built this one for itself: an agent that watches every variant of every store it is connected to, works out what is actually going wrong, and says so in one email a merchant can act on before the shop opens. The hard constraints were set before any code — it must never write to a merchant's store, it must cost almost nothing per store per day, and it must be able to prove whether merchants find it useful.

What we proposed, and how it ran

  1. 01

    Analytics first, the model last

    Every variant is scored by deterministic analytics — velocity, days of cover, lead time, capital tied up — and only the handful of genuinely anomalous cases are ranked and passed to a language model for explanation. Sending every SKU to a model would cost more than the product could charge and would invent problems that the arithmetic already answers.

  2. 02

    Read-only, and enforced rather than promised

    V1 holds no Shopify write scopes at all. It cannot change inventory, prices, products or orders, cannot raise a purchase order and cannot contact a customer. A merchant handing an agent access to their shop should not have to trust a paragraph in a marketing page.

  3. 03

    The email is the product, not a notification

    Each item leads with the severity and the SKU, states the reason in the merchant's own numbers, then says what to do — 'raise a PO for 240 units today, or pause paid traffic'. Tables and inline styles only, with a plain-text alternative, because Gmail and Outlook strip everything else.

  4. 04

    Four taps that make the pilot measurable

    Every recommendation carries Done, New to me, Already knew and Not right, each a signed one-tap link. That is the instrument the whole pilot rests on: it separates advice a merchant acted on from advice they already knew, which is the difference between a useful product and an expensive newsletter.

  5. 05

    Many stores, one deployment

    Each tenant is isolated, with its own schedule, its own credentials and its own kill switch — a merchant can stop the agent without stopping their brief, or the reverse. The job queue is at-least-once with a dead-letter list and idempotent handlers, so a worker dying mid-run costs a retry rather than a wrong number.

What we delivered

  • A daily brief email — severity, reason, recommended action and one-tap feedback per item
  • Six recommendation types with a full status lifecycle, from open to resolved or dismissed
  • Deterministic analytics — velocity, days of cover, lead time, overstock capital — ahead of any model call
  • An embedded Shopify app for cadence, brief timing and one-tap feedback in the admin
  • Per-tenant isolation, signed action tokens, and separate kill switches for the agent and the brief
  • A marketing site that sends a sample brief built from a merchant's real catalogue

Where it stands

In pilot. The agent runs end to end — sync, analysis, ranking, brief, delivery and feedback — and the read-only guarantee is structural rather than a policy. What the pilot is still measuring is the only question that matters: how often a merchant taps Done rather than Already knew.

Stack

FastAPI (Python 3.12)PostgreSQL + SQLAlchemy asyncAlembicRedis job queueGrok / GroqSigned action tokensShopify Admin GraphQLEmbedded Shopify app

Building something similar?

Tell us the outcome you want. We come back with scope, price and a timeline — usually within a day.