Inspiration

We built this project by building on our previous experience with AI agents at HackUTD. Since it was our first time working with agent-based systems, we received valuable feedback from judges — especially around memory and context retention — which made us realize how much more powerful these systems could be beyond simple query responses. This project became an opportunity for us to expand on that learning and create something more meaningful. As we explored the CBRE track, we noticed that commercial real estate platforms are incredibly data-heavy, offering tools to find properties and model returns. However, what’s often missing is something that helps an investor understand how well a property actually fits them — based on their risk tolerance, budget, and preferences.

We were also curious about how companies like State Farm approach risk, especially how factors like flood zones, building age, and prior claims history influence both property value and investment decisions. This led us to think about how risk analysis could be integrated directly into the property search experience. For example, a high net-worth investor focused on value-add assets in coastal California would evaluate a FEMA AE flood zone very differently than a passive investor seeking stable, low-maintenance cash flow in the same area. Yet, most platforms treat these properties the same.

So we built RiskAdvisor to bridge that gap. Our platform combines property data with risk, demographic, and market insights, while also learning from user behavior and preferences. Instead of just surfacing “good” properties, it recommends properties that are a genuine fit for each individual investor.

What it does

RiskAdvisor is an AI-powered platform that helps commercial real estate investors discover properties that truly align with their investment goals—not just based on static filters, but through adaptive, intelligent learning.

The experience begins with a short onboarding quiz where users define their budget, preferred locations, property types, and risk tolerance. This creates an initial profile that serves as a baseline for recommendations. From there, users are guided into a visually rich property exploration interface, where they can browse curated listings, view detailed property insights, and interact with each listing through simple actions like like, save, or dismiss.

Under the hood, the platform combines structured analytics with AI reasoning. Each property is evaluated using a custom risk scoring system (0–100) that considers factors such as environmental exposure (flood zones, wildfire risk), building condition (age, infrastructure), and surrounding conditions (crime, proximity to services). This ensures every recommendation is grounded in real-world investment risk.

On top of this, a large language model (LLM) analyzes both the user’s profile and their interaction history to rank properties and generate personalized explanations—highlighting why a particular listing is a strong fit. As users continue interacting with the feed, the system learns from their behavior in real time. For example, repeatedly dismissing properties in a certain city or favoring higher cap rate investments allows the system to infer deeper preferences and adjust future recommendations accordingly.

This creates a continuous feedback loop where the platform evolves with the user, moving beyond static filtering to deliver dynamic, behavior-driven insights. The result is a smarter property discovery experience that not only shows what’s available, but surfaces what truly fits each investor’s unique strategy.

How we built it

Frontend: React, Next.js, HTML, JavaScript Backend: Flask API, Gemini API

Challenges we ran into

Behavioral signal inference: When a user thumbs down a property, you can’t just log “they disliked this”. The same thumbs-down on a flood-zone property from an investor that explicitly listed flood zones as a dealbreaker means something different than a thumbs-down from someone who didn’t. Teaching the model to reason about which signals were likely driving the action required multiple iterations to feel accurate.

Lack of accessible API data: When looking into commercial real estate datasets, a challenge we encountered was that the datasets we found were either not free, or had limited features like number of tokens hindering our ability to debug our application effectively. As a result, we decided to generate mock data that is replicated from well-known commercial real estate websites.

Accomplishments that we're proud of

Comprehensive risk scoring mechanism: Implemented an AI-agent system that autonomously gathers property intelligence across multiple data dimensions (building age, damage history, foot traffic levels, crime rates, etc.), and feeds all collected data into a custom multi-factor risk equation. This equation weights each dimension by its real-world investment impact, producing a final score from 0 to 100 that classifies any commercial property as Low, Moderate, or High. The system then reasons through every factor in plain English, giving investors a clear, jargon-free explanation of exactly why a property scored the way it did.

Behavioral inference loop and contextual memory: After onboarding, every swipe (thumbs up, thumbs down, save) is logged against the full property detail, including risk score, cap rate, building age, footfall, etc., and fed into a Gemini inference call that reevaluates the investor’s preference profile after each interaction. Rather than just reacting to single decisions, the LLM looks across the complete interaction history and can reason between why the user might’ve dismissed certain listings. Those signals are written back to the session’s profile. The feed immediately reranks against the updated profile, so the next card served already reflects what you just expressed. So personalization gets sharper with every interaction. It can also track drift from the original quiz. For example, if an investor who said “office” keeps selecting retail properties, that’s flagged as an emerging secondary interest and fed back into the feed ranking. There are a variety of inferred signals that directly influence how the next batch of properties is evaluated.

What we learned

There is a very thin line between personalization and noise: Not every signal requires equal weight. Slowing down the update rate and requiring more contextual confidence made the personalization feel stable, as opposed to earlier iterations where preferences seemed to be updated more aggressively after one out-of-pattern selection.

What's next for RiskAdvisor

Real internal property data: More personalized, domain-focused experience by incorporating CBRE’s internal commercial real estate data, and State Farm’s insurance claims history data.

Portfolio-level risk aggregation: Right now, the tool evaluates properties individually. The most natural next step would be to let investors model a portfolio and understand how their total

Insurance integrations: Connecting to actual carrier APIs would allow for more accurate estimates/risk scores and let us include real bindable quotes.

Share this project:

Updates