PersonaPreparation
PersonaPreparation is an AI-powered meeting preparation strategist that helps you research people before meetings. Instead of manually searching through LinkedIn, Google, and news articles, this tool uses Claude API (Anthropic) to autonomously gather information and deliver concise, actionable meeting briefs in about sixty seconds.
The system works by taking a person’s name and meeting context, then using AI agents to search the web in real-time using Tavily AI Search, Brave Search API, and Firecrawl for web scraping. It then synthesizes everything into a structured brief with key insights, conversation starters, and background information. Planning to integrate Perplexity API for enhanced research capabilities in future updates.
I built this project to explore how AI agents can automate research tasks that normally take a lot of time. The backend uses Anthropic’s Python SDK with a manual agentic loop, which means I have full control over how the AI makes decisions and uses tools. The frontend is a modern Next.js app with real-time streaming updates via Server-Sent Events, so you can see exactly what the strategist is doing as it researches.
Features
- AI Agent - Claude autonomously decides which research tools to use and how to gather information
- Real-Time Research - Live web search using Tavily, Brave Search, and Firecrawl APIs for current data
- Structured Briefs - Professional meeting summaries with insights, conversation starters, and key background
- Live Progress - Watch the agent work in real-time with streaming updates via Server-Sent Events
- Context-Aware - Tailors research based on why you’re meeting (sales, interview, partnership, etc.)
- Modern Web UI - Clean Next.js interface with TypeScript and Tailwind CSS
- Stateless Sessions - Each research task is independent with no conversation memory
- Production-Ready - FastAPI backend with authentication, CORS, and async support
Tech Stack
Backend
- FastAPI - Modern async web framework for building APIs
- Anthropic Python SDK - Claude AI integration with tool calling
- Tavily - AI-powered search API optimized for research
- Brave Search - Privacy-focused search engine API
- Firecrawl - Web scraping service for clean markdown extraction
- Uvicorn - ASGI server for production deployment
- Pydantic - Data validation and settings management
Frontend
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Lucide React - Beautiful icon library
Prerequisites
Before you begin, ensure you have the following:
- Python 3.10 or higher
- Node.js 18 or higher
- uv package manager (recommended) or pip
- API keys for:
- Anthropic API (required) - Get from console.anthropic.com
- Tavily API (optional) - Get from tavily.com
- Brave Search API (optional) - Get from brave.com/search/api
- Firecrawl API (optional) - Get from firecrawl.dev
Installation & Setup
- Clone the repository
git clone https://github.com/Rahat-Kabir/PersonaPreperation.git
cd PersonaPreperation- Backend setup
cd backend
# Install dependencies using uv (recommended)
uv sync
# Or using pip
pip install -r requirements.txt- Configure environment variables
# Create .env file in backend directory
cp .env.example .env
# Add your API keys to .env:
ANTHROPIC_API_KEY=your_anthropic_key_here
TAVILY_API_KEY=your_tavily_key_here
FIRECRAWL_API_KEY=your_firecrawl_key_here
BRAVE_SEARCH_API_KEY=your_brave_key_here
API_AUTH_TOKEN=your_secret_token_here [optional for local]- Frontend setup
cd ../frontend
# Install dependencies
npm install- Configure frontend environment
# Create .env.local file in frontend directory
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local
echo "NEXT_PUBLIC_API_AUTH_TOKEN=your_secret_token_here" >> .env.local [optional for local]Quick Start
Start the backend server:
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000Start the frontend development server:
cd frontend
npm run devAccess the application:
http://localhost:3000CLI Mode (optional):
cd backend
uv run persona_agent_tools.pyImportant Notes
- API Keys: At minimum, you need an Anthropic API key. Other search APIs are optional but enhance research quality
- Graceful Degradation: The agent works with any combination of search APIs - it will use what’s available
- Rate Limits: External APIs have usage quotas. Check your plan limits at each provider
- LinkedIn Scraping: Results depend on Firecrawl’s ability to access LinkedIn pages, which can be inconsistent
- Stateless Design: Each research session is independent with no conversation memory
- Real-Time Updates: Uses Server-Sent Events (SSE) for streaming progress - requires modern browser
Contributing
This project is open-source and welcomes contributions! Feel free to fork, improve, and submit pull requests. Whether it’s adding new research sources, improving the UI, or enhancing the agent’s decision-making, all contributions are appreciated.
License
This project is licensed under the MIT License and is open-sourced for educational and professional use.