install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/Harmeet10000/skills/create-proposal" ~/.claude/skills/comeonoliver-skillshub-create-proposal && rm -rf "$T"
manifest:
skills/Harmeet10000/skills/create-proposal/SKILL.mdsource content
Tool
Script:
execution/create_proposal.py
Usage: Automatically generates PandaDoc proposals from structured input
Process
- Gather Information
-
The user may provide information in one of two formats:
Option A: Structured Bullet Points (if user provides organized data)
- Client First Name
- Client Last Name
- Client Email
- Client Company
- Project Title
- 4 Key Problems (brief)
- 4 Key Benefits (brief)
- Project Duration
- Project Value (Total)
- Platform Costs
- Investment Breakdown (Month 1, Month 2, Month 3+)
Option B: Call Transcript (if user provides a sales call transcript)
- Extract the following from the transcript:
- Client information (name, company, email if mentioned)
- Project context and title
- 4 main problems/pain points discussed
- 4 proposed solutions/benefits
- Any financial terms discussed (duration, value, costs)
- If any critical information is missing from the transcript, ask the user to provide it
-
If information is not already provided in either format, ask the user for the missing details
-
1b. Research Client (Optional)
- Goal: Understand the client's brand voice and current context to personalize the proposal.
- Trigger: If a website URL is provided or can be inferred from the client's email domain (and it's not a generic domain like gmail.com).
- Action:
- Use
to fetch the client's landing page or "About Us" page.read_url_content - Analyze:
- Brand Voice: (e.g., Professional/Corporate, Friendly/Startup, Technical/Niche)
- Keywords: Key terms they use to describe their own value.
- Recent Context: Any recent news or specific focus areas mentioned on the site.
- Use
- Output: A brief "Client Research Summary" to be used in the next step.
-
Generate Content
- Using the gathered information and the Client Research Summary (if available), generate the following expanded content:
- Problem Expansions: Expand each of the 4 problems into 1-2 strategic paragraphs (max 50 words each).
- Contextualization: Use the Client Research Summary to mirror their industry terms and brand voice where appropriate.
- Tone & Style Guidelines:
- Use direct "you" language (not third-person or passive voice)
- Focus on revenue impact and dollar amounts wherever possible
- Be specific and actionable rather than abstract
- Think "revenue ops" mindset - quantify business impact
- Example: "Right now, your top-of-funnel is converting very poorly to booked meetings. You have no problem generating opportunities; your problem is capitalizing on them. Even a few percentage-point improvement here would lead to many tens of thousands of dollars of additional income"
- Benefit Expansions: Expand each of the 4 benefits into 1-2 implementation-focused paragraphs (max 50 words each).
- Tone & Style Guidelines:
- Use direct "you" language addressing the client
- Emphasize ROI, payback period, and financial outcomes
- Be specific about implementation and expected dollar impact
- Focus on concrete deliverables and measurable results
- Tone & Style Guidelines:
- Slide Footer: "Confidential | [Company] Strategic Initiative | [Date]"
- Contract Footer Slug: "[Company]-[ProjectTitle]-[YYYY-MM]"
- Created Date: Current date in YYYY-MM-DD format.
- Problem Expansions: Expand each of the 4 problems into 1-2 strategic paragraphs (max 50 words each).
- Using the gathered information and the Client Research Summary (if available), generate the following expanded content:
-
Execute Proposal Creation
- Tool:
execution/create_proposal.py - Usage: Save the JSON to a file and run:
python3 execution/create_proposal.py < input.json - Construct a JSON object with the following structure:
{ "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": "..." } } - Run the python script:
# Pass the JSON as a string to the script python3 execution/create_proposal.py <<'EOF' [JSON_CONTENT] EOF - Note: Ensure the JSON is valid and properly escaped if necessary.
- Tool:
-
Send Follow-Up Email
- Immediately after proposal creation, send a follow-up email to the client using the template below.
- Use
withgmail.send_email
to send the email in HTML format.mimeType="text/html" - Email Template Structure:
- Subject: "Re: [Brief Project Context] Discussion"
- Opening: Thank them for discussing their challenges/goals
- Body: Break down the proposed solution into 2-4 numbered sections with clear headers
- Each section should have:
- Bold section header describing the deliverable (e.g., "1. Tool Consolidation Audit & Migration Plan")
- Brief description of what it accomplishes
- "Steps:" subheading followed by bullet points (use
and<ul>
HTML tags)<li>
- Closing: "I'll send you a full proposal for the above shortly. Let me know if you have any questions or want to discuss further."
- Signature: "Thanks, Nick"
- HTML Formatting Requirements:
- Use
parametermimeType="text/html" - Provide both
(plain text) andbody
(HTML version) parametershtmlBody - In HTML: Use
tags for paragraphs,<p>
and<ul>
for bullet lists<li> - Bold section headers ONLY using
tags (e.g.,<strong>
)<strong>1. Tool Consolidation Audit & Migration Plan</strong> - Do NOT bold body text or steps - only section headers
- Avoid RFC 2822 plain text wrapping issues by using HTML format
- Use
-
Notify User
- Show the "internalLink" to the user for review and editing in PandaDoc
- Confirm that the follow-up email was sent successfully