[object Object]

← back to Commercialrealestate

CRCP: broker-phone OVERLAY for Crexi-base rows — free usre seed + serve.js overlay (Steve: crexi-base coverage)

3c7ce7f4ef7192ffaec2f18e074e28dd04dd886c · 2026-08-19 10:21:06 -0700 · Steve Abrams

- serve.js mergedRanked: overlays data/broker-phone-overlay.json (normName->phone) onto any ranked row lacking a phone; overlay file in cache key so it hot-refreshes as the all-day backfill appends.
- seed-broker-overlay.js: batches all ranked brokers through /api/broker-contacts (usre) -> 369 phones seeded (731 rows covered).
- next: all-day parallel browser backfill fills the ~1650 usre-miss names.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 3c7ce7f4ef7192ffaec2f18e074e28dd04dd886c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Aug 19 10:21:06 2026 -0700

    CRCP: broker-phone OVERLAY for Crexi-base rows — free usre seed + serve.js overlay (Steve: crexi-base coverage)
    
    - serve.js mergedRanked: overlays data/broker-phone-overlay.json (normName->phone) onto any ranked row lacking a phone; overlay file in cache key so it hot-refreshes as the all-day backfill appends.
    - seed-broker-overlay.js: batches all ranked brokers through /api/broker-contacts (usre) -> 369 phones seeded (731 rows covered).
    - next: all-day parallel browser backfill fills the ~1650 usre-miss names.
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 data/broker-phone-overlay.json  |  1 +
 scripts/scrape-crexi-loopnet.js | 51 ++++++++++++++++++++++++++++++-----------
 scripts/seed-broker-overlay.js  | 27 ++++++++++++++++++++++
 scripts/serve.js                | 18 +++++++++++++--
 4 files changed, 82 insertions(+), 15 deletions(-)

