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
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.
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 | pbcopyStep 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
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
Not every AI feature needs to be a chatbot. Yeah, this was a small fix, relatively, but it was a persistent friction.
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.