← Home

AI Builds · A Closer Look

Tiffany Johnson

A deeper look at the AI systems I design and build, from live products to work in progress. I take each one end to end: find the real problem, design the solution across data, model, and product, and ship it with reliability and human oversight built in.

Selected AI systems

Storefront-to-marketplace content app

Turns a product page into enhanced marketplace content

Live
What it does

An installable storefront app that converts an existing product page into enhanced, module-based marketplace content in seconds, generating the copy and the image direction for each content module.

Highlights
  • Published and running as an installable app
  • Maps a direct-to-consumer product page onto the marketplace's content-module formats
  • Generates both the copy and per-module image direction a seller can act on
How it works

It reads the storefront product page, maps its structure onto the target marketplace's content modules, and generates module-ready copy and layout guidance. Built as an embedded app so it installs and runs inside the seller's existing dashboard.

Node.jsStorefront app APIsLLM

AI listing optimizer for a major marketplace

Search-ready product copy from live marketplace data

Live
What it does

Pulls a product's live listing and its top competitors, extracts the keywords that actually drive rank, and generates optimized titles, bullet points, descriptions, and backend search terms built to rank higher and convert better.

Highlights
  • Competitor analysis: fetches and compares top listings to find keyword gaps
  • Structured output mapped directly to each listing field
  • A full product around it: accounts, usage limits, billing, and an admin dashboard with per-operation cost tracking
How it works

It grounds the model in real marketplace data pulled through a product-data API rather than generating from nothing, extracts high-value keywords, and forces the output into a strict, field-mapped schema. Generation quality is evaluated, not assumed, which is what makes the output safe to hand to a seller.

React Router (TypeScript)PrismaPostgreSQLLLMProduct-data APIStripe

AI retailer-outreach tool

Personalized wholesale outreach, human-reviewed and fully tracked

Live
What it does

Discovers independent retailers, scores how well each fits a brand, drafts outreach tailored to that specific store, and tracks the entire funnel, opens, clicks, replies, and conversions, with a person approving every message before it sends.

Highlights
  • Retailer discovery plus AI fit-scoring, then personalized drafting
  • A pipeline board and analytics dashboard for the whole outreach funnel
  • Deliverability guards: invalid-domain checks, bounce and complaint suppression, rate-limited sends, one-click unsubscribe
  • Anti-abuse engagement gates and per-plan rate limits
  • A feedback loop that sharpens the AI retailer fit-scoring over time from reviewer input
How it works

Retailer discovery runs through a places API, contact details are enriched, and the model scores fit and drafts outreach under explicit guardrails. Nothing sends autonomously, a deliberate choice for outreach that reaches real people, and deliverability is protected end to end so the sending stays clean.

In development

Three enhancements are underway: conversational, retrieval-augmented search, so a user can ask plain-English questions and get cited answers pulled from their own retailers, emails, and replies, with structured questions routed to SQL and open-ended ones to semantic vector search; an alternate consignment-offer pitch that kicks in when a store is a good consignment fit (the detection is already live); and in-app capture of retailer replies so a managed account can read and act on responses inside the tool.

Next.jsSupabasePostgreSQLpgvectorLLMEmbeddingsRAGGoogle PlacesEnrichment APIStripe

AI morning-brief assistant for busy owners

Turns overnight email into one prioritized page each morning

In daily use
What it does

Connects to an owner's mailboxes and, every morning, produces a single page: the overnight messages that genuinely need a person, the commitments they have already made, and what is due today, with one recommended focus to start on. The mail is the input; the brief is the output, and it points at what deserves attention rather than acting on it.

Highlights
  • A generated morning brief that separates the messages that need a person from the noise, produced overnight before the day starts
  • A running to-do list pulled from messages, with due and overdue tracking and a single daily focus pick
  • Two-stage triage: it classifies every message, then runs a deeper pass on mail from known contacts to extract requests and commitments
  • An ask-your-inbox feature that answers plain-English questions from the owner's own mail, with citations to the source (retrieval-augmented)
  • Read-only access by design, through the standard Google or Microsoft sign-in and revocable in one click, with no calendar or send permissions
