---
name: isopleth-crm-address-cleanup
description: Turn a messy list of CRM or lead addresses into normalized records with coordinates, and an explicit review queue for anything that did not match. Uses the Isopleth MCP server (https://api.isopleth.dev/mcp).
---

# CRM Address Cleanup

Turn a messy list of CRM or lead addresses into normalized records with coordinates, and an explicit review queue for anything that did not match.

## Requirements

- The Isopleth MCP server connected at `https://api.isopleth.dev/mcp` with an API key in the `Authorization: Bearer` header (see https://isopleth.dev/docs/mcp).
- Tools used: `geocode_address`, `get_usage`.
- Cost: 1 lookup per address that resolves. Addresses that do not match are not charged.

## Steps

1. Call get_usage and confirm the list fits in the remaining lookups (one per address that resolves).
2. Call geocode_address once per address, a few at a time, within the plan's rate limit. On a rate_limited or daily_cap_reached error, wait as told rather than retrying at once.
3. Clean: the address resolved. Keep normalized_address, lat, lng and accuracy. An accuracy below 1 means the geocoder found more than one candidate, so put it in review too.
4. Review: address_not_found, PO boxes, addresses outside the US, and inputs that are only a city or ZIP. Keep timeouts and upstream errors in a separate retry list.
5. Coordinates come from the US Census geocoder, placed along the street from the house-number range, not rooftop points. Say so in the output.

## Output

A clean table (input, normalized address, lat, lng, accuracy), a review queue with the reason for each row, and a retry list.

Every value carries its source, license and attribution. Keep the source next to each value, and show the attributions if you share the results.
