AltaPro AI
Case studies · Built in Edmonton

Real Businesses.
Real Results.

Every system we build is purpose-built for one business — from quote bots to custom CRMs. Here's what happens when you stop doing manually what software can do better.

Zebra Landscaping — Landscaping & Outdoor Services01
Landscaping & Outdoor ServicesEdmonton, AB
Case study 01Zebra Landscaping logo

Zebra Landscaping

Quote time cut from 4 hours to under 20 minutes.

4 hrs → 20 min

per quote

Field-First Web AppClaude Vision ExtractionGoogle Maps MeasurementJobber GraphQL Sync

4 hrs → 20 min

Per quote

Day one

Any team member quotes accurately

Every job

Consistent estimates, margin protected

The Problem

As Zebra Landscaping scaled across Edmonton, quote turnaround became a bottleneck. Assembling a full estimate — measuring irregular yard areas, pricing sod, mulch, rock, fencing and decks across different rate tiers, and accounting for site conditions — took the better part of a workday. Only senior staff could do it accurately, so their time was constantly pulled off higher-value work, and getting a competitive quote out fast enough to win a job wasn't always possible.

What We Engineered

We built a field-first web app the crew runs from a phone. Staff measure a property directly on Google Maps satellite imagery using a custom click-to-draw polygon tool — built after Google removed its own drawing controls from the Maps API — with per-zone square footage computed from Mercator-projection math. On-site photos feed Claude vision, which reads back measurements and site notes, while a spoken walkthrough is transcribed by OpenAI Whisper and folded in as context. The pricing engine holds every material, rate tier and surcharge, so the itemized total is the company's real numbers, not a guess. A finished quote syncs into Jobber through a server-side GraphQL proxy that handles OAuth refresh automatically — and a person reviews every quote before it reaches a customer.

The Impact

What used to take four hours now takes under twenty minutes. Any member of the team can quote accurately from day one. Estimates are consistent across every job and every staff member, margin is protected on complex projects, and the time recovered goes back into running and growing the business.

A demolition company — Demolition & Site Clearing02
Demolition & Site ClearingAlberta
Case study 02

A demolition company

From chasing bids manually to winning work systematically.

2–3 hrs → minutes

per bid submission

Bid Intelligence SystemProcurement AutomationProposal GenerationPortal Integration

2–3 hrs → minutes

Per bid submission

Under a minute

Go or no-go decision per bid

Around the clock

Alberta procurement portals monitored

The Problem

A demolition and site-clearing contractor was spending hours every week manually checking government and municipal procurement portals — missing opportunities, and writing proposals from scratch under tight deadlines. Revenue was limited not by capacity, but by bandwidth.

What We Engineered

We built an end-to-end bid intelligence system. It monitors multiple Alberta government and municipal procurement sources around the clock. When a relevant opportunity is posted, it scores the bid automatically against the company's specific service lines, equipment, crew capacity, and geographic range — filtering out irrelevant bids before anyone sees them. Only real opportunities land in front of the team. The system then calculates an estimated cost and bid price for each opportunity using the company's actual equipment rates and target margin before a human has touched it. The operator opens a bid, sees crew days, equipment mix, and recommended price already calculated, and makes a go or no-go decision in under a minute. On approval, a complete, professionally written bid submission is generated and ready for review. The operator edits, signs off, and the system handles submission back to the procurement portal.

The Impact

What previously took two to three hours per bid now takes minutes. The company went from reactively chasing work to systematically pursuing every relevant opportunity in the province — with proposals that look like they came from a company three times their size. The team didn't get replaced. They got leverage.

QuotingAI — Our Own Product · Quoting SaaS for Trades03
Our Own Product · Quoting SaaS for TradesBuilt in Edmonton, AB · live at quotingai.ca
Case study 03

QuotingAI

The quoting pattern from our client builds, productized into a live SaaS.

Quote → signed → paid

in one flow

Proprietary Multi-Tenant SaaSAI Quote DraftingE-Signature Built InStripe Deposits at Signing

One flow

Described job → priced proposal → e-sign → deposit

Multi-tenant

Plans, billing, and branding per company

Live

Shipped and operated at quotingai.ca

The Problem

Across our client builds, the same pattern kept paying for itself: quoting is where trades businesses quietly lose jobs. We had built the fix as custom software more than once — for a landscaper, for a demolition contractor — and each time the win came from the same place: turn a job description into a priced, professional proposal fast, while the lead is still warm. The question was whether we could ship that pattern once, as a product any contractor could sign up for.

What We Engineered

We designed, built, and launched QuotingAI as our own multi-tenant SaaS. A contractor describes the job in plain language; the AI drafts a priced, itemized quote from the company's own pricebook and rate structure, wraps it in their branding, and sends a proposal the client can e-sign on any device — with a Stripe deposit collected at signing, so a signed quote is also a committed one. Flat-rate plans, per-company branding, billing, and trial flows are all part of the platform, and we run it end to end: hosting, monitoring, updates, and support.

The Impact

QuotingAI is live in production at quotingai.ca as a product of AltaPro AI. It is the same discipline our client builds get — design, build, deploy, operate — proven on software we own: a full quote-to-signature flow, running as a multi-tenant platform, built and operated in Edmonton.

Zebra Landscaping — Spring Cleanup & Yard Removal04
Spring Cleanup & Yard RemovalEdmonton, AB
Case study 04Zebra Landscaping logo

