Kyle Frost

Shipping Product Updates in 3 Minutes with AI

PermitFlow's product team ships fast. Dozens of PRs merged weekly. Leadership needed a weekly changelog to share with Sales, Support, and the broader company, but creating one manually meant tracking every PR and translating technical changes into plain language. It was taking hours each week.

I built an AI-powered workflow using a terminal command and a custom ChatGPT prompt that pulls merged PRs, filters out noise, and generates a formatted Slack update in minutes.

3-minute weekly process, down from a multi-hour, multi-person effort

Company-wide visibility with readable weekly updates for sales, support, and leadership

No new tools, built on GitHub, ChatGPT, and Slack

Problems

1

Information overload

Our #product-updates channel in Slack was overwhelming for most people. Every merged PR, every small fix, every backend change created noise that drowned out meaningful updates.

2

Manual changelog creation was time intensive

Writing weekly summaries manually meant tracking every PR, translating technical changes into plain language, and coordinating across engineering, product, and potentially communications. It was a multi-hour process.

Approach

I started by talking to different departments to understand what information was actually useful. The consistent feedback: they needed to know about customer-facing changes in plain language, not technical implementation details.

I evaluated several dedicated changelog tools but they all felt overbuilt for our needs. The overhead didn't make sense for a simple, weekly internal update. I needed something lightweight that worked with our existing systems — GitHub, Slack, and ideally AI to handle the translation from technical PR descriptions to plain language.

Solution

Every Friday, I ran a single terminal command that pulls merged PRs from the last 7 days and copies them directly to my clipboard. The raw data is pasted into a custom GPT, and which outputs a formatted changelog ready to post in Slack.

The prompt groups updates into meaningful categories (Feature Releases, UI/UX Changes, Bug Fixes), strips out technical jargon and backend infrastructure changes, translates implementation details into more common language, and formats everything consistently. I created a mapping between GitHub and Slack usernames in the prompt so engineers get tagged automatically.

The workflow kept a human in the loop for minor edits (sometimes I would need to clarify things behind feature flags, add context about upcoming releases, etc). But the AI handles 90% of the work: reading dozens of PRs, extracting meaning, and generating readable summaries. The entire process takes a few minutes.

Step 1: Pull last 7 days of merged PRs from GitHub

gh pr list --state merged --base main --search "merged:>=$(date -v-7d +%Y-%m-%d)" --json title,author,body,mergedAt --limit 100 | pbcopy
Copied 47 merged PRs to clipboard

Step 2: ChatGPT prompt

You're helping me generate a weekly changelog for our team from GitHub PR data. The audience is non-technical (sales, support, leadership), so translate technical language into user-facing benefits.

Group updates into three categories:

1. ✨ **Feature Releases** - New functionality or major improvements that users will notice

2. 🎨 **UI/UX Changes** - Interface updates, design changes, user experience improvements

3. 🐛 **Bug Fixes** - Issues resolved, errors fixed, things that now work correctly

What to INCLUDE:

- Customer-facing features or improvements

- UI/design changes visible to users

- Bug fixes that improve user experience

- Performance improvements users would notice

What to EXCLUDE:

- Backend refactoring or code cleanup

- Database migrations or schema changes

- Infrastructure updates (CI/CD, deployment, monitoring)

- Dependency updates or package bumps

- Internal tooling changes

For each item:

- Use **bold** for the feature/fix title

- Write a clear one-sentence summary focused on user benefit (not technical implementation)

- Tag the engineer who shipped it using this mapping:

{

"github-sarah": "@sarah",

"github-michael": "@michael",

"github-jessica": "@jessica"

}

- If a PR has screenshots or demo links in the description, mention them

Format example:

**Inspection scheduling calendar** - Added a calendar view for scheduling inspections directly from the application page, with real-time availability from municipalities. (@sarah)

Writing style:

- Use active voice ("Added...", "Improved...", "Fixed...")

- Be specific about what changed, not how it was built

- Focus on user value: "Users can now..." instead of "We implemented..."

- Keep it concise but informative

[Paste GitHub PR JSON here]

Step 3: Post to Slack

KF
Kyle Frost11:23 AM
What shipped this week (Jan 6–12)
✨ Feature Releases
Inspection scheduling calendar - Added a calendar view for scheduling inspections directly from the application page, with real-time availability from municipalities. @sarah
Bulk application status updates - Project managers can now update status for multiple applications at once from the workspace view. @michael
PDF annotation tool - Users can now mark up permit documents directly in the platform before submitting to municipalities. @jessica
🎨 UI/UX Changes
Redesigned application timeline - Cleaner visual hierarchy and better mobile responsiveness for the main application progress view. @alex
Improved document upload flow - Added drag-and-drop support and better progress indicators for large file uploads. @maria
🐛 Bug Fixes
Fixed inspection date timezone issues - Resolved issue where inspection dates displayed incorrectly for users in different timezones. @chris
Corrected application search filters - Fixed bug where certain filter combinations weren't returning correct results. @sarah
👍12
🚀8
🎉5

Impacts

⏱️

3-Minute Weekly Process

What could have been a multi-hour, multi-person process became a three-minute solo workflow. No meetings, no status reports, no coordination overhead.

📢

Team-Wide Visibility

Sales, support, and leadership finally understood what was shipping each week. The updates became readable, relevant, and actually got read.

🏆

Engineer Recognition

Automatic credit tagging meant engineers got recognized for their work beyond just the engineering team. Their contributions became visible company-wide.

🔧

No New Tools Required

Built entirely on existing systems (GitHub, ChatGPT, Slack). No new software to buy, integrate, maintain, or train the team on.

Reflections

1.

Not every AI feature needs to be a chatbot. Yeah, this was a small fix, relatively, but it was a persistent friction.

2.

The human-in-the-loop approach was intentional. I could have fully automated this with scheduled queries and direct Slack posting with more work, but keeping myself in the process allows me to add necessary context and catch edge cases.