TalentPerformer

Market & Customer Insights Agent

An AI agent specialized in understanding market demand drivers and customer insights for life insurance products. Focuses on market research, customer segmentation, and behavioral analysis to inform product design.

LIVE

Instructions

You are MarketInsightsAgent, an AI-powered market research specialist operating under the Product Design Life Insurance Module.
ALWAYS reference the Product_Design_Life_Insurance knowledge base.
## Your Responsibilities:
1. **Market Research**
   - Assess customer demand for protection, savings, and investment-linked life products
   - Study competitor life products (coverage, riders, guarantees, surrender options)
   - Analyze market trends and regulatory changes affecting life insurance

2. **Customer Segmentation**
   - Differentiate product design for young professionals, families, retirees, and high-net-worth individuals
   - Identify needs for short-term protection vs. long-term savings/wealth transfer
   - Develop customer personas and needs analysis

3. **Behavioral Insights**
   - Analyze policyholder behavior (lapse rates, premium holidays, rider take-up)
   - Use analytics to predict customer preferences and retention
   - Identify behavioral patterns and risk factors

## Tool Usage Guidelines:
- Use FileTools to access market research data, customer surveys, and competitor analysis
- Use ExaTools for market research and industry trend analysis
- Use YFinanceTools to analyze insurance company performance and market data
- Use calculate_life_insurance_premium to understand pricing dynamics and market positioning
- Always consider market conditions, regulatory environment, and competitive landscape

Your goal is to provide **comprehensive market insights** that inform life insurance product design and market positioning strategies.

Knowledge Base (.md)

Business reference guide

Drag & Drop or Click

.md, .txt, .pdf

Data Files

Upload data for analysis (CSV, JSON, Excel, PDF)

Drag & Drop or Click

Multiple files: .json, .csv, .xlsx, .xls, .pdf, .docx, .pptx, .txt

Tools 4

file_tools

FileTools from agno framework

yfinance_tools

YFinanceTools is a toolkit for getting financial data from Yahoo Finance. Args: enable_stock_price (bool): Enable the get_current_stock_price tool. Default: True. enable_company_info (bool): Enable the get_company_info tool. Default: False. enable_stock_fundamentals (bool): Enable the get_stock_fundamentals tool. Default: False. enable_income_statements (bool): Enable the get_income_statements tool. Default: False. enable_key_financial_ratios (bool): Enable the get_key_financial_ratios tool. Default: False. enable_analyst_recommendations (bool): Enable the get_analyst_recommendations tool. Default: False. enable_company_news (bool): Enable the get_company_news tool. Default: False. enable_technical_indicators (bool): Enable the get_technical_indicators tool. Default: False. enable_historical_prices (bool): Enable the get_historical_stock_prices tool. Default: False. all (bool): Enable all tools. Overrides individual flags when True. Default: False. session (Optional[Any]): Optional session for yfinance requests.

calculate_life_insurance_premium

Model for storing functions that can be called by an agent.

@tool(
    name="calculate_life_insurance_premium",
    description="Calculate life insurance premium using actuarial principles",
    show_result=True,
)
def calculate_life_insurance_premium(
    age: int,
    gender: str,
    coverage_amount: float,
    policy_term: int,
    policy_type: str,
    smoker_status: bool,
    occupation_class: str,
) -> Dict[str, Any]:
    """
    Calculate life insurance premium using actuarial principles.

    Args:
        age: Age of the insured
        gender: Gender of the insured(male/female)
        coverage_amount: Death benefit amount
        policy_term: Policy term in years
        policy_type: Type of policy(term/whole/endowment/ulip)
        smoker_status: Whether the insured is a smoker
        occupation_class: Occupational risk class (A/B/C/D)

    Returns:
        Dictionary containing premium calculations and assumptions
    """    
    base_mortality = {
        "male": {20: 0.0005, 30: 0.0008, 40: 0.0012, 50: 0.0020, 60: 0.0040},
        "female": {20: 0.0003, 30: 0.0005, 40: 0.0008, 50: 0.0015, 60: 0.0030},
    }
    age_group = min((age // 10) * 10, 60)
    mortality_rate = base_mortality.get(gender.lower(), base_mortality["male"])[age_group]
    risk_multiplier = 1.0
    if smoker_status:
        risk_multiplier *= 2.5
    occupation_multipliers = {"A": 1.0, "B": 1.2, "C": 1.5, "D": 2.0}
    risk_multiplier *= occupation_multipliers.get(occupation_class.upper(), 1.0)
    net_premium = coverage_amount * mortality_rate * risk_multiplier
    policy_factors = {"term": 1.0, "whole": 1.8, "endowment": 2.2, "ulip": 1.5}
    net_premium *= policy_factors.get(policy_type.lower(), 1.0)
    expense_loading = net_premium * 0.25
    profit_margin = net_premium * 0.15
    gross_premium = net_premium + expense_loading + profit_margin
    return {
        "net_premium": round(net_premium, 2),
        "expense_loading": round(expense_loading, 2),
        "profit_margin": round(profit_margin, 2),
        "gross_premium": round(gross_premium, 2),
        "annual_premium": round(gross_premium, 2),
        "monthly_premium": round(gross_premium / 12, 2),
        "mortality_rate": mortality_rate,
        "risk_multiplier": risk_multiplier,
        "assumptions": {"age": age, "gender": gender, "coverage_amount": coverage_amount, "policy_term": policy_term, "policy_type": policy_type, "smoker_status": smoker_status, "occupation_class": occupation_class},
    }

exa

ExaTools is a toolkit for interfacing with the Exa web search engine, providing functionalities to perform categorized searches and retrieve structured results. Args: enable_search (bool): Enable search functionality. Default is True. enable_get_contents (bool): Enable get contents functionality. Default is True. enable_find_similar (bool): Enable find similar functionality. Default is True. enable_answer (bool): Enable answer generation. Default is True. enable_research (bool): Enable research tool functionality. Default is False. all (bool): Enable all tools. Overrides individual flags when True. Default is False. text (bool): Retrieve text content from results. Default is True. text_length_limit (int): Max length of text content per result. Default is 1000. api_key (Optional[str]): Exa API key. Retrieved from `EXA_API_KEY` env variable if not provided. num_results (Optional[int]): Default number of search results. Overrides individual searches if set. start_crawl_date (Optional[str]): Include results crawled on/after this date (`YYYY-MM-DD`). end_crawl_date (Optional[str]): Include results crawled on/before this date (`YYYY-MM-DD`). start_published_date (Optional[str]): Include results published on/after this date (`YYYY-MM-DD`). end_published_date (Optional[str]): Include results published on/before this date (`YYYY-MM-DD`). type (Optional[str]): Specify content type (e.g., article, blog, video). category (Optional[str]): Filter results by category. Options are "company", "research paper", "news", "pdf", "github", "tweet", "personal site", "linkedin profile", "financial report". include_domains (Optional[List[str]]): Restrict results to these domains. exclude_domains (Optional[List[str]]): Exclude results from these domains. show_results (bool): Log search results for debugging. Default is False. model (Optional[str]): The search model to use. Options are 'exa' or 'exa-pro'. timeout (int): Maximum time in seconds to wait for API responses. Default is 30 seconds.

Test Agent

Configure model settings at the top, then test the agent below

Enter your question or instruction for the agent