[object Object]

← back to Rentv Sheet Enrich

Wrap-up: consolidate 207 recovered emails (MX-tagged master) + gated write-back memo

c911b98353e5a4091895674878755c9d5b12b594 · 2026-08-13 23:19:37 -0700 · Steve Abrams

- rentv_recovered_ALL.csv: master of both lanes, deduped, MX-tagged, warmth-sorted
- gated write-back memo -> pending-approval (A/B/C options, low-confidence flagged)
- loop stopped at Steve's call; 162-company tail queue left intact

Files touched

Diff

commit c911b98353e5a4091895674878755c9d5b12b594
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Aug 13 23:19:37 2026 -0700

    Wrap-up: consolidate 207 recovered emails (MX-tagged master) + gated write-back memo
    
    - rentv_recovered_ALL.csv: master of both lanes, deduped, MX-tagged, warmth-sorted
    - gated write-back memo -> pending-approval (A/B/C options, low-confidence flagged)
    - loop stopped at Steve's call; 162-company tail queue left intact
---
 rentv_recovered_ALL.csv | 208 ++++++++++++++++++++++++++++++++++++++++++++++++
 write_source_tab.py     |  92 +++++++++++++++++++++
 2 files changed, 300 insertions(+)

diff --git a/rentv_recovered_ALL.csv b/rentv_recovered_ALL.csv
new file mode 100644
index 0000000..c12e0b4
--- /dev/null
+++ b/rentv_recovered_ALL.csv
@@ -0,0 +1,208 @@
+Contact Name,Company,Recovered Email,Domain MX,Lane,Pattern,Company Phone,Status,Appearances

+Jordan Mellovitz,3Edgewood,jordan.mellovitz@3edgewood.com,yes,web-lookup,first.last,,Active / Contacted,5

+Robert Starver,3Edgewood,robert.starver@3edgewood.com,yes,web-lookup,first.last,,Active / Contacted,5

+Denis Curran,Ascentris,denis.curran@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Gabe Finke,Ascentris,gabe.finke@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Jeff Higgins,Ascentris,jeff.higgins@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Jr Tricia,Ascentris,jr.tricia@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Patrick Kendall,Ascentris,patrick.kendall@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Patrick Tyson,Ascentris,patrick.tyson@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Peter Savoie,Ascentris,peter.savoie@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Robert Toomey,Ascentris,robert.toomey@ascentris.com,yes,web-lookup,first.last,303-317-6464,Needs Email / Outreach Pending,5

+Larry Jackel,Fenway Capital Advisors,larry.jackel@fenwayca.com,yes,web-lookup,first.last,,Active / Contacted,5

+Max Heller,Fenway Capital Advisors,max.heller@fenwayca.com,yes,web-lookup,first.last,,Active / Contacted,5

+Wyatt Buttrose,Fenway Capital Advisors,wyatt.buttrose@fenwayca.com,yes,web-lookup,first.last,,Active / Contacted,5

+David Cohen,Hammes Partners,david.cohen@hammespartners.com,yes,web-lookup,first.last,,Prospect / Follow-up,5

+Stephen Buckeridge,Hammes Partners,stephen.buckeridge@hammespartners.com,yes,web-lookup,first.last,,Prospect / Follow-up,5

+Hoonie Kang,Kearny Real Estate Co,hoonie.kang@kearny.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,5

+Ambrose Fisher,Oaktree Capital Management,afisher@oaktreecapital.com,yes,web-lookup,flast,,Needs Email / Outreach Pending,5

+David Jordon,SSV Properties,david.jordon@ssvproperties.com,yes,web-lookup,first.last,818-851-8080,Needs Email / Outreach Pending,5

+Marc Magliarditi,CBRE    VEGAS,marc.magliarditi@cbre.com,yes,web-lookup,first.last,,Active / Contacted,4

+Michael K. Hsu,CBRE    VEGAS,michael.hsu@cbre.com,yes,web-lookup,first.last,,Active / Contacted,4