diff --git a/data/broker-phone-overlay.json b/data/broker-phone-overlay.json
new file mode 100644
index 0000000..69c2fdc
--- /dev/null
+++ b/data/broker-phone-overlay.json
@@ -0,0 +1 @@
+{"michaelyue":{"phone":"(212) 913-9058","firm":"Compass","src":"usre"},"cameronsamimi":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"ixgarcia":{"phone":"(925) 336-9746","firm":"Kim Real Estate, Inc","src":"usre"},"christopherbald":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"juliobonilla":{"phone":"(281) 299-3161","firm":"KW Commercial","src":"usre"},"ilgunhan":{"phone":"(323) 737-4567","firm":"Choice 100 Realty Inc.","src":"usre"},"olgawright":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"bradleyluster":{"phone":"(213) 747-4151","firm":"Major Properties","src":"usre"},"kashifhusain":{"phone":"(208) 472-2862","firm":"Colliers Parrish International Inc","src":"usre"},"nanliu":{"phone":"(346) 307-2471","firm":"Keller Williams","src":"usre"},"maykunka":{"phone":"(626) 202-6030","firm":"Compass-Pasadena","src":"usre"},"colegee":{"phone":"(213) 747-4151","firm":"Major Properties","src":"usre"},"artinsarkissian":{"phone":"(818) 241-3000","firm":"The Art In Real Estate","src":"usre"},"aramallenkodzhavakyan":{"phone":"(310) 431-9694","firm":"Coldwell Banker Hallmark Realty Glendale","src":"usre"},"elvinapelian":{"phone":"(818) 618-1818","firm":"Equity Union","src":"usre"},"nickdargenzio":{"phone":"(714) 318-3955","firm":"Blvd Real Estate Investment Co","src":"usre"},"barryburnett":{"phone":"(818) 842-2611","firm":"Barry Burnett Realty","src":"usre"},"odettepeters":{"phone":"(818) 790-8300","firm":"Coldwell Banker Hallmark Realty","src":"usre"},"alexsanchez":{"phone":"(713) 338-9497","firm":"Crexi","src":"usre"},"rosylam":{"phone":"(626) 388-5115","firm":"Coldwell Banker Realty","src":"usre"},"russellenyart":{"phone":"(916) 524-9733","firm":"Crexi","src":"usre"},"matthewsullivan":{"phone":"(818) 812-1208","firm":"Lee & Associates Los Angeles - Investment Services Group, Inc","src":"usre"},"jennyeng":{"phone":"(818) 907-4606","firm":"CBRE LA","src":"usre"},"arierose":{"phone":"(777) 655-9005","firm":"Rose&Co Group","src":"usre"},"billruane":{"phone":"(310) 877-2374","firm":"Estate Properties","src":"usre"},"jeanetsalazar":{"phone":"(951) 370-1925","firm":"Century 21 Masters Walnut","src":"usre"},"jenniferlandon":{"phone":"(310) 582-5379","firm":"Landon Realty Group","src":"usre"},"jeffkashanchi":{"phone":"(310) 210-0743","firm":"Estate Properties","src":"usre"},"marcoasaro":{"phone":"(310) 543-3536","firm":"Beach City Brokers","src":"usre"},"maribelgaribay":{"phone":"(562) 945-2221","firm":"Coldwell Banker Envision","src":"usre"},"tylerluckey":{"phone":"(562) 254-1325","firm":"Compass","src":"usre"},"joshuaglaz":{"phone":"(562) 413-9399","firm":"The Ave","src":"usre"},"shantsherbetdjian":{"phone":"(310) 802-2500","firm":"RE/MAX Commercial & Investment Realty","src":"usre"},"victormorales":{"phone":"(713) 539-9818","firm":"MI CASA BONITA, INC","src":"usre"},"renirose":{"phone":"(626) 437-6000","firm":"Berkshire Hathaway Homeservices California Properties","src":"usre"},"armensimonian":{"phone":"(201) 880-9415","firm":"San Diego","src":"usre"},"maurotrejo":{"phone":"(626) 650-0370","firm":"REALTY ONE GROUP MASTERS","src":"usre"},"leahivychang":{"phone":"(919) 288-2254","firm":"REDPOINT REALTY","src":"usre"},"maryruiz":{"phone":"(661) 714-5356","firm":"Realty Executives Homes","src":"usre"},"kirkschilling":{"phone":"(760) 470-2752","firm":"Rise Realty","src":"usre"},"winstonyeh":{"phone":"(714) 731-3777","firm":"Seven Gables Real Estate","src":"usre"},"rogerbeltran":{"phone":"(562) 863-2121","firm":"Century 21 Allstars","src":"usre"},"cindyshearin":{"phone":"(310) 545-0707","firm":"Strand Hill Properties","src":"usre"},"michaelpadilla":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"maureenhaney":{"phone":"(626) 216-8067","firm":"Compass","src":"usre"},"luisvazquez":{"phone":"(949) 705-5000","firm":"Sperry Commercial Global Affiliates Irvine","src":"usre"},"johnswartz":{"phone":"(212) 913-9058","firm":"Compass","src":"usre"},"jackmccann":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment Real Estate Long Beach","src":"usre"},"drewmcallister":{"phone":"(562) 528-8105","firm":"NRE Commercial","src":"usre"},"michaelchang":{"phone":"(310) 500-1239","firm":"SVN | Rich Investment Real Estate Partners Los Angeles","src":"usre"},"milansigalashley":{"phone":"(310) 478-7700","firm":"Westmac Commercial Brokerage","src":"usre"},"stacyvierheiligfraser":{"phone":"(818) 812-1208","firm":"Lee & Associates - LA North - Sherman Oaks","src":"usre"},"michaeljohnston":{"phone":"(972) 897-0562","firm":"WYNMARK COMMERCIAL REAL ESTATE GROUP PLLC","src":"usre"},"nolaguirre":{"phone":"(818) 812-1208","firm":"Lee & Associates - Long Beach","src":"usre"},"gavingill":{"phone":"(310) 768-8800","firm":"Lee & Associates Commercial Real","src":"usre"},"brettlyon":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"nicolelu":{"phone":"(310) 464-1453","firm":"Maher Commercial Realty","src":"usre"},"cynthiafels":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties","src":"usre"},"jeffreysmith":{"phone":"(742) 483-6672","firm":"House of Realty","src":"usre"},"kevindijamco":{"phone":"(818) 730-4336","firm":"Coldwell Banker Hallmark Realty Glendale","src":"usre"},"sevanpetrossian":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties","src":"usre"},"amalmelleka":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties","src":"usre"},"kellymorgan":{"phone":"(310) 836-3638","firm":"Houze Real Estate Mgmt & Development","src":"usre"},"annaambarian":{"phone":"(310) 893-8300","firm":"Christie’s International Real Estate Southern California","src":"usre"},"christopherrizzotti":{"phone":"(818) 848-3637","firm":"Empower Real Estate","src":"usre"},"artashoganesyan":{"phone":"(212) 913-9058","firm":"Artash Oganesyan","src":"usre"},"josecastellanos":{"phone":"(626) 548-1562","firm":"Re/Max Top Producers","src":"usre"},"jacobpatterson":{"phone":"(517) 265-6000","firm":"Keller Williams Commercial","src":"usre"},"alejandroquinonez":{"phone":"(391) 979-1905","firm":"TDC Pacific Properties","src":"usre"},"noeblanco":{"phone":"(213) 626-9101","firm":"DaCapo Commercial Real Estate","src":"usre"},"navillemcglover":{"phone":"(858) 401-0557","firm":"Advent Real Estate","src":"usre"},"soniaaravena":{"phone":"(310) 999-9029","firm":"Coldwell Banker Envision","src":"usre"},"eduardosandoval":{"phone":"(562) 450-7164","firm":"Excellence RE Real Estate, Inc.","src":"usre"},"johnniestiegler":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"johnheinz":{"phone":"(562) 698-0348","firm":"Century 21 Cornerstone","src":"usre"},"francesbaldwin":{"phone":"(310) 784-2828","firm":"Excel Funding Real Estate Services, Inc.","src":"usre"},"jjlopez":{"phone":"(323) 722-7700","firm":"Century 21 Realty Masters","src":"usre"},"darryllhamilton":{"phone":"(310) 922-2229","firm":"Thompson Team Real Estate","src":"usre"},"jakeison":{"phone":"(949) 485-3271","firm":"Applied Realty, Inc.","src":"usre"},"michaelberdelis":{"phone":"(562) 818-6111","firm":"The Michael Berdelis Team","src":"usre"},"rickrodriguez":{"phone":"(323) 722-7700","firm":"Century 21 Realty Masters","src":"usre"},"ximenasalinasmontalvo":{"phone":"(323) 722-7300","firm":"Century 21 Realty Masters","src":"usre"},"jaredaenglish":{"phone":"(602) 610-6610","firm":"Congress Realty","src":"usre"},"adamghacham":{"phone":"(562) 806-1000","firm":"Century 21 A Better Service","src":"usre"},"steveleitner":{"phone":"(212) 913-9058","firm":"Compass Newport Beach","src":"usre"},"tylerwirth":{"phone":"(323) 722-7700","firm":"Century 21 Realty Masters","src":"usre"},"fabiangarcia":{"phone":"(323) 722-7700","firm":"Century 21 Realty Masters","src":"usre"},"danielboyer":{"phone":"(626) 484-0688","firm":"SOUTHLAND PROPERTIES","src":"usre"},"almaaguilar":{"phone":"(626) 393-5227","firm":"Coldwell Banker Realty","src":"usre"},"jasonodonnell":{"phone":"(949) 873-3350","firm":"O'Donnell Real Estate","src":"usre"},"angelabarela":{"phone":"(626) 428-4031","firm":"Coldwell Banker Leaders","src":"usre"},"jennykang":{"phone":"(562) 900-2131","firm":"C-21 Classic Estates","src":"usre"},"mytrinh":{"phone":"(388) 800-0000","firm":"Crexi","src":"usre"},"michaelmatusik":{"phone":"(714) 875-2400","firm":"Prime Net Lease","src":"usre"},"genesmith":{"phone":"(949) 395-7552","firm":"RE/MAX TerraSol","src":"usre"},"meghmickhazarmaliyan":{"phone":"(949) 280-0681","firm":"KW Commercial Glendale","src":"usre"},"nimmirichards":{"phone":"(714) 875-0290","firm":"Circa Properties","src":"usre"},"jesseperez":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties","src":"usre"},"randystevenson":{"phone":"(818) 956-7001","firm":"Stevenson Real Estate Services","src":"usre"},"johnmoreno":{"phone":"(714) 731-3777","firm":"Seven Gables Real Estate","src":"usre"},"jugentry":{"phone":"(562) 857-6768","firm":"Century 21 Astro","src":"usre"},"danielshieh":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"nicorosmarin":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"anthonyelminoufi":{"phone":"(310) 543-3536","firm":"Beach City Brokers","src":"usre"},"stephentakahashi":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"peterhazdovac":{"phone":"(310) 739-9743","firm":"HH Coastal Real Estate","src":"usre"},"brookedianich":{"phone":"(310) 403-4413","firm":"Keller Williams Luxury","src":"usre"},"herbertdiaz":{"phone":"(310) 955-7420","firm":"PLF Real Estate Solutions","src":"usre"},"michelleaccetta":{"phone":"(310) 543-3536","firm":"Beach City Brokers","src":"usre"},"martyrodriguez":{"phone":"(626) 727-9481","firm":"Century 21 Masters","src":"usre"},"charlesmartin":{"phone":"(909) 559-7518","firm":"CM & ASSOCIATES","src":"usre"},"herculesgoes":{"phone":"(626) 488-5221","firm":"The R.R. Network","src":"usre"},"richardreyes":{"phone":"(714) 600-3334","firm":"REYES REALTY GROUP","src":"usre"},"samwoldeyesus":{"phone":"(949) 689-1558","firm":"Compass","src":"usre"},"yvonneregis":{"phone":"(424) 512-2883","firm":"Khorr Realty","src":"usre"},"victorayala":{"phone":"(909) 248-5296","firm":"CENTURY 21 SYNERGIA REALTY","src":"usre"},"anabellajimenez":{"phone":"(323) 722-7700","firm":"Century 21 Realty Masters","src":"usre"},"handokochen":{"phone":"(626) 594-4901","firm":"Growth Investment Group","src":"usre"},"josieandrade":{"phone":"(949) 988-3000","firm":"First Team Real Estate","src":"usre"},"yehiazakaria":{"phone":"(562) 862-2226","firm":"Century 21 Jervis & Associates","src":"usre"},"alexrivera":{"phone":"(818) 812-1208","firm":"Lee & Associates - Los Angeles - West","src":"usre"},"danielahn":{"phone":"(213) 385-4989","firm":"NewStar Realty & Investment","src":"usre"},"alexandrocolombo":{"phone":"(310) 978-7950","firm":"Keller Williams","src":"usre"},"ryankirschner":{"phone":"(213) 747-4151","firm":"Major Properties","src":"usre"},"jondavis":{"phone":"(714) 446-0600","firm":"SVN Vanguard","src":"usre"},"waltercastillo":{"phone":"(213) 792-0940","firm":"Coldwell Banker Commercial NRT Beverly Hills","src":"usre"},"dellile":{"phone":"(626) 584-0000","firm":"Compass","src":"usre"},"robertstepp":{"phone":"(310) 463-2916","firm":"Stepp Commercial","src":"usre"},"ronaldtounian":{"phone":"(818) 681-1222","firm":"Ronald Tounian, Broker","src":"usre"},"troyarchuleta":{"phone":"(909) 552-0772","firm":"TIG Commercial","src":"usre"},"edisonecheverry":{"phone":"(818) 466-6434","firm":"Peak Commercial","src":"usre"},"rezaghobadi":{"phone":"(818) 325-4142","firm":"Colliers - Los Angeles - Woodland Hills, California","src":"usre"},"justinofaaola":{"phone":"(212) 913-9058","firm":"Compass Los Angeles","src":"usre"},"steffanbraunlich":{"phone":"(215) 328-1862","firm":"Berkadia Commercial Mortgage El Segundo","src":"usre"},"seanmatthews":{"phone":"(424) 343-6812","firm":"","src":"usre"},"errolspiro":{"phone":"(310) 202-9166","firm":"Miller & Desatnik Realty Corp","src":"usre"},"matthewguerra":{"phone":"(909) 997-9765","firm":"Principle Quality Investments","src":"usre"},"jonathantaksa":{"phone":"(424) 672-8220","firm":"Taksa Investment Group","src":"usre"},"bretthoward":{"phone":"(586) 228-2232","firm":"Howard Realty Group","src":"usre"},"nickm":{"phone":"(323) 371-3795","firm":"Realty Executives Com. & Res.","src":"usre"},"kellytran":{"phone":"(832) 447-0642","firm":"KW Commercial","src":"usre"},"elijahshin":{"phone":"(974) 059-4507","firm":"Dream Realty","src":"usre"},"josephlee":{"phone":"(714) 917-9772","firm":"RE/MAX Diamond","src":"usre"},"davepedneault":{"phone":"(949) 988-3000","firm":"First Team Real Estate","src":"usre"},"jayhorrell":{"phone":"(310) 373-7777","firm":"Horrell Realtors","src":"usre"},"katerinakamar":{"phone":"(212) 405-2500","firm":"NAI Capital Torrance","src":"usre"},"chrisbosworth":{"phone":"(404) 441-3849","firm":"CBRE - Atlanta","src":"usre"},"bobbysillman":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"jonathannikfarjam":{"phone":"(310) 593-9869","firm":"Shield Commercial Real Estate","src":"usre"},"frednabati":{"phone":"(310) 954-0808","firm":"Trimax Realty & Loan","src":"usre"},"jeniacohenrad":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties, Inc.","src":"usre"},"hossmacvaugh":{"phone":"(626) 583-8400","firm":"MacVaugh & Co","src":"usre"},"tonyma":{"phone":"(626) 759-4812","firm":"Compass-Pasadena","src":"usre"},"blasfernandez":{"phone":"(818) 319-9191","firm":"IKON Properties","src":"usre"},"sethwellisch":{"phone":"(818) 812-1208","firm":"Lee & Associates - Los Angeles - West","src":"usre"},"marctahler":{"phone":"(310) 471-2600","firm":"Rodeo Realty Beverly Hills Woodland Hills","src":"usre"},"jonathankrikorian":{"phone":"(310) 328-5208","firm":"Investment Real Estate Associates","src":"usre"},"rizenappling":{"phone":"(818) 614-0038","firm":"Rodeo Realty","src":"usre"},"yuriyadamyan":{"phone":"(818) 363-6116","firm":"Park Regency Realty","src":"usre"},"edkaminnsky":{"phone":"(310) 798-1277","firm":"THE KAMINSKY REAL ESTATE GROUP","src":"usre"},"jaimeruiz":{"phone":"(626) 825-7325","firm":"Option One Realty & Investment","src":"usre"},"garykeshishyan":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties Northridge","src":"usre"},"garyahlfeldt":{"phone":"(626) 695-6588","firm":"Gary Ahlfeldt, Broker","src":"usre"},"mikeakopyan":{"phone":"(818) 636-5458","firm":"Coldwell Banker Hallmark","src":"usre"},"ryanloria":{"phone":"(949) 756-3232","firm":"Crexi","src":"usre"},"jordangootkin":{"phone":"(818) 466-6434","firm":"Peak Commercial","src":"usre"},"derrickvartanian":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"yohannbensimon":{"phone":"(310) 920-7800","firm":"Keller Williams West Hollywood","src":"usre"},"baotuannguyenphuoc":{"phone":"(951) 888-0887","firm":"NP Realty","src":"usre"},"danielmedrano":{"phone":"(323) 821-9872","firm":"KW Vision","src":"usre"},"angelvillacis":{"phone":"(626) 862-4090","firm":"Coldwell Banker Leaders","src":"usre"},"robrenshaw":{"phone":"(424) 672-8220","firm":"Taksa Investment Group","src":"usre"},"antetrinidad":{"phone":"(818) 956-7001","firm":"Stevenson Real Estate Services","src":"usre"},"beatricestambulski":{"phone":"(212) 913-9058","firm":"Crexi","src":"usre"},"tomroyds":{"phone":"(530) 755-7033","firm":"Redfin Corporation","src":"usre"},"michaelphillips":{"phone":"(617) 501-5318","firm":"Michael Phillips","src":"usre"},"janetma":{"phone":"(903) 885-1234","firm":"Wetrust Realty","src":"usre"},"dannyfredericks":{"phone":"(846) 606-1175","firm":"Fredericks Realty","src":"usre"},"cecilydstokes":{"phone":"(424) 390-6366","firm":"KW Commercial South Bay","src":"usre"},"kenmorgan":{"phone":"(949) 251-8800","firm":"Morgan Skenderian Investment Real Estate Group","src":"usre"},"justinwhite":{"phone":"(562) 269-4844","firm":"Centennial Advisers","src":"usre"},"loridesantis":{"phone":"(562) 818-5610","firm":"T.N.G. Real Estate Consultants","src":"usre"},"jerrymercado":{"phone":"(626) 205-8539","firm":"Realty Executives Com. & Res.","src":"usre"},"danielli":{"phone":"(212) 913-9058","firm":"COAST CAPITAL GROUP.","src":"usre"},"tommygibson":{"phone":"(626) 610-1309","firm":"The Wright Associated Companies","src":"usre"},"albertrodriguez":{"phone":"(909) 592-8500","firm":"CENTURY 21 Citrus Realty","src":"usre"},"kenlee":{"phone":"(916) 439-0978","firm":"World Citizen Realty","src":"usre"},"ryanbunke":{"phone":"(310) 341-2017","firm":"DOMO Real Estate","src":"usre"},"varinderkumarluhanibal":{"phone":"(562) 418-0998","firm":"VKREA Commercial","src":"usre"},"deborahmartel":{"phone":"(562) 863-2121","firm":"Century 21 Allstars","src":"usre"},"hollykauffman":{"phone":"(310) 345-0165","firm":"Beach City Brokers","src":"usre"},"charlielac":{"phone":"(626) 566-8399","firm":"San Gabriel Valley Realty","src":"usre"},"chuqiliu":{"phone":"(909) 860-8668","firm":"RE/MAX Galaxy","src":"usre"},"andybencosme":{"phone":"(626) 355-1451","firm":"Century 21 Village Realty","src":"usre"},"melissazee":{"phone":"(310) 309-0099","firm":"Keller Williams Commercial","src":"usre"},"jamesallan":{"phone":"(212) 913-9058","firm":"Compass","src":"usre"},"giasilva":{"phone":"(562) 572-4978","firm":"","src":"usre"},"derrickmoore":{"phone":"(213) 613-3334","firm":"CBRE - Downtown Los Angeles","src":"usre"},"tobinmcandrews":{"phone":"(310) 478-7700","firm":"WESTMAC","src":"usre"},"tomwatkins":{"phone":"(562) 269-4844","firm":"Centennial Advisers","src":"usre"},"jenanmusulli":{"phone":"(626) 844-2223","firm":"Coldwell Banker Realty","src":"usre"},"chrisvanvuuren":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"rogerperry":{"phone":"(310) 600-1553","firm":"Roger Perry Group","src":"usre"},"irisrivas":{"phone":"(818) 657-6500","firm":"KW Commercial Calabasas","src":"usre"},"mikecenturioni":{"phone":"(818) 780-7878","firm":"Delphi Business Properties","src":"usre"},"raymondho":{"phone":"(626) 458-9000","firm":"GE Property Development Inc.","src":"usre"},"jackbaboudjian":{"phone":"(818) 244-5151","firm":"Crexi","src":"usre"},"andrewleff":{"phone":"(323) 784-2882","firm":"The CREM Group","src":"usre"},"jennyma":{"phone":"(832) 338-7234","firm":"Sunny Realty Group, Inc.","src":"usre"},"majidradaeimbacrebrokerhotelmultifamily":{"phone":"(818) 334-2111","firm":"Rad Commercial Realty","src":"usre"},"michaeljohnson":{"phone":"(310) 968-6583","firm":"Realty Executives All Cities","src":"usre"},"jakeglaser":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"johnalden":{"phone":"(818) 843-5200","firm":"Dover Management Corporation","src":"usre"},"larsonharley":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"attaimessou":{"phone":"(310) 541-8000","firm":"West Shores Realty","src":"usre"},"franciscorodriguez":{"phone":"(424) 404-5453","firm":"Casa Bella Realty Group","src":"usre"},"timsteuernol":{"phone":"(818) 905-2400","firm":"NAI Capital Commercial, Inc","src":"usre"},"chriskeramati":{"phone":"(949) 756-3232","firm":"Triqor Group","src":"usre"},"shengwang":{"phone":"(514) 710-2309","firm":"Century Commercial RE Services","src":"usre"},"tomodonnell":{"phone":"(949) 498-7873","firm":"Tom Odonnell Real Estate","src":"usre"},"arakarapetian":{"phone":"(818) 330-7000","firm":"AK & Associates Inc","src":"usre"},"markcofer":{"phone":"(951) 370-1925","firm":"Century 21 Masters Walnut","src":"usre"},"kevinliang":{"phone":"(949) 295-7285","firm":"KW Spectrum Properties","src":"usre"},"stevebohannon":{"phone":"(310) 525-1910","firm":"Cushman & Wakefield, Long Beach, California","src":"usre"},"williewheaton":{"phone":"(818) 351-7250","firm":"Willie Wheaton Real Estate","src":"usre"},"tomaragone":{"phone":"(949) 988-3000","firm":"First Team Real Estate Newport Beach","src":"usre"},"gillegaspi":{"phone":"(562) 205-1700","firm":"Legaspi Commercial, Inc","src":"usre"},"donkendrick":{"phone":"(865) 323-4739","firm":"DON KENDRICK REAL ESTATE","src":"usre"},"deangriffith":{"phone":"(626) 664-9163","firm":"Coldwell Banker Realty","src":"usre"},"aleyacoolidge":{"phone":"(818) 501-2212","firm":"illi Commercial Real Estate","src":"usre"},"eddiemoreno":{"phone":"(909) 581-6600","firm":"MGR Real Estate","src":"usre"},"armandoaguirre":{"phone":"(213) 926-5595","firm":"Legendary Commercial Real Estate","src":"usre"},"bryanabayan":{"phone":"(310) 883-8476","firm":"DAUM Commercial Real Estate","src":"usre"},"robertpham":{"phone":"(714) 350-5104","firm":"SoCal ALLoffers","src":"usre"},"vicdeirmendjian":{"phone":"(213) 399-9448","firm":"Strategic Realty","src":"usre"},"christianholland":{"phone":"(310) 478-7700","firm":"WESTMAC","src":"usre"},"jaredswedelson":{"phone":"(212) 405-2500","firm":"NAI Capital HQ","src":"usre"},"tcmacker":{"phone":"(310) 478-7700","firm":"WESTMAC","src":"usre"},"matthewluchs":{"phone":"(310) 469-9012","firm":"Zacuto Group","src":"usre"},"jaygomez":{"phone":"(831) 325-9847","firm":"CBRE - Orange County","src":"usre"},"matthewcsheridan":{"phone":"(415) 781-7700","firm":"Maven Commercial, Inc.","src":"usre"},"craighansson":{"phone":"(415) 765-6900","firm":"Starboard Commercial Brokerage Inc","src":"usre"},"edanshalom":{"phone":"(562) 269-4844","firm":"Centennial Advisers","src":"usre"},"kevinhurley":{"phone":"(626) 204-3300","firm":"KW Commercial Pasadena","src":"usre"},"benjaminhsiang":{"phone":"(424) 377-6001","firm":"Realty Investment Advisors","src":"usre"},"kevingreen":{"phone":"(310) 706-4416","firm":"Marcus & Millichap","src":"usre"},"shamimkhorsand":{"phone":"(310) 658-6426","firm":"Crexi","src":"usre"},"robertleveen":{"phone":"(818) 812-1208","firm":"Lee & Associates - Pasadena","src":"usre"},"patswanson":{"phone":"(214) 267-0400","firm":"Stream Realty Partners Greater L.A.","src":"usre"},"markwitsken":{"phone":"(310) 463-2916","firm":"Stepp Commercial","src":"usre"},"bijankamrava":{"phone":"(818) 264-9337","firm":"Bijan Team Realty","src":"usre"},"yairharpaz":{"phone":"(818) 222-0323","firm":"Harpaz Realty","src":"usre"},"dianahagopian":{"phone":"(818) 993-7370","firm":"Pinnacle Estate Properties","src":"usre"},"justinmccardle":{"phone":"(626) 594-4901","firm":"Growth Investment Group","src":"usre"},"patrickayau":{"phone":"(818) 812-1208","firm":"Lee & Associates - Los Angeles - West","src":"usre"},"giusymelebrown":{"phone":"(212) 913-9058","firm":"Compass","src":"usre"},"houmehrmikepanoussi":{"phone":"(925) 932-2450","firm":"Liberty Business Advisors","src":"usre"},"markventre":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"martinfish":{"phone":"(310) 905-4834","firm":"Martin Fish","src":"usre"},"tayloravakian":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"michaelsusson":{"phone":"(818) 464-3211","firm":"Tamarack Real Estate Services","src":"usre"},"benlee":{"phone":"(310) 425-9838","firm":"Lyon Stahl","src":"usre"},"melindarussell":{"phone":"(818) 907-4704","firm":"CBRE LA","src":"usre"},"adriennebarr":{"phone":"(215) 328-1862","firm":"Berkadia Commercial Mortgage Los Angeles","src":"usre"},"janetstearns":{"phone":"(310) 480-1167","firm":"Compass","src":"usre"},"brianbush":{"phone":"(314) 655-6052","firm":"Bush Properties","src":"usre"},"laurenjcoombs":{"phone":"(562) 513-7800","firm":"KW Commercial Long Beach Pacific Estates","src":"usre"},"ericbritton":{"phone":"(310) 874-5403","firm":"Compass","src":"usre"},"vancemizzi":{"phone":"(310) 529-2052","firm":"eXp Realty of California","src":"usre"},"steveliu":{"phone":"(212) 405-2500","firm":"NAI Capital - Orange County","src":"usre"},"greggperrah":{"phone":"(949) 988-3000","firm":"First Team Real Estate","src":"usre"},"peterhauser":{"phone":"(858) 675-7862","firm":"Northmarq","src":"usre"},"anthonywalker":{"phone":"(310) 982-7055","firm":"BUCKINGHAM INVESTMENTS","src":"usre"},"danielkhorsandi":{"phone":"(949) 250-0400","firm":"Alliance Investment Real Estate Group","src":"usre"},"petercalifano":{"phone":"(310) 521-1000","firm":"Califano Realty","src":"usre"},"williamwhite":{"phone":"(818) 466-6434","firm":"Peak Commercial","src":"usre"},"richardpaley":{"phone":"(818) 343-3000","firm":"Paley Commercial Real Estate Inc","src":"usre"},"gregeckhardt":{"phone":"(310) 395-2663","firm":"Par Commercial Brokerage","src":"usre"},"keithkyle":{"phone":"(310) 251-2344","firm":"Vista Sotheby’s International Realty","src":"usre"},"austinzahn":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"lucajacoli":{"phone":"(310) 593-9869","firm":"Shield Commercial Real Estate","src":"usre"},"cesarcarrillo":{"phone":"(626) 786-3752","firm":"Coldwell Banker Realty","src":"usre"},"jennywu":{"phone":"(250) 589-1788","firm":"IDEAL REALTY","src":"usre"},"josephinelee":{"phone":"(425) 576-8989","firm":"A + Realty & Mortgage","src":"usre"},"anthonyverlingo":{"phone":"(818) 907-4686","firm":"CBRE LA","src":"usre"},"tonypicciolo":{"phone":"(310) 254-4780","firm":"Coldwell Banker Realty","src":"usre"},"jonvarsano":{"phone":"(424) 258-5680","firm":"Vars Real Estate","src":"usre"},"manuelmadrid":{"phone":"(909) 321-9148","firm":"One West Realty Inc","src":"usre"},"jefflefko":{"phone":"(949) 585-7677","firm":"Hanley Investment Group","src":"usre"},"patrickrlutherccim":{"phone":"(949) 698-1115","firm":"SRS Real Estate Partners Newport Beach","src":"usre"},"mikemarcu":{"phone":"(949) 688-1224","firm":"The Mogharebi Group Orange County","src":"usre"},"karlniehaus":{"phone":"(310) 880-7900","firm":"Commercial Real Estate Investments","src":"usre"},"patrickwade":{"phone":"(213) 613-3071","firm":"CBRE - South Bay","src":"usre"},"russellgrether":{"phone":"(310) 230-5771","firm":"The Grether Group","src":"usre"},"anniedeng":{"phone":"(626) 833-8880","firm":"Compass","src":"usre"},"bessaproperties":{"phone":"(310) 272-9847","firm":"Bessa Properties","src":"usre"},"bradkesner":{"phone":"(310) 202-9008","firm":"Wilshire Advisory Group","src":"usre"},"magdymikhail":{"phone":"(949) 275-2701","firm":"American Realty Associates","src":"usre"},"brettzebrowski":{"phone":"(310) 678-7158","firm":"Palm Realty Boutique","src":"usre"},"kyledaniels":{"phone":"(310) 483-3998","firm":"Vista Sotheby’s International Realty","src":"usre"},"shawndugan":{"phone":"(310) 545-0707","firm":"Crexi","src":"usre"},"charlesswanberg":{"phone":"(310) 406-6767","firm":"eXp Commercial","src":"usre"},"franklahijani":{"phone":"(213) 221-1288","firm":"Global Commercial Real Estate","src":"usre"},"tomchichester":{"phone":"(714) 318-3955","firm":"Blvd Real Estate Investment Co","src":"usre"},"alexmetaxas":{"phone":"(424) 377-6001","firm":"Realty Investment Advisors","src":"usre"},"brentsprenkle":{"phone":"(858) 675-7862","firm":"Northmarq","src":"usre"},"jesushenao":{"phone":"(801) 854-3477","firm":"LEOLA Commercial Inc","src":"usre"},"edkoenig":{"phone":"(818) 903-8088","firm":"Ed Koenig IRE","src":"usre"},"moonlim":{"phone":"(213) 270-2256","firm":"DAUM Commercial Real Estate","src":"usre"},"elliottgallahan":{"phone":"(818) 812-1208","firm":"Lee & Associates - Pasadena","src":"usre"},"jessepaster":{"phone":"(212) 405-2500","firm":"NAI Capital HQ","src":"usre"},"sionkhakshour":{"phone":"(213) 747-4151","firm":"Major Properties","src":"usre"},"jackchang":{"phone":"(212) 405-2500","firm":"NAI Capital","src":"usre"},"miguelaguilo":{"phone":"(310) 686-2961","firm":"Miguel Aguilo Real Estate","src":"usre"},"clarkeveritt":{"phone":"(310) 328-5208","firm":"Investment Real Estate Associates","src":"usre"},"johnread":{"phone":"(949) 725-8606","firm":"CBRE - Orange County","src":"usre"},"scottmartin":{"phone":"(212) 405-2500","firm":"NAI Capital - Pasadena","src":"usre"},"enriqueviramontes":{"phone":"(562) 512-5623","firm":"Commercial Real Estate Brokerage Inc","src":"usre"},"shahriardavidesfahani":{"phone":"(646) 603-6868","firm":"Keller Williams Realty Calabasas","src":"usre"},"caseypicard":{"phone":"(626) 204-3300","firm":"KW Commercial Pasadena","src":"usre"},"darinchase":{"phone":"(818) 848-3637","firm":"Empower Real Estate","src":"usre"},"baroncastillo":{"phone":"(818) 605-2626","firm":"Apartment Building Investments","src":"usre"},"christopherbaer":{"phone":"(301) 948-2600","firm":"Avison Young - North Los Angeles","src":"usre"},"melinakalachian":{"phone":"(626) 204-3300","firm":"Keller Williams","src":"usre"},"davidsamuels":{"phone":"747-746-9817","firm":"Keller Williams Westlake Village","src":"usre"},"peterwang":{"phone":"(626) 445-0123","firm":"Century 21 Ludecke Inc","src":"usre"},"davidpassman":{"phone":"(310) 859-8100","firm":"The Passman Group","src":"usre"},"davidleibowitz":{"phone":"(310) 328-5208","firm":"Investment Real Estate Associates","src":"usre"},"ryangonzalez":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"chandlerrockwell":{"phone":"(320) 405-2310","firm":"Fred Leeds Asset Group","src":"usre"},"kenjiyoshioka":{"phone":"(424) 247-7174","firm":"Crexi","src":"usre"},"loganmccullough":{"phone":"(310) 857-4525","firm":"CBRE - West LA","src":"usre"},"karlacisneros":{"phone":"(818) 884-6356","firm":"Nansco Management Inc.","src":"usre"},"chasesimonton":{"phone":"(714) 721-7957","firm":"Re/MAX One","src":"usre"},"spencerallen":{"phone":"(562) 269-4844","firm":"Centennial Advisers","src":"usre"},"jackpatel":{"phone":"(562) 400-7622","firm":"Sage Real Estate","src":"usre"},"angieweeks":{"phone":"(949) 988-3000","firm":"First Team Real Estate","src":"usre"},"anyajensen":{"phone":"(323) 719-4781","firm":"Coldwell Banker Realty","src":"usre"},"garykrill":{"phone":"(310) 994-3922","firm":"Compass","src":"usre"},"luisalvarez":{"phone":"(818) 466-6434","firm":"Peak Comercial","src":"usre"},"vineendrajain":{"phone":"(310) 331-8552","firm":"Ingenious Asset Group, Inc.","src":"usre"},"imperialproperties":{"phone":"(713) 880-2552","firm":"Imperial Properties","src":"usre"},"enriquelizarazu":{"phone":"(626) 818-0980","firm":"Lizarazu & Associates Inc","src":"usre"},"woodystahl":{"phone":"(310) 425-9838","firm":"Lyon Stahl Investment real Estate","src":"usre"},"brendanmurphy":{"phone":"(773) 879-2437","firm":"SURMOUNT","src":"usre"},"jamesabdelmalek":{"phone":"(424) 350-6342","firm":"Keller Williams Palos Verdes","src":"usre"},"donaldheller":{"phone":"(310) 466-7809","firm":"Don Heller Group | Christie's International Real Estate AKG","src":"usre"},"carolinetaicher":{"phone":"(310) 281-4595","firm":"The Oppenheim Group","src":"usre"},"cathyqi":{"phone":"(626) 313-1117","firm":"RE/MAX Masters Realty","src":"usre"},"johnkatnik":{"phone":"(310) 525-3700","firm":"BRC Advisors Inc","src":"usre"},"brettbayless":{"phone":"(949) 887-2465","firm":"The Mogharebi Group Orange County","src":"usre"},"erikransdell":{"phone":"(714) 392-6380","firm":"Strands Realty Group","src":"usre"},"christieslatcher":{"phone":"(310) 798-9154","firm":"JAMICO Properties","src":"usre"},"markkonopaske":{"phone":"(818) 812-1208","firm":"Lee & Associates Los Angeles - Investment Services Group, Inc","src":"usre"},"omarinsignares":{"phone":"(949) 636-3961","firm":"Petroleum Realty Group ®","src":"usre"},"daylinackerman":{"phone":"(310) 691-1350","firm":"Pegasus Investments","src":"usre"},"elizabethkwak":{"phone":"(818) 812-1208","firm":"Lee & Associates - Los Angeles - Downtown","src":"usre"},"billasher":{"phone":"(949) 585-7677","firm":"Hanley Investment Group","src":"usre"},"rileyhanson":{"phone":"(714) 318-3955","firm":"Blvd Real Estate Investment Co","src":"usre"},"baboudjianproperties":{"phone":"(818) 244-5151","firm":"Baboudjian Properties","src":"usre"},"kevinlutz":{"phone":"(626) 204-3300","firm":"KW Commercial Pasadena","src":"usre"},"chuckbrill":{"phone":"(310) 538-6710","firm":"DAUM Commercial Real Estate Services South Bay","src":"usre"},"michaelkaplan":{"phone":"(682) 703-0448","firm":"SRS REAL ESTATE PARTNERS-SOUTHWEST, LLC","src":"usre"},"dimitrepetrov":{"phone":"(209) 845-3836","firm":"Commercial Real Estate Investors, Inc.","src":"usre"},"matthewsillaman":{"phone":"(310) 541-8000","firm":"West Shores Realty","src":"usre"},"susieli":{"phone":"(813) 618-9343","firm":"Wetrust Realty","src":"usre"},"jakehurwitz":{"phone":"(310) 477-8865","firm":"Crexi","src":"usre"},"stevensimonetti":{"phone":"(310) 621-5155","firm":"RE/MAX Nexus","src":"usre"},"laurenforbes":{"phone":"(310) 901-8512","firm":"Compass","src":"usre"}}
\ No newline at end of file
diff --git a/scripts/scrape-crexi-loopnet.js b/scripts/scrape-crexi-loopnet.js
index fe83b48..bc24377 100644
--- a/scripts/scrape-crexi-loopnet.js
+++ b/scripts/scrape-crexi-loopnet.js
@@ -12,6 +12,7 @@ const db = require('./db/brokers-db');
 const OC = process.env.HOME + '/.npm-global/bin/openclaw';
 const TYPE = (process.argv.find(a => a.startsWith('--type='))?.split('=')[1]) || 'Multifamily';
 const LIMIT = +(process.argv.find(a => a.startsWith('--limit='))?.split('=')[1]) || 25; // detail pages / run (polite)
