ProductReleasedActive product

ZipCode AutoFill

A HubSpot application that turns a postal code into useful location fields through a resilient, queued enrichment pipeline.

ZipCode AutoFill live homepage and product introduction
Current state
ReleasedActive product
Jack’s role
Product design, Full-stack engineering, HubSpot integration, Operations
Find it in the workshop
Systems & Maps Lab · Address console

Built because…

The real build story.

The irritation

A postal code already implies useful geographic context, yet CRM users were repeatedly looking up and entering the same location data by hand.

What I built

I turned that irritation into a maintained HubSpot product with a React interface, queued enrichment jobs, durable storage, billing, and transactional email.

The hard part

Address data is inconsistent and third-party lookups fail. The system has to retry safely, avoid duplicate work, and leave CRM records in an understandable state.

Under the casing

Proof, not decoration.

Build evidence03 items
  1. HubSpot property enrichment driven by postal-code input
  2. Queued jobs, retry behavior, persistence, billing, and email
  3. An operated product rather than an isolated CRM code snippet
  • React
  • Node.js
  • PostgreSQL
  • Redis
  • Bull
  • Google APIs
  • Stripe
  • SendGrid

Scope of work

What I owned.

  • Product design
  • Full-stack engineering
  • HubSpot integration
  • Operations

No victory-lap math

Outcome and lesson.

Where it landed

ZipCode AutoFill became a mature application with the billing, queueing, data, and communication systems required to operate beyond a one-off workflow.

What stayed

The best automation products often remove one tiny repeated action. Reliability and clear recovery are what turn that convenience into something teams trust.

This project has a physical address.

In the playable workshop, ZipCode AutoFill lives in the Systems & Maps Lab as a address console. You can inspect it without unlocking anything.

Run a sample ZIP code