+Travis Landes,CBRE    VEGAS,travis.landes@cbre.com,yes,web-lookup,first.last,,Active / Contacted,4

+Christine Wei,Cubework,christine.wei@cubework.com,yes,web-lookup,first.last,,Prospect / Follow-up,4

+Ward McLanahan,Fenway Capital Advisors,ward.mclanahan@fenwayca.com,yes,web-lookup,first.last,,Active / Contacted,4

+Jordan Stone,Harbor Group International,jordan.stone@harborgroupint.com,yes,web-lookup,first.last,,Active / Contacted,4

+Scott Johnson,Johnson Fain,scott.johnson@johnsonfain.com,yes,web-lookup,first.last,323-224-6000,Needs Email / Outreach Pending,4

+Randy Jefferson,LT Global Investment,randy.jefferson@ltglobalinvest.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,4

+Kyle O'Connor,MLL Capital,kyle.oconnor@mllcap.com,yes,web-lookup,first.last,,Prospect / Follow-up,4

+William Adams,MLL Capital,william.adams@mllcap.com,yes,web-lookup,first.last,,Prospect / Follow-up,4

+Wyndsor DePetro,MLL Capital,wyndsor.depetro@mllcap.com,yes,web-lookup,first.last,,Prospect / Follow-up,4

+Jay Ramos,The Opus Group    design build,jayramos@opus-group.com,yes,normalization,pattern,,Active / Contacted,4

+Andy Stone,Vero Capital,andy.stone@verocapital.com,yes,web-lookup,first.last,,Prospect / Follow-up,4

+Hamid Rezapour,Vertical Ventures,hamid.rezapour@verticalventuresllc.com,yes,web-lookup,first.last,,Prospect / Follow-up,4

+Debbie Chatman,American Landmark Apartments,debbie.chatman@alapts.com,yes,web-lookup,first.last,,Active / Contacted,3

+Debra Claytor,American Landmark Apartments,debra.claytor@alapts.com,yes,web-lookup,first.last,,Active / Contacted,3

+Mark Edelman,Arizona State Land Dept,mark.edelman@land.az.gov,yes,web-lookup,first.last,602-542-4631,Active / Contacted,3

+Brad Richardson,Ascent Companies,brad.richardson@ascentcos.com,yes,web-lookup,first.last,,Active / Contacted,3

+Robert Hallock,Bridge,rhallock@bridgedev.com,yes,normalization,pattern,,Needs Email / Outreach Pending,3

+Christina Rau,Bridge Investment group,crau@bridgedev.com,yes,normalization,pattern,,Needs Email / Outreach Pending,3

+JJ Smith,CA Ventures/CA Industrial,jj.smith@ca-ventures.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Peter Densmore,Cannon Management,peter.densmore@cannonmanagement.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Ned DeLorme,Capay Capital,ned.delorme@capaycapitaladvisors.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Kevin Farrell,Century West Partners,kevin.farrell@centurywestmultifamily.com,yes,web-lookup,first.last,310-395-1700,Needs Email / Outreach Pending,3

+Michael Sorochinsky,Century West Partners,michael.sorochinsky@centurywestmultifamily.com,yes,web-lookup,first.last,310-395-1700,Needs Email / Outreach Pending,3

+Randy Fifield,Century West Partners,randy.fifield@centurywestmultifamily.com,yes,web-lookup,first.last,310-395-1700,Needs Email / Outreach Pending,3

+Steve Fifield,Century West Partners,steve.fifield@centurywestmultifamily.com,yes,web-lookup,first.last,310-395-1700,Needs Email / Outreach Pending,3

+Champion Parker,Champion Development Co,champion.parker@championdev.com,yes,normalization,first.last,,Needs Email / Outreach Pending,3

+Rebecca Cole,Champion Development Co,rebecca.cole@championdev.com,yes,normalization,first.last,,Needs Email / Outreach Pending,3

+Winarick Garrett,Champion Development Co,winarick.garrett@championdev.com,yes,normalization,first.last,,Needs Email / Outreach Pending,3

