Back to selected work

Selected work / AI Client Engine

Know what was approved. Know what happened next.

I built AI Client Engine to keep research, reviewed messages, and follow-up state connected. Try one of its actual approval rules below, using fictional data.

Project
Independent product
Designed for
An operator managing research and follow-up
Focus
Provenance, review, and reliable handoffs

Try the actual approval rule

Change the message.
The approval has to follow.

An approval belongs to one version and one recipient. Edit this fictional draft to see what happens when those details change.

Example messageVersion 1
Subject

A workflow outline for your team

Approval checkRuns as you edit

Approval matches

Version 1 and its recipient match the approval record.

Current draft
Version 1
Approved draft
Version 1
Approved recipient
Alex Example

Start with “Make a sample edit,” or type directly in the message.

This example’s history

  1. Version 1 approved for Alex Example.

Fictional data. Nothing is sent, uploaded, or saved after reload.

What this proves

This interface runs a copy of AI Client Engine’s actual release-check function. The interface and message are adapted for this demonstration; the fictional recipient and prerequisite checks start satisfied. The rule checks whether the approved draft and recipient still match.

This is local decision logic. It does not demonstrate email delivery, database persistence, live AI generation, or client results. Read the technical case study.

Recent implementation work

The details behind a dependable handoff

Bounded follow-up and reply handling

Implemented limited job claims, reply classification, and a path that stops pending follow-up and creates a human handoff when a matched response arrives.

Recover the record after a send

Added stable message identities and receipt recovery for the browser sender. If Gmail returns a send receipt but the dashboard update fails, the receipt remains in the browser session for another recording attempt after reload.

These are independent-build features. The interactive example exercises the release rule with fictional inputs. It does not demonstrate live delivery, database recovery, or client results.

The business problem

Keep the details intact between steps.

Research notes, draft messages, and follow-up records answer different questions. When they live apart, it becomes harder to tell what a claim is based on, which version was released, or whether an action already happened.

I built AI Client Engine to keep those relationships explicit. Its workflow carries a record from sourced evidence through review, bounded processing, and a human reply handoff.

How the system works

A visible record of what happens next.

The system stores each transition. Readiness, release, completion, and reply handling remain distinct states.

  1. Research

    Keep factual claims, source links, and observation dates separate from a working hypothesis.

  2. Review

    Inspect the evidence and exact draft. Associate a release with its version and recipient.

  3. Process

    Claim a bounded batch, check for an existing result, and record completion or a retry.

  4. Hand off

    Stop pending follow-up when a response arrives and create a record for a person to handle.

Inside the build

Decisions that make the workflow useful.

A decision belongs to an exact version

An edited draft creates a new version. A release tied to an older draft or a different recipient cannot clear the changed message. The decision remains connected to what was actually reviewed.

Retries need a durable identity

Database leases, unique touch keys, deterministic message IDs, and provider lookups work together to reduce duplicate actions. A job records its attempts and external result so interrupted processing can be reconciled.

Stopping is part of the workflow

A matched response cancels pending follow-up and creates a handoff. Opt-outs and delivery failures also create suppression entries that later job claims check.

Built with

  • React
  • TypeScript
  • Cloudflare Workers
  • D1
  • Drizzle
  • Gmail API
Read the technical case study

Apply the same thinking

Give one important handoff a reliable process.

Bring a workflow that repeatedly loses details or needs manual chasing. We can map its inputs, review decisions, and next actions before deciding what to build.

Discuss your workflow