create-proposal
Proposal Generation
Goal
Create PandaDoc proposals for clients, either from structured information or by extracting details from sales call transcripts.
Inputs (One of the following)
Option A: Structured Data
- Client First Name, Last Name, Email, Company
- Project Title
- 4 Key Problems (brief)
- 4 Key Benefits (brief)
- Project Duration
- Investment Breakdown (Month 1, Month 2, Month 3+)
Option B: Call Transcript
- Sales call transcript to extract all details from
Scripts
./scripts/create_proposal.py- Creates PandaDoc proposal via API./scripts/read_sheet.py- Read client data from sheets if needed
Process
1. Gather Information
- If user provides structured data, use directly
- If user provides transcript, extract:
- Client info (name, company, email)
- Project context and title
- 4 main problems/pain points
- 4 proposed solutions/benefits
- Financial terms (duration, value, costs)
- Ask for any missing critical information
2. Generate Content
Expand the 4 problems and 4 benefits into strategic paragraphs:
Problem Expansion Guidelines:
- Use direct "you" language (not third-person)
- Focus on revenue impact and dollar amounts
- Be specific and actionable
- Example: "Right now, your top-of-funnel is converting very poorly to booked meetings..."
Benefit Expansion Guidelines:
- Address the client directly
- Emphasize ROI and payback period
- Focus on concrete deliverables
Also generate:
- Slide Footer: "Confidential | [Company] Strategic Initiative | [Date]"
- Contract Footer: "[Company]-[ProjectTitle]-[YYYY-MM]"
- Created Date: Current date (YYYY-MM-DD)
3. Execute Proposal Creation
python3 ./scripts/create_proposal.py <<'EOF'
{
"client": {
"firstName": "...",
"lastName": "...",
"email": "...",
"company": "..."
},
"project": {
"title": "...",
"problems": {
"problem01": "[Expanded Problem 1]",
"problem02": "[Expanded Problem 2]",
"problem03": "[Expanded Problem 3]",
"problem04": "[Expanded Problem 4]"
},
"benefits": {
"benefit01": "[Expanded Benefit 1]",
"benefit02": "[Expanded Benefit 2]",
"benefit03": "[Expanded Benefit 3]",
"benefit04": "[Expanded Benefit 4]"
},
"monthOneInvestment": "...",
"monthTwoInvestment": "...",
"monthThreeInvestment": "..."
},
"generated": {
"slideFooter": "...",
"contractFooterSlug": "...",
"createdDate": "..."
}
}
EOF
4. Send Follow-Up Email
Use Gmail to send HTML follow-up email:
- Subject: "Re: [Brief Project Context] Discussion"
- Opening: Thank them for discussing challenges
- Body: 2-4 numbered sections with bold headers
- Each section: Description + "Steps:" bullet points
- Closing: "I'll send you a full proposal shortly..."
- Signature: "Thanks, Nick"
5. Notify User
- Provide the PandaDoc "internalLink" for review
- Confirm follow-up email was sent
Output
- PandaDoc proposal URL (for editing/review)
- Follow-up email sent to client
Environment
Requires in .env:
PANDADOC_API_KEY=your_key
Schema
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
client_first_name |
string | Yes | Client first name |
client_last_name |
string | Yes | Client last name |
client_email |
string | Yes | Client email address |
client_company |
string | Yes | Client company name |
project_title |
string | Yes | Project title |
problems |
array | Yes | 4 key problems (brief) |
benefits |
array | Yes | 4 key benefits (brief) |
investment_breakdown |
object | Yes | Month 1, Month 2, Month 3+ pricing |
call_transcript |
string | No | Alternative: sales call transcript to extract details from |
Outputs
| Name | Type | Description |
|---|---|---|
pandadoc_url |
string | PandaDoc internal link for review |
email_sent |
boolean | Whether follow-up email was sent |
Credentials
| Name | Source |
|---|---|
PANDADOC_API_KEY |
.env |
Composable With
Skills that chain well with this one: onboarding-kickoff, welcome-email
Cost
PandaDoc API call (free tier available)
More from aiagentwithdhruv/skills
image-to-video
Generate AI video from static images using Kling 3.0, Hailuo, Luma Ray3, Runway Gen-4.5, and 8 other tools. Covers free vs paid tools, prompt writing (motion-only), camera control, and face stability. Use when user asks to animate an image, create AI video, or convert photo to video.
91mac-control
MCP server for AI-powered macOS control — apps, display, audio, files, screenshots, clipboard
60gmaps-leads
Scrape Google Maps for B2B leads with deep website enrichment and contact extraction. Use when user asks to find local businesses, scrape Google Maps, generate contractor lists, or build local service business databases.
42excalidraw-visuals
Use when someone asks for a hand-drawn visual, PNG image, rendered diagram, visual explanation, or says "excalidraw image" or "excalidraw visual". This generates PNG images, not editable files.
34youtube-outliers
Find viral YouTube videos in your niche for competitive intelligence. Use when user asks to find YouTube outliers, monitor competitors, or track viral videos.
20excalidraw-diagram
Use when someone asks to draw a diagram, make an Excalidraw diagram, or build an editable diagram. Default for all diagram requests.
20