Inspiration
I've navigated both buying and renting property in the UK myself, and the same frustration kept showing up regardless of which side of the transaction I was on: it's genuinely hard to know if a listing is telling you the whole story. Is the price actually reasonable for the area, or is "offers over" doing some quiet work? Is a vague phrase in the description hiding something specific? What should I actually be asking the agent before I book a viewing or sign anything? And when a Home Report finally lands, reading it isn't one task — a property can be "fine" to live in and still be a problem for a lender, and those are two different questions almost nobody helps you answer at the same time. HITIB started from wanting an agent that does that vetting work automatically, before a single viewing gets booked.
What it does
Paste a property listing — as a URL or raw text — and three chained AI agents take over. An Extractor pulls structured data (address, price, bedrooms, description, agent contact). A Risk Analyst checks price plausibility against live search data and flags things worth confirming, with separate logic for buying versus renting — including patterns specific to rental scams, not just generic listing red flags. A Drafter turns those open questions into a ready-to-copy email to the listing agent. Every analysis is saved to a running History, and every flag is phrased as something to verify, never as an accusation — this is pattern-matching assistance, not a verified report, and it says so visibly on every result.
How we built it
Gemini 3.5 Flash via the Gemini API, orchestrated through Google ADK as a SequentialAgent chaining the three sub-agents. FastAPI backend, deployed on Cloud Run with Firestore for state. Credentials never touch the repo or the container: the Gemini key lives in Secret Manager, and the app runs under a dedicated, narrowly-scoped service account rather than any personal login. History is scoped per visitor using their IP address as a lightweight, no-login privacy mitigation — not real authentication, but enough to stop one visitor from seeing another's searches without requiring accounts for an MVP.
Challenges we ran into
No hackathon credit was available by the time I requested one, so this was built and deployed on standard self-funded billing — which shaped real decisions, not just good intentions: Flash-only, a capped search-grounding call per analysis, scale-to-zero on Cloud Run, and a budget alert set before the first real API call. Technically, combining ADK's structured output with tool use required an explicit tool_config that isn't obvious from the documentation, and a filtered-plus-ordered Firestore query needed a composite index that isn't created automatically — it fails silently without one, which cost real debugging time. I also learned that automated listing-page fetching is site-dependent, not geography-dependent: some sites block it outright regardless of where the request comes from, so rather than fight that, the app falls back gracefully to pasted text.
Accomplishments that we're proud of
A genuinely working, end-to-end multi-agent pipeline, deployed and verified live — not just locally. Real credential discipline: no keys anywhere in the repo, service-account-only runtime access, verified directly that no credential file ever made it into the container. A rental-scam-specific flag set that addresses a real, high-stakes moment — before a deposit gets wired, not after. Every failure mode degrades gracefully instead of crashing: blocked sites, missing credentials, malformed input all produce a clear message, never a raw stack trace. And the whole thing was verified reproducible by cloning it fresh, in a clean environment, and following only the README start to finish.
What we learned
Beyond the technical lessons above, the clearest thing this project reinforced is that "is this a good listing" is actually several different questions wearing one coat — is the price fair, is the description honest, is the property structurally sound, and separately, will a lender even approve it. Building the Risk Analyst to handle buy and rent differently, and to phrase everything advisorily rather than as a verdict, came directly from knowing how easy it is to either over-trust a listing or dismiss a real concern because nobody framed the right question. That same thinking is what shapes the home-report analysis planned next — property condition and lender risk are genuinely separate lenses, and conflating them is exactly the kind of gap that leaves buyers and renters exposed.
What's next for HITIB - The Property Scout
The long-term vision is a full find → vet → decide → act loop, not just the vet step this submission covers. Planned next: automatic ingestion of saved-search alert emails so listings arrive without manual pasting; home report analysis from both a property-health and a lender-risk perspective via PDF upload; a human-in-the-loop approval step once a property clears vetting; and, with explicit consent, help arranging a viewing. Real user accounts will replace the IP-based history scoping used here, which was a deliberate interim measure for this submission, not the final design.
Built With
- agentic-ai
- cloud-logging
- docker
- fastapi
- firestore
- gemini-3-5-flash
- gemini-api
- google-adk
- google-cloud
- google-cloud-run
- google-search-grounding
- html
- javascript
- multi-agent-systems
- nosql
- pydantic
- python
- rest-api
- secret-manager
- uvicorn
Log in or sign up for Devpost to join the conversation.