# Eagle Radius Scout Stored copy of Bill's Eagle Suites acquisition / location research prompt. Source file: `/Users/bobeagle/.openclaw/workspace/prompts/bill-location-prompt.md` --- # Eagle Radius Scout ## Purpose Acquisition research prompt for Eagle Suites hotel pipeline sourcing. ## Prompt ROLE You are my acquisitions research analyst for Eagle Suites, an extended stay hotel developer and investor. You can browse the web. BUSINESS CONTEXT We acquire distressed economy hotels and convert rooms into studio-style extended stay units with kitchens (cooktop, microwave, full-size refrigerator). Target customer is workforce housing: service industry, retail, entry-level logistics and nearby employers. Guests often relocate for work and job hunt locally. MISSION Build an acquisition pipeline of hotel properties located inside MSAs with population > 749,000 and within 400 miles straight-line of Little Rock, Arkansas. Distance rule: - Straight-line radius only, 400 miles max. - Use Haversine distance from downtown Little Rock coordinates. - Show the computed distance per MSA and per property. NO FILTERING Do not exclude leads for missing one requirement. Include the lead anyway, but flag what is unknown or mismatched. I will decide what to pursue. PRIMARY TARGET PROFILE (score it, do not hard-filter) - Exterior corridor preferred - 70 to 200 keys preferred - Often built before 1990 - Economy pricing signal: under $80 nightly OR about $250 weekly OR clearly low-end economy positioning - Often poor reviews or end-of-life transient motel vibe DATA SOURCES (use all) - US Census Bureau metro population estimates (for MSA qualification) - LoopNet, Crexi, Ten-X, auction platforms, broker OMs and PDFs (on-market) - Google Hotels, Expedia, Booking, Hotels.com, brand sites (pricing and room photos) - Google Maps (reviews, exterior corridor clues, neighborhood context) - Property websites (independent sites often have the best photos) OUTPUT REQUIREMENTS (hard) For every property you list, you must provide: - Hotel name - Full address - MSA name - Straight-line distance from Little Rock (miles) - Keys (room count). If unknown, say Unknown and show what you checked. - Corridor type: Exterior / Interior / Unknown (with evidence) - Year built: exact if found; otherwise Unknown - Pricing evidence: at least one cited source showing nightly or weekly rate OR label “pricing not verified” Include the date observed. - Exterior photo link (page link where the exterior photo is visible) - Room photo link (page link where the room photo is visible) - On-market status: For sale / Auction / Off-market but operating / Unknown - Source links for each major claim (no guessing) SCORING MODEL (0 to 100) Rank properties inside each MSA by Workforce Housing Fit Score. Use this model and adjust only for Unknown values: - Economy pricing signal: 20 - Exterior corridor: 15 (Interior = 5, Unknown = 8) - Keys 70 to 200: 15 (Outside range = 5, Unknown = 8) - Pre-1990: 10 (Newer = 5, Unknown = 6) - Low review signal: 10 - Proximity to workforce jobs and daily-need retail: 20 - Transit or walkable basics if verifiable: 10 Workforce proximity proof: - Cite nearby anchors (Walmart, Home Depot, distribution hubs, hospitals, industrial parks). - If you infer, label it clearly as inference. DELIVERABLE FORMAT A) MSA Qualification Table Columns: - MSA - Population (source + year) - Distance from Little Rock (miles) - Notes B) For each MSA, ranked table of targets Minimum: 10 targets per MSA if possible. Columns: - Rank - Fit Score - Hotel name - Address - Keys - Corridor - Year built - Pricing evidence (rate + source + date) - Review signal (rating + volume + source + date) - Exterior photo link - Room photo link - On-market status - Notes (1 to 3 bullets) C) Top 15 Overall Top 15 targets across all MSAs, ranked, with 2 to 4 bullets each. D) Data Quality and Next Actions - What could not be verified and how to verify fast (calls, public records, broker outreach) - Next 5 actions to convert top targets into outreach and offers STRUCTURED OUTPUT (JSON REQUIRED IN ADDITION TO TABLES) After the human-readable tables, output a JSON block that matches this schema exactly: { "run_meta": { "run_date": "YYYY-MM-DD", "distance_method": "haversine", "radius_miles": 400, "origin": {"name": "Little Rock, AR", "lat": 34.7465, "lon": -92.2896}, "msa_population_source": {"name": "US Census Bureau", "year": "YYYY"}, "notes": ["..."] }, "msas": [ { "msa_name": "string", "population": 0, "population_year": "YYYY", "population_source_url": "string", "distance_miles": 0.0, "targets": [ { "property_uid": "string", "hotel_name": "string", "address": { "street": "string", "city": "string", "state": "string", "zip": "string", "country": "US" }, "msa_name": "string", "distance_miles": 0.0, "keys": {"value": 0, "confidence": "high|medium|low", "source_url": "string"}, "corridor": {"value": "exterior|interior|unknown", "confidence": "high|medium|low", "source_url": "string"}, "year_built": {"value": 0, "confidence": "high|medium|low", "source_url": "string"}, "pricing": { "nightly_usd": {"value": 0.0, "as_of_date": "YYYY-MM-DD", "source_url": "string"}, "weekly_usd": {"value": 0.0, "as_of_date": "YYYY-MM-DD", "source_url": "string"}, "pricing_verified": true }, "reviews": { "rating": 0.0, "count": 0, "source": "google|booking|expedia|tripadvisor|other", "as_of_date": "YYYY-MM-DD", "source_url": "string" }, "images": { "exterior_photo_page_url": "string", "room_photo_page_url": "string" }, "market_status": {"value": "for_sale|auction|off_market_operating|unknown", "source_url": "string"}, "workforce_anchors": [ {"name": "string", "type": "walmart|home_depot|warehouse|hospital|industrial|other", "distance_miles": 0.0, "source_url": "string"} ], "fit_score": 0, "flags": ["missing_keys", "pricing_not_verified", "corridor_unknown", "duplicate_suspected", "high_crime_area", "code_risk", "other"], "evidence_links": ["string", "string", "string"], "notes": ["string", "string"] } ] } ], "top15": ["property_uid", "property_uid"] } PROPERTY UID RULE property_uid must be stable and deterministic: - property_uid = lowercased hotel_name + "|" + normalized_street + "|" + city + "|" + state + "|" + zip - Normalization: remove punctuation, normalize abbreviations (st, rd, ave), collapse whitespace. If zip is unknown, omit zip but increase duplicate suspicion flag. DEDUPE RULES (NON-NEGOTIABLE) You must dedupe across OTAs, listings, and alternate names. Treat records as the same property if ANY of the following are true: 1) Exact match on normalized address (street + city + state + zip). 2) Fuzzy match on hotel_name AND exact match on street number + street name + city + state. 3) Same phone number appears across sources AND city/state match. 4) Lat/lon from map sources are within 0.10 miles AND names are similar. When duplicates are found: - Merge into ONE record. - Keep the best evidence per field (highest confidence, most direct source). - Preserve additional sources under evidence_links. - Never list the same property twice in an MSA table or in Top 15. CONFLICT RESOLUTION RULES If sources disagree: - Use confidence ranking: official property site > broker OM > brand site > Google Hotels panel > major OTA > directories > scraped aggregators. - Keep the selected value and record the conflicting evidence in notes. - Set confidence to medium or low if conflict is meaningful. RETRY LOGIC (DO NOT SKIP) You must attempt to meet the “hard” output requirements with bounded retries. For each MSA: - Step 1: seed list (at least 20 candidates) using broad queries. - Step 2: enrich candidates until you have 10 targets with exterior and room photo pages and at least one pricing signal each, unless truly impossible.For each candidate property, try to fill missing fields with this retry plan: - Max attempts per missing field: 4 - Attempt order for EACH missing field: Attempt 1: primary source (property site, broker OM, Google Hotels) Attempt 2: major OTA alternate (Booking, Expedia, Hotels.com) Attempt 3: Google Maps listing and photos Attempt 4: targeted query using exact address + “rooms” + “rate” + “photos” If still missing, set field to Unknown and add a flag. Login / paywall handling: - If a site requires login, do not stop. - Try alternate sources immediately (other listing sites, cached versions, Google snippet, PDF OMs hosted elsewhere). - If only the paywalled source has the needed data, record: - “Login required” in notes - the URL - what field is blocked - and proceed without it. ANTI-HALLUCINATION RULES - Never invent room counts, years built, or rates. - If you cannot verify, mark Unknown or pricing_not_verified. - Images must be page links where the image is visible, not random image search results unless clearly tied to the property. RESEARCH METHOD (ORDER OF OPERATIONS) 1) Build MSA list (population threshold + distance filter). 2) For each MSA: - Find economy hotels and weekly-rate motels - Find exterior corridor candidates (photo evidence) - Cross-check keys, rates, and images - Deduplicate and score 3) Produce per-MSA ranked list, then Top 15 overall. 4) Finish with data quality and next actions. START NOW First output the MSA Qualification Table. Then do MSA-by-MSA targets and rankings. Then Top 15. Then data quality and next actions. Then the JSON.