1. "44 Hano" doesn't exist in city records — it's assessed as "42-44 Hano ST" (PID 2201796000). The assessor's front door blocks scripts, but ArcGIS REST and CKAN APIs are open (no key needed) and return full assessment, 14-year tax history, and 10 building permits ($378K, 6 still Open). 2. Owner is HANO DEV HOLDINGS LLC, prior owner TUAN & THANH INVESTMENTS LLC; property changed hands FY2019–FY2020, was gut-renovated, and value tripled from $333K (FY2013) to $958K (FY2026). 3. SCRAPE EXECUTED — 2026-08-05. Three data sources collected and consolidated into Consolidate/44-hano-profile.json and .txt. Run consolidate.js to regenerate. Sources: (a) Zillow — pulled via Apify API (maxcopell/zillow-detail-scraper). Config: propertyStatus=RECENTLY_SOLD, startUrls=[42-44 Hano Zillow URL]. Zestimate $968K, sold 2018-05-24 for $670K. Price history: 7 sales from 1996 ($74K) to 2018 ($670K). (b) City of Boston — ArcGIS + CKAN APIs (no key). Full assessment, 14-year tax history, 10 permits. FY2026: $958K assessed, $11,884 tax. (c) Massachusetts Secretary of State — Puppeteer headful Chrome. Successfully scraped CorpSummary page (Incapsula defeated). Results in Scrape/secretary-of-state/hano-dev-holdings-llc.json. 4. SECRETARY OF STATE RESULTS — HANO DEV HOLDINGS LLC: ID Number: 001318886 Organized: 2018-03-21 DISSOLVED: 2023-12-29 (involuntary, by the SOC) Records Address: 9 PEACEABLE ST, BOSTON, MA 02135 Registered Agent: ROMAN NAROVLANSKY 1583 BEACON ST., BROOKLINE, MA 02446 Managers: ESTEEVERED FERRIS (PO BOX 944, ALLSTON, MA 02134) SHLOMI GRANEK (PO BOX 944, ALLSTON, MA 02134) Real Property: SHLOMI GRANEK & ESTEEVERED FERRIS (same PO Box) ** CRITICAL: LLC is dissolved yet still listed as property owner. Registered agent Roman Narovlansky is the official contact. --- CITY OF BOSTON — PUBLIC API CALLS (no key needed) --- FY2026 Assessment by PID: curl -s "https://gis.bostonplans.org/hosting/rest/services/FY26_Parcels_Detailed/FeatureServer/0/query" \ --data-urlencode "where=PID='2201796000'" \ --data-urlencode "outFields=*" \ --data-urlencode "f=json" FY2025 Assessment by GIS_ID: curl -s "https://gisportal.boston.gov/arcgis/rest/services/Assessing/Property_Assessment_FY25/FeatureServer/0/query" \ --data-urlencode "where=GIS_ID='2201796000'" \ --data-urlencode "outFields=*" \ --data-urlencode "f=json" Building Permits (CKAN datastore_search): curl -s "https://data.boston.gov/api/3/action/datastore_search" \ --data-urlencode "resource_id=6ddcd912-32a0-43df-9908-63574f8c7e77" \ --data-urlencode "q=Hano" \ --data-urlencode "limit=100" Annual Assessment CSVs: https://data.boston.gov/dataset/e02c44d2-3c64-459c-8fe2-e1ce5f38a035 Filter by PID=2201796000. ArcGIS Service Discovery: https://www.arcgis.com/sharing/rest/search For historical assessment data not in the CSVs, the ArcGIS REST services expose individual-year layers by fiscal year. --- MASSACHUSETTS SECRETARY OF STATE — PUPPETEER SCRAPING PATTERN (working) --- The Massachusetts Secretary of State site (corp.sec.state.ma.us) is behind Incapsula — curl/requests all blocked. Working approach (scripts/scrape-secretary-of-state.js): 1. Launch Puppeteer with headful Chrome (headless: false) 2. Navigate to CorpWeb/CorpSearch/CorpSearch.aspx 3. Fill input[name*="EntityName"] with entity name 4. Click input[value="Search Corporations"] 5. Click entity link in results table 6. Extract fields from CorpSummary page --- COMPARABLE SALES — ARM'S-LENGTH TRANSACTIONS --- The Registry of Deeds (masslandrecords.com/suffolk) is a heavy JS SPA that resists Puppeteer scraping (Avenu Insights v3.0, dropdown widgets). Instead, the pipeline for comparable sales is: STEP 1 — Boston GIS query for comparable properties: curl "https://gis.bostonplans.org/hosting/rest/services/FY26_Parcels_Detailed/FeatureServer/0/query" \ --data-urlencode "where=LU IN ('R2','R3') AND ZIP_CODE='02134'" \ --data-urlencode "outFields=PID,FULL_ADDRESS,LU,LU_DESC,LIVING_AREA,TOTAL_VALUE,YR_BUILT,OWNER" \ --data-urlencode "orderByFields=TOTAL_VALUE DESC" \ --data-urlencode "f=json" → Returns ~20+ multi-family properties in 02134 (R2=Two-Fam, R3=Three-Fam). STEP 2 — Apify Google Search Scraper to find Zillow URLs: Actor: apify/google-search-scraper Query: "{FULL_ADDRESS} zillow" → Extracts Zillow URL + ZPID from organic results. PROVEN: "30 Seattle St Allston MA 02134 zillow" → ZPID 59086989 STEP 3 — Apify Zillow Detail Scraper (batch all ZPIDs): Actor: maxcopell/zillow-detail-scraper Pass array of ZPIDs or startUrls → one run. Each result includes priceHistory (sale dates, prices, events). STEP 4 — Filter to arm's-length sales: Exclude: family trusts, LLC-to-LLC, quitclaim deeds, $0 transfers. Keep: open-market sales between unrelated parties within last 1-2 years. Massachusetts is a disclosure state — sale prices are public record. Zillow aggregates this data from MLS and county records, making it a practical proxy for the Registry of Deeds. --- REGISTRY OF DEEDS — PUPPETEER PATTERN (working) --- The Suffolk Registry (masslandrecords.com/suffolk) is an ASP.NET WebForms app (Avenu Insights v3.0). The key fix was using page.select() on the native