Pasley Hill / Redline Specs
← All projects BUILD CAREFULLY — COMPLIANCE RISK

Lot Service Sales Outreach

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.

Effort L Value High (intel) / Risky (send) Risk High — legal Depends on Inventory scraping + counsel sign-off

The Problem Today

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.

The insight worth building around Redline can measure a stranger's merchandising problem from the public internet, with the same rigor it grades its own work. A dealer whose missing-photo % is climbing has a problem they can see in their own sales numbers — and Redline can walk in already knowing the number. That evidence-led pitch is the asset. Everything else in this doc is plumbing or legal caution around it.

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.

How It Works

Two layers. The first is an analytics product. The second is a regulated sending process that must never run ahead of the first.

Layer A — the intelligence engine (the part with real, durable value)

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.

Why Layer A stands on its own Even if Redline decides never to auto-send a single email, this layer is worth building: it turns "who should sales call?" from a hunch into a ranked, evidence-backed list refreshed weekly, with the supporting number ("you're at 38% missing photos and climbing") ready for whoever makes the call. Build this well and the rest is optional.

Layer B — outreach & data acquisition (the part with legal landmines)

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:

Data flow

           ┌──────────── 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
       └──────────────────────────────────────────────────────────────┘

The AI/automation, honestly

There's no magic here, and it's worth being plain about what each piece actually is:

Architecture & Stack

Scheduled scraping + analysis on AWS, a CRM/DB of record for the priority list, and a deliberately separate, gated email subsystem.

Scrapers (Lambda / Fargate + headless browser) Geocoding API Distance Matrix (drive-time) API Amazon Bedrock (first-photo vision) Aurora / RDS Postgres (CRM-DB + time series) EventBridge (weekly schedule) Step Functions (scrape→analyze pipeline) S3 (raw snapshots / photos) SQS (purchase / enrichment queue) Email platform + open tracking + suppression QuickSight / static dashboard (priority list + report) CloudWatch

Why this shape

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 Plan

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.

Phase 0 — Discovery, scope & legal posture
~3–5 days · the gate is set here

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.

Phase 1 — Geofence + dealer discovery
~4–6 days · "we know who's in range"

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.

Phase 2 — Inventory scraper + missing-photo %
~2–3 weeks · "we can measure a stranger's lot"

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.

Phase 3 — Time series, triggers & priority list
~1 week · "the engine has opinions"

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.

Phase 4 — Weekly report to Ryan & Lisa
~3–5 days · "the sales meeting has an agenda"

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.

Phase 5 — Contact enrichment + queue (gated)
~1 week · only after Phase 0 sign-off

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.

Phase 6 — Compliant sending + open tracking (gated, slow)
~1–2 weeks build + weeks of warm-up

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.

Honest estimate Roughly 6–8 weeks to a fully useful Layer A (geofence → measurement → priority list → weekly report), with Phase 2 scraping being the dominant and least predictable chunk. Layer B adds a few build-weeks plus a deliberately slow domain warm-up — and it should not start until counsel has signed off and Redline has decided auto-send is worth the risk versus human outreach.

Data & Access Needed

Most inputs are public or already inside Redline. The items that gate the project are legal sign-off and a sending domain.

WhatWhy we need itForm
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)

Risks & Open Questions

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.

RISK · this is regulated commercial email — treat it that way Automated cold outreach to dealers is commercial email under CAN-SPAM and potentially stricter state laws. That legally requires accurate "from"/header info, a clear identification of the message as an ad where applicable, a valid physical postal address in every email, a working unsubscribe that's honored promptly and permanently, and no misleading subject lines. On top of the law: purchased email lists are a minefield — unknown consent, stale/spam-trap addresses, and they can wreck deliverability — and scraping contact details off Meet-The-Staff pages can run into site terms-of-service and data-protection concerns. This whole layer requires counsel sign-off before it ships. Do not run it on a hunch, and do not pretend it is risk-free.
RISK · domain/sender reputation is a company-wide asset you can burn Cold-blasting from Redline's primary domain can get that domain flagged as spam — which damages all of Redline's email, including invoices and internal mail, not just this campaign. Mitigation: a dedicated, separate sending domain; slow IP/domain warm-up; low daily volume; tight monitoring of bounce/complaint rates; and an automatic kill-switch if complaints spike. The build is fast; the warm-up must be patient.
RISK · default to human outreach over mass auto-mail The highest-value, lowest-risk path is: the intelligence engine surfaces a hot, evidence-backed lead, and a Redline salesperson sends a real, personal message or calls. That converts better and sidesteps most of the legal/deliverability exposure. Recommendation: ship Layer A, route leads to people, and only enable automated sending later, deliberately, compliantly, and at low volume — if at all.
RISK · scraping is brittle and is the real maintenance cost Every dealer website is different and they redesign without warning, so scrapers break silently and miscount. A wrong missing-photo % feeds a wrong pitch. Mitigation: per-site health checks and sanity bounds, alerting when a dealer's parse looks broken, and budgeting ongoing scraper-maintenance time as a known cost rather than a surprise.
RISK · measuring a competitor-adjacent metric from public data We're inferring "missing-photo %" from public listings, which may not match a dealer's internal view (syndication lag, photos hosted elsewhere). Mitigation: be transparent that it's an external estimate, validate the method against a few known lots, and treat the number as a strong signal for prioritization, not gospel.
OPEN QUESTIONS Does Redline want automated sending at all, or is the priority list + human outreach the real goal? · What is counsel's position on purchased lists and on scraping Meet-The-Staff contacts? · Is the radius strictly 45-min drive time, and is the cluster "center point" a Redline store or any geographic centroid? · How should the priority list weight severity vs. trajectory vs. proximity vs. dealer size? · Are some dealers off-limits (existing relationships, do-not-contact)? · Who owns acting on the weekly report and the suggested in-person visits?

Cost to Own

The build is the easy part. The durable costs are scraper maintenance and — if Layer B runs — the ongoing compliance and reputation discipline.

Run cost The pipeline is batch and mostly serverless, so compute is modest. Recurring line items: geocoding/distance-matrix API calls (bounded by dealer count, refreshed periodically), vision-model inference on prospect first photos (smaller volume than the internal First Photo job), the Postgres CRM-DB, and — if sending — the email platform. If purchased lists are ever used, that's a real and recurring spend with poor, decaying value. The biggest hidden cost is not infrastructure; it's engineering time keeping scrapers alive as dealer sites change.

The honest version: two things need ongoing human attention, and pretending otherwise would set the wrong expectation.

Bottom line Layer A is a genuinely valuable, defensible product: it turns Redline's own expertise into a ranked, evidence-backed list of who to sell to, refreshed weekly, with in-person-visit suggestions when a region heats up. Build that, deliver it, and let it stand on its own. Layer B — automated sending, contact-scraping, purchased lists — is where the legal and deliverability landmines are; gate it behind counsel sign-off, a separate warmed domain, real CAN-SPAM compliance, and a strong preference for handing hot leads to humans. The smart sequence is intelligence first, sending last and carefully — never the reverse.