Zebra Landscaping

A dedicated spring cleanup quoting tool — any staff member, on-site, in under five minutes.

Spring cleanup

quoted on-site by any staff member

Spring Cleanup QuotingSatellite Map MeasurementLive Quote CalculatorJobber CRM Sync

Under 5 min

Per cleanup quote, on-site

One tap

Client-ready quote, into Jobber

Day one

Margin-protected pricing, any staff

The Problem

This is a second, separate build for Zebra Landscaping, and it covers one job specifically: spring cleanup and yard removal. Spring is the crunch — quote requests pile up faster than anyone can type, and the team was doing those cleanup quotes by hand. Mental math, calls back to the office, inconsistent pricing. Quotes varied by who was on-site, margins were unpredictable, and staff constantly interrupted the office mid-estimate to get numbers confirmed.

What We Engineered

We built a password-protected internal quoting tool for field staff. Staff enter a client address, trace the yard on a live satellite map, and the tool calculates square footage automatically. Sliders capture property conditions, add-ons, and discounts — and a live quote total updates in real time. When the quote is ready, one tap copies a formatted, client-ready version. A Jobber integration pushes completed quotes directly into their CRM. Pricing lives in the tool, not in anyone's head.

The Impact

Consistent pricing across every job and every staff member. Faster quoting. No more back-and-forth with the office mid-estimate. Any staff member can produce an accurate, margin-protected quote on-site from day one.

Axel — General Contracting05
General ContractingEdmonton & Calgary, AB
Case study 05

Axel

One custom system running the whole back office.

One system

for the entire back office

Next.js + Prisma/PostgresClaude Tool-Use AgentTwilio TelephonyProgressive Autonomy

One system

For the entire back office

5 → 1

The office runs on one system instead of five

Every action

Draft-only, ask-first, or auto — gated in code

The Problem

A general contractor running crews across Edmonton and Calgary was managing a growing operation on a patchwork of spreadsheets, texts, and memory. The owner who runs the machines is also the one who has to win the work, close it, and keep the money moving — and the office admin that keeps a construction business running was quietly eating time that should have gone toward the field.

What We Engineered

We built them Axel — a custom operations CRM with an embedded AI agent, on Next.js and React with Prisma and Postgres behind it. Axel runs on Anthropic's Claude through a tool-use loop: it searches and updates jobs, drafts quotes, contracts and invoices, logs expenses, reads the shared inbox and replies, books calendar events, checks job-site weather, and texts or calls the owner when a decision is needed. Outbound is wired to real infrastructure — Twilio for SMS and voice, email, and Messenger. The core engineering is a progressive-autonomy ladder: every money- or client-facing action is code-gated to draft-only, ask-first, or auto, and anything touching a dollar starts on the tightest setting until the owner promotes it.

The Impact

The office runs on one system instead of five. Admin that used to be scattered and manual is now organized and repeatable, the team spends less time on paperwork, and the people running the business finally have a clear, single view of what's happening across every job.

Two Edmonton retail shops — Retail06
RetailEdmonton, AB
Case study 06

Two Edmonton retail shops

One source of truth for stock, across the till and the storefront.

One catalogue

instead of two kept in step by hand

Inventory AutomationPOS to E-Commerce SyncProduct Data MatchingReconciliation Reporting

One catalogue

Instead of two kept in step by hand

Zero retyping

Stock, price and SKU, till to storefront

Every run

A reconciliation report of what changed

The Problem

Both shops sold from the same stock in two places at once: a Clover till on the counter and a Shopify storefront online. Nothing connected them. A sale in the shop did not move the number on the website, so the site kept advertising things that had already walked out the door, and staff spent part of every week retyping counts and prices between the two systems to keep them close enough to trust. The products themselves had drifted too — the same item carried a different name, a different SKU and sometimes a different price in each system, so even a manual count did not reconcile cleanly.

What We Engineered

We built a one-way sync that makes the till the single source of truth for stock, price and SKU, and leaves Shopify owning everything the storefront is actually good at — images, descriptions, collections and SEO. The hard part was not moving numbers, it was deciding what counted as the same product: catalogues that had grown separately for years were matched with an AI-assisted pass over names, sizes and variants, with anything ambiguous held back for a human to confirm rather than guessed at. The sync itself is deliberately narrow and idempotent, so a retry can never double-count stock, and a store the system is not authorised to touch is blocked in code rather than by configuration. Every run produces a reconciliation report naming exactly what changed and what it refused to change.

The Impact

Stock, price and SKU now flow from the counter to the storefront without anyone retyping them, and the two catalogues describe the same products by the same names. The reconciliation report means a discrepancy is something you read on a Monday morning rather than something a customer finds for you. Built and proven against both shops' real catalogue data.

How We Measure

The numbers on this page are reported by the clients who run these systems day to day — the same task, timed before and after — not audited by a third party. Where a figure is illustrative rather than measured, we label it. If a claim matters to your decision, ask on the call and we'll walk you through exactly where it comes from.

Your turn

Your Operation Is Next.

30 minutes. We map your operation, design the fix, and tell you exactly what it would take to build — at no cost.

Edmonton, Alberta · No commitment

A

Alta

Online · AltaPro AI

Hey — I'm Alta, AltaPro AI's assistant. Tell me what kind of business you run and I'll point you to exactly what we'd automate first.

Powered by AltaPro AI · Edmonton