Introduction
People often ask whether our internal tools are "built with AI." The honest answer: yes, AI is everywhere in what we do, and yet most of what runs day to day is perfectly deterministic code. That is not a contradiction. It is a boundary we draw, feature by feature, with rules that have become second nature.
The question is never "AI or no AI." It is: at exactly what point in the pipeline does AI bring something a written rule cannot, and how do we keep it in check at that specific point.
Rule 1: Deterministic by default, AI by exception
If a written rule can do the job, we write the rule. It costs nothing to run, it is reproducible, testable, and it will not change its mind overnight.
Two examples from our own stack. To score our leads, we could have asked a large model to "rate this prospect from 1 to 10." Instead, we trained a logistic regression each night on our own call data: the probability shown comes with three plain-language reasons, model quality is measured and logged at every training run, and inference costs nothing. A more sophisticated model is welcome, as long as it beats that baseline on the same data.
The same logic applies to categorizing our bank transactions: a dictionary of rules and known vendors handles 95% of the work, and a category set by hand is never overwritten by the automated system. Nobody wants accounting that hallucinates.
Rule 2: AI where no written rule exists
What no dictionary can do: listen to forty minutes of a call and pull out what worked, rephrase an objection, write a coaching brief, generate a call opener from a prospect's context. That is where AI is irreplaceable, and we use it without hesitation: call analysis, coaching, content preparation, real-time suggestions during live calls.
The criterion is simple: AI handles language and judgment, deterministic code handles facts and rules. When a task mixes both, we split it.
Rule 3: AI is never alone on a critical path
An AI generation can fail: quota limits, outages, unusable output. So at Scalefast, AI always runs in "best effort" mode: a failure degrades the experience, it never blocks the action.
In practice: when we publish an article on our site, an English translation is generated automatically. If it fails, the article goes out in French anyway and we retry later. When a sales rep loads their call list, AI openers generate in the background; if they call before the openers arrive, they call without one. The opposite, a pipeline where a human waits on AI before they can work, is exactly what we refuse to build.
Rule 4: A prompt instruction is a wish, not a guarantee
This is probably the most counterintuitive lesson. We had instructed our prompts to avoid certain writing habits typical of language models. The result: the instruction was followed... most of the time. "Most of the time," in production, means no.
Since then, every important requirement exists in two places: the instruction in the prompt, and a mechanical guardrail behind it. Generated text runs through a deterministic cleanup that enforces the rule regardless. Model outputs are parsed against strict formats: anything that does not parse never enters the database, full stop. We do not negotiate with malformed output, we reject it.
Put another way: we trust AI to produce, never to check itself. Control is code.
Rule 5: Hallucination is an architecture problem, not a prompt problem
Our real-time assistant gives sales reps suggestions during live calls. The obvious risk: it invents an answer to a factual question it does not actually know. Writing "only answer if you are certain" in the prompt is not enough; that is an instruction, see Rule 4.
So we stacked three layers. First, the instruction, yes. Then a learning loop: questions that received no confident answer are extracted after the call and sent to a human, whose validated answer joins the knowledge base for future calls. Finally, for documented answers, a search through our own playbooks: the suggestion is constrained to the retrieved excerpts, and the "sourced answer" card simply does not exist if the source does not exist. Zero hallucination, not because the model is well-behaved, but because the architecture makes invention impossible at that point.
What this looks like day to day
1. By default, we write a rule. AI has to earn its place.
2. AI takes language and judgment, code takes facts and numbers.
3. An AI failure never blocks a business action.
4. Every critical requirement exists twice: in the prompt, and in a mechanical guardrail.
5. Against hallucination, we do not rely on model obedience: we build paths where invention is impossible.
The phrase we repeat internally: AI proposes, deterministic code disposes. That is less spectacular than "all AI," and that is exactly why it runs in production every single day.





