← back to Commercialrealestate
fetch-condos-redfin: log Browserbase spend to cost-ledger for AbramsEgo budget tracking
640b81250ed2c69f05cfc6e0495450b4a56c775a · 2026-08-03 09:03:09 -0700 · Steve Abrams
Files touched
M scripts/fetch-condos-redfin.js
Diff
commit 640b81250ed2c69f05cfc6e0495450b4a56c775a
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 3 09:03:09 2026 -0700
fetch-condos-redfin: log Browserbase spend to cost-ledger for AbramsEgo budget tracking
---
scripts/fetch-condos-redfin.js | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/scripts/fetch-condos-redfin.js b/scripts/fetch-condos-redfin.js
index 046e88a..dd97d32 100644
--- a/scripts/fetch-condos-redfin.js
+++ b/scripts/fetch-condos-redfin.js
@@ -215,6 +215,17 @@ function condosFromCSV(text, regionName) {
}
const actualCost = (sessions * SESSION_COST).toFixed(2);
+ // Log Browserbase spend to the shared cost-ledger so AbramsEgo (:9773) tracks it against budget.
+ // LOCAL mode has SESSION_COST=0, so nothing is logged for a free run.
+ if (+actualCost > 0) {
+ try {
+ const row = { ts: new Date().toISOString(), api: 'browserbase', vendor: 'Browserbase',
+ app: 'commercialrealestate/fetch-condos-redfin', note: `Redfin LA condo re-scrape (${sessions} sessions, ${condos.length} condos)`,
+ units: [{ qty: sessions, unit: 'session', rate: SESSION_COST, subtotal: +actualCost }], cost_usd: +actualCost };
+ fs.appendFileSync(process.env.HOME + '/.claude/cost-ledger.jsonl', JSON.stringify(row) + '\n');
+ process.stderr.write(` ✔ logged $${actualCost} to cost-ledger (AbramsEgo budget tracking)\n`);
+ } catch (e) { process.stderr.write(' cost-ledger log skipped: ' + e.message + '\n'); }
+ }
const payload = {
meta: {
source: 'Redfin LA County condo search — feed-first (gis-csv), via Browserbase',
← de3b477 condos: weekly auto-scrape of NEW-listing brokers (--only-mi
·
back to Commercialrealestate
·
chore: lint, refactor (path.join, delete stale note keys), v 685110b →