Skip Navigation Get In Touch
Media highlight
TypeSoftware Development & Platform Engineering
AI ForExecutive Leadership
Zig SolutionsVoice & Chat AgentsDocument Automation

ShoalID had a web application that had never made it to production. The Zig picked it up, modernised the legacy Angular codebase, resolved the issues preventing deployment, and delivered a live platform — turning an unfinished investment into a working product.

What Changed
An Angular web application that existed only as an undeployed codebase was modernised, stabilised, and deployed to production for the first time. The platform, a contact management tool that enables users to organise, group, and share contacts went from an incomplete development project to a live, functioning product serving real users.

Where They Started
ShoalID is a contact management platform designed to help users organise their contacts into custom groups, share contacts across groups, and manage their professional and personal networks in a single application, functioning as a lightweight, intuitive CRM. A previous development effort had produced a web application built on Angular, but the project had stalled before reaching production. The codebase existed, but it had never been deployed, and several technical issues needed to be resolved before it could go live.

What Was Breaking
The undeployed application represented a significant investment that was producing no value. ShoalID's founder had a clear product vision and stable requirements, but lacked a development partner capable of taking the existing work, finishing it to production standard, and maintaining it going forward. The longer the application sat undeployed, the further the codebase drifted from current standards and the harder a successful launch would become.

How The Zig Fixed It
The Zig inherited the existing Angular codebase and began by assessing what was salvageable and what needed to be rebuilt. The team updated legacy code, resolved the technical blockers preventing deployment, and brought the application to production standard. The deployment process was set up, the application went live, and a maintenance and feature development cadence was established. New features have been added continuously since launch, guided by clear, stable requirements from the client.


BEFORE: Undeployed Angular web application, stalled development, no live product, wasted investment.

AFTER: Production-deployed web platform, live and serving users, continuous feature development, stable maintenance.

What It Unlocked
ShoalID gained a live product for the first time. The deployment validated the product concept with real users and created the foundation for the mobile app development that followed. The client's investment in the original web development was recovered rather than written off, and the platform now operates as a continuously improving product.

What This Taught Us
Unfinished software is not failed software. With the right team and a clear understanding of what the product needs to do, stalled projects can be brought to life. The key is pragmatic assessment: understand what exists, identify what is blocking progress, and focus on getting to production rather than perfection.

Most automation works great—until things stop being predictable.

If your workflows are clean, structured, and repeatable, tools like RPA and rule-based systems are still the right answer.

But most businesses don’t operate in that world.

You’re dealing with:

  • Messy inputs (emails, documents, WhatsApp messages)
  • Exceptions that don’t follow rules
  • Processes that rely on human judgment to “figure it out”

That’s where AI agents step in.

They don’t replace your existing automation—they handle the gray areas that your current systems can’t manage without constant manual intervention.

That’s typically where we see the biggest ROI:

  • Reducing operational bottlenecks
  • Eliminating repetitive decision-making
  • Freeing up teams from “figuring things out” all day

If your team is constantly stepping in to fix or interpret workflows, that’s usually the signal an agent can add value.

A lot of people think AI agents are just “smarter bots.”

That’s underselling it.

The real shift is this:
You’re not just automating tasks anymore—you’re automating decisions inside workflows.

Instead of building rigid workflows like:

If X → do Y

You’re moving toward systems that can:

  • Understand context
  • Decide what needs to happen
  • Take action across tools and systems

So the question becomes less:

“What can we automate?”

And more:

“Where are decisions slowing us down?”

We design agents to sit in between your systems, acting as a coordination layer that:

  • Pulls in the right data
  • Applies your business logic
  • Executes actions end-to-end

That’s how you move from automation projects to operational leverage.

This is where most teams get stuck.

A model (like GPT) can:

  • Generate responses
  • Summarize information
  • Extract insights

But it doesn’t do anything on its own.

An agent is what turns that intelligence into execution.

A production-grade agent can:

  • Understand what’s happening
  • Decide what should happen next
  • Take action across your systems (CRM, ERP, internal tools, etc.)

The hard part isn’t the model—it’s everything around it:

  • What the agent is allowed to do (guardrails)
  • How it interacts with your systems (integrations)
  • How it handles edge cases (reliability)
  • How you measure performance (KPIs tied to business outcomes)

Most teams prove that “AI works.”

We focus on making sure the workflow works—end to end—without human intervention.

