Skip to content

About

An intelligent sales assistant application that helps sales representatives be more productive by providing instant access to account information, sales best practices, and AI-powered content generation. Built with LangChain, OpenAI, ChromaDB, and Streamlit.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SalesCopilot

Your AI Assistant for GTM Excellence

An intelligent sales assistant application that helps sales representatives be more productive by providing instant access to account information, sales best practices, and AI-powered content generation. Built with LangChain, OpenAI, ChromaDB, and Streamlit.

🎯 Features

1. Conversational Sales Assistant

  • Chat interface powered by RAG (Retrieval-Augmented Generation)
  • Answers questions about sales processes, best practices, and account information
  • Accesses a knowledge base of sales playbooks, product information, and competitor intelligence
  • Provides context-aware responses based on selected account

2. Account Intelligence

  • Search and explore account details from mock CRM data
  • View deals, contacts, and recent activities
  • Get AI-powered suggestions for account strategy
  • Quick access to account context for better decision-making

3. Email Generator

  • Generate personalized sales emails with account context
  • Uses deal stage and account information for personalization
  • Multiple email types (follow-up, initial outreach, proposal follow-up, etc.)
  • Customizable tone and additional context

4. Call Summarizer

  • Analyze call transcripts and extract key insights
  • Identify action items with owners and deadlines
  • Detect sentiment and concerns
  • Extract decision makers and key discussion points

5. Sales Knowledge Base

  • Searchable repository of sales best practices
  • Product information and use cases
  • Competitive intelligence and positioning
  • Objection handling guides

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Streamlit UI   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
    β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
    β”‚         β”‚
β”Œβ”€β”€β”€β–Όβ”€β”€β”€β” β”Œβ”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  RAG  β”‚ β”‚   CRM     β”‚
β”‚System β”‚ β”‚   Data    β”‚
β””β”€β”€β”€β”¬β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    β”‚
β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ChromaDB    β”‚
β”‚ Vector Store β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

Installation

  1. Clone the repository

    git clone <repository-url>
    cd AI-PROj
  2. Create a virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Set up environment variables

    Create a .env file in the project root:

    cp .env.example .env

    Edit .env and add your OpenAI API key:

    OPENAI_API_KEY=your_openai_api_key_here
    LLM_MODEL=gpt-4-turbo-preview
    EMBEDDING_MODEL=text-embedding-3-small
    
  5. Run the application

    streamlit run ui/streamlit_app.py
  6. Load the knowledge base

    • Once the app is running, click "Load Knowledge Base" in the sidebar
    • This will index the sales knowledge base documents into ChromaDB

πŸ“– Usage Guide

Chat Assistant

  1. Load Knowledge Base: Click "Load Knowledge Base" in the sidebar (first time only)
  2. Select Account Context (optional): Choose an account from the dropdown to provide context
  3. Ask Questions: Type your question in the chat input
  4. View Sources: Click on "Sources" to see which knowledge base documents were used

Example Questions:

  • "What are best practices for discovery calls?"
  • "How do I handle price objections?"
  • "What should I know about Competitor A?"
  • "Give me talking points for my next call with Acme Corp"

Account Lookup

  1. Search Accounts: Use the search bar to find accounts by name, domain, or industry
  2. View Details: Select an account to see:
    • Account information (industry, size, revenue)
    • Active deals and their stages
    • Contacts and their roles
    • Recent activities
  3. Get AI Suggestions: Click "Get AI-Powered Suggestions" for strategic recommendations

Email Generator

  1. Select Account: Choose an account from the dropdown
  2. Select Contact (optional): Choose a specific contact
  3. Select Deal (optional): Link the email to a specific deal
  4. Configure Email:
    • Choose email type (follow-up, initial outreach, etc.)
    • Enter email purpose
    • Add additional context if needed
  5. Generate: Click "Generate Email" to create a personalized email
  6. Copy: Use the text area to copy the generated email

Call Summarizer

  1. Input Transcript: Either paste the transcript or upload a text file
  2. Add Account Context (optional): Select an account for better context
  3. Summarize: Click "Summarize Call" to get:
    • Executive summary
    • Key discussion points
    • Sentiment analysis
    • Action items with owners
    • Concerns and objections
    • Decision makers mentioned

πŸ“ Project Structure

