How a rigid, manual reporting workflow became a configurable system generating 17,000+ reports a week — and why that work led to a ground-up refresh of Prismforce's design system.
Prismforce is an AI-powered SaaS platform for the tech-services talent supply chain. Operations and delivery teams at large enterprises rely on it daily to track staffing, utilization, and resourcing across large workforces.
One of the platform's most-used surfaces is reporting — users can download reports with filters already applied. The problem was that those filters were fixed. If someone needed to slice the data differently, the workaround was always the same: download the report, drop it into Excel, filter it manually, then export it again. A native feature was quietly being replaced by a spreadsheet every day.
Watching how people actually used the reports made the gap obvious:
The core of the solution was turning filtering from a fixed, pre-built list into something dynamic and reusable:
Together, this replaced the Excel round-trip entirely: what used to mean downloading, filtering manually in a spreadsheet, and re-exporting is now a single step inside the product.
A few other shipped projects from this year, at a glance:
The hardest part of this project wasn't the interface — it was resisting the urge to solve flexibility with more options. Every added filter or column type made the builder more powerful and slightly harder to learn. Layering dynamic filters on top of sensible defaults ended up being the right constraint: flexible enough for power users, structured enough that it didn't become its own support burden.
It's also the project that made the case for a design system internally — not as a nice-to-have, but as the thing that would stop us rebuilding the same filter and table patterns every time a new report type came up.