PersonaPreparation

Table of Contents

This is a list of all the sections in this post. Click on any of them to jump to that section.

PersonaPreparation

FastAPI Anthropic Next.js TypeScript Tailwind CSS

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

Prerequisites

Before you begin, ensure you have the following:

Installation & Setup

  1. Clone the repository
git clone https://github.com/Rahat-Kabir/PersonaPreperation.git
cd PersonaPreperation
  1. Backend setup
cd backend
 
# Install dependencies using uv (recommended)
uv sync
 
# Or using pip
pip install -r requirements.txt
  1. 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]
  1. Frontend setup
cd ../frontend
 
# Install dependencies
npm install
  1. 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 8000

Start the frontend development server:

cd frontend
npm run dev

Access the application:

http://localhost:3000

CLI Mode (optional):

cd backend
uv run persona_agent_tools.py

Important 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.