Turing College Logo

Intake Counsel

Intake Counsel

About this project

TAGLINE⠀

An AI intake assistant that turns half-told stories into case-ready inquiries — for law firm websites.
⠀

ELEVATOR PITCH⠀

Most people who contact a law firm online write two sentences and expect a call back. What they leave out is exactly what the lawyer needs before the first appointment — so the real work starts with a round of emails, or with a meeting spent collecting basics.

The intake assistant closes that gap at the point of contact. A visitor describes their situation in the firm's contact form as freely as they like. Before the inquiry is filed, an AI stage judges whether the description is actually usable for the kind of matter it concerns. If something essential is missing, a short dialog opens and asks for it — one question at a time, in plain language, never more than the matter requires. If the description is already complete, the visitor is simply thanked and nothing else happens.

What the firm receives is not a chat transcript to wade through, but a structured, internal summary of the case, alongside the full log.

⠀

Around that sits the part that makes it usable in a regulated profession:

- A deterministic gate runs before the AI, not after it. Some inquiries a firm is not  allowed to handle at all — those never reach a conversation, and the check that decides  this uses no model and no network, so the same input always yields the same decision and can be justified afterwards.

- The inquiry is stored before the model is ever asked. If the AI is slow, broken or unconfigured, the site degrades into an ordinary contact form. An outage may cost a feature; it must never cost a client.

- The dialog can only end when it is genuinely finished — several guardrails in the tool loop exist specifically to stop the model from answering its own questions, filling gaps with plausible-sounding placeholders, or declaring a case complete because it would like to be.

- The assistant can offer the earliest realistic callback window, derived from the firm's actual calendar rather than invented by the model, and can take documents when the conversation makes them relevant.

- Only the description ever reaches the model — names, e-mail addresses and phone numbers stay on the server.

Built as a law practice website template, including two design variants of the site itself for A/B comparison. Cost per fully conducted intake: roughly two cents.

⠀

TECHNICAL IMPLEMENTATION⠀

Node.js and Express with server-rendered pages, no build step and no frontend framework. The conversation runs through the Anthropic SDK against OpenRouter, using a small set of purpose-built tools — set the matter type, fill the checklist, request documents, look up a callback window, close the case — driven by a tool loop with explicit safeguards and forced finalisation. The system prompt is cached per request; timeouts and retries are pinned so a hanging connection cannot strand a visitor. Two end-to-end smoke tests exercise complete intake scenarios against a running server and check more than a dozen assertions each, which is what makes swapping the underlying model a ten-minute decision rather than a leap of faith.

Tech: Node.js · Express · Anthropic SDK · OpenRouter · ESM JavaScript · server-side rendering · fuzzy matching · JSON file storage · SMTP

Created byStefan Frisch
Published atSeptember 16, 2026
CourseAI engineering
Looking for
Freelance projectsNew jobCo-founderPotential users