Receipts

The technical detail, in one place.

This page is for recruiters, engineers and AI reviewers who want depth. It lists what each project was built with, how it fit together and its limits, with links to the full write-up.

Read this first

Scope, plainly.

Stack by project

What the work was built with.

Each tool links to the project where I used it. None of this is a certification.

06

Web and business tools

  • Technical SEO · Google Analytics · Tag Manager · Meta PixelWebsites
  • Online booking · telehealth setupClinic

Project by project

Architecture and limits.

Keystone platform

In development

I designed and built the platform as its only engineer and operator: a multi-tenant FastAPI backend on Cloud Run, a Next.js operator console on Vercel and the pipelines between them. For the first tenant it ran as three audience-specific sites feeding one CRM, an inbound triage service (Scout), a bulk-import pipeline for distress lists (Deal Hunter) and a public-notice pipeline that put a clean lead in the CRM the day a property hit 20 days from foreclosure. The current work generalizes that into a platform with a research console and buyer matching at the center.

Stack Python 3.11 · FastAPI · Pydantic · Next.js 16 · React 19 · TypeScript · Gemini (extraction and vision) · Firestore · PostgreSQL 16 (staged) · Cloud Run · Vercel · Vercel OIDC to GCP · pytest · Vitest · Ruff · mypy

Current single-operator development over an earlier client delivery. No customer, revenue, uptime or accuracy claim. The recorded lookups are replays of retained public-record evidence, anonymized here, and not a live service.

Decisions and full receipts

Foreclosure lead alerts

Client project · 2025–2026

I identified the source and the stream: the public site where the notices were posted and the 20-day window the client cared about. A Python pipeline read each notice as unstructured text, used an LLM to extract fields into Pydantic schemas, enriched the record with property details, removed duplicates, applied qualification rules and offer ranges, held uncertain or incomplete records for a person and emailed qualified records the same day.

Stack Python · LLM extraction · Pydantic · Email workflows

Covered the client’s selected 20-day notice stream during the paid engagement. Detection and structuring of public notices; no prediction model.

Decisions and full receipts

Repair estimates from property photos

Earlier build · moving into the Keystone platform

Inbound emails and attachments were parsed into a structured record. Photos ran through vision analysis that fed a repair estimate priced from a tiered catalog with risk multipliers. The record, estimate and supporting evidence were rendered into a PDF brief and written to the CRM, with estimates flagged for operator review.

Stack Python · Structured extraction · Photo analysis · PDF and CRM workflows

Archived implementation, being folded into the Keystone platform. The documented 17-photo test verified the workflow end to end. Usable in practice is my judgment; accuracy was never measured as a percentage.

Decisions and full receipts

Finding distressed properties

Earlier build · archived

Source lists were normalized into one record shape, deduplicated and matched across sources. Deterministic signal rules and an investor-defined buy box ranked the results. Closed-sale records supported proximity-based valuation as a separate step. Results surfaced in Google Sheets, where the work already happened.

Stack Python · APIs · Google Sheets · CRM integration

Archived implementation; the original Sheet is unavailable. Counts describe data scope. Rankings came from explicit rules against a buy box, never a prediction model.

Decisions and full receipts

Three websites, one CRM

Client project · 2025–2026 · handed off

Three Next.js, React and TypeScript sites shared components and branding while serving different audiences with their own forms, FAQs and official-source links. Google Tag Manager, Google Analytics and Meta Pixel tracked forms, calls and bookings, and inquiries landed in one CRM. Supporting work connected the RentCast API to branded seller reports.

Stack Next.js and React · TypeScript · RentCast API · GTM and Meta Pixel

Delivered and handed off to the client. The engagement has ended and the sites are no longer online, so nothing here links to them. The code is private; I can walk through it on request.

Decisions and full receipts

Taking a clinic from paper to digital

Client project · 2019–2021

A website, HubSpot CRM, online booking and a HIPAA-compliant telehealth video service were connected into one flow, so a marketing contact could become a booked appointment, in person or remote, without re-entry. Handwritten event sign-ups were digitized into contacts with their recorded consent, and the opt-in list received an SMS campaign with booking links.

Stack HubSpot · Online booking · Website delivery · Opt-in SMS outreach

The $6,000+ is booked appointment value, not collected revenue. HIPAA compliance refers to the telehealth service configured for the clinic, not a certification of my own.

Decisions and full receipts

Keystone platform

Status in detail.

Step through recorded lookups to see the research console work, including the cases where it declines to give a value.

How I work with AI

Notes.

Code and contact

Want to go deeper?

The repositories are private. My GitHub profile shows recent activity, and I’m happy to walk through any project’s code on a call. You can also reach me at chris@keystonecollective.io.

Let’s talk.

Have a project or a question? I’d like to hear it.