This is where most AI projects fail—they stay stuck in demos.

We take a very different approach.

We don’t start with “let’s explore AI.”
We start with:

“Where is the most immediate, measurable impact?”

From there, the process is structured and fast:

  1. Identify a high-friction use case
    Something already costing time, money, or customer experience.
  2. Unify the data needed to make decisions
    This is where platforms like Microsoft Fabric come in—we make sure the agent has reliable access to the right information.
  3. Define business logic and guardrails
    What decisions should the agent make?
    What is it allowed (and not allowed) to do?
  4. Deploy a constrained, production-ready agent
    Not a broad “AI assistant”—a focused system that solves one problem well.
  5. Measure impact quickly
    We tie everything to clear KPIs—speed, accuracy, cost savings, or revenue impact.

Most of our clients see a working, measurable solution within 30–90 days.

That speed matters—because AI only becomes valuable once it’s actually embedded in your operations.

This is one of the biggest concerns we hear—and it’s valid.

AI agents shouldn’t have unlimited access or make uncontrolled decisions.

We design them with tight boundaries from day one:

  • Defined permissions (what the agent can and cannot do)
  • Controlled integrations (only approved systems and actions)
  • Structured business logic (aligned with your processes)
  • Observability (you can track what the agent is doing and why)

Think of it less like “giving AI control” and more like:

Designing a highly capable operator with clear rules of engagement.

This is especially important in regulated or enterprise environments, where:

  • Data sensitivity matters
  • Compliance matters
  • Auditability matters

Our approach is built to work within those constraints—not around them.

The wrong way to approach this is:

“Where can we use AI?”

The right question is:

“Where are we already losing time, money, or consistency?”

We look for:

  • Processes with high manual effort
  • Bottlenecks that slow down operations
  • Workflows that depend heavily on tribal knowledge
  • Areas where errors or delays impact customers

From there, we define clear success metrics upfront, such as:

  • Reduction in processing time
  • Increase in accuracy or consistency
  • Cost savings from reduced manual work
  • Revenue impact from faster response or execution

If we can’t tie an agent to measurable outcomes, we won’t recommend building it.

That’s how we keep projects grounded—and why clients see real ROI, not just experimentation.

This is where most teams get stuck.

A model (like GPT) can:

  • Generate responses
  • Summarize information
  • Extract insights

But it doesn’t do anything on its own.

An agent is what turns that intelligence into execution.

A production-grade agent can:

  • Understand what’s happening
  • Decide what should happen next
  • Take action across your systems (CRM, ERP, internal tools, etc.)

But here’s where it gets important:

In real-world environments, you don’t rely on a single “decision-maker.”

You design systems with checks and balances.

We often structure agents using a maker–checker pattern, similar to how decisions are validated in high-stakes environments:

  • One component (the maker) proposes an action
  • Another component (the checker) evaluates it against rules, constraints, or expected outcomes
  • Only approved actions are executed

You can think of this like a panel of constitutional judges:

  • One proposes an interpretation
  • Others validate whether it aligns with the governing rules (your business logic, compliance, and constraints)

This is how you move from:

“The AI suggested something”

To:

“The system made a controlled, validated decision and executed it safely.”

The hard part isn’t the model—it’s designing these decision systems so they’re reliable under real conditions.

This is one of the biggest concerns we hear—and it should be.

You don’t deploy AI agents by giving them free rein.

You deploy them by designing controlled decision systems.

A useful way to think about it is through a maker–checker model, similar to how decisions are handled in legal or financial systems.

Instead of a single AI making decisions, you structure it like a constitutional process:

  • A “maker” agent proposes an action
  • A “checker” agent (or set of rules) evaluates it
  • The action is only executed if it passes defined constraints

It’s similar to how constitutional judges operate:

  • A decision isn’t accepted just because it was proposed
  • It’s validated against a framework of rules, precedent, and boundaries

In practice, this means:

  • Agents don’t act outside predefined permissions
  • Decisions are validated before execution
  • Sensitive operations require stricter checks
  • Every action is observable and auditable

This approach is critical in enterprise environments where:

  • Data sensitivity matters
  • Compliance matters
  • You can’t afford unpredictable behavior

So instead of asking:

“Can we trust the AI?”

The better framing is:

“Have we designed a system where trust is enforced by structure?”

That’s the difference between experimental AI and production-grade systems.