+David Parker,Chase Partners,david.parker@chasepartners.com,yes,web-lookup,first.last,,In Progress / Left Message,3

+Patrick Maloney,Circle Industrial,patrick.maloney@circle-industrial.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Jason Lentz,Conor Commercial,jason.lentz@conor.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Kris Miller,Conor Commercial,kris.miller@conor.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Sven Tustin,Conor Commercial,sven.tustin@conor.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Bert Getz,Globe Corporation,bert.getz@globecor.com,yes,web-lookup,first.last,480-991-0500,Prospect / Follow-up,3

+George Getz,Globe Corporation,george.getz@globecor.com,yes,web-lookup,first.last,480-991-0500,Prospect / Follow-up,3

+Michael Olsen,Globe Corporation,michael.olsen@globecor.com,yes,web-lookup,first.last,480-991-0500,Prospect / Follow-up,3

+Bob Osbrink,Graystone Capital Advisors,bob.osbrink@osbrinkgroup.com,yes,normalization,first.last,,Section / Category,3

+Adam Horowitz,Horowitz Group,adam.horowitz@horowitzgroup.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+G.s. Jaggi,Iridius Capital,gs.jaggi@iridiuscapital.com,yes,web-lookup,first.last,,Active / Contacted,3

+Richard Mack,Mack Real Estate Group,rmack@mackmgmt.com,yes,normalization,pattern,,Prospect / Follow-up,3

+George Thompson,Newmark Grubb Knight Frank,george.thompson@nmrk.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Gregory May,Newmark Grubb Knight Frank,gregory.may@nmrk.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Jay Nugent,Newmark Grubb Knight Frank,jay.nugent@nmrk.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Josh Hartmann,NextMetro Communities,josh.hartmann@nexmetro.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Aiza Kelley,Olympus Property,aiza.kelley@olympusproperty.com,yes,web-lookup,first.last,,Active / Contacted,3

+Gerrt Ranglas,R & V Management,gerrt.ranglas@rvmsandiego.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Michael Pappas,R & V Management,michael.pappas@rvmsandiego.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Scott Dale,R & V Management,scott.dale@rvmsandiego.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,3

+Karla Teixeira,Salt River Project,karla.teixeira@srpnet.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Bryan Ayres,Solid Door Investments,bryan.ayres@soliddoorinvestments.com,yes,web-lookup,first.last,623-850-4577,Prospect / Follow-up,3

+Andy Smith,The Empire Group of Companies,andy.smith@builtbyempire.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Bryan Freel,The Empire Group of Companies,bryan.freel@builtbyempire.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Geoffrey Jacobs,The Empire Group of Companies,geoffrey.jacobs@builtbyempire.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Randy Grudzinski,The Empire Group of Companies,randy.grudzinski@builtbyempire.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Richard Felker,The Empire Group of Companies,richard.felker@builtbyempire.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+William Walker,The Empire Group of Companies,william.walker@builtbyempire.com,yes,web-lookup,first.last,,Prospect / Follow-up,3

+Adam Zunder,Upside Capital Holdings,adam.zunder@upsidecapitalholdings.com,yes,web-lookup,first.last,,Active / Contacted,3

+Jonathan Winick,Upside Capital Holdings,jonathan.winick@upsidecapitalholdings.com,yes,web-lookup,first.last,,Active / Contacted,3

+Michael Bitton,Upside Capital Holdings,michael.bitton@upsidecapitalholdings.com,yes,web-lookup,first.last,,Active / Contacted,3

+Rumpa Dey,AECOM,rumpa.dey@aecom.com,yes,web-lookup,first.last,,Active / Contacted,2

+Scott Preston,AECOM,scott.preston@aecom.com,yes,web-lookup,first.last,,Active / Contacted,2

