[object Object]

← back to Stars of Design

promote-candidates: harden — restore 'status=new' filter; document why blanket is_designer promote is unsafe (LLM mis-labels Shopify/Twitter/vendor reps as designers)

e00c483996a9c07f08f768d8701c0be90ea88b8f · 2026-05-12 15:58:28 -0700 · Steve Abrams

Files touched

Diff

commit e00c483996a9c07f08f768d8701c0be90ea88b8f
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 12 15:58:28 2026 -0700

    promote-candidates: harden — restore 'status=new' filter; document why blanket is_designer promote is unsafe (LLM mis-labels Shopify/Twitter/vendor reps as designers)
---
 scrapers/promote-candidates.js | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/scrapers/promote-candidates.js b/scrapers/promote-candidates.js
index cf9d44e..22c6d26 100644
--- a/scrapers/promote-candidates.js
+++ b/scrapers/promote-candidates.js
@@ -49,7 +49,19 @@ function guessNameAndFirm(displayName, domain) {
 async function main() {
   let params, where;
   if (ONLY_EMAIL) { params = [ONLY_EMAIL]; where = `email = $1`; }
-  else            { params = [MIN_SCORE];  where = `status='new' AND signal_score >= $1`; }
+  else {
+    // INTENTIONALLY restrictive: only promote rows whose status is the
+    // original 'new' lifecycle state. The sig-extract pipeline repurposes
+    // `status` for an LLM triage label (is_designer / is_vendor /
+    // is_noise), and the LLM is wrong often enough — Shopify/Twitter/TikTok
+    // transactional senders, manufacturer reps, and our own outbound have
+    // all been mis-labeled is_designer in past runs — that we don't trust
+    // it as a promotion signal. To bulk-promote is_designer rows safely,
+    // build a separate audit script (curated allow-list, not a block-list)
+    // and run it with explicit --email targets.
+    params = [MIN_SCORE];
+    where = `status='new' AND signal_score >= $1`;
+  }
   const r = await pool.query(
     `SELECT * FROM sod_email_candidates WHERE ${where} ORDER BY signal_score DESC NULLS LAST`,
     params

← cca9c68 starsofdesign: +40 firms (20 arch, 20 interior) — Selldorf,  ·  back to Stars of Design  ·  starsofdesign: seed data/vendor-domains.txt (~80 lines) — ve 346478c →