An intelligence engine that watches non-Redline dealer lots near every Redline store, measures their missing-photo problem the same way Redline measures its own work, and surfaces a ranked list of the prospects most worth a sales conversation. The valuable, defensible part is the targeting. The risky part is the automated sending, contact-scraping, and list-buying — so we build the first and gate the second behind a careful, compliant process.
Redline knows exactly what a neglected lot looks like — it just has no system that points that knowledge at prospective customers.
Redline's whole business is fixing the thing this project hunts for: cars on a dealer lot with missing photos or a badly framed first photo. Every Merchandising Specialist visit exists because a lot's online inventory wasn't shot, or wasn't shot well. Redline is the expert on this exact pain — and a non-Redline dealership with a rising missing-photo percentage is, almost by definition, a dealership that needs Redline.
The trouble is that finding those dealerships is currently nobody's full-time job, and it would be a miserable one if it were. To do it by hand you'd have to: find the dealers near each Redline store, pull up each one's online inventory, count how many cars have no photos, eyeball the first photos, do that again next week to see if it's getting worse, figure out who to contact, and keep a running list of who's worth chasing. Across the footprint that's thousands of lots — it never happens consistently, so sales outreach runs on gut feel and referrals instead of evidence.
This page is deliberately split in two. Layer A — the intelligence engine — is high value, defensible, and worth building well. Layer B — automated cold email, contact-scraping, and purchased lists — carries real legal and deliverability exposure, and we are not going to pretend otherwise. The plan builds A first and treats B as a gated, reviewed, low-volume process — or hands hot leads to a human to contact.
Two layers. The first is an analytics product. The second is a regulated sending process that must never run ahead of the first.
This layer never sends anything to anyone outside Redline. It produces one thing: a trustworthy, ranked picture of which nearby dealers have a merchandising problem and how bad it's getting. That output is valuable on its own — it's a sales-targeting dashboard for Ryan and Lisa even if no automated email is ever sent.
This is where it stops being an analytics project and becomes regulated commercial email, web-contact harvesting, and possibly buying third-party email lists. None of that is free of risk, and the plan treats it accordingly. See the Risks section for the full, candid breakdown — but the short version of how we'd do it responsibly:
┌──────────── LAYER A · INTELLIGENCE (safe, high value) ────────────┐
[ Redline store addresses ]
│ geocode
▼
[ 45-min drive-time geofence ] ──► list of in-radius dealer domains
│
▼
[ Inventory scraper ] ──► per-dealer VIN list + photo counts + first-photo images
│ (respect robots.txt / terms; throttled)
▼
[ Analyzer ] missing-photo % + first-photo framing (reuse vision model)
│ write weekly snapshot
▼
[ Time series / CRM-DB ] ──► trigger engine: % > 30 OR rising 3 wks
│ cluster: 5+ dealers / 3 wks / 1 hr
▼
[ PRIORITY LIST ] scored, ranked, persistent ──► [ Weekly report → Ryan & Lisa ]
│ (+ in-person visit suggestions)
└───────────────────────────────────────────────────────────────────────┘
│ hot prospect
════════════════════════ COMPLIANCE GATE ════════════════════════
▼
┌──────────── LAYER B · OUTREACH (regulated, gated) ───────────┐
[ Meet-The-Staff enrichment ] ──► name + email ── or ──► [ purchase queue ⚠ human review ]
│
▼
DEFAULT: hand lead to a human salesperson ──► personal email / call
│
OPTIONAL (deliberately enabled): automated send
▼
[ Email platform ] warmed domain · CAN-SPAM headers · physical address
│ one-click unsubscribe · permanent suppression list
▼
[ Open / engagement tracking ] ──► back into weekly report
└──────────────────────────────────────────────────────────────┘
There's no magic here, and it's worth being plain about what each piece actually is:
Scheduled scraping + analysis on AWS, a CRM/DB of record for the priority list, and a deliberately separate, gated email subsystem.
The work is fundamentally weekly and batch, not real-time, so it's a scheduled pipeline (EventBridge → Step Functions) rather than a standing service. Scraping runs on Fargate where a headless browser is needed and Lambda where simple HTTP fetches suffice, all throttled and polite. A relational store (Postgres) is the right home for the CRM-DB because the priority list, the weekly time series, dealer↔Redline-store distances, and contact records are all relational and queried as a set.
The email subsystem is drawn as a separate box behind a gate on purpose. It should be operationally and architecturally distinct from the intelligence pipeline so that (a) Layer A can ship and deliver value with Layer B switched entirely off, and (b) sending uses a dedicated, warmed domain isolated from Redline's transactional/internal email. For sending we'd lean toward an established email platform with built-in suppression, unsubscribe handling, and open tracking rather than rolling our own on raw SES — the compliance machinery is worth not reinventing.
Build the whole intelligence engine and prove its value before writing a single line of the sending layer. The compliance review is a hard gate, not a formality.
Confirm Redline store addresses, the radius definition (drive-time vs miles), and the priority-list scoring Ryan & Lisa actually want. Critically: get counsel's read on Layer B — cold-email under CAN-SPAM and any relevant state laws, terms-of-service exposure for scraping contacts, and a firm position on whether purchased lists are allowed at all. The output of Phase 0 includes a go/no-go on each piece of Layer B.
Geocode Redline stores, build the 45-minute drive-time geofence, and discover the in-radius dealer universe with their public inventory URLs. Deliverable: a map/list of every serviceable prospect dealer near each store.
The real engineering. Build resilient, throttled scrapers that read public inventory and compute missing-photo % per dealer per week, plus first-photo framing via the existing vision model. Honest note: dealer sites vary wildly, so this is the phase that becomes ongoing maintenance, not one-and-done.
Weekly snapshots into the CRM-DB, the 30%/3-week-rise trigger logic, the 5-dealers/3-weeks/1-hour cluster detector, and the scored, persistent priority list. This is the core product.
Automated weekly digest: new triggered prospects, priority-list movers, suggested in-person visit clusters. At this point Layer A is fully delivering value with zero outbound email sent. This is a natural stop-and-evaluate point.
Meet-The-Staff name/email resolution and the purchase/alternative-acquisition queue — built as a human-reviewed queue, not an auto-buy. Proceeds only on the legal go-ahead from Phase 0.
If — and only if — Redline chooses automated sending over human outreach: dedicated warmed domain, CAN-SPAM-correct templates, working unsubscribe, permanent suppression list, low daily volume ramped slowly, and open tracking feeding the weekly report. The build is quick; the responsible warm-up is not, and shouldn't be rushed.
Most inputs are public or already inside Redline. The items that gate the project are legal sign-off and a sending domain.
| What | Why we need it | Form |
|---|---|---|
| Redline store addresses | Center points for the 45-minute geofence and proximity scoring. | Spreadsheet / the existing store map |
| Geocoding + distance-matrix API | Real drive times, not straight-line miles, for the radius. | API key (Google / Mapbox / AWS Location) |
| Priority-list scoring preferences | So the ranking reflects how Ryan & Lisa actually triage prospects. | 30–60 min with sales leadership |
| First-photo framing rubric | To grade prospect first photos with the same standard as Redline's own. | Reuse from the First Photo project |
| Legal sign-off on Layer B (the gate) | CAN-SPAM, state law, scraping-ToS, and a position on purchased lists. Nothing in Layer B ships without this. | Written guidance from Redline's counsel |
| Dedicated sending domain + physical postal address | Isolate cold-email reputation from Redline's main email; CAN-SPAM requires a real address in every message. | New/owned domain + DKIM/SPF/DMARC; mailing address |
| Email platform account | Sending, open tracking, unsubscribe + suppression handling. | Platform credentials (or SES + tooling) |
| Ryan & Lisa delivery channel | Where the weekly report lands (email / Slack / dashboard). | Addresses or Slack channel |
| Purchased-list policy (if any) | Whether buying lists is permitted at all, and from whom, with what consent claims. | Decision + vendor due-diligence (pending counsel) |
Layer A's risk is engineering (scraping is fragile). Layer B's risk is legal and reputational, and it is real. We are not going to soft-pedal it.
The build is the easy part. The durable costs are scraper maintenance and — if Layer B runs — the ongoing compliance and reputation discipline.
The honest version: two things need ongoing human attention, and pretending otherwise would set the wrong expectation.