AI-PROj/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ config.py                 # Configuration management
β”‚   β”œβ”€β”€ rag/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ vector_store.py      # ChromaDB vector store
β”‚   β”‚   β”œβ”€β”€ document_loader.py   # Document loading and indexing
β”‚   β”‚   └── retriever.py         # RAG retrieval system
β”‚   β”œβ”€β”€ crm/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ data_models.py        # Pydantic models
β”‚   β”‚   └── mock_crm.py           # Mock CRM data layer
β”‚   β”œβ”€β”€ agents/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ sales_assistant.py    # Main conversational agent
β”‚   β”‚   └── email_generator.py    # Email generation
β”‚   └── utils/
β”‚       β”œβ”€β”€ __init__.py
β”‚       └── call_summarizer.py   # Call transcript analysis
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ knowledge_base/           # Sales knowledge base documents
β”‚   β”‚   β”œβ”€β”€ sales_playbook.txt
β”‚   β”‚   β”œβ”€β”€ product_information.txt
β”‚   β”‚   β”œβ”€β”€ competitor_intelligence.txt
β”‚   β”‚   └── objection_handling.txt
β”‚   └── crm_data.json             # Mock CRM data (generated)
β”œβ”€β”€ ui/
β”‚   └── streamlit_app.py          # Streamlit web application
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ README.md
β”œβ”€β”€ .env.example
└── .gitignore

πŸ”§ Configuration

Configuration is managed through environment variables (see .env.example):

  • OPENAI_API_KEY: Your OpenAI API key (required)
  • LLM_MODEL: LLM model to use (default: gpt-4-turbo-preview)
  • EMBEDDING_MODEL: Embedding model for vector search (default: text-embedding-3-small)
  • CHROMA_DB_PATH: Path to ChromaDB storage (default: ./chroma_db)
  • MAX_RETRIEVAL_RESULTS: Number of documents to retrieve (default: 5)
  • DEBUG: Enable debug mode (default: False)

πŸ§ͺ Example Use Cases

Use Case 1: Preparing for a Discovery Call

  1. Search for the account in "Account Lookup"
  2. Review account details, deals, and recent activities
  3. Click "Get AI-Powered Suggestions" for talking points
  4. Ask the chat assistant: "What are best practices for discovery calls?"
  5. Use the insights to prepare for your call

Use Case 2: Following Up After a Meeting

  1. Go to "Call Summarizer" tab
  2. Paste the call transcript
  3. Select the account for context
  4. Get summary with action items
  5. Go to "Email Generator" tab
  6. Generate a follow-up email referencing the call summary

Use Case 3: Handling an Objection

  1. Go to "Chat Assistant" tab
  2. Ask: "How do I handle the objection: [objection text]?"
  3. Review the response with objection handling strategies
  4. Use the insights in your next conversation

Use Case 4: Competitive Positioning

  1. Ask the chat assistant: "What should I know about Competitor A?"
  2. Review competitive intelligence from knowledge base
  3. Get talking points for competitive situations
  4. Use in proposals and conversations

πŸ› οΈ Technical Details

RAG Implementation

  • Uses ChromaDB for vector storage
  • OpenAI embeddings for document encoding
  • LangChain for retrieval and generation
  • Semantic search with configurable result count

Mock CRM

  • Generates realistic sample data (accounts, contacts, deals, activities)
  • Persists data to JSON for consistency
  • Provides search and lookup functionality
  • Can be easily replaced with real CRM API integration

AI Models

  • LLM: GPT-4 Turbo (configurable)
  • Embeddings: text-embedding-3-small (configurable)
  • Temperature settings optimized for each use case

🚧 Future Enhancements

  • Integration with real CRM systems (Salesforce, HubSpot)
  • Multi-turn conversation memory across sessions
  • Export functionality (emails, summaries to PDF/Word)
  • Analytics dashboard showing usage patterns
  • Support for multiple LLM providers (Claude, local models)
  • Custom knowledge base upload
  • Team collaboration features
  • Email scheduling and tracking

πŸ“ Notes

  • The knowledge base is loaded into ChromaDB on first use
  • Mock CRM data is generated automatically on first run
  • All data is stored locally (ChromaDB and JSON files)
  • API calls to OpenAI are made for each query (costs apply)

🀝 Contributing

This is a portfolio project demonstrating AI/ML capabilities for GTM (Go-to-Market) use cases. Feel free to fork and extend!

πŸ“„ License

This project is provided as-is for portfolio/demonstration purposes.

πŸ™ Acknowledgments

Built with:


SalesCopilot - Your AI Assistant for GTM Excellence πŸš€

About

An intelligent sales assistant application that helps sales representatives be more productive by providing instant access to account information, sales best practices, and AI-powered content generation. Built with LangChain, OpenAI, ChromaDB, and Streamlit.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages