An AI-powered internal tool for small/mid-sized agencies to automate outreach emails, classify client replies, schedule meetings, generate proposals/documents — with a Human-in-the-Loop approval layer throughout.
Built with a robust full-stack foundation utilizing Flask application factory patterns with proper SQLAlchemy ORM database models. The UI uses pure CSS custom design mimicking shadcn/ui. The system intelligence leverages local FAISS vector stores combined with Google Gemini 1.5 for semantic document retrieval and generative content (emails, reports, proposal drafts).
- Clone the repository
- Setup virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install Dependencies:
pip install -r requirements.txt
- Download NLP Spacy Model:
python -m spacy download en_core_web_sm
- Environment Configuration:
- Copy
.env.exampleto.env - Fill in your
GEMINI_API_KEY,GMAIL_USER,GMAIL_APP_PASSWORD,SLACK_WEBHOOK_URL. - Setup Google Calendar OAuth and place the
credentials.jsonin the root.
- Copy
- Gmail App Passwords: Navigate to your Google Account -> Security -> App Passwords and create a 16 character code to place in
.env. - Calendar API: Setup OAuth Client ID in Google Cloud Platform and download
credentials.json.
- Initialize Database and Migrations:
flask db init flask db migrate -m "Init" flask db upgrade - Run Server & Background Process:
python run.py
- Mock Fallback: If
.envis absent, the services will degrade gracefully and run basic stubs/prints, logging errors to console but not crashing the whole app. - RAG Bootstrap: Navigate to
/api/rag/reindexto ingest initial clients database.