30 offices. 20 years of data. One source of truth.
Consolidating two decades of siloed records into a single operational view.
30 offices unified. 20 years of data. 1 source of truth.
Sector
Recruitment, industrial staffing
Tech
Postgres 16, Python ETL, Power BI, Flask, Next.js, Claude API, Docker
The challenge
A national industrial staffing group ran 30 offices across the country. Each office kept its own spreadsheets, its own workspace, and its own version of the truth. After 20 years of operating, leadership had never seen a single consolidated view of the business. Basic questions, which offices were most profitable, which projects ran over budget, which clients spanned multiple regions, could not be answered.
Our approach
- —Audited tools, file formats, and naming conventions across every office.
- —Built an ETL pipeline pulling from recruitment records, project workflows, finance exports, and timekeeping systems, across all 30 offices.
- —Designed a unified Postgres schema that reconciled 20 years of inconsistent records into a single clean source of truth.
- —Built Power BI dashboards covering group-level KPIs, office-by-office comparison, project profitability, and worker utilisation.
- —Automated the monthly data reports that previously took weeks of manual spreadsheet work.
- —Built a full internal platform on top, with an AI-powered candidate-ranking layer for project staffing.
The outcome
For the first time in 20 years of operating, leadership can answer the questions they could not before. Which offices generate the most revenue per consultant. Which project categories consistently run over budget. Which clients span multiple offices and where the cross-sell has been missed. Monthly reporting went from weeks of manual work to automatic. The AI ranker accelerates project staffing decisions from hours to minutes.
Where the real work was
Not the dashboards. The dashboards are the easy part. The work was reconciling 20 years of records across 30 offices that each invented their own conventions. Without the audit, dedupe, and mapping layer underneath, every dashboard would lie politely.
Tags