[object Object]

← back to La Socrata Ingester

Contractor enrichment: deterministic directory blocklist (nulls LLM-accepted aggregators)

5fc3e573bbfc4e812c8d98147fdd898025190407 · 2026-08-12 08:07:18 -0700 · steve

Files touched

Diff

commit 5fc3e573bbfc4e812c8d98147fdd898025190407
Author: steve <steve@designerwallcoverings.com>
Date:   Wed Aug 12 08:07:18 2026 -0700

    Contractor enrichment: deterministic directory blocklist (nulls LLM-accepted aggregators)
---
 scripts/enrich-contractor.js | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/enrich-contractor.js b/scripts/enrich-contractor.js
index cf74eb5..8d94663 100644
--- a/scripts/enrich-contractor.js
+++ b/scripts/enrich-contractor.js
@@ -72,11 +72,15 @@ async function pick() {
     LIMIT ${BATCH}`)).rows;
 }
 
+// deterministic directory/aggregator blocklist — nulls a website the LLM wrongly accepted
+const DIRECTORY = /(buildzoom|yelp|bbb\.org|mapquest|facebook|instagram|contractorlicenseca|contractorlicense|licensedcontractor|bizapedia|dnb\.com|dandb|manta|chamberofcommerce|houzz|angi\.|angieslist|thumbtack|porch\.com|nextdoor|zoominfo|indeed|homeadvisor|networx|birdeye|trustpilot|opencorporates|buzzfile|corporationwiki|dexknows|superpages|yellowpages)/i;
+
 async function enrichOne(c) {
   let fields = { website: null, email: null, linkedin: null, confidence: 'none' };
   try {
     const results = await ddg(`${c.BusinessName} ${c.City} California contractor official website`);
     if (results.length) fields = await extract(c, results);
+    if (fields.website && DIRECTORY.test(fields.website)) { fields.website = null; if (fields.confidence === 'high') fields.confidence = 'none'; }
   } catch (e) { fields.confidence = 'error:' + e.message.slice(0, 30); }
   await q(`UPDATE cslb_raw SET website=$2, email=$3, linkedin=$4, enrich_confidence=$5, enrich_source='ddg+local-llm', enriched_at=now() WHERE "LicenseNo"=$1`,
     [c.LicenseNo, fields.website || null, fields.email || null, fields.linkedin || null, fields.confidence || 'none']);

← c5f4234 Contractor web-enrichment — $0 local (free DDG search + loca  ·  back to La Socrata Ingester  ·  enrich: --shard=i/N + --ollama/--model for max-it fan-out ac daf3111 →