An intelligent AI-powered system designed to streamline the apartment hunting process by automating property searches, scheduling viewings, and managing client communications.
- Intelligent Property Search: Automated extraction of rental listings from various sources
- Calendar Management: Smart scheduling system for apartment viewings
- Email Communication: Automated email notifications and appointment confirmations
- Database Integration: TiDB integration for efficient data management
- Multi-city Support: Configurable city and country data extraction
- Client Management: Comprehensive client profile and preference tracking
├── app.py # Main application entry point
├── calendar_utils.py # Calendar and scheduling utilities
├── city_data_extractor.py # City and location data extraction
├── email_server.py # Email handling and SMTP server
├── tidb_customer_tool.py # TiDB database operations
├── test_email_template.py # Email template testing
├── data/ # Data storage
│ └── country_and_city_urls.yaml
├── email_templates/ # HTML email templates
│ └── apartment_appointment.html
├── mcp_tools/ # MCP (Model Context Protocol) tools
│ ├── cli.py
│ └── framework.py
├── models/ # Data models and configuration
│ ├── client_model.py
│ └── config.yaml
└── tmp/ # Temporary files
└── agent.db
-
Clone the repository
git clone https://github.com/minhtrantrong/rent_hunting_agentic_AI.git cd rent_hunting_agentic_AI -
Set up Python environment
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Environment Configuration
cp .env.example .env
Edit the
.envfile with your configuration:- Database credentials (TiDB)
- Email server settings
- API keys for property search services
- Other service configurations
The application uses TiDB for data storage. Configure your database connection in the .env file:
TIDB_HOST=your_tidb_host
TIDB_PORT=4000
TIDB_USER=your_username
TIDB_PASSWORD=your_password
TIDB_DATABASE=rent_huntingFrom the TiDB web application, select Data > Import Select 'Upload a local file', then select the 'rents.csv' in the data directory Data types: low_price and high_price columns are BIGINT(), others columns are VARCHAR(255) Database name: rent_hunting Table name: rents
Modify data/country_and_city_urls.yaml to add or update supported cities and their data sources.
python app.pypython test_email_template.pypython quick_db_test.pypython -m mcp_tools.cliThe system includes customizable HTML email templates for:
- Apartment viewing appointments
- Property match notifications
- Booking confirmations
Templates are located in the email_templates/ directory and can be customized to match your branding.
The application uses the following key models:
- Client Model: Stores client information and preferences
- Property Data: Rental listing information
- Appointments: Scheduled viewing data
- Communications: Email and message logs
The system supports integration with various property listing APIs and services. Configure API endpoints and authentication in the respective configuration files.
- Natural Language Processing: Understanding client preferences and requirements
- Smart Matching: AI-powered property recommendation engine
- Automated Scheduling: Intelligent calendar management
- Communication Automation: Context-aware email generation
The application includes comprehensive logging for:
- Property search activities
- Client interactions
- Email communications
- System performance metrics
Run the test suite:
python -m pytest tests/For email template testing:
python test_email_template.pyFor database connection testing:
python quick_db_test.py- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the GitHub repository
- Contact the development team
- Check the documentation in the
docs/directory
- TiDB for database infrastructure
- OpenAI for AI capabilities
- Contributors and beta testers
Note: This is a hackathon project focused on demonstrating AI-powered automation in the real estate rental market. The system is designed to be extensible and can be adapted for various rental markets and use cases.