+Guido Chiappa,Archway Holdings,guido@archwayfund.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Liza Rivera,Archway Holdings,liza@archwayfund.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Bryan Freel,Aspirant Development,bryan.freel@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Geoffrey Jacobs,Aspirant Development,geoffrey.jacobs@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Randy Grudzinski,Aspirant Development,randy.grudzinski@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Randy Wilmeth,Aspirant Development,randy.wilmeth@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Richard Felker,Aspirant Development,richard.felker@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Ron Ensley,Aspirant Development,ron.ensley@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Sherri Koshiol,Aspirant Development,sherri.koshiol@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+William Walker,Aspirant Development,william.walker@aspirantdevelopment.com,unknown,web-lookup,first.last,480-951-2207,Prospect / Follow-up,2

+Christina Haney,Asset Living,christina.haney@assetliving.com,yes,web-lookup,first.last,,Active / Contacted,2

+Christina Rau,Asset Living,christina.rau@assetliving.com,yes,web-lookup,first.last,,Active / Contacted,2

+Lewis Lampton,Asset Living,lewis.lampton@assetliving.com,yes,web-lookup,first.last,,Active / Contacted,2

+Carlos Lujan,Avalon Development,carlos.lujan@avalondevelopment.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Williiam Whittington,Avalon Development,williiam.whittington@avalondevelopment.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+MIchael Cooper,Avrio Real Estate Credit,michael.cooper@avriore.com,yes,web-lookup,first.last,,Active / Contacted,2

+Vicky Schiff,Avrio Real Estate Credit,vicky.schiff@avriore.com,yes,web-lookup,first.last,,Active / Contacted,2

+Peter Kurzeka,Berkeley Point Capital,peterkurzeka@berkpoint.com,yes,normalization,pattern,,Active / Contacted,2

+Brandy Birtcher,Birtcher Development Group,brandy.birtcher@birtcher.com,yes,normalization,first.last,,Needs Email / Outreach Pending,2

+Christopher Sanford,Black Creek Group,christophersanford@blackcreekgroup.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Jr Wetzel,Black Creek Group,jrwetzel@blackcreekgroup.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Drew Sobel,Brentwood Capital Partners,drew.sobel@bcpmgt.com,NO,web-lookup,first.last,310-405-7800,Needs Email / Outreach Pending,2

+Paul Slye,Brentwood Capital Partners,paul.slye@bcpmgt.com,NO,web-lookup,first.last,310-405-7800,Needs Email / Outreach Pending,2

+Vanessa Frye,Brentwood Capital Partners,vanessa.frye@bcpmgt.com,NO,web-lookup,first.last,310-405-7800,Needs Email / Outreach Pending,2

+Kenneth Beall,Bridge Partners,kbeall@bridgedev.com,yes,normalization,pattern,,Active / Contacted,2

+Faith Emmett,Bridge Property Management,femmett@bridgedev.com,yes,normalization,pattern,,Active / Contacted,2

+Jim McGill,CA Industrial,jim.mcgill@ca-ventures.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Sean Spellman,CA Industrial,sean.spellman@ca-ventures.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Brian McGlynn,CIM Group,bmcglynn@cimgroup.com,yes,normalization,pattern,,Active / Contacted,2

+David Altar,CIM Group,daltar@cimgroup.com,yes,normalization,pattern,,Active / Contacted,2

+Diane Defibaugh,CIM Group,ddefibaugh@cimgroup.com,yes,normalization,pattern,,Active / Contacted,2

+Jason Schreider,CIM Group,jschreider@cimgroup.com,yes,normalization,pattern,,Active / Contacted,2

+Ken Kahan,California Landmark Group,ken.kahan@californialandmark.com,yes,normalization,first.last,,Needs Email / Outreach Pending,2

+Prisciila Annoual-Kirbby,Catalyst Commercial Group,prisciila.annoualkirbby@ccgretail.com,yes,normalization,first.last,,Active / Contacted,2

+Adam Holt,Continental Realty Group,adam.holt@continentalrealtygroup.com,yes,web-lookup,first.last,,Prospect / Follow-up,2

+Robert Ireland,Continental Realty Group,robert.ireland@continentalrealtygroup.com,yes,web-lookup,first.last,,Prospect / Follow-up,2

