As a solo agency owner, one of the most valuable things I do isn’t writing code—it’s winning projects.
Every proposal I send represents hours of research, analysis, planning, and presentation before I’ve written a single line of production code. The better the proposal, the higher the conversion rate.
The problem was simple.
Creating a proposal that genuinely impressed a prospect took between 3–5 hours. Not because writing the document was difficult, but because every proposal deserved to feel custom-built.
For every new prospect, I would:
- Audit their website
- Analyse their technology stack
- Check SEO implementation
- Run performance tests
- Review competitors
- Estimate project scope
- Create pricing options
- Build a branded HTML proposal
- Upload it to my website
- Password protect it
- Add it to my internal CRM
Doing this manually was sustainable when I received a few enquiries each month.
It wasn’t sustainable once my agency started growing.
So instead of trying to write proposals faster…
I built an AI system that does almost the entire process for me.
Today, I trigger the entire workflow with one sentence:
Create Pitch for https://example.com
About three minutes later, I have a fully branded proposal live on my website.
This isn’t just “using ChatGPT.”
It’s a production workflow built on top of GitHub Copilot.
The Problem Was Never Writing
People often think AI saves time because it writes.
That’s actually the smallest part.
The real bottleneck was gathering information.
A quality proposal requires context:
- What platform is the website using?
- Is it WordPress?
- Elementor?
- Custom PHP?
- Is SEO implemented correctly?
- Does robots.txt exist?
- Is the sitemap valid?
- What analytics tools are installed?
- How fast is the website?
- Which security headers are missing?
- What colour palette should the proposal use?
- Which services are actually relevant for this client?
Individually these tasks aren’t difficult.
Together they consume hours.
I wanted to eliminate the repetitive work while keeping every proposal personalised.
What a GitHub Copilot Skill Actually Is
Most people use GitHub Copilot as an autocomplete tool.
I use it differently.
Inside VS Code, Copilot supports custom instruction files that define how it should behave for specific workflows.
Think of them as operating manuals for AI.
Mine lives inside my agency repository:
theme/
├── SKILL.md
├── pitch-router.php
├── pitches/
├── classes/
└── templates/
Rather than asking random prompts every time, I encoded an entire Standard Operating Procedure into a structured markdown file.
The AI doesn’t improvise.
It follows a deterministic workflow.
Every proposal is produced using exactly the same process.
That’s the important distinction.
This isn’t a chatbot.
It’s an automated agent following business rules.
Step 1: Ask One Smart Question First
The first thing the AI does isn’t research.
It asks me one question.
What service are we pitching?
Examples:
- Website rebuild
- Website maintenance
- SEO
- Performance optimisation
- Combination package
This sounds trivial, but it’s one of the most important design decisions.
Without knowing the objective, the AI could spend time researching areas that aren’t relevant.
One question saves a huge amount of unnecessary work later.
Step 2: Research Everything in Parallel
Once the objective is known, the skill performs multiple research tasks simultaneously.
Instead of checking things one by one, it gathers all the information it needs at once.
That includes:
- Homepage analysis
- Services offered
- Calls to action
- Social proof
- Technology stack detection
- CMS identification
- Page builder detection
- CDN usage
- Analytics platforms
- Schema markup
- Meta tag audit
- Open Graph validation
- Canonical tags
- robots.txt
- XML sitemap
- SSL configuration
- Security headers
- Social media profiles
- Trustpilot reviews
- Company information
- Team pages
It also queries Google PageSpeed Insights for both mobile and desktop performance.
Unlike many AI demos that estimate speed, my workflow uses Google’s actual API.
I embedded my own PageSpeed API key directly into the workflow, ensuring consistent results without worrying about rate limits.
Step 3: Keep the Human in the Loop
Once the audit is complete, the AI summarises what it found.
Something like:
I analysed the website. It’s running WordPress with Elementor, performance is below 60, SEO implementation is incomplete, and there is no XML sitemap.
Only then does it ask the final scoping question.
Should this proposal focus on:
- rebuilding,
- maintenance,
- or both?
The timing matters.
The human isn’t interrupted during research.
They’re only involved once enough information exists to make a meaningful decision.
Step 4: Generate Every Variable Automatically
From the collected information, the AI derives everything needed for the proposal.
Examples include:
- Client slug
- Brand accent colour
- Password
- Proposal URL
- Performance score
- SEO score
- Security score
- User Experience score
- Content quality score
- Maintenance score
Even the proposal password follows a deterministic formula so I never have to invent one manually.
Step 5: Build the Project Plan Dynamically
One thing I wanted to avoid was generic proposals.
Instead of using fixed templates, the workflow decides which project phases should exist.
For example:
If the website has no sitemap…
→ Add an SEO Foundation phase.
If performance is poor…
→ Add Performance Optimisation.
If security headers are missing…
→ Add Security Hardening.
If the website relies heavily on outdated plugins…
→ Add Technical Debt Cleanup.
Each proposal adapts to what was actually discovered during the audit.
Step 6: Recommend Relevant Add-ons
Not every client needs the same services.
The AI recommends optional upgrades only when they’re genuinely relevant.
Examples include:
- Programmatic SEO
- WooCommerce
- Cloudflare optimisation
- Hosting migration
- Conversion optimisation
- Analytics improvements
- Ongoing maintenance
These recommendations are based entirely on the audit findings rather than a predefined sales script.
Step 7: Generate the Entire Proposal
This is where everything comes together.
The skill creates a complete HTML proposal containing eighteen sections.
Including:
- Hero section
- Executive summary
- Website audit
- Scorecards
- Technical findings
- SEO analysis
- Technology comparison
- Solution roadmap
- Deliverables
- ROI projections
- Pricing plans
- Case studies
- Competitor comparison
- Timeline
- Frequently asked questions
- Call to action
The proposal automatically adopts the client’s brand colour and follows the same design language used across my agency.
Everything is generated as a single standalone HTML file.
pitches/
└── client-name-pitch.html
No build process.
No JavaScript framework.
No dependencies beyond Google Fonts.
Open the file and it’s ready.
Step 8: Publish It Automatically
Generating the proposal isn’t enough.
It also needs to become accessible.
The workflow automatically updates my WordPress routing system.
/pitch/client-name/
A new PHP entry is added behind the scenes, making the proposal immediately available on my website.
Every proposal is protected using my own custom authentication class before it becomes accessible to the client.
No manual deployment.
No editing routes.
No uploading files.
Step 9: Sync Everything Into My Dashboard
I also built an internal platform called PersonalOS that manages my agency operations.
As soon as a proposal is created, the workflow sends metadata directly to my API.
POST /api/pitches
Within seconds, my dashboard contains:
- Client name
- Proposal URL
- Password
- Status
- Created date
Everything is organised automatically.
Step 10: Final Output
Once everything finishes, Copilot simply responds with something like:
✓ Proposal Created
URL:
https://craftywebbies.com/pitch/client-name/
Password:
ABC123
Accent Colour:
#0066CC
File:
pitches/client-name-pitch.html
Reminder:
Flush WordPress permalinks if this is a new deployment.
That’s it.
From one sentence to a live proposal in roughly three minutes.
Why This Isn’t “Just Using ChatGPT”
Whenever I show this workflow, people often ask:
“Couldn’t ChatGPT already do this?”
Not really.
The value isn’t the language model.
The value is everything surrounding it.
This workflow is:
- Context-aware — it understands my codebase, file structure, branding, pricing model, and agency conventions.
- Consistent — every proposal meets the same quality standard regardless of how tired I am.
- Integrated — outputs become real files, update routing, and sync with my internal systems automatically.
- Rule-driven — business rules are enforced every time. Pricing stays consistent, CTAs always point to the correct pages, typography never changes accidentally, and proposal structure remains uniform.
- Independent — apart from the AI model itself, I own the workflow. No third-party SaaS platform dictates how it works.
That’s the difference between asking AI to write something and engineering a repeatable production system.
If you’re interested in my broader philosophy around AI-assisted development and why I focus on engineering workflows instead of blindly relying on code generation, I wrote about it here:
→ Why I Prefer AI Coding Assistants Over Over-Engineering WordPress Projects
Real Projects, Real Clients
This workflow has already produced proposals across multiple industries, including:
- Healthcare
- Care plans
- Legal firms
- Professional services
- Engineering companies
- B2B businesses
- Property and real estate
- Hospitality
Every proposal looks different because every audit is different.
The workflow adapts to the client instead of forcing every client into the same template.
What This Demonstrates as a Developer
I didn’t build this because AI is trendy.
I built it because my sales process had a bottleneck.
More importantly, it demonstrates the kind of engineering work I enjoy most.
It combines:
- Prompt engineering as production infrastructure
- End-to-end systems thinking
- AI workflow design
- Business automation
- WordPress architecture
- API integration
- Deterministic process design
The goal wasn’t to automate creativity.
The goal was to automate repetition while preserving quality.
That’s a much harder problem.
And, in my opinion, a much more valuable one.
What’s Next
This workflow continues to evolve.
The next features on my roadmap include:
- Automatically emailing the proposal as soon as it’s generated.
- Running A/B tests on proposal layouts based on industry.
- Integrating Calendly so meeting links are pre-filled with client details.
- Building similar AI skills for content strategy generation, demo website creation, and technical SEO planning.
The exciting part isn’t that AI can write.
It’s that AI can become part of your engineering architecture.
When you design the workflow carefully, a single sentence can trigger hundreds of tiny decisions that previously required hours of manual work.
That’s where the real leverage comes from.
Want Something Similar for Your Business?
If you’re looking to automate repetitive work inside your agency or business—whether that’s proposal generation, internal dashboards, WordPress workflows, AI-powered content pipelines, or custom business tools—I build practical systems designed around real-world operations, not demos.
If you have a process that feels repetitive, time-consuming, or difficult to scale, I’d be happy to explore how a custom AI workflow could help streamline it.