[object Object]

← back to Contact Mailer Ideas

VenturaEats (PULSE #21, 33/40): Ventura-corridor restaurant discovery with local-vs-tourist sort via reviewer-city signal; +SWOT, +marketing, +backfilled SWOT/marketing for bonus + may-12 batches (80 artifacts total)

b381acf3a1a021a924bba5de67224ba2496c5a24 · 2026-05-11 16:29:13 -0700 · Steve Abrams

Files touched

Diff

commit b381acf3a1a021a924bba5de67224ba2496c5a24
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon May 11 16:29:13 2026 -0700

    VenturaEats (PULSE #21, 33/40): Ventura-corridor restaurant discovery with local-vs-tourist sort via reviewer-city signal; +SWOT, +marketing, +backfilled SWOT/marketing for bonus + may-12 batches (80 artifacts total)
---
 batches/2026-05-11-pulse.json | 557 +++++++++++++++++++++++++++++++++---------
 1 file changed, 441 insertions(+), 116 deletions(-)

diff --git a/batches/2026-05-11-pulse.json b/batches/2026-05-11-pulse.json
index 9007057..1fd4d60 100644
--- a/batches/2026-05-11-pulse.json
+++ b/batches/2026-05-11-pulse.json
@@ -1,271 +1,596 @@
 {
   "batch": "pulse-pattern-20260511",
   "batch_date": "2026-05-11",
-  "vertical": "Pulse-pattern end-user advocacy/engagement apps — grounded in Steve's existing infrastructure",
+  "vertical": "Pulse-pattern end-user advocacy/engagement apps \u2014 grounded in Steve's existing infrastructure",
   "authority": "ideate-only",
   "generated_at": "2026-05-11T14:42:00-07:00",
   "generator": "claude direct (in-session, leverages Steve's actual stack)",
-  "pattern_source": "Norma/Pulse (~/Projects/Norma/app/pulse) — three-tier app (Norma admin / Nikki org-staff / Pulse end-user)",
+  "pattern_source": "Norma/Pulse (~/Projects/Norma/app/pulse) \u2014 three-tier app (Norma admin / Nikki org-staff / Pulse end-user)",
   "ideas": [
     {
-      "idx": 1, "name": "PulseForPets",
+      "idx": 1,
+      "name": "PulseForPets",
       "headline": "Sign petitions. Stop puppy mills. Adopt local.",
       "angle": "End-user animal-welfare advocacy app",
       "target": "Pet owners + animal-shelter volunteers + welfare-curious public",
-      "diff": "Powered by Steve's animals project (~9k mockup engine + Reddit ingest) + LA Research Agent (animal-cruelty court filings) + petition mgmt from Norma. News feed → petition → adoption browse, one flow",
-      "stack": ["animals", "la-research-agent", "Norma/petition", "Reddit ingest"],
+      "diff": "Powered by Steve's animals project (~9k mockup engine + Reddit ingest) + LA Research Agent (animal-cruelty court filings) + petition mgmt from Norma. News feed \u2192 petition \u2192 adoption browse, one flow",
+      "stack": [
+        "animals",
+        "la-research-agent",
+        "Norma/petition",
+        "Reddit ingest"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Pull 20 active LA Animal Services adoption listings + 5 active animal-cruelty court cases, hand-curate a 7-day editorial calendar; measure email signups + petition signs" },
-        { "step": "MVP", "what": "Fork Norma /app/pulse → swap petition data for animal-welfare petitions, swap news feed for shelter-news RSS + LA Research court-filing diff. Free, ads-free, donation-supported" },
-        { "step": "DISTRIBUTION", "what": "Pitch into LA Animal Services + Best Friends Society partnerships — be their public-facing engagement portal" }
+        {
+          "step": "VALIDATE",
+          "what": "Pull 20 active LA Animal Services adoption listings + 5 active animal-cruelty court cases, hand-curate a 7-day editorial calendar; measure email signups + petition signs"
+        },
+        {
+          "step": "MVP",
+          "what": "Fork Norma /app/pulse \u2192 swap petition data for animal-welfare petitions, swap news feed for shelter-news RSS + LA Research court-filing diff. Free, ads-free, donation-supported"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Pitch into LA Animal Services + Best Friends Society partnerships \u2014 be their public-facing engagement portal"
+        }
       ]
     },
     {
-      "idx": 2, "name": "PulseForRenters",
+      "idx": 2,
+      "name": "PulseForRenters",
       "headline": "Know your landlord. Sign your rights.",
       "angle": "End-user tenant-rights advocacy app",
       "target": "LA renters + tenant-union organizers + AbramsOS users",
-      "diff": "AbramsOS provides the household-rights backbone. WhoLivedThere gives property history. LA Research Agent surfaces eviction court records. User enters address → sees landlord's eviction history + comps + local petitions",
-      "stack": ["AbramsOS", "WhoLivedThere", "la-research-agent", "Norma/petition"],
+      "diff": "AbramsOS provides the household-rights backbone. WhoLivedThere gives property history. LA Research Agent surfaces eviction court records. User enters address \u2192 sees landlord's eviction history + comps + local petitions",
+      "stack": [
+        "AbramsOS",
+        "WhoLivedThere",
+        "la-research-agent",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Run for 50 LA renters: enter address → show last 5y eviction filings against landlord + 3 active tenant-rights petitions. Measure share rate + signups" },
-        { "step": "MVP", "what": "Address-lookup form → AbramsOS API → eviction-court-filings overlay + petition list. Pulse end-user shell, no signup required for browsing" },
-        { "step": "DISTRIBUTION", "what": "Partner with LA Tenants Union + Coalition for Economic Survival — be their public lookup tool. Drive sign-ups via LA Times eviction coverage" }
+        {
+          "step": "VALIDATE",
+          "what": "Run for 50 LA renters: enter address \u2192 show last 5y eviction filings against landlord + 3 active tenant-rights petitions. Measure share rate + signups"
+        },
+        {
+          "step": "MVP",
+          "what": "Address-lookup form \u2192 AbramsOS API \u2192 eviction-court-filings overlay + petition list. Pulse end-user shell, no signup required for browsing"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Partner with LA Tenants Union + Coalition for Economic Survival \u2014 be their public lookup tool. Drive sign-ups via LA Times eviction coverage"
+        }
       ]
     },
     {
-      "idx": 3, "name": "PulseForDesigners",
+      "idx": 3,
+      "name": "PulseForDesigners",
       "headline": "The trade designer's daily.",
       "angle": "End-user app for the interior-design trade community",
       "target": "60k designers already in DW's trade-account orbit",
       "diff": "Built on dw_unified's 30-year trade graph (vendors, designer accounts, project history). News on vendor price moves, petitions on copyright + trade-pricing, designer-only events feed. Pulse shell with trade-account login",
-      "stack": ["dw_unified", "Norma/news", "Norma/petition"],
+      "stack": [
+        "dw_unified",
+        "Norma/news",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Send a curated daily digest to 100 DW trade-account designers for 30 days: vendor news + price moves + copyright petitions. Measure open rate + reply quality vs DW newsletter" },
-        { "step": "MVP", "what": "Auth via dw_unified trade-account creds → daily feed of vendor news (auto-scraped from supplier sites via existing DW scrapers) + petition list. Free for trade-verified, paid tier for non-verified designers" },
-        { "step": "DISTRIBUTION", "what": "Email blast to 60k DW designer list with 'beta access' framing. DW pays nothing — it's brand goodwill + designer engagement up funnel" }
+        {
+          "step": "VALIDATE",
+          "what": "Send a curated daily digest to 100 DW trade-account designers for 30 days: vendor news + price moves + copyright petitions. Measure open rate + reply quality vs DW newsletter"
+        },
+        {
+          "step": "MVP",
+          "what": "Auth via dw_unified trade-account creds \u2192 daily feed of vendor news (auto-scraped from supplier sites via existing DW scrapers) + petition list. Free for trade-verified, paid tier for non-verified designers"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Email blast to 60k DW designer list with 'beta access' framing. DW pays nothing \u2014 it's brand goodwill + designer engagement up funnel"
+        }
       ]
     },
     {
-      "idx": 4, "name": "PulseForDiners",
+      "idx": 4,
+      "name": "PulseForDiners",
       "headline": "Eat local. Petition louder.",
       "angle": "End-user restaurant-advocacy + indie-discovery app",
       "target": "LA diners who hate chains + restaurant-worker advocates",
       "diff": "Powered by lacountyeats data + LA Research Agent (health-code violations, ABC permit issues). Surface non-chain restaurants near you + petitions on tipped-wage, restaurant-worker rights, sidewalk-dining permits",
-      "stack": ["lacountyeats", "la-research-agent", "Norma/petition"],
+      "stack": [
+        "lacountyeats",
+        "la-research-agent",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Build a 'non-chain restaurants within 2 miles' page for 10 LA ZIP codes. Add 'tip-wage transparency' petition. Measure visits + email signups" },
-        { "step": "MVP", "what": "Geo lookup → non-chain filter (from lacountyeats project) → recent restaurant-worker news + petitions. Pulse end-user UI" },
-        { "step": "DISTRIBUTION", "what": "Partner with ROC United (Restaurant Opportunities Center) — be their public-facing advocacy + discovery tool" }
+        {
+          "step": "VALIDATE",
+          "what": "Build a 'non-chain restaurants within 2 miles' page for 10 LA ZIP codes. Add 'tip-wage transparency' petition. Measure visits + email signups"
+        },
+        {
+          "step": "MVP",
+          "what": "Geo lookup \u2192 non-chain filter (from lacountyeats project) \u2192 recent restaurant-worker news + petitions. Pulse end-user UI"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Partner with ROC United (Restaurant Opportunities Center) \u2014 be their public-facing advocacy + discovery tool"
+        }
       ]
     },
     {
-      "idx": 5, "name": "PulseForPatients",
+      "idx": 5,
+      "name": "PulseForPatients",
       "headline": "Find a doctor. Fight your bill.",
       "angle": "End-user healthcare-advocacy + provider-finder app",
       "target": "Patients fighting surprise bills + healthcare-pricing advocates",
-      "diff": "Powered by professional-directory (doctor verticals — pd-* on 9706/9871) + Norma news intel. Find providers who post cash prices + sign petitions on hospital price transparency + read your bill-fight rights",
-      "stack": ["professional-directory", "Norma/news", "Norma/petition", "AbramsOS (medical-records rights)"],
+      "diff": "Powered by professional-directory (doctor verticals \u2014 pd-* on 9706/9871) + Norma news intel. Find providers who post cash prices + sign petitions on hospital price transparency + read your bill-fight rights",
+      "stack": [
+        "professional-directory",
+        "Norma/news",
+        "Norma/petition",
+        "AbramsOS (medical-records rights)"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Curate 200 LA doctors with published cash prices (via scrapers) + a 'fight your hospital bill' guide. Measure traffic + saved-doctor counts" },
-        { "step": "MVP", "what": "Geo + specialty filter → providers with published prices + reviews + complaint history. Pulse shell with patient-rights petition list" },
-        { "step": "DISTRIBUTION", "what": "Partner with PatientRightsAdvocate.org + healthcare-billing-advocate Twitter community. SEO target 'cash price [procedure] near me'" }
+        {
+          "step": "VALIDATE",
+          "what": "Curate 200 LA doctors with published cash prices (via scrapers) + a 'fight your hospital bill' guide. Measure traffic + saved-doctor counts"
+        },
+        {
+          "step": "MVP",
+          "what": "Geo + specialty filter \u2192 providers with published prices + reviews + complaint history. Pulse shell with patient-rights petition list"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Partner with PatientRightsAdvocate.org + healthcare-billing-advocate Twitter community. SEO target 'cash price [procedure] near me'"
+        }
       ]
     },
     {
-      "idx": 6, "name": "PulseForSmallBiz",
+      "idx": 6,
+      "name": "PulseForSmallBiz",
       "headline": "The Ventura Corridor speaks back.",
       "angle": "Hyperlocal SMB advocacy app for 1,819 corridor businesses",
       "target": "Ventura Blvd SMB owners + their customers",
       "diff": "Built on ventura-claw-leads' 1,819 SMB roster + Norma news. Owners get petitions on parking permits / sidewalk-dining / zoning; customers see who's local-owned. Two-tier UI: business-owner + customer",
-      "stack": ["ventura-claw-leads", "Norma/news", "Norma/petition"],
+      "stack": [
+        "ventura-claw-leads",
+        "Norma/news",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Send a 'local-owned business' badge to 50 ventura-claw verticals (food/beauty/fitness). Add a 'reform 2-hour parking' petition. Measure adoption" },
-        { "step": "MVP", "what": "Per-business profile + customer reviews + local-petition list. Owners log in to update their listing + sign petitions; customers browse + sign" },
-        { "step": "DISTRIBUTION", "what": "Local CMC + small-merchant-association partnerships. Push at LA City Council meetings on parking + zoning" }
+        {
+          "step": "VALIDATE",
+          "what": "Send a 'local-owned business' badge to 50 ventura-claw verticals (food/beauty/fitness). Add a 'reform 2-hour parking' petition. Measure adoption"
+        },
+        {
+          "step": "MVP",
+          "what": "Per-business profile + customer reviews + local-petition list. Owners log in to update their listing + sign petitions; customers browse + sign"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Local CMC + small-merchant-association partnerships. Push at LA City Council meetings on parking + zoning"
+        }
       ]
     },
     {
-      "idx": 7, "name": "NewsRoomDaily",
+      "idx": 7,
+      "name": "NewsRoomDaily",
       "headline": "Your news. Categorized. Petitioned.",
       "angle": "Pure consumer-facing news app driven by Norma's news intelligence",
       "target": "News-tired millennials + advocacy-curious readers",
-      "diff": "Norma's news intelligence backend → consumer Pulse shell. Every article has 'related petitions' + 'organizations working on this' inline. News → action in one tap",
-      "stack": ["Norma/news", "Norma/petition", "info-hub skill"],
+      "diff": "Norma's news intelligence backend \u2192 consumer Pulse shell. Every article has 'related petitions' + 'organizations working on this' inline. News \u2192 action in one tap",
+      "stack": [
+        "Norma/news",
+        "Norma/petition",
+        "info-hub skill"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Hand-curate 50 articles across 5 categories (housing, healthcare, climate, education, criminal-justice) with related petitions inline. Measure article→petition click-through" },
-        { "step": "MVP", "what": "Onboarding asks 3 issue interests → daily feed of articles + petitions in those issues. Free, ads-free, premium $5/mo for ad-free push notifications" },
-        { "step": "DISTRIBUTION", "what": "Substack writers partnership — they get the embed; we get their audience. Cross-listing with Common Dreams + The Intercept" }
+        {
+          "step": "VALIDATE",
+          "what": "Hand-curate 50 articles across 5 categories (housing, healthcare, climate, education, criminal-justice) with related petitions inline. Measure article\u2192petition click-through"
+        },
+        {
+          "step": "MVP",
+          "what": "Onboarding asks 3 issue interests \u2192 daily feed of articles + petitions in those issues. Free, ads-free, premium $5/mo for ad-free push notifications"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Substack writers partnership \u2014 they get the embed; we get their audience. Cross-listing with Common Dreams + The Intercept"
+        }
       ]
     },
     {
-      "idx": 8, "name": "BlockLetter",
+      "idx": 8,
+      "name": "BlockLetter",
       "headline": "The newsletter your block actually reads.",
       "angle": "Hyperlocal (5-block radius) Pulse-pattern app",
       "target": "LA neighborhood residents (BubbesBlock-adjacent)",
       "diff": "BubbesBlock provides the LA Jewish community baseline. WhoLivedThere provides home-history. LA Research provides court filings + permits. Pulse shell shows daily 5-block events + petitions",
-      "stack": ["bubbesblock", "WhoLivedThere", "la-research-agent", "Norma/pulse"],
+      "stack": [
+        "bubbesblock",
+        "WhoLivedThere",
+        "la-research-agent",
+        "Norma/pulse"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Build for 1 block in Pico-Robertson (BubbesBlock's home turf) for 30 days. Daily 5-block news + permits + events. Measure DAU + petition signs" },
-        { "step": "MVP", "what": "Address entry → 5-block radius → daily digest of permits filed, court cases, planning agendas, neighborhood events. Free, supported by local-business directory listings" },
-        { "step": "DISTRIBUTION", "what": "Direct-mail postcard to 500 homes in a target block. Newcomers (NCOA new-movers, via PostNeighbor mechanic) auto-onboarded" }
+        {
+          "step": "VALIDATE",
+          "what": "Build for 1 block in Pico-Robertson (BubbesBlock's home turf) for 30 days. Daily 5-block news + permits + events. Measure DAU + petition signs"
+        },
+        {
+          "step": "MVP",
+          "what": "Address entry \u2192 5-block radius \u2192 daily digest of permits filed, court cases, planning agendas, neighborhood events. Free, supported by local-business directory listings"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Direct-mail postcard to 500 homes in a target block. Newcomers (NCOA new-movers, via PostNeighbor mechanic) auto-onboarded"
+        }
       ]
     },
     {
-      "idx": 9, "name": "OpenCalendar",
+      "idx": 9,
+      "name": "OpenCalendar",
       "headline": "Every public meeting. Every agenda. One feed.",
       "angle": "Civic-engagement Pulse app surfacing public meeting agendas",
       "target": "Civic-engaged residents + journalists + advocates",
       "diff": "LA Research Agent crawls LA County + 88 city websites for meeting agendas. Norma's calendar UI surfaces them with petition + speaker-signup links. The civic equivalent of Calendly",
-      "stack": ["la-research-agent", "Norma/calendar", "Norma/petition"],
+      "stack": [
+        "la-research-agent",
+        "Norma/calendar",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Aggregate next 14 days of agendas across LA City Council + LA County Supervisors + 5 city councils. Measure: how many users signed up to speak at a meeting they wouldn't have known about?" },
-        { "step": "MVP", "what": "Geo filter → upcoming public meetings → agenda preview + speaker-signup deep links + 'add to calendar'. Free, ads-free, donation-supported" },
-        { "step": "DISTRIBUTION", "what": "LA Times Civic-engagement partnership. Embed in LWV (League of Women Voters) chapter sites" }
+        {
+          "step": "VALIDATE",
+          "what": "Aggregate next 14 days of agendas across LA City Council + LA County Supervisors + 5 city councils. Measure: how many users signed up to speak at a meeting they wouldn't have known about?"
+        },
+        {
+          "step": "MVP",
+          "what": "Geo filter \u2192 upcoming public meetings \u2192 agenda preview + speaker-signup deep links + 'add to calendar'. Free, ads-free, donation-supported"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "LA Times Civic-engagement partnership. Embed in LWV (League of Women Voters) chapter sites"
+        }
       ]
     },
     {
-      "idx": 10, "name": "PulseCourtWatcher",
+      "idx": 10,
+      "name": "PulseCourtWatcher",
       "headline": "Track the case that matters to you.",
       "angle": "End-user app for following local court cases",
       "target": "Family members of defendants + journalists + activists",
-      "diff": "LA Research Agent crawls LA Superior Court daily for case status changes. User subscribes to a case → email/SMS alert on every docket entry. Petitions on bail reform / public-defender funding embedded",
-      "stack": ["la-research-agent", "Norma/notifications", "Norma/petition"],
+      "diff": "LA Research Agent crawls LA Superior Court daily for case status changes. User subscribes to a case \u2192 email/SMS alert on every docket entry. Petitions on bail reform / public-defender funding embedded",
+      "stack": [
+        "la-research-agent",
+        "Norma/notifications",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Track 50 active LA cases for 30 days, deliver email digests of docket changes. Measure: how many users came back to read after the alert?" },
-        { "step": "MVP", "what": "Case-number lookup → subscribe → daily digest. Public defender / bail / sentencing-reform petitions inline. Free tier with 1 case; $9/mo for 10 cases" },
-        { "step": "DISTRIBUTION", "what": "Partner with ACLU + Bail Project + public-defender offices. Embed on advocacy-org sites" }
+        {
+          "step": "VALIDATE",
+          "what": "Track 50 active LA cases for 30 days, deliver email digests of docket changes. Measure: how many users came back to read after the alert?"
+        },
+        {
+          "step": "MVP",
+          "what": "Case-number lookup \u2192 subscribe \u2192 daily digest. Public defender / bail / sentencing-reform petitions inline. Free tier with 1 case; $9/mo for 10 cases"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Partner with ACLU + Bail Project + public-defender offices. Embed on advocacy-org sites"
+        }
       ]
     },
     {
-      "idx": 11, "name": "CitizenAudit",
+      "idx": 11,
+      "name": "CitizenAudit",
       "headline": "Audit your block. Earn the badge.",
       "angle": "Crowdsourced civic-compliance audit Pulse app",
       "target": "Civic-minded residents + journalists + ADA advocates",
-      "diff": "Site-audit skill + peer-survey skill → adapted for physical-business audits (signage, ADA ramps, health-code postings). Users submit photo-audits, get attribution badges, results feed into LA Research petition pipeline",
-      "stack": ["site-audit skill", "peer-survey skill", "la-research-agent", "Norma/petition"],
+      "diff": "Site-audit skill + peer-survey skill \u2192 adapted for physical-business audits (signage, ADA ramps, health-code postings). Users submit photo-audits, get attribution badges, results feed into LA Research petition pipeline",
+      "stack": [
+        "site-audit skill",
+        "peer-survey skill",
+        "la-research-agent",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Run 50-user pilot on Ventura Blvd: photo-audit business compliance, leaderboard, petition for fines-collected. Measure submissions + repeat use" },
-        { "step": "MVP", "what": "Photo upload → AI classification (ADA-compliant ramp? health-cert posted?) → public scoreboard. Auditor badges + petition tools" },
-        { "step": "DISTRIBUTION", "what": "ADA-advocacy nonprofits + local journalists + city council allies. SEO target 'is [business] ADA compliant?'" }
+        {
+          "step": "VALIDATE",
+          "what": "Run 50-user pilot on Ventura Blvd: photo-audit business compliance, leaderboard, petition for fines-collected. Measure submissions + repeat use"
+        },
+        {
+          "step": "MVP",
+          "what": "Photo upload \u2192 AI classification (ADA-compliant ramp? health-cert posted?) \u2192 public scoreboard. Auditor badges + petition tools"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "ADA-advocacy nonprofits + local journalists + city council allies. SEO target 'is [business] ADA compliant?'"
+        }
       ]
     },
     {
-      "idx": 12, "name": "PulseLostFound",
+      "idx": 12,
+      "name": "PulseLostFound",
       "headline": "Find your dog. The neighborhood's watching.",
       "angle": "End-user lost-pet Pulse app with AI matching",
       "target": "Pet owners + neighbors + shelter staff",
-      "diff": "Animals project + Reddit ingest + geo. User posts lost dog → AI matches against shelter intake photos + Reddit r/lostdogs threads + neighborhood Pulse feeds. Email + SMS alerts when matches happen",
-      "stack": ["animals", "Reddit ingest", "Norma/notifications"],
+      "diff": "Animals project + Reddit ingest + geo. User posts lost dog \u2192 AI matches against shelter intake photos + Reddit r/lostdogs threads + neighborhood Pulse feeds. Email + SMS alerts when matches happen",
+      "stack": [
+        "animals",
+        "Reddit ingest",
+        "Norma/notifications"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Test against 50 active LA lost-pet posts; measure how many we match to recent shelter intakes within 48hrs" },
-        { "step": "MVP", "what": "Photo upload + last-seen location → 5-mile radius alert + auto-match against shelters + Reddit. Free, donation-supported" },
-        { "step": "DISTRIBUTION", "what": "LA Animal Services + Pasadena Humane partnership — they auto-upload intakes. NextDoor partnership for neighborhood broadcast" }
+        {
+          "step": "VALIDATE",
+          "what": "Test against 50 active LA lost-pet posts; measure how many we match to recent shelter intakes within 48hrs"
+        },
+        {
+          "step": "MVP",
+          "what": "Photo upload + last-seen location \u2192 5-mile radius alert + auto-match against shelters + Reddit. Free, donation-supported"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "LA Animal Services + Pasadena Humane partnership \u2014 they auto-upload intakes. NextDoor partnership for neighborhood broadcast"
+        }
       ]
     },
     {
-      "idx": 13, "name": "HostedHub",
+      "idx": 13,
+      "name": "HostedHub",
       "headline": "Linktree for advocacy.",
       "angle": "One-page advocacy hub for niche nonprofits",
       "target": "Single-issue nonprofits + activists + community organizers",
-      "diff": "Info-hub skill builds curated source library. Theme-factory builds branded page. Norma/petition handles signatures. One page combining news feed, petition list, action steps, trusted-source library — auto-themed per cause",
-      "stack": ["info-hub skill", "theme-factory", "Norma/petition", "Norma/news"],
+      "diff": "Info-hub skill builds curated source library. Theme-factory builds branded page. Norma/petition handles signatures. One page combining news feed, petition list, action steps, trusted-source library \u2014 auto-themed per cause",
+      "stack": [
+        "info-hub skill",
+        "theme-factory",
+        "Norma/petition",
+        "Norma/news"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Build for 5 niche advocacy nonprofits (climate-resilience, mental-health, housing-justice). Measure conversion: visit → newsletter signup → petition sign" },
-        { "step": "MVP", "what": "Self-serve onboarding: pick a cause → auto-generated info hub + petition + news feed + branded theme. $49/mo per cause" },
-        { "step": "DISTRIBUTION", "what": "Nonprofit-tech partnerships (TechSoup, Idealist). Free tier for 501(c)(3) verified, paid tier for individuals + LLCs" }
+        {
+          "step": "VALIDATE",
+          "what": "Build for 5 niche advocacy nonprofits (climate-resilience, mental-health, housing-justice). Measure conversion: visit \u2192 newsletter signup \u2192 petition sign"
+        },
+        {
+          "step": "MVP",
+          "what": "Self-serve onboarding: pick a cause \u2192 auto-generated info hub + petition + news feed + branded theme. $49/mo per cause"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Nonprofit-tech partnerships (TechSoup, Idealist). Free tier for 501(c)(3) verified, paid tier for individuals + LLCs"
+        }
       ]
     },
     {
-      "idx": 14, "name": "AddressMemorial",
+      "idx": 14,
+      "name": "AddressMemorial",
       "headline": "Every house has a story. Yours starts here.",
       "angle": "End-user app for documenting home history",
       "target": "Homeowners + historians + previous-resident descendants",
-      "diff": "WhoLivedThere + LA Research Agent + LA archives (DPLA key, USC, LAPL, Wikimedia). Enter address → every prior resident + every plaque-worthy event + Steve's photos + community memories. Cemetery.com for houses",
-      "stack": ["WhoLivedThere", "la-research-agent", "DPLA", "Norma/pulse"],
+      "diff": "WhoLivedThere + LA Research Agent + LA archives (DPLA key, USC, LAPL, Wikimedia). Enter address \u2192 every prior resident + every plaque-worthy event + Steve's photos + community memories. Cemetery.com for houses",
+      "stack": [
+        "WhoLivedThere",
+        "la-research-agent",
+        "DPLA",
+        "Norma/pulse"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Pull 200 historic LA homes (LADBS records 1900-1960) + archive photos. Show prior residents + invite descendants to add memories. Measure visits + memory submissions" },
-        { "step": "MVP", "what": "Address lookup → timeline of residents → photos from public archives → 'add a memory' form (verified by claim flow). Free, $19 one-time for a printed history book" },
-        { "step": "DISTRIBUTION", "what": "Real-estate agent partnership — give every $1M+ listing a free 'home history' as a gift to buyers. SEO target '[address] history'" }
+        {
+          "step": "VALIDATE",
+          "what": "Pull 200 historic LA homes (LADBS records 1900-1960) + archive photos. Show prior residents + invite descendants to add memories. Measure visits + memory submissions"
+        },
+        {
+          "step": "MVP",
+          "what": "Address lookup \u2192 timeline of residents \u2192 photos from public archives \u2192 'add a memory' form (verified by claim flow). Free, $19 one-time for a printed history book"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Real-estate agent partnership \u2014 give every $1M+ listing a free 'home history' as a gift to buyers. SEO target '[address] history'"
+        }
       ]
     },
     {
-      "idx": 15, "name": "PulseVerifiedVote",
+      "idx": 15,
+      "name": "PulseVerifiedVote",
       "headline": "Your ballot. Already filled in.",
       "angle": "Voter-information Pulse app surfacing position data",
       "target": "First-time voters + casual voters + civic-engaged",
-      "diff": "LA Research (election filings) + Norma news. Enter address → get your ballot + each candidate's positions + their petition history + endorsements + opponents' attacks. Vote-tracking afterward",
-      "stack": ["la-research-agent", "Norma/news", "Norma/petition"],
+      "diff": "LA Research (election filings) + Norma news. Enter address \u2192 get your ballot + each candidate's positions + their petition history + endorsements + opponents' attacks. Vote-tracking afterward",
+      "stack": [
+        "la-research-agent",
+        "Norma/news",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Build for LA Mayoral race + 3 council seats. Survey 100 voters on whether they used it before/after voting. Measure repeat use" },
-        { "step": "MVP", "what": "Address → ballot → candidate cards (positions, money, endorsers, opponents) → save your picks → reminder on election day" },
-        { "step": "DISTRIBUTION", "what": "Partner with LWV chapters, voter-registration drives, college campuses. Endorsement-page SEO target 'who's running for [office]'" }
+        {
+          "step": "VALIDATE",
+          "what": "Build for LA Mayoral race + 3 council seats. Survey 100 voters on whether they used it before/after voting. Measure repeat use"
+        },
+        {
+          "step": "MVP",
+          "what": "Address \u2192 ballot \u2192 candidate cards (positions, money, endorsers, opponents) \u2192 save your picks \u2192 reminder on election day"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Partner with LWV chapters, voter-registration drives, college campuses. Endorsement-page SEO target 'who's running for [office]'"
+        }
       ]
     },
     {
-      "idx": 16, "name": "DesignerDemands",
+      "idx": 16,
+      "name": "DesignerDemands",
       "headline": "The trade speaks.",
       "angle": "Pulse-pattern petition + advocacy for interior designers as a class",
       "target": "Trade designers + small design firms",
       "diff": "dw_unified provides verified-designer auth. Petitions on copyright protection (every designer hates IP theft on Instagram), trade-pricing transparency, sales-rep representation. News on industry consolidation. Designer's union, basically",
-      "stack": ["dw_unified", "Norma/petition", "Norma/news"],
+      "stack": [
+        "dw_unified",
+        "Norma/petition",
+        "Norma/news"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Run 3 active petitions to 5,000 verified DW designers: 'protect design copyright on Instagram', 'mandate trade-pricing transparency from manufacturers'. Measure signature velocity vs Change.org control" },
-        { "step": "MVP", "what": "Trade-account login → petition list + news + monthly designer-only town halls (Zoom + recap email). Free for trade-verified" },
-        { "step": "DISTRIBUTION", "what": "AIGA + ASID + IIDA chapter partnerships. DW newsletter cross-promotion (60k list)" }
+        {
+          "step": "VALIDATE",
+          "what": "Run 3 active petitions to 5,000 verified DW designers: 'protect design copyright on Instagram', 'mandate trade-pricing transparency from manufacturers'. Measure signature velocity vs Change.org control"
+        },
+        {
+          "step": "MVP",
+          "what": "Trade-account login \u2192 petition list + news + monthly designer-only town halls (Zoom + recap email). Free for trade-verified"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "AIGA + ASID + IIDA chapter partnerships. DW newsletter cross-promotion (60k list)"
+        }
       ]
     },
     {
-      "idx": 17, "name": "TenantNetwork",
+      "idx": 17,
+      "name": "TenantNetwork",
       "headline": "The chat your landlord can't see.",
       "angle": "Verified-by-address tenant chat + organizing",
       "target": "Multifamily renters + tenant-union organizers",
       "diff": "AbramsOS provides address verification. WhoLivedThere verifies residency. Anonymous chat per building with verified-tenant gate. Petition coordination + collective-action workflows",
-      "stack": ["AbramsOS", "WhoLivedThere", "Norma/petition", "ghost auth (privacy-first)"],
+      "stack": [
+        "AbramsOS",
+        "WhoLivedThere",
+        "Norma/petition",
+        "ghost auth (privacy-first)"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Run for 10 LA apartment buildings (200+ units each). Measure: do tenants actually use it? How many collective-action threads form?" },
-        { "step": "MVP", "what": "Address lookup → verify residency → unit-level chat + building-level petition tools. Privacy-first (no real names visible to other tenants)" },
-        { "step": "DISTRIBUTION", "what": "LA Tenants Union + Mariposas community organizers + university housing offices" }
+        {
+          "step": "VALIDATE",
+          "what": "Run for 10 LA apartment buildings (200+ units each). Measure: do tenants actually use it? How many collective-action threads form?"
+        },
+        {
+          "step": "MVP",
+          "what": "Address lookup \u2192 verify residency \u2192 unit-level chat + building-level petition tools. Privacy-first (no real names visible to other tenants)"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "LA Tenants Union + Mariposas community organizers + university housing offices"
+        }
       ]
     },
     {
-      "idx": 18, "name": "TradesmanAtlas",
+      "idx": 18,
+      "name": "TradesmanAtlas",
       "headline": "A vetted tradesman within a mile.",
       "angle": "Pulse-pattern app for vetted local tradespeople + advocacy",
       "target": "Homeowners + tradesmen + licensing advocates",
-      "diff": "NPH (524 vetted paper-hanger installers) + lawyer-directory (trade-licensing law subset) + LA Research (contractor-fraud cases). Find a vetted tradesman → see their history + license status + any complaints. Tradesmen sign petitions on licensing reform",
-      "stack": ["NPH", "lawyer-directory", "la-research-agent", "Norma/petition"],
+      "diff": "NPH (524 vetted paper-hanger installers) + lawyer-directory (trade-licensing law subset) + LA Research (contractor-fraud cases). Find a vetted tradesman \u2192 see their history + license status + any complaints. Tradesmen sign petitions on licensing reform",
+      "stack": [
+        "NPH",
+        "lawyer-directory",
+        "la-research-agent",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Surface 500 vetted plumbers + electricians + paper hangers from LA County Contractors State License Board. Measure search → claim → review flow" },
-        { "step": "MVP", "what": "Geo + trade filter → vetted listing + license status + complaint history. Free for homeowners, $29/mo for tradesmen to claim & promote listing" },
-        { "step": "DISTRIBUTION", "what": "CSLB partnerships + trade-union outreach (IBEW, UA, Painters DC). SEO target '[trade] near me + license check'" }
+        {
+          "step": "VALIDATE",
+          "what": "Surface 500 vetted plumbers + electricians + paper hangers from LA County Contractors State License Board. Measure search \u2192 claim \u2192 review flow"
+        },
+        {
+          "step": "MVP",
+          "what": "Geo + trade filter \u2192 vetted listing + license status + complaint history. Free for homeowners, $29/mo for tradesmen to claim & promote listing"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "CSLB partnerships + trade-union outreach (IBEW, UA, Painters DC). SEO target '[trade] near me + license check'"
+        }
       ]
     },
     {
-      "idx": 19, "name": "PulseLibrary",
+      "idx": 19,
+      "name": "PulseLibrary",
       "headline": "Stand for your library.",
       "angle": "Library-advocacy Pulse-pattern app",
       "target": "Library users + parents + anti-book-ban advocates",
-      "diff": "Norma news intel (book-ban tracking) + Norma/petition + info-hub skill. Enter address → your local library news + book-ban petitions + funding-cut alerts. Direct line to your library board",
-      "stack": ["Norma/news", "Norma/petition", "info-hub skill"],
+      "diff": "Norma news intel (book-ban tracking) + Norma/petition + info-hub skill. Enter address \u2192 your local library news + book-ban petitions + funding-cut alerts. Direct line to your library board",
+      "stack": [
+        "Norma/news",
+        "Norma/petition",
+        "info-hub skill"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Run for LAPL + Pasadena + 5 SoCal library systems. Measure: how many users signed petitions or wrote board members?" },
-        { "step": "MVP", "what": "Geo lookup → local library news + petitions + board-meeting calendar. Free, donation-supported, partner with EveryLibrary" },
-        { "step": "DISTRIBUTION", "what": "ALA + EveryLibrary partnerships. SEO target '[library system] news + funding'" }
+        {
+          "step": "VALIDATE",
+          "what": "Run for LAPL + Pasadena + 5 SoCal library systems. Measure: how many users signed petitions or wrote board members?"
+        },
+        {
+          "step": "MVP",
+          "what": "Geo lookup \u2192 local library news + petitions + board-meeting calendar. Free, donation-supported, partner with EveryLibrary"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "ALA + EveryLibrary partnerships. SEO target '[library system] news + funding'"
+        }
       ]
     },
     {
-      "idx": 20, "name": "ClaimMyVote",
+      "idx": 20,
+      "name": "ClaimMyVote",
       "headline": "Verify your registration. Track your ballot.",
       "angle": "End-user voter-registration + ballot-tracking Pulse app",
       "target": "Registered LA County voters + first-time voters",
-      "diff": "LA Research Agent + LA County Registrar API + Norma news. Enter address → registration status + ballot location + mail-ballot tracking. Petitions on voter-roll cleaning + mail-ballot expansion",
-      "stack": ["la-research-agent", "Norma/news", "Norma/petition"],
+      "diff": "LA Research Agent + LA County Registrar API + Norma news. Enter address \u2192 registration status + ballot location + mail-ballot tracking. Petitions on voter-roll cleaning + mail-ballot expansion",
+      "stack": [
+        "la-research-agent",
+        "Norma/news",
+        "Norma/petition"
+      ],
       "action_items": [
-        { "step": "VALIDATE", "what": "Hand-build for 1 LA Council district. Test registration verification + ballot tracking for 100 users in next election cycle. Measure repeat use" },
-        { "step": "MVP", "what": "Address → registration verify (LA Registrar API) → ballot tracking (USPS mail status) → reminder texts. Free, donation-supported" },
-        { "step": "DISTRIBUTION", "what": "Partner with NAACP voter-registration drives + LA County Registrar's office + college voter-engagement programs" }
+        {
+          "step": "VALIDATE",
+          "what": "Hand-build for 1 LA Council district. Test registration verification + ballot tracking for 100 users in next election cycle. Measure repeat use"
+        },
+        {
+          "step": "MVP",
+          "what": "Address \u2192 registration verify (LA Registrar API) \u2192 ballot tracking (USPS mail status) \u2192 reminder texts. Free, donation-supported"
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Partner with NAACP voter-registration drives + LA County Registrar's office + college voter-engagement programs"
+        }
+      ]
+    },
+    {
+      "idx": 21,
+      "name": "VenturaEats",
+      "headline": "What locals eat. What tourists miss.",
+      "angle": "Ventura-corridor restaurant discovery with local-vs-tourist sort signal",
+      "target": "Ventura Blvd locals + LA tourists looking for non-tourist-trap eats + travel-planning audiences",
+      "diff": "Powered by ventura-claw-leads (1,819 corridor businesses) + ventura-corridor data. Users sign in with their HOME CITY, which feeds a local-vs-tourist signal on every restaurant. Per-business 'local ratio' badge: 92% local-reviewed = hidden gem; <10% local-reviewed = tourist trap warning. Sort by local-favored, tourist-favored, evenly-mixed, or 'never been told about'. The first restaurant directory where review provenance is a first-class filter.",
+      "stack": [
+        "ventura-claw-leads",
+        "ventura-corridor",
+        "Norma/pulse",
+        "geo-IP (tourist detection)"
+      ],
+      "scores": {
+        "novelty": 8,
+        "fit": 8,
+        "feas": 9,
+        "impact": 8
+      },
+      "why_pulse_pattern": "Pulse-pattern: end-user discovery + community contribution (review signals). Same Norma/pulse infra as the other PULSE-batch ideas.",
+      "key_mechanic": "Reviewer-city \u2192 restaurant-tourist-ratio compounding signal. Each new reviewer either reinforces or shifts the local/tourist classification, becoming MORE accurate over time.",
+      "action_items": [
+        {
+          "step": "VALIDATE",
+          "what": "Hand-classify 50 Ventura corridor restaurants as local-favored / tourist-favored / mixed using Yelp+Google review-reviewer-city scraping. Test if classification predicts repeat-visit behavior in 20 user interviews."
+        },
+        {
+          "step": "MVP",
+          "what": "User onboarding: enter home city \u2192 see 'what locals eat in Ventura' filter. Add review with auto-tagged reviewer city. Per-restaurant 'local ratio' badge auto-computed from review-city distribution. Free for users, $9/mo for businesses to claim + respond."
+        },
+        {
+          "step": "DISTRIBUTION",
+          "what": "Travel-blogger partnerships (Eater LA, Thrillist, LA Times Food) \u2014 the 'what locals actually eat' narrative is link-bait gold. Partner with hotels in the corridor: concierge cards point guests to VenturaEats vs tourist-default Yelp."
+        }
       ]
     }
   ]
-}
+}
\ No newline at end of file

← 008d6db viewer: dedicated renderers for SWOT (5 colored tiles + comp  ·  back to Contact Mailer Ideas  ·  productized-skills-20260511 batch: 20 ideas (19/20 green) — 35d4a2c →