🧠 Inspiration
Finding affordable housing has become one of the hardest challenges for young professionals and newcomers.
Most rental platforms show prices, but not affordability.
RentPilot was inspired by that gap — a transparent, data-driven way to answer:
“Where can I actually afford to live?”
Our goal was to build a trustworthy affordability assistant that reasons like a human — not just fetches numbers — and explains every step.
💡 What it does
RentPilot is an AWS Bedrock-powered affordability agent that helps renters discover suitable neighborhoods.
It combines Claude 3 Sonnet’s reasoning with deterministic Python tools for data retrieval, affordability evaluation, and policy verification.
When you ask:
“Find me 1-bed areas in Toronto under \$2,200 with good transit,”
RentPilot automatically:
- Plans the reasoning chain through Bedrock’s Converse API.
- Calls verified tools (
get_rent_data,suggest_neighbourhoods,evaluate_affordability). - Returns a structured JSON envelope — including plan, actions, verification, and summary.
- Logs everything in a reproducible JSONL ledger.
The affordability decision follows the standard rent-to-income rule:
$$ \text{Affordability Ratio} = \frac{\text{Monthly Rent} \times 12}{\text{Annual Income}} $$
If \( \text{Ratio} \le 0.3 \), the rent is considered affordable.
⚙️ How we built it
- Backend: AWS Lambda functions (Python 3.11), orchestrated with AWS SAM
- Model: Anthropic Claude 3 Sonnet via AWS Bedrock Converse API
- Frontend: Minimal single-page demo (
index.html) hosted on S3 static website, usingfetch()to call the API Gateway endpoint - Data: CMHC-aligned median rents (JSON), locally stored or optionally pulled from S3
- Logging: Each agent response stored in
ledger.jsonlfor auditability and reproducibility
🚧 Challenges we ran into
- Designing deterministic reasoning, ensuring the same verified JSON envelope every run
- Handling CORS + preflight between S3 static frontend and API Gateway
- Managing regional AWS outages and redeploying seamlessly between
us-east-1andca-central-1 - Maintaining structured, human-readable explanations within the 3-minute demo time
🏆 Accomplishments we're proud of
- Built a fully reproducible reasoning chain using AWS Bedrock Converse API
- Achieved transparent verification — every answer includes plan, actions, and ledger entry
- Deployed a fully serverless architecture (Lambda + Gateway + S3 + SAM)
- Designed a lightweight, interactive demo UI for public testing
📚 What we learned
- The Bedrock Converse API is the future — easier multi-turn reasoning and context management
- Reproducible AI requires verification layers beyond model outputs
- Combining Bedrock + SAM creates a powerful pattern for serverless AI agents
🚀 What's next
- Add real-time open-data integration (transit, safety, walkability APIs)
- Support multi-city comparisons (Toronto, Vancouver, Montreal)
- Extend the ledger system for version tracking on S3
- Integrate with AWS Bedrock Agents (2025 preview) for native tool orchestration
🧰 Built With
- 🐍 Python 3.11
- ☁️ AWS Lambda + API Gateway + S3
- 🧱 AWS Bedrock (Claude 3 Sonnet via Converse API)
- ⚙️ AWS SAM
- 📊 CMHC Median Rent JSON Data
- 💻 HTML + JavaScript frontend
Built With
- amazon-web-services
- api-gateway
- bedrock
- claude
- html
- javascript
- json
- lambda
- sam
- sonnet
Log in or sign up for Devpost to join the conversation.