+const PAGES = +(process.argv.find(a => a.startsWith('--pages='))?.split('=')[1]) || 30; // search pages to sweep
 const APPLY = process.argv.includes('--apply');
 // LA County placeId (recon-verified to return LA results with street address + price)
 const SEARCH = `https://www.crexi.com/properties?types%5B%5D=${encodeURIComponent(TYPE)}&placeIds%5B%5D=ChIJE9on3F3HwoAR9AhGJW_fL-I`;
@@ -26,9 +27,18 @@ const nFirm = s => String(s || '').toLowerCase().replace(/[^a-z0-9]+/g, '').repl
 // ── STEP 1: search grid -> [{url, id, text}] then parse price/address in NODE (avoids the
 //    shell-escaping hell of regex inside the injected --fn string). Scroll the SPA to load cards. ──
 const ADDR_RE = /\d{2,6}\s+[A-Z0-9][A-Za-z0-9.'-]*(?:\s+[A-Za-z0-9.'&-]+){0,4}\s+(?:St|Street|Ave|Avenue|Blvd|Boulevard|Rd|Road|Dr|Drive|Ln|Lane|Way|Pl|Place|Ct|Court|Hwy|Highway)\b[^,]*,?\s*[A-Za-z. ]*,?\s*CA\s*\d{5}/;
