At a glance
Manual reporting and client update processes were consuming 12+ hours per week across the team.
- Built an OpenAI-powered agent to auto-summarize project updates from ClickUp data
- Integrated the agent with Slack and email to deliver formatted stakeholder reports automatically
- Added a feedback loop so report accuracy improves over time based on team corrections
Reduced weekly reporting time by 80%. Team reclaimed 10+ hours per week for delivery work.
The situation
Reporting was the tax the delivery team paid every week. Project state already lived in ClickUp; the work was reading it, deciding what a given stakeholder needed to know, rewriting it in their language, and sending it. Across the team that was consuming 12+ hours per week. Those hours came out of delivery rather than out of slack in the schedule. The cost was what did not get built while the reports were written. [NEEDS INPUT: which roles absorbed most of the 12+ hours - PMs, senior engineers, or spread across the team?]
How it surfaced
This never arrived as an escalation, which is exactly why it was worth fixing. An outage announces itself; a recurring 12+ hours per week does not. It surfaced as a pattern rather than an event: the same shape of document produced every week, out of the same hours. [NEEDS INPUT: how was the 12+ hours per week measured - ClickUp time tracking, or self-reported by the team?] Once the number was written down it stopped being a complaint and became a line item.
What I ruled out, and why
I broke the hours down before touching a tool, because a reporting problem can be a data problem or a judgment problem and the two have unrelated fixes. It was not a data problem - ClickUp already held the state. The cost sat in deciding which of a week's task movements a stakeholder actually cares about, and translating engineering-language updates into terms a client reads without help. That is judgment work performed at volume. [NEEDS INPUT: roughly how did the 12+ hours split between gathering state and writing the summary?]
The obvious answer was ClickUp's own dashboards and scheduled exports, and I ruled it out for precisely that reason: a dashboard hands over raw state and leaves the judgment where it already sat. A stakeholder handed a week of raw status changes has received less than one paragraph naming what is at risk. I also considered a deterministic template script, which can restate task titles reliably but cannot summarize, and summarizing was the whole cost. Assigning a coordinator to own reporting moves the hours onto one calendar instead of removing them.
The decision and what it cost
I chose a probabilistic system to produce a client-facing artifact, and that is the tradeoff in one sentence. A generated summary can be confidently wrong in a way a template never is, and a wrong status report costs more trust than a late one. I accepted that risk deliberately and paid for it with a review step: the agent drafts, a person signs off, so the saving is in the writing and never in the accountability. I also took on an external API dependency and a per-report cost rather than an in-house deterministic tool that would have been cheaper to run and unable to do the job.
What I did
I built an OpenAI-powered agent to auto-summarize project updates from ClickUp data, keeping the source of truth where the team already worked instead of creating a second system to maintain. I integrated it with Slack and email so formatted stakeholder reports were delivered automatically, on the channels each audience already read rather than in a tool someone had to remember to open. Then I added a feedback loop: when the team corrects a report, the correction is captured and report accuracy improves over time. That last part is what separates a demonstration from something people keep using.
The outcome
Reduced weekly reporting time by 80%. Team reclaimed 10+ hours per week for delivery work. What remains is the review step, and that is the design working rather than an unfinished migration - the agent absorbed the drafting, the team kept the sign-off. [NEEDS INPUT: how many correction cycles had the feedback loop accumulated when the 80% reduction was measured?] The reclaimed hours went back into delivery work, not into new reporting.
What stayed changed
Automate the drafting, keep the accountability. The rule I apply now to any agent producing something a client reads is that a named person signs it before it leaves, and their corrections are captured as signal rather than fixed silently in a text box. The second lesson is arithmetic. 12+ hours a week is worth a build, and the reason a cost like that survives for so long is that recurring work never pages anyone the way an incident does.
Related incidents
Scaling Engineering Teams: Taking the Exprovia Engineering Team from 7 to 20
I built the hiring pipelines, onboarding flows, and mentoring structure that took the Exprovia engineering team from 7 to 20, spending senior engineers' shipping time on context transfer to buy capacity that compounds.
Read the full incidentA Definition of Done Checklist for Software Teams, Written After Three Bad Sprints
Defect rate climbed for three consecutive sprints. I rebuilt the Definition of Done and moved the quality gate before the merge instead of after it, accepting slower throughput to bring leakage back down.
Read the full incident