
Handshake is the career network that connects students, universities, and employers. With over 1 million companies ready to hire from their platform, the data team can't afford to waste time.
When Handshake's BI contract came up for renewal, Tyler Ritter, Senior Analytics Engineer, saw an opportunity to upgrade to get new features, AI capabilities, and stronger ROI. So he led the evaluation and tool selection. Then he migrated 10 years' worth of models and content to Omni in 8 weeks.
Here’s how he did it 👇
Results #
Reduced the migration timeline by roughly 40%
The entire 10-year-old internal analytics estate moved in eight weeks instead of the three to four months originally scoped. This included rebuilding 50 curated data models as Omni Topics, more than 50 dashboards (some with 40 to 50 tiles), and hundreds of reports and schedules.
Replaced a planned six-to-eight-person team with one analytics engineer and AI
The initial plan followed a common migration pattern, borrowing volunteers from every stakeholder team and keeping them aligned through constant checkpoints. Instead of pulling focus from other initiatives, Tyler ran the whole migration to cut coordination and overhead.
Moved hundreds of internal users onto one governed model
The same question returns the same answer wherever they ask it: in Slack, Claude or ChatGPT, or Omni’s UI, giving users across the business better access to governed self-service.
The challenge #
Handshake had been on their previous BI tool for over a decade, using it for internal and embedded analytics.
Their business users across support, finance, and partnerships were used to exploring curated data without writing SQL. Self-service relied on the governed semantic layer.
But the product had stalled. Features weren't shipping at a pace anyone was excited about, AI capabilities didn’t meet expectations, and the contract renewal presented an opportunity to get more value.
Handshake decided to find a new solution, but wanted to preserve the governed experience provided by a semantic layer for their internal and external stakeholders.
The scope of migrating was another issue, since it was originally expected to take eight or more people a full quarter to move their internal analytics estate. Everyone had their own work going on, and the business couldn’t slow down to move. Tyler wanted to find a way to reduce the impact on the rest of the analytics engineering team and broader organization.
The evaluation #
The data team was already using a notebooking tool for some explorations, so they evaluated that path first. However, they realized pretty quickly it wouldn't work for company-side use.
"Our support, our finance, our project managers don't want an experience built for technical users," Tyler said. "They want to feel like the data is curated for them already. They want to feel like they're within the guardrails."
Omni gave them that governed layer with greater flexibility and a modern agentic experience on top. The semantic layer with Topics gave his users the guardrailed, curated experience they were comfortable relying on. And the API let him create dashboards, schedules, and workbooks programmatically.
At the same time, Erin, a PM at Handshake, had migrated to Omni for embedded analytics. Their previous embedded solution had become stale and clunky. Erin tried Omni and came back enthusiastic.
"Our product team shared their excitement and enthusiasm about Omni at a pretty good time, because we were trying to make the internal decision." — Tyler Ritter
The migration journey #
At the same time they selected Omni, Handshake had just rolled out Claude Code across the company. Tyler was learning how to use it while staring at a ton of analytics content to migrate. He knew Omni's API could create dashboards and schedules programmatically. He knew the existing tool's API could give him everything about the source. The question was whether the agent could bridge the two.
"Necessity is the mother of invention. I was the only one assigned to this task. The rest of my teammates needed to focus on other projects, so I turned to AI to help me manage this." — Tyler Ritter
He started working with Claude Code directly. "Hey, this is what a model file looks like. This is the target YAML file. Get this as close to one-to-one as possible so that the same query against either file would produce the same result." The agent would try, and it would get things wrong, like putting joins in the wrong file, because Omni handles relationships differently. Tyler would correct it, and it would learn.
The breakthrough was Omni's Content Validator. Tyler had been copying the Validator output, pasting it back into Claude Code, telling it what to fix.
"Then I realized it could just close that feedback loop and run that validator step within Claude Code," he said. "So I could completely remove myself from that process. It would iterate and understand if it made an error, then it would fix that error, validate it, and just keep working until it was clean."
That was the model for everything that followed.
For the dashboards, Tyler was skeptical at first, saying, "I didn't know if our previous tool was able to give the Omni API everything it needed to create a dashboard." It turned out the source's API returned everything: tile placement, chart style, colors, pivots, filters, all of it.
He started building a Claude skill around the dashboard workflow. Or as he puts it, "The dashboard skill basically built itself. I was just kind of reminding the agent to say, this is going to be a thing I ask you over and over again. Let's make sure we're getting a deterministic output."
At first, the results were bad. “I would see the tiles were all out of sorts. Nothing was in order. Everything was minuscule. Things were missing." So he went through step by step until each issue was solved.
"With a little feedback, the skill got comically good at this. I would just give it an ID, and it would be like ‘no sweat’. Within minutes, every tile looked good, the charting looked good, the pivots, the dashboard filters were wired into the correct tiles," shares Tyler.
The skill also validated its own output. It ran a sample query from every tile, compared the result to the original, and surfaced deltas. With hundreds of dashboards to move, Tyler didn’t need to open each tile by hand to trust it.
His philosophy throughout was simple:
"How can I do as little as possible? That was always my north star." — Tyler Ritter
After the dashboards, the rest went fast. Tyler described moving single-tile workbooks and schedules as "trivial." The skill for schedules only needed to know a recipient, dashboard, and delivery time.
Omni's platform made that loop possible. The semantic model gave the agent a target, the API let it build programmatically, and the Validator kept everything honest.

The impact #
Omni's value starts with consistent answers. Whether someone asks in Slack, in Claude or in ChatGPT, or in Omni's UI, one governed model returns the same answer.
"Omni is way more modern and the features are way better for my team and our stakeholders to work with. The AI agent has already become so helpful. We have no regrets about migrating." — Tyler Ritter
The governed model also lets Handshake encode context their previous BI tool couldn't. For example, Handshake's fiscal calendar starts in February, so a finance user's understanding of "this quarter" is different from everyone else's. Now, Omni’s AI understands those nuances the way a member of the data team would.
Tyler is now working with each stakeholder team to put that kind of institutional knowledge into Omni's AI context. "Giving AI context about our business is something we couldn't do before."
Early feedback has been consistent. Tyler's early adopters, he said, made it "clear it was the better choice."
The savings weren’t only in headcount. "It’s not just about the manual effort," Tyler shares. "It's the communication piece. We would have had to do so many checkpoints."
Tyler centralized the whole migration instead. “When I told the team they wouldn’t need to help with the migration, they thought that was amazing. They have enough work to do too."
What comes next #
The migration is done. Handshake's entire analytics estate now runs on Omni, with one analytics engineer rebuilding the internal environment in eight weeks. They’re also using Omni to serve thousands of external users via embedded analytics. Centralizing both use cases means everyone benefits from the same semantic model, and AI context compounds.
Tyler's time now goes to context engineering for AI, working Topic by Topic with stakeholder teams so the agent's answers make sense for each of them.
To learn more, check out our more detailed write-up of Tyler’s process in our docs and our team’s migration guide with best practices and more ideas for using AI to accelerate your migration.