How it works

A single timezone-aware loop checks each account's local clock and job schedule, so every tenant's work fires on its own time without a separate scheduler service. The model pipeline treats output as untrusted: each call has a strict contract, a defensive parser, and per-field validation, so a bad response is coerced to a safe default instead of crashing a worker. User-defined rules run before the model to cut cost and latency, every AI-derived record is keyed to its source so re-runs never duplicate, and each tenant, provider, and message is isolated so one failure cannot take down a run.

Status

Built and in daily use across my own applications, kept as a working tool rather than released as a product, so the effort stays on reliability for real, everyday use. The overnight read-and-brief pipeline and per-tenant scheduling are in use; the ask-your-inbox retrieval and daily focus ranking continue to be refined.

TypeScriptNext.jsPostgreSQLpgvectorLLMEmbeddingsRAGOAuthGmail / OutlookDocker

Price-parity and margin monitor for wholesale sellers

Keeps a seller's online and wholesale prices aligned, automatically

In development
What it does

An installable storefront app that watches a seller's product prices across their online store and a wholesale marketplace, and flags any price that drifts out of the marketplace's pricing rules or falls below a healthy margin, so the seller never breaks a platform's pricing policy or quietly loses money to a mismatch.

Highlights
  • Continuously compares store prices against wholesale and MSRP rules and surfaces any drift
  • Margin-aware: flags prices that dip below a configurable cost-plus floor
  • Installs into the seller's existing store dashboard and stays in sync automatically
  • Alerts the seller to act rather than rewriting prices for them, so a human stays in control of pricing
How it works

It connects through an embedded storefront app, listens for product and price changes over webhooks, and evaluates each change against the marketplace's parity rules and a configurable margin floor. It surfaces violations for the seller to resolve instead of silently changing prices, keeping oversight with the person who owns the pricing.

In development

Two additions are planned next: a margin calculator that models true landed margin per product, and a guided assistant that helps a seller migrate wholesale accounts onto a direct relationship without breaking price parity along the way.

Node.jsStorefront app APIsWebhooksPostgreSQL

Renewals and upkeep monitor for small businesses

Catches licenses, renewals, and silent job failures before they lapse

In development
What it does

Keeps one list of everything a business quietly depends on that can expire or stop, licenses, insurance, registrations, inspections, vendor contracts, equipment service intervals, domains and certificates, and warns the owner before any of it lapses. For technical operators it also watches scheduled jobs and websites, catching the ones that fail silently with no error to trigger on.

Highlights
  • A single countdown of every recurring obligation that reorders itself as due dates approach
  • Early, escalating reminders before a lapse instead of a scramble after it
  • Heartbeat monitoring for automated jobs: each job checks in at a private URL when it finishes, and the absence of a check-in, not an error, is what raises the alarm
  • Handles both fixed expirations and recurring cycles, and keeps a record of what was done and when
How it works

Each obligation is stored with its cadence and lead time; a scheduled per-account check reorders the list and fires escalating reminders through the owner's channel. Automated jobs report in over a unique inbound URL, so a missed check-in is treated as a failure and surfaced first, alongside anything overdue. Nothing is installed on the systems being watched and no credentials are taken.

AI and what's next

Already in daily use monitoring my own applications, sites, automated jobs, and recurring maintenance, and not yet opened to outside users. An AI extraction step is built: it reads a renewal notice and pulls out the item, its expiry date, and terms, with the date roll-forward handled in code and accuracy checked against adversarial samples. It runs offline on purpose, so the always-on service keeps no model dependency and stays cheap to operate. The next step is feeding it automatically from a user's email and uploaded documents, so the list builds itself instead of being entered by hand.

TypeScriptNext.jsPostgreSQLScheduled jobsWebhooksEmail alertsLLMDocument parsingOAuth