We built our own AI assistant — because we sell that capability.
A firm that advises on AI and custom solutions should be able to show one it runs itself. Mira is the conversational assistant on this site: it qualifies a visitor's situation and points them to the right next step, in English and French. We designed it, built it, and operate it. This is how — and what it says about the way we work.
A contact form doesn't qualify anyone.
Visitors arrive with a situation, not a service request. They don't know whether they need a system review, a specification, a funding conversation, or nothing at all. A form makes them guess. A generic chatbot would answer with brochure text. We needed something that asks two or three real questions and points somewhere useful — and that never oversells on our behalf.
Build, buy or adapt — we applied our own method to ourselves.
This is the arbitration we run for clients in the Business Solutions Studio, so we ran it on our own need. Off-the-shelf chatbot platforms were the obvious option: fast, hosted, subscription-based. We chose to build, for reasons we can state plainly.
- Buy — rejected. Subscription platforms bill per conversation or per seat, and the qualification logic lives in someone else's product. We'd be renting the thing that decides how we talk to prospects.
- Build — chosen. A single Cloudflare Worker calling a language model directly. The qualification logic, the guardrails and the tone are ours, in a file we control, deployed in minutes.
- The trade-off we accepted. No vendor dashboard, no support desk: we own the operation. For a system this size, that's a fair exchange — and exactly the arbitration we'd recommend to a client with a comparable need.
What it will never say.
The hardest part wasn't making it talk. It was making it stop. An assistant that speaks for an advisory firm can create commitments the firm never made — that's the real risk, and it's the part most AI projects underestimate.
- It never confirms funding eligibility. It can name schemes that may apply, but eligibility is assessed at scoping, and the funding body decides. It says so.
- It never quotes a price or a deadline. Those belong in a conversation with a person.
- It never promises compliance or certification. It prepares and structures; it doesn't certify.
- It never replaces a consultant's judgement — and it tells visitors that.
- Out of scope, it redirects to a human rather than improvising.
Small, owned, and privacy-first by design.
- Architecture — one Cloudflare Worker at the edge, calling a language model with a system prompt we maintain. No platform in between.
- Bilingual — English and French, with distinct instructions per language, not a translation of one into the other.
- Abuse control — per-IP rate limiting and a per-address daily quota, so usage stays tied to real conversations.
- Privacy by design — conversations aren't stored on our servers. The email requested is used for access control and, with consent, follow-up. That's stated to the visitor, in the widget.
- Cost discipline — prompt caching and a bounded response length. The system runs on infrastructure we already use.
The capability is transferable. The chatbot isn't the point.
You probably don't need an assistant that qualifies advisory prospects. But the capability underneath is the one we bring to your problem: deciding whether to build at all, designing a system that reads a situation and produces a usable output, and — most of all — bounding what it's allowed to say. That's what we do in the Business Solutions Studio, applied to your process rather than ours.
- We arbitrate build / buy / adapt before writing a line of code.
- We design the guardrails before the features.
- We build only what can be maintained by whoever owns it afterwards.
Two lessons we now apply on engagements.
- Positioning drift is real. When our own positioning changed, the assistant kept the old wording for a while — its instructions were maintained separately from the site. Any AI system that speaks for you needs its language reviewed whenever your message moves, or it quietly contradicts you.
- The last mile is where systems break. A working system and a system that reaches its users are two different things. We now treat the integration between the interface and the engine as part of the delivery, not as a detail at the end.
On what this is — and isn't
This case study describes our own system, not a client engagement — we say so rather than dressing it up as one. It carries no performance figures, because we haven't measured any we'd be willing to publish. What it documents is the design, the decisions and the constraints, which are verifiable: Mira is live on this site, and you can test the guardrails yourself.
Have a problem that might need a system like this?
Bring us the problem, not a spec. We'll tell you honestly whether to configure, buy, automate, adapt — or build.