Sales Automation
proposals documents
How to Build an AI Case Study Proposal Insert Generator
Automatically insert relevant case studies into proposals based on prospect industry.
Jay Banlasan
The AI Systems Guy
This ai case study proposal insert generator matches the right success stories to each prospect based on industry and pain points. Relevant proof converts better than generic proof.
What You Need Before Starting
- Python 3.8+
- Claude or GPT API key
- Jinja2 for templating
- weasyprint for PDF generation
Step 1: Define Your Data Model
Set up the structure for case studies records.
import json
import sqlite3
from datetime import datetime
def init_db():
conn = sqlite3.connect("case_studies.db")
conn.execute("""CREATE TABLE IF NOT EXISTS case_studies (
id INTEGER PRIMARY KEY AUTOINCREMENT,
deal_id TEXT, content TEXT, status TEXT DEFAULT 'draft',
created_at TEXT, updated_at TEXT
)""")
conn.commit()
return conn
Step 2: Pull CRM Context
Get deal and company data to populate your case studies.
def get_context(crm_client, deal_id):
deal = crm_client.get_deal(deal_id)
company = crm_client.get_company(deal["company_id"])
return {
"deal_name": deal["name"],
"company": company["name"],
"industry": company["industry"],
"amount": deal["amount"],
"notes": deal.get("notes", ""),
}
Step 3: Generate Content with AI
Use Claude to create customized case studies content.
import anthropic
def generate_content(context):
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-20250514", max_tokens=2000,
messages=[{"role": "user",
"content": f"Generate case studies content for {context['company']} in {context['industry']}.\nDeal value: ${context['amount']:,.0f}\nNotes: {context['notes']}"}]
)
return message.content[0].text
Step 4: Format and Export
Create a professional output document.
def export_document(content, context, output_dir):
filename = f"{context['deal_name']}_{datetime.now().strftime('%Y%m%d')}.md"
path = os.path.join(output_dir, filename)
with open(path, "w") as f:
f.write(f"# {context['company']}\n\n{content}")
return path
Step 5: Track and Measure
Log every document and track conversion.
def log_document(conn, deal_id, path, status="draft"):
conn.execute(
"INSERT INTO case_studies (deal_id, content, status, created_at, updated_at) VALUES (?, ?, ?, ?, ?)",
(deal_id, path, status, datetime.now().isoformat(), datetime.now().isoformat()))
conn.commit()
What to Build Next
Build a feedback loop. Track which case studies appear in winning proposals.
Related Reading
- Prompt: Write a Case Study - prompt write case study
- AI for Proposal and Document Creation - ai proposal document creation
- AI for Contract and Proposal Management - ai contract proposal management
Want this system built for your business?
Get a free assessment. We will map every system your business needs and show you the ROI.
Get Your Free Assessment