← Back to Directory
📄

Proposal Generator

Auto-generate branded proposals from meeting notes and company research

🤖 00 ↓  |  👤 00
intermediate35 minutes🔄 13 swappable alternatives

🧂 Ingredients

🔌 APIs

meeting_transcripts_to_extract_client_needs_and_pain_points

🔄 Alternatives:

Deepgram Faster transcription, lower costAssembly Ai Better speaker diarizationWhisper Free, self-hosted option

research_prospect_s_company_for_context_and_personalization

🔄 Alternatives:

Serpapi Google results via API, structured dataGoogle Search Direct Google search APIBing Search Microsoft search with good API

generate_branded_pdf_proposals

🔄 Alternatives:

Pdf Co More PDF operationsGotenberg Self-hosted, free

store_generated_proposals_in_organized_folders

🔄 Alternatives:

Dropbox Better sharing/collaborationBox Enterprise-grade document management

send_proposal_to_prospect_via_draft_for_review

🔄 Alternatives:

Outlook Microsoft ecosystem integrationSendgrid Transactional email at scaleMailgun Developer-friendly email API

📋 Step-by-Step Build Guide

STEP 1

Input

1. Input: meeting notes, transcript, or a brief description of the prospect's needs

Input: meeting notes, transcript, or a brief description of the prospect's needs

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 2

Research the prospect's company via Brave Search

2. Research the prospect's company via Brave Search — industry, size, recent news, challenges

Search the web using the Brave Search API.

GET https://api.search.brave.com/res/v1/web/search?q={query}&count=10&freshness=pd
Headers: X-Subscription-Token: {BRAVE_API_KEY}

Parse the results: extract title, URL, description for each result.
Deduplicate results from the same domain.
Score relevance based on: keyword match in title (high), recency (high), source authority (medium).
Return the top results with: title, 2-sentence summary, source URL, and publish date.

If the search returns no results, try broadening the query by removing the least important keyword.
STEP 3

Extract key information

3. Extract key information: pain points, desired outcomes, timeline, budget range, decision makers

Parse the input data and extract the specified fields.

Processing steps:
1. Parse the raw input (JSON response, transcript text, HTML content)
2. Identify and extract each required field
3. Normalize data formats: dates to ISO 8601, amounts to numbers, text trimmed
4. Validate extracted data — flag missing or malformed fields
5. Structure the output as a clean JSON object

For text extraction (transcripts, articles):
- Use pattern matching for structured data (dates, amounts, URLs)
- Use semantic understanding for unstructured data (key decisions, action items, sentiment)

Return both the extracted data and a confidence indicator for each field.
STEP 4

Generate proposal sections

4. Generate proposal sections: Executive Summary, Understanding Your Challenges, Proposed Solution, Implementation Timeline, Investment/Pricing, Why Us, Next Steps

Compile the gathered data into a structured report.

Format as clean Markdown with:
- Title/date header
- Executive summary (2-3 sentences)
- Key metrics section with actual numbers
- Detailed sections with bullet points
- Action items or recommendations at the end

Keep it scannable — busy people read reports in 30 seconds.
Use emoji sparingly for visual anchors (📊 metrics, ✅ wins, ⚠️ concerns, 📋 action items).
Include data comparisons: "X this period vs Y last period (↑Z%)"

If any data source was unavailable, note it clearly: "⚠️ [Source] data unavailable — excluded from this report."
STEP 5

Personalize with company

5. Personalize with company-specific details — reference their industry, competitors, and specific challenges discussed

Personalize with company-specific details — reference their industry, competitors, and specific challenges discussed

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 6

Generate a branded PDF using nano

6. Generate a branded PDF using nano-pdf with your company logo, colors, and formatting

Generate a branded PDF using nano-pdf with your company logo, colors, and formatting

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 7

Save to Google Drive under /Proposals/{Company Name}/{Date}/

7. Save to Google Drive under /Proposals/{Company Name}/{Date}/

Persist the data to the configured storage.

Data structure:
- Include timestamp (ISO 8601) with every record
- Use consistent field names across entries
- Store raw values (not formatted) for future analysis
- Add a source/origin field for audit trail

Storage operation:
1. Validate the data before writing
2. Check for duplicates (by timestamp + unique key)
3. Append to existing records — never overwrite
4. Verify the write succeeded
5. Return the stored record ID/reference
STEP 8

Draft a cover email introducing the proposal and suggesting next steps

8. Draft a cover email introducing the proposal and suggesting next steps

Draft a cover email introducing the proposal and suggesting next steps

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

🤖 Example Agent Prompt

Input: meeting notes, transcript, or a brief description of the prospect's needs

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

Copy this prompt into your agent to get started.

📄 Proposal Generator — PincerAPI Cookbook