-async function gridSweep() {
-  if (!oc(['browser', 'navigate', SEARCH])) return [];
-  for (let i = 0; i < 6; i++) { oc(['browser', 'evaluate', '--fn', '() => window.scrollTo(0, document.body.scrollHeight)']); await sleep(1800); }
+// parse $1,500,000 / $1.2M / $850K
+function parsePrice(txt) {
+  let m = txt.match(/\$\s?([0-9]+(?:\.[0-9]+)?)\s?([MK])\b/i);
+  if (m) return Math.round(+m[1] * (m[2].toUpperCase() === 'M' ? 1e6 : 1e3));
+  m = txt.match(/\$\s?([0-9]{3,}(?:,[0-9]{3})+)/);
+  return m ? +m[1].replace(/,/g, '') : null;
+}
+const cleanAddr = a => a && a.replace(/^0+\s+/, '').replace(/^[^0-9]*(\d)/, '$1').trim();
+async function gridSweep(page) {
+  const url = SEARCH + (page > 1 ? '&page=' + page : '');
+  if (!oc(['browser', 'navigate', url])) return [];
+  for (let i = 0; i < 5; i++) { oc(['browser', 'evaluate', '--fn', '() => window.scrollTo(0, document.body.scrollHeight)']); await sleep(1500); }
   // return RAW per-card text + id; parse in node
   const raw = ocEval(`() => {
     const out=[]; const seen=new Set();
@@ -44,13 +54,25 @@ async function gridSweep() {
   }`);
   const cards = [];
   for (const r of (Array.isArray(raw) ? raw : [])) {
-    const price = (r.text.match(/\$([0-9]{3,}(?:,[0-9]{3})+)/) || [])[1];
-    const addr = (r.text.match(ADDR_RE) || [])[0];
+    const price = parsePrice(r.text);
+    const addr = cleanAddr((r.text.match(ADDR_RE) || [])[0]);
     const cap = (r.text.match(/([0-9.]+)%\s*CAP/i) || [])[1];
-    cards.push({ url: 'https://www.crexi.com/properties/' + r.id + '/', id: r.id, price: price ? +price.replace(/,/g, '') : null, address: addr || null, cap: cap ? +cap : null });
+    cards.push({ url: 'https://www.crexi.com/properties/' + r.id + '/', id: r.id, price, address: addr || null, cap: cap ? +cap : null });
   }
   return cards;
 }
+// paginate the search: sweep pages 1..PAGES, dedup by id, until a page yields no NEW cards
+async function collectAllCards() {
+  const all = new Map();
+  for (let p = 1; p <= PAGES; p++) {
+    const cs = await gridSweep(p);
+    let fresh = 0;
+    for (const c of cs) if (!all.has(c.id)) { all.set(c.id, c); fresh++; }
+    process.stdout.write(`  page ${p}: +${fresh} (total ${all.size})\n`);
+    if (fresh === 0 && p > 1) break; // no new listings -> end of results
+  }
+  return [...all.values()];
+}
 
 // ── STEP 2: detail page -> {agent, firm, phone, license, address(fallback), price(fallback)} ──
 function detailAgent(url) {
@@ -91,16 +113,19 @@ async function resolveBroker(agent, firm) {
 }
 
 (async () => {
-  console.log(`\n== Crexi crawl · ${TYPE} · LA · ${APPLY ? 'APPLY' : 'DRY-RUN'} · limit ${LIMIT} detail pages ==\n`);
-  const cards = await gridSweep();
-  console.log(`grid: ${cards.length} listing cards found\n`);
-  const seen = new Set(); let wrote = 0, matched = 0, created = 0, i = 0;
+  console.log(`\n== Crexi crawl · ${TYPE} · LA · ${APPLY ? 'APPLY' : 'DRY-RUN'} · ${PAGES} pages · ${LIMIT} detail crawls ==\n`);
+  const cards = await collectAllCards();
+  console.log(`\ngrid: ${cards.length} unique listing cards across pages\n`);
+  const seen = new Set(); let wrote = 0, matched = 0, created = 0, i = 0, unpriced = 0;
   for (const c of cards) {
-    if (i >= LIMIT) break; i++;
+    if (i >= LIMIT) break;
+    const addr = c.address; const price = c.price;
+    if (!addr || !price) { unpriced++; continue; } // Unpriced/unparsed grid card -> skip BEFORE the costly detail crawl
+    if (seen.has(nAddr(addr))) continue;
+    i++;
     const det = detailAgent(c.url); await sleep(1500); // polite throttle
     const agent = det && det.agent, firm = det && det.firm;
-    const addr = c.address; const price = c.price;
-    if (!addr || !price || !agent) { console.log(`  · [skip] ${addr || c.id} — ${!agent ? 'no agent' : 'no addr/price'}`); continue; }
+    if (!agent) { console.log(`  · [skip] ${addr} — no agent on detail page`); continue; }
     if (seen.has(nAddr(addr))) continue; seen.add(nAddr(addr));
     const bid = await resolveBroker(agent, firm);
     const tag = bid === 'NEW' ? '[would create broker]' : bid ? '' : '[no broker]';
diff --git a/scripts/seed-broker-overlay.js b/scripts/seed-broker-overlay.js
new file mode 100644
index 0000000..4af518b
--- /dev/null
+++ b/scripts/seed-broker-overlay.js
@@ -0,0 +1,27 @@
+#!/usr/bin/env node
+// seed-broker-overlay.js — FREE ($0) Phase-1 seed of the Crexi-base broker-phone overlay.
+// Batches every ranked-row broker through CRCP's own /api/broker-contacts (usre commercial index)
+// and records the resolved real phone into data/broker-phone-overlay.json (normName -> {phone,firm}).
+// serve.js overlays this onto any ranked row lacking a phone. The all-day parallel browser job
+// (backfill-crexi-brokers) then fills the usre-MISS names.
+'use strict';
+const fs = require('fs'), path = require('path');
+const DATA = path.join(__dirname, '..', 'data');
+const norm = s => String(s||'').toLowerCase().replace(/[^a-z0-9]/g,'');
+const OVER = path.join(DATA, 'broker-phone-overlay.json');
+(async () => {
+  const ranked = JSON.parse(fs.readFileSync(path.join(DATA,'ranked.json'),'utf8')).ranked;
+  const overlay = fs.existsSync(OVER) ? JSON.parse(fs.readFileSync(OVER,'utf8')) : {};
+  const bname = r => r.broker_agent || (r.broker_agents||[])[0] || r.broker_name;
+  // batch through the local CRCP resolver
+  const items = ranked.filter(r=>bname(r)).map(r=>({id:r.id, name:bname(r), firm:r.broker_firm||r.firm||'', city:r.city||''}));
+  let seeded=0;
+  for (let i=0;i<items.length;i+=200){
+    const batch = items.slice(i,i+200);
+    let j; try{ j = await fetch('http://127.0.0.1:9911/api/broker-contacts',{method:'POST',headers:{'Content-Type':'application/json',Authorization:'Basic '+Buffer.from('admin:DW2024!').toString('base64')},body:JSON.stringify({items:batch})}).then(x=>x.json()); }catch(e){ continue; }
+    for (const it of batch){ const c=(j.contacts||{})[it.id]; if(c&&c.phone&&!c.phone_national){ const k=norm(it.name); if(k&&!overlay[k]){ overlay[k]={phone:c.phone,firm:c.firm||it.firm,src:'usre'}; seeded++; } } }
+    process.stdout.write(`  seeded ${seeded}\r`);
+  }
+  fs.writeFileSync(OVER, JSON.stringify(overlay));
+  console.log(`\nseed: ${seeded} broker phones from usre -> ${OVER} (${Object.keys(overlay).length} total in overlay)`);
+})().catch(e=>{console.error('seed FAILED',e.message);process.exit(1);});
diff --git a/scripts/serve.js b/scripts/serve.js
index 9b61cd6..20748bc 100644
--- a/scripts/serve.js
+++ b/scripts/serve.js
@@ -2115,7 +2115,7 @@ let _rankedMerge = { key: '', json: null };
 function mergedRanked() {
   const rankedPath = path.join(ROOT, 'data', 'ranked.json');
   const BROKER_FEEDS = brokerFeedFiles();
-  const parts = [rankedPath, ...BROKER_FEEDS.map(f => path.join(ROOT, 'data', f))];
+  const parts = [rankedPath, path.join(ROOT, 'data', 'broker-phone-overlay.json'), ...BROKER_FEEDS.map(f => path.join(ROOT, 'data', f))];
   const key = parts.map(p => { try { return p + ':' + fs.statSync(p).mtimeMs; } catch (_) { return p + ':0'; } }).join('|');
   if (_rankedMerge.key === key && _rankedMerge.json) return _rankedMerge.json;
   const base = JSON.parse(fs.readFileSync(rankedPath, 'utf8'));
@@ -2159,7 +2159,21 @@ function mergedRanked() {
       }
     }
   }
-  const out = { ...base, ranked, _brokerDirectAdded: added, _brokerDirectSubbed: substituted };
+  // Broker-phone OVERLAY (Steve 2026-08-19): apply resolved broker phones to Crexi-base rows that
+  // lack one, keyed by normalized broker name. Seeded free from usre; filled all-day by the parallel
+  // browser backfill (data/broker-phone-overlay.json). Non-destructive — only fills blanks.
+  let overlaid = 0;
+  try {
+    const ov = JSON.parse(fs.readFileSync(path.join(ROOT, 'data', 'broker-phone-overlay.json'), 'utf8'));
+    const nm = s => String(s || '').toLowerCase().replace(/[^a-z0-9]/g, '');
+    for (const r of ranked) {
+      if (r.broker_phone) continue;
+      const name = r.broker_agent || (r.broker_agents || [])[0] || r.broker_name;
+      const hit = name && ov[nm(name)];
+      if (hit && hit.phone) { r.broker_phone = hit.phone; if (hit.firm && !r.broker_firm) r.broker_firm = hit.firm; overlaid++; }
+    }
+  } catch (_) { /* no overlay yet */ }
+  const out = { ...base, ranked, _brokerDirectAdded: added, _brokerDirectSubbed: substituted, _brokerPhoneOverlaid: overlaid };
   _rankedMerge = { key, json: out };
   return out;
 }

← d81c510 refactor(agent-profile): extract shared helpers (agentOverla  ·  back to Commercialrealestate  ·  CRCP: all-day parallel firm-phone backfill for Crexi-base ro 0668669 →