[object Object]

← back to Commercialrealestate

Phase 2: firm-direct discovery runner + M&M discovery (geo-bbox POST, needs custom extractor)

e3626ca6a85268297a7c3ee3b4a42b27e4161e07 · 2026-07-30 22:17:14 -0700 · steve

Files touched

Diff

commit e3626ca6a85268297a7c3ee3b4a42b27e4161e07
Author: steve <steve@designerwallcoverings.com>
Date:   Thu Jul 30 22:17:14 2026 -0700

    Phase 2: firm-direct discovery runner + M&M discovery (geo-bbox POST, needs custom extractor)
---
 scripts/run-firm-discovery.sh | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/scripts/run-firm-discovery.sh b/scripts/run-firm-discovery.sh
new file mode 100755
index 0000000..ca34a19
--- /dev/null
+++ b/scripts/run-firm-discovery.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+# run-firm-discovery.sh — Phase 2: discover every dormant firm-direct API shape (docs/SOURCING.md).
+# Sequential (respects Browserbase concurrency), one Browserbase session (~$0.04) per firm.
+# Writes a per-firm verdict to data/raw/discovery-verdicts.txt so we know which firms genericExtract
+# already handles (wire now) vs which need a custom extract() (follow-on, free/local).
+set -u
+cd "$(dirname "$0")/.."
+export NODE_PATH="$HOME/.claude/skills/browserbase/node_modules"
+OUT=data/raw/discovery-verdicts.txt
+: > "$OUT"
+FIRMS="lee-associates colliers cbre jll matthews kidder naicapital cushwake newmark berkadia stepp loopnet"
+n=0
+for f in $FIRMS; do
+  n=$((n+1))
+  echo "[$n/12] discovering $f …"
+  log=$(timeout 260 node scripts/discover-firm.js "$f" 2>&1)
+  # pull the genericExtract verdict + best populated endpoint
+  best=$(echo "$log" | grep -E "genericExtract already pulls|genericExtract found 0" | head -1)
+  echo "$f :: $best" >> "$OUT"
+  echo "  -> $best"
+done
+echo ""
+echo "=== VERDICTS ==="
+cat "$OUT"
+echo ""
+echo "Cost: 12 Browserbase sessions ~\$0.48 (est). Discovery outputs in data/raw/discover-<firm>.json"

← a819e4a CRE sourcing doctrine: broker-of-record as source of truth  ·  back to Commercialrealestate  ·  auto-save: 2026-07-30T22:21:42 (1 files) — data/ranked.json. 8030c9b →