DEV Community

WEDGE Method Dev
WEDGE Method Dev

Posted on

How I Built an AI Sales Intelligence Dashboard in Python (With Code)

Before every sales call, I used to spend 45 minutes researching the prospect. Now my AI dashboard does it in 8 minutes — and the research is better.

What It Does

Feed it a company name and it returns:

  • Company overview (size, revenue, industry, recent news)
  • Key decision makers with LinkedIn profiles
  • Technology stack analysis
  • Competitor landscape
  • 3 talking points tailored to their likely pain points
  • Suggested pricing based on company size

The Stack

  • Python for the orchestration
  • Claude API for analysis and synthesis
  • Perplexity API for real-time web research
  • Flask for the dashboard UI

Core Implementation

import anthropic
import requests

client = anthropic.Anthropic()

def research_company(company_name: str) -> dict:
    """Build a comprehensive research dossier on a company."""

    # Step 1: Web research via Perplexity
    perplexity_resp = requests.post(
        "https://api.perplexity.ai/chat/completions",
        headers={"Authorization": f"Bearer {PERPLEXITY_KEY}"},
        json={
            "model": "sonar-pro",
            "messages": [{
                "role": "user",
                "content": f"Research {company_name}: company size, revenue, "
                           f"industry, recent news, technology stack, key executives. "
                           f"Include sources."
            }]
        }
    )
    raw_research = perplexity_resp.json()["choices"][0]["message"]["content"]

    # Step 2: AI synthesis and analysis
    analysis = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=2048,
        messages=[{
            "role": "user",
            "content": f"""Based on this research about {company_name}, create a 
sales intelligence brief:

{raw_research}

Return JSON with:
- company_overview (2-3 sentences)
- estimated_size (employees)
- estimated_revenue
- industry
- tech_stack (list)
- key_people (list of name, title, linkedin_url)
- recent_news (list of headline, date, relevance)
- competitors (list)
- likely_pain_points (list of 3-5)
- talking_points (list of 3, each tailored to a pain point)
- suggested_pricing_tier (based on company size)"""
        }]
    )
    return analysis

def generate_proposal_draft(research: dict, service: str) -> str:
    """Generate a proposal draft from research."""
    response = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=4096,
        messages=[{
            "role": "user",
            "content": f"""Using this company research, draft a consulting 
proposal for {service}:

{research}

Include: executive summary, proposed solution (3 tiers), 
timeline, investment, expected ROI, next steps."""
        }]
    )
    return response.content[0].text
Enter fullscreen mode Exit fullscreen mode

The Dashboard

Simple Flask app with a search bar. Type a company name, get a full dossier in under 10 minutes.

The key insight: chain the research into the proposal. The same data that informs your sales call becomes the foundation of your proposal.

Results

Metric Before After
Research time 45 min 8 min
Proposal time 2.5 hrs 18 min
Win rate 23% 41%
Calls/week 5 12

The win rate increase alone justified building this. Better research = better conversations = more closes.

What I'd Do Differently

  1. Cache aggressively — same companies come up repeatedly
  2. Add CRM integration — auto-push research to HubSpot/Salesforce
  3. Track which talking points convert — feed results back to improve suggestions

This is one of 30 automation blueprints I've documented with complete implementation guides: wedgemethod.gumroad.com/l/ai-automation-playbook-smb

Top comments (0)