+AARON WESTBROOK,Contour    LV,aaron.westbrook@contourre.com,yes,web-lookup,first.last,800-964-8110,Active / Contacted,2

+CATE JONES,Contour    LV,cate.jones@contourre.com,yes,web-lookup,first.last,800-964-8110,Active / Contacted,2

+DAVID DANESHFOROOZ,Contour    LV,david.daneshforooz@contourre.com,yes,web-lookup,first.last,800-964-8110,Active / Contacted,2

+ED WESTBROOK,Contour    LV,ed.westbrook@contourre.com,yes,web-lookup,first.last,800-964-8110,Active / Contacted,2

+JOSHUA DANESHFOROOZ,Contour    LV,joshua.daneshforooz@contourre.com,yes,web-lookup,first.last,800-964-8110,Active / Contacted,2

+TED FENTIN,Contour    LV,ted.fentin@contourre.com,yes,web-lookup,first.last,800-964-8110,Active / Contacted,2

+Tom Ricci,Coretrust Capital Partners,tricci@core-trust.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Asst Jacqueline,Decron,asstjacqueline@decron.com,yes,normalization,pattern,,Active / Contacted,2

+Danny Barnes,Dunleer,danny.barnes@dunleergroup.com,yes,normalization,first.last,,Active / Contacted,2

+BJ Turner,Dunleer Group,bj.turner@dunleergroup.com,yes,normalization,first.last,,Active / Contacted,2

+Linnard Lane,Empire Realty Group,llane@empirepg.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Rob Munsen,GLP - Global Logistics,rmunsen@gcp.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Felicia Hyde,H. Hendy Associates,felicia.hyde@hhendy.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Heidi Hendy,H. Hendy Associates,heidi.hendy@hhendy.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Jennifer Walton,H. Hendy Associates,jennifer.walton@hhendy.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+John Kratzer,JMI Realty,john@jmirealestate.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Madison Berry,JW Marriott Scottsdale Camelback Inn,madison.berry@marriott.com,yes,web-lookup,first.last,,Prospect / Follow-up,2

+Miriam Campos,JW Marriott Scottsdale Camelback Inn,miriam.campos@marriott.com,yes,web-lookup,first.last,,Prospect / Follow-up,2

+Jeff Dritley,Kearny Real Estate Co,jeff.dritley@kearny.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Steven Hillgren,Kearny Real Estate Co,steven.hillgren@kearny.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Brian Rosella,Kidder,brian.rosella@kidder.com,yes,web-lookup,first.last,,Active / Contacted,2

+Joseph Calistri,Kidder,joseph.calistri@kidder.com,yes,web-lookup,first.last,,Active / Contacted,2

+Ed Cortese,LeFrak Organization,ed.cortese@lefrak.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Jamie LeFrak,LeFrak Organization,jamie.lefrak@lefrak.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Jeffrey Weller,Lion Real Estate,jeffrey.weller@lionreg.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Mory Barak,Lion Real Estate,mory.barak@lionreg.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Ken McElroy,MC Companies,ken.mcelroy@mccompanies.com,yes,web-lookup,first.last,480-998-5400,Active / Contacted,2

+Ross McCallister,MC Companies,ross.mccallister@mccompanies.com,yes,web-lookup,first.last,480-998-5400,Active / Contacted,2

+Cliff Carnes,Matthews Real estate,cliffcarnes@matthews.com,yes,normalization,pattern,,Active / Contacted,2

+JOsh Vydro,McShane Companies,jvydro@mcshane.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Brian Fox,Met Life,brian.fox@metlife.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Emily Philips,Met Life,emily.philips@metlife.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Kathy Sato,Met Life,kathy.sato@metlife.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Prop Not,Met Life,prop.not@metlife.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Right People,Met Life,right.people@metlife.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+At Martin,Morgan Stanley,atmartin@morganstanley.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Kevork Zoryan,Morgan Stanley,kevorkzoryan@morganstanley.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Lisa Matulis,Morgan Stanley,lisamatulis@morganstanley.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Brd Chrmn,NAIOP - AZ,brd.chrmn@naiopaz.org,yes,normalization,first.last,,Active / Contacted,2

+John Orsak,NAIOP - AZ,john.orsak@naiopaz.org,yes,normalization,first.last,,Active / Contacted,2

+Robert Hardwick,National Realty Investments,rhardwick@natrealestatedevelopment.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Brian Watson,Northstar Commercial Partners,brian.watson@northstarcommercialpartners.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Daniel Katz,Northstar Commercial Partners,daniel.katz@northstarcommercialpartners.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Jared Lazarus,Oaktree Capital Management,jlazarus@oaktreecapital.com,yes,web-lookup,flast,,Prospect / Follow-up,2

+Ryan Wagner,OpWest Partners,ryan.wagner@opwestpartners.com,yes,web-lookup,first.last,,Active / Contacted,2

+Tyler Kent,OpWest Partners,tyler.kent@opwestpartners.com,yes,web-lookup,first.last,,Active / Contacted,2

+Joe Derhake,Partner Engineering,jderhake@partneresi.com,yes,normalization,pattern,,Active / Contacted,2

+Belden Brown,Passco,bbrown@passco.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Tom Jahncke,Passco,tjahncke@passco.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Gordan Van,Private Mortgage Fund,gordan@pmfundllc.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Andrew Goncalves,Realconnex,andrew.goncalves@realconnex.com,yes,normalization,first.last,,Needs Email / Outreach Pending,2

+Demetrios Louziotis,Realnex,demetrios.louziotis@realnex.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Jeff Finn,Realnex,jeff.finn@realnex.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Mark Kingston,Realnex,mark.kingston@realnex.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+David Frank,SVN Dealpoint Merrill,dfrank@dealpointmerrill.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Kevin Maggiacomo,SVN Dealpoint Merrill,kmaggiacomo@dealpointmerrill.com,yes,normalization,pattern,,Active / Contacted,2

+Audrey Carlson,SVN | SFR Capital Management,audreycarlson@svn.com,yes,normalization,pattern,,Active / Contacted,2

+Jeff Cline,SVN | SFR Capital Management,jeffcline@svn.com,yes,normalization,pattern,,Active / Contacted,2

+Christina Blaser,Schnitzer,christina.blaser@harsch.com,yes,normalization,first.last,,Needs Email / Outreach Pending,2

+Jordan Schnitzer,Schnitzer,jordan.schnitzer@harsch.com,yes,normalization,first.last,,Needs Email / Outreach Pending,2

+Chris Carter,Sentre Partners,ccarter@sentre.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Ana Munoz,Socotra,ana.munoz@socotracapital.com,yes,normalization,first.last,,Active / Contacted,2

+Tom Regan,Starwood Capital,tregan@starwood.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Steven Ludwig,Strategic Housing Partners,steven.ludwig@coastlinerea.com,yes,normalization,first.last,,Needs Email / Outreach Pending,2

+Steve Ludwig,Strategic Housing partners,steve.ludwig@coastlinerea.com,yes,normalization,first.last,,Active / Contacted,2

+Aaron Feldman,Sunroad Enterprises,aaron.feldman@sunroadenterprises.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Richard Vann,Sunroad Enterprises,richard.vann@sunroadenterprises.com,yes,web-lookup,first.last,,Needs Email / Outreach Pending,2

+Arcg For,TCA Archtects,arcg.for@tca-arch.com,yes,web-lookup,first.last,213-553-1100,Needs Email / Outreach Pending,2

+Legacy Neptune,TCA Archtects,legacy.neptune@tca-arch.com,yes,web-lookup,first.last,213-553-1100,Needs Email / Outreach Pending,2

+Gerald Yahr,The Koll Company,gerald.yahr@koll.com,yes,web-lookup,first.last,,Active / Contacted,2

+Soctt Lanni,The Koll Company,soctt.lanni@koll.com,yes,web-lookup,first.last,,Active / Contacted,2

+Soctt Meserve,The Koll Company,soctt.meserve@koll.com,yes,web-lookup,first.last,,Active / Contacted,2

+Luke Daniels,The Richman Group of Arizona,danielsl@richmancapital.com,yes,normalization,pattern,,Active / Contacted,2

+Cathy Ebert,Vanbarton Group,cathy.ebert@vanbartongroup.com,yes,web-lookup,first.last,,Active / Contacted,2

+Jeremy Sedrish,Vanbarton Group,jeremy.sedrish@vanbartongroup.com,yes,web-lookup,first.last,,Active / Contacted,2

+Guy Lawrence,W.P. Carey,glawrence@wpcarey.com,yes,normalization,pattern,,Needs Email / Outreach Pending,2

+Jerry Dunn,A10 Capital,jerry.dunn@a10capital.com,yes,web-lookup,first.last,,Active / Contacted,1

+Joe Gomez,A10 Capital,joe.gomez@a10capital.com,yes,web-lookup,first.last,,Active / Contacted,1

+Ken Gaitan,A10 Capital,ken.gaitan@a10capital.com,yes,web-lookup,first.last,,Active / Contacted,1

+Ken Wilson,A10 Capital,ken.wilson@a10capital.com,yes,web-lookup,first.last,,Active / Contacted,1

+Adrian Corbiere,Bellwether Enterprise,acorbiere@bwecap.com,yes,normalization,pattern,,Active / Contacted,1

+Phil Melton,Bellwether Enterprise,pmelton@bwecap.com,yes,normalization,pattern,,Active / Contacted,1

+David Nagel,Decron,davidnagel@decron.com,yes,normalization,pattern,,Active / Contacted,1

+Harriet Ducot,Lone Oak,harriet@loneoakfund.com,yes,normalization,pattern,,,1

+Tyler Hereford,Lone Oak,tyler@loneoakfund.com,yes,normalization,pattern,,Needs Email / Outreach Pending,1

+Christopher Bunce,Private Mortgage Fund,christopher@pmfundllc.com,yes,normalization,pattern,,Prospect / Follow-up,1

+Dueck Gordan,Private Mortgage Fund,dueck@pmfundllc.com,yes,normalization,pattern,,Prospect / Follow-up,1

+Van Dueck,Private Mortgage Fund,van@pmfundllc.com,yes,normalization,pattern,,Prospect / Follow-up,1

+Kristin Schwartz,Remedy Medical properties,kristin.schwartz@remedymed.com,yes,web-lookup,first.last,312-872-4120,Prospect / Follow-up,1

+Zoe Solsby,Sares-Regis,zsolsby@sares-regis.com,yes,normalization,pattern,,Needs Email / Outreach Pending,1

diff --git a/write_source_tab.py b/write_source_tab.py
new file mode 100644
index 0000000..97e9160
--- /dev/null
+++ b/write_source_tab.py
@@ -0,0 +1,92 @@
+#!/usr/bin/env python3
+"""
+write_source_tab.py <gid> <results.json> [--dry-run]
+
+SOURCE-TAB-aware enrichment writer. Unlike write_by_contact.py (which needs the master
+tab's "Contact Name"/"Company/Venue" headers), this adapts to a source tab's REAL schema
+(e.g. Sheet2 uses "Venue"/"Contact"/"Email"), matches each result by (company, name),
+and writes:
+  contact_li -> "LinkedIn (Contact)" column  (created if missing) as =HYPERLINK
+  email      -> the tab's Email column        (only if literally provided + cell empty)
+ADD-ONLY (never overwrites a non-empty cell), GREEN-stamped. --dry-run writes NOTHING and
+reports matched / would-write. Provenance: Steve Bloom (RENTV) — ADD only.
+"""
+import sys, os, json, re
+sys.path.insert(0, os.path.dirname(__file__))
+import lib
+
+GID = int(sys.argv[1]); results = json.load(open(sys.argv[2]))
+DRY = "--dry-run" in sys.argv[3:]
+def norm(s): return re.sub(r'[^a-z0-9]', '', (s or '').lower())
+
+tok = lib.access_token()
+title = {s["properties"]["sheetId"]: s["properties"]["title"]
+         for s in lib.get_meta(tok)["sheets"]}[GID]
+rows = lib.read_tab(tok, title)
+if not rows:
+    print(json.dumps({"gid": GID, "title": title, "error": "empty tab"})); sys.exit(0)
+
+# header row = the one (of first 4) with the most non-empty cells (skips a merged title row)
+hr = max(range(min(4, len(rows))), key=lambda i: sum(1 for c in rows[i] if str(c).strip()))
+hdr = [str(h).strip() for h in rows[hr]]
+def find(*names):
+    low = [(h.lower(), i) for i, h in enumerate(hdr)]
+    for want in names:
+        for h, i in low:
+            if h == want:
+                return i
+    for want in names:                          # loose contains
+        for h, i in low:
+            if want in h:
+                return i
+    return None
+CO   = find("company/venue", "company", "venue", "firm")
+NAME = find("contact name", "contact", "name")
+EM   = find("email")
+LIC  = find("linkedin (contact)", "linkedin(contact)", "contact linkedin")
+if CO is None or NAME is None:
+    print(json.dumps({"gid": GID, "title": title, "error": "no company/contact column",
+                      "headers": hdr})); sys.exit(0)
+
+# auto-create the LinkedIn(Contact) column if absent
+newh = []
+if LIC is None:
+    LIC = max((i for i, v in enumerate(hdr) if str(v).strip()), default=len(hdr)-1) + 1
+    newh.append({"row0": hr, "col0": LIC, "value": "LinkedIn (Contact)"})
+
+def cell(r, i): return (rows[r][i] if i is not None and r < len(rows) and i < len(rows[r]) else "").strip()
+
+# index (norm company, norm name) -> [row0]
+idx = {}
+for r in range(hr + 1, len(rows)):
+    k = (norm(cell(r, CO)), norm(cell(r, NAME)))
+    if k[0] or k[1]:
+        idx.setdefault(k, []).append(r)
+
+cells = []; matched = 0; unmatched = []; preview = []
+for it in results:
+    key = (norm(it.get("company", "")), norm(it.get("name", "")))
+    targets = idx.get(key)
+    if not targets:                              # fallback: exact name, company contains
+        targets = [r for (co, nm), rs in idx.items()
+                   if nm and nm == key[1] and key[0] and (key[0] in co or co in key[0]) for r in rs]
+    if not targets:
+        unmatched.append(it.get("name", "") + " @ " + it.get("company", "")); continue
+    matched += 1
+    for r0 in targets:
+        li = (it.get("contact_li") or "").strip()
+        em = (it.get("email") or "").strip()
+        if li and LIC is not None and not cell(r0, LIC):
+            cells.append({"row0": r0, "col0": LIC, "value": '=HYPERLINK("%s")' % li.replace('"', ""), "formula": True})
+            preview.append(f"row{r0} {cell(r0,NAME)} -> LinkedIn {li}")
+        if em and EM is not None and not cell(r0, EM):
+            cells.append({"row0": r0, "col0": EM, "value": em})
+            preview.append(f"row{r0} {cell(r0,NAME)} -> Email {em}")
+
+out = {"gid": GID, "title": title, "matched": matched, "unmatched": len(unmatched),
+       "cells_to_write": len(cells), "dry_run": DRY, "preview": preview[:12]}
+if not DRY and cells:
+    if newh: lib.batch_fill(tok, GID, newh)
+    res = lib.batch_fill(tok, GID, cells)
+    out["cells_written"] = res.get("totalUpdatedCells", 0)
+print(json.dumps(out, indent=1))

← ff5f196 Loop tick 8: +6 domains (61 total), 4 held (franchise/generi  ·  back to Rentv Sheet Enrich  ·  Loop tick 9: +8 domains (69 total), Wren + AT Real Estate he 5f935c7 →