Skip to content

Portfolio

Things I’ve put in front of real customers.

I’m Sahil Bains — Sole Member of Clientfront LLC. Software and websites for local businesses, plus the structure-first AI that powers Clientfront’s front desk. One honest proof instead of a logo wall.

Sahil Bains

01 · The context layer

A 1,000-file interpretable context repository, in daily production use.

It runs on ICM — Interpretable Context Methodology, a method authored by Jake Van Clief. I didn’t invent it; I run my entire operation on it and the implementation is mine. The distinction matters, so it’s stated plainly here and on every résumé I send.

1,026
files under version control
843
of them markdown notes
395
decisions in the ledger
292
distilled reference notes

Why it isn’t RAG

Retrieval-augmented generation embeds a query and returns statistically similar chunks — the retriever decides what is relevant, at request time, from a flat index. ICM decides in advance. Folder and file structure is itself the routing layer, so what an agent looks at is a design decision rather than a similarity score.

They compose rather than compete: interpretable structure curates what is eligible, and retrieval searches inside that. The failure mode I care about is a model returning a plausible average of three customers instead of the fact about the one who called — and that is a structure problem, not a search problem.

What the implementation adds

  • An append-only decision ledger — 395 entries, each with a status of locked-by-evidence or recommended, never deleted, only superseded. Agents inherit conclusions instead of re-deriving them.
  • A one-hop routing table mapping any spoken alias to the file that answers it, so context loading is a lookup rather than a scan.
  • A lesson-capture loop — 292 distilled notes, each written from a specific failure, loaded before work begins.
  • Executable guardrails. Rules that were being forgotten got moved into code that fails the build. Prohibited claims are enforced by a preflight validator, not by memory.

02 · Selected work

Things that are running.

SJ Mobile — DOT & smog inspections

Live in production

A booking platform for a mobile commercial-vehicle inspection business in Kern County. Three distinct flows — walk-in queue, scheduled appointment, and mobile dispatch to a customer yard — plus an operator dashboard and automated notifications. Next.js and Supabase on Vercel. Live at sjdotsmog.com — a named public proof that businesses have paid for this work.

sjdotsmog.com
The SJ Mobile homepage: a truck at dusk behind the headline “DOT and smog inspections. We come to you.”
Landing
The booking page offering three routes: request a mobile inspection, check in at the shop now, or book an appointment.
The three booking flows
The same site on a phone.
On a phone
The live queue tracker on a phone, showing a customer their position.
Live queue

A white-label, multi-tenant ordering platform

Shipped

Branded ordering apps with owner dashboards on a shared React Native / Expo and Next.js template, backed by Supabase and Stripe Connect for per-tenant payouts. Prince Street Pizza is the reference implementation; Salty’s BBQ, Sweet Bites & Ice and Handel’s are built on the same template. Standing up a new brand is a scoped folder swap plus a menu ingestion pass, not a rebuild.

Royal Truck Wash — local search infrastructure

Built

Local SEO, Google Business Profile management and a review-generation system for a service business that had no prior web presence. The unglamorous half of getting a local business found, which is usually worth more than a redesign.

A voice front desk with hard safety guardrails

Shipped · live line

An inbound voice agent, live and taking calls, built against a real business’s service data — pulled from both the application repository and the production database and cross-checked between them before a single prompt was written. GPT-4.1 at low temperature with Deepgram nova-3 transcription, call recording off by default for two-party consent, and a defined refusal set that routes emergencies to a person instead of answering them.

03 · Guardrails

The interesting engineering is in what the system refuses to do.

Anyone can put a model on a phone line. The work that decides whether it is safe to point at a real customer is constraint design, and it is the part I spend the most time on.

Fabrication is blocked in two places

Prices, timelines and warranty terms are refused in the system prompt and again in a post-generation filter. One layer is a preference; two independent layers is a control. A confidently invented price is the single most likely way one of these systems damages the business it answers for.

Hard refusals that escalate, not de-escalate

A defined set of situations — a gas smell, water coming through a ceiling, no cooling with an infant or an elderly person in the house — bypass the agent entirely and route to a human or to emergency services. These ship on day one or the system does not answer the phone at all.

“I don’t know” is a first-class outcome

When the record has no answer, the correct behaviour is to say so and hand off, not to produce the most probable-sounding sentence. Most of the value in a structured context layer is that it makes “I don’t know” detectable in the first place.

Compliance decided before launch, not after

Call recording is off by default because California is a two-party consent state. That is a legal constraint that changes the product design, and it belongs in the build, not in a terms-of-service page written afterwards.

And this is where the context layer compounds. Every hand-off is logged as a named gap in the record. Fill it once and it stops being a gap. The system gets more accurate because the repository does — no fine-tuning, no weights, nothing that drifts silently.

04 · How I build

I direct pipelines. I don’t hand-write the implementation.

Multi-agent development

Plan, build and review run as separate agents with separate contexts, orchestrated through Claude Code and Cursor. Work is dispatched in waves scoped to disjoint files so parallel agents cannot collide, and every wave is audited against the running product before it merges.

An automated review layer grades and classifies findings by severity, and an adversarial pass tries to refute each one before it is accepted. Agreement between agents given the same brief is not evidence — it is correlated priors — so the reviewers are given deliberately different lenses.

Operations and automation

Recurring work runs on scheduled n8n workflows — HTTP checks against production with conditional branching and alerting, built and verified against both a simulated failure and a live success path, because a monitor that has only been tested one way is not a monitor.

The same instinct applies everywhere: rules that were being forgotten got moved into a preflight validator that fails the build. Documentation is where good intentions go to be ignored.

AI & agent systems

Multi-agent orchestration (Claude Code, Cursor) · agent pipeline and hand-off design · prompt and spec engineering · evaluation and review harnesses · persistent agent memory · context routing · voice agent design (STT / LLM / TTS, interruption and escalation handling)

Product & web

Next.js · React · React Native / Expo · TypeScript · Supabase · Postgres with row-level security · Vercel · Stripe including Connect · n8n · Git

Growth

Paid acquisition · funnel and conversion optimization · lifecycle and SMS automation · local SEO · Google Business Profile · generative-engine optimization (llms.txt, structured machine-readable surfaces)

Engineering (degree)

SolidWorks · CATIA V5 · NX · MATLAB

05 · Education & background

B.S., Mechanical Engineering
California State University, Long Beach

  • December 2022 · Graduated with Honors
  • GPA 3.9 / 4.0
  • Completed the degree at 19

Mechanical engineering is an unusual route into agent systems, and a useful one: the discipline is tolerance stack-ups and failure modes — reasoning about how something breaks before it is built. That is most of what constraint design for a language model is.

Before this

  • Growth marketing — built and scaled direct-to-consumer e-commerce through paid acquisition, funnel optimization and lifecycle automation, peaking at $40K+ in monthly sales. It is why I write my own copy and why I test claims instead of asserting them.
  • Delivery and service work — self-funded the business through it. It is also the actual source of the product thesis: two years of walking into small businesses and watching the phone ring while nobody picks up.
  • Certification — Claude 101, Anthropic Academy.
  • Amateur boxer; youth boxing mentor; Sikh community service. Consistent, self-directed skill acquisition, which is the only thing that has actually predicted anything.

Hiring, or want the long version?

I’m open to roles where the job is building agent systems that have to be right in front of a real customer. Email is the fastest way to reach me and I answer them myself.