An AI-powered assistant that helps you find and analyze real estate properties in Argentina using ZonaProp listings. It is not a real real estate agent.
- Natural Language Search: Simply describe what you're looking for, and the assistant will generate the appropriate ZonaProp search URL
- Automated Scraping: Collects property listings from ZonaProp based on your search criteria
- Intelligent Analysis: Analyzes property data to provide insights on pricing, location, features, and value
- Personalized Recommendations: Suggests 3-5 properties that best match your requirements with pros and cons for each
This application uses a state graph architecture with the following components:
- Query Data Agent: Converts natural language queries into structured data for targeted web search
- Scraper: Collects property data from ZonaProp using pagination
- Analysis Agent: Evaluates properties based on user criteria
- Recommendation Agent: Provides personalized property recommendations
- Python 3.13+
- Required Python packages (install via
pip install -r requirements.txtoruv add -r requirements.txt) - Docker (Optional, for web gui)
- AWS Serverless Application Model Command Line Interface (AWS SAM CLI) (Optional, for web gui)
- Ollama gemma3:12b and apropiate hardware (Optional)
-
Clone this repository:
git clone https://github.com/okason97/Not-Real-Estate-Agent.git cd zonaprop-real-estate-agent -
Install dependencies:
uv add -r requirements.txt
-
Set up environment variables (If you want to use an API):
# Create .env file touch .env # Add necessary environment variables
-
Or install and run Ollama with the gemma3:12b model locally:
# Install Ollama: https://ollama.com/ # Then pull the model ollama pull gemma3:12b ollama run gemma3:12b
-
Run the notebook:
code agent.ipynb
-
Build the Docker image and SAM (Serverless Application Model):
docker build --no-cache --provenance=false --platform linux/amd64 -t nrea . sam build --no-cached -
Open Ollama server (Optional):
ollama serve
-
Start a local API Gateway at http://127.0.0.1:3000/ using SAM (Serverless Application Model):
sam local start-api -
Run the web GUI:
streamlit run app.py
Enter a message: I'm looking for a 2-bedroom apartment to rent in La Plata, with a garage, preferably less than 10 years old.
[The system generates a ZonaProp URL, scrapes listings, analyzes them, and provides recommendations]
agent.ipynb: Notebook to try the agentsfrontend.py: Serves the interactive frontendapp/: Directory containing the agents and the API codemain.py: Contains the FastAPI behavioursrc/: Directory containing the source codescraper.py: Contains theScrapperclasses for web scrapinggraph.py: Contains the graph building logicmodels.py: Loads the LLM modelnodes.py: Contains the agentic nodes of the graphstate.py: Contains the internal state of the graph
You can customize the application by:
- Modifying the prompt templates in each agent
- Extending the scraper to collect information from other sites by subclassing
Scrapper - Extending the scraper to collect additional property details
- Adjusting the analysis criteria based on your preferences
- Add a plan-and-execute architecture for the agents
- Implement historical price tracking and other useful information for the analysis agent
- Add visualization tools for property comparisons
- Support for additional property listing websites
- Add an image processing gent to include visual information
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is for educational purposes only. Please respect ZonaProp's terms of service and implement appropriate rate limiting in production environments.