Steve Hazeltine
Things I have built
What I found, what I built, how, and what changed. Most of it at Baan Thai Immigration Solutions, where I am COO.
Highlighted text is a draft still to be confirmed.
The BTIS turnaround
Revenue up 76% and the first profitable year, twelve months after I joined.
Situation
Baan Thai Immigration Solutions (where I am currently COO & Partner) was beginning to grow, but was still struggling financially, and not yet breaking even. Selling and admin costs were running at 90% of revenue, and FY2024 closed with a 1.8M THB loss on 12.9M THB of sales. I joined in February 2025 and am responsible for sales, marketing, finance, admin and operations, reporting to the Managing Director.
What I built
A sales function where there had been none, a reporting layer so we could see where money was made and lost, automation across every team, and a cost base that matched the business we actually were.
How
The first month was listening: sitting with every team, mapping how a client moved from first inquiry to signed engagement to completed case, and baselining the numbers. Then the quick wins, mostly cost and handoffs. Then the foundations: systems, playbooks and a plan the team could be measured against.
Result
FY2025 revenue 22.6M THB, up 76%. Selling and admin costs down from 90% to 64% of revenue. Net profit 0.7M THB against the 1.8M THB loss the year before, a 2.5M THB swing. Audited figures, publicly filed with the Department of Business Development.
Show the numbers
| Year | Net profit (THB) |
|---|---|
| 2021 | -799,735 |
| 2022 | -5,856,129 |
| 2023 | -5,650,599 |
| 2024 | -1,815,444 |
| 2025 | +674,599 |
Source: DBD DataWarehouse, Income Statement 2021-2025
Show the numbers
| Year | Revenue (THB) |
|---|---|
| 2021 | 407,192 |
| 2022 | 5,640,756 |
| 2023 | 6,489,139 |
| 2024 | 12,875,944 |
| 2025 | 22,614,435 |
Source: DBD DataWarehouse, Income Statement 2021-2025
Doubling down on the marketing engine
Leads up 66% a month since I joined, on the same budget discipline.
Situation
BTIS already had an inbound lead engine: a YouTube channel with weekly immigration content and a seven-figure annual ad budget across Google, Meta and LinkedIn. What it did not have was a way to tell what was working.
What I built
End-to-end attribution from first touch to signed engagement, so every lead carried its source, and every source could be judged on revenue rather than its clicks. Each Campaign gets true ROI visibility, and the ad spend platforms get feedback on what is ACTUALLY working, and what isn't.
How
Integration is the name of the game. Metrics like cost per click have their place, but ultimately a business needs clients, not clicks. To get ROI data and to create the feedback positive feedback loop for the advertising algorithm, you need deep integration between your platforms and your CRM. Once these integrations were in place, I built SQL tables and dashboards for easy analytics and reallocation.
Result
I joined in February where we logged 490 leads in a month. 2026 year to date is running at 811 / month, up 66% on average. The best month, April 2026, logged 1,082.
+66%
Source: Zoho CRM, all leads created in the month. Oct 2026 left out (partial month). Axis starts at 400.
Show the numbers
| Month | 2025 | 2026 |
|---|---|---|
| Jan | 757 | |
| Feb | 490 | 608 |
| Mar | 497 | 724 |
| Apr | 476 | 1,082 |
| May | 540 | 779 |
| Jun | 744 | 894 |
| Jul | 830 | 784 |
| Aug | 761 | 914 |
| Sep | 588 | 760 |
| Oct | 718 | |
| Nov | 588 | |
| Dec | 568 |
A sales function from zero
Built the firm's first sales team and the systems under it, turning one-off clients into recurring revenue.
Situation
Inquiries came in and lawyers answered them between cases. There was no sales role, no pipeline, no follow-up, and no view of how many inquiries were lost or why. Every client was a one-off.
What I built
A sales function: a sales coordinator handling inbound inquiries, a sales associate running online consultations through a booking system, a pipeline with stages and owners, and a follow-up cadence that runs itself. Then the offer structure that lets a visa client become an ongoing relationship: renewals, dependants, work permits, and the partner network for tax, insurance, property and estate planning.
How
Zoho CRM pipeline with stage definitions; Zoho Bookings for consultations; automated follow-up sequences; weekly pipeline review; compensation tied to conversion and renewals — confirm.
Result
Won contract value grew from 13.5M THB in 2024 to 20.0M THB in 2025, and 2026 passed 20.3M THB by mid-October. Won deals went from 446 to 854 to 576 so far this year.
+48%
won contract value, 2024 to 2025; 2026 passed 20.3M by mid-October
Per month, Jan 2024 to Sep 2026
Source: Zoho CRM, won deals by closing date, contract value. 2026 runs to 13 Oct; the monthly line leaves out Oct 2026 (partial month).
Show the numbers
| Year | Won deals | Won value (THB) |
|---|---|---|
| 2024 | 446 | 13,453,862 |
| 2025 | 854 | 19,950,590 |
| 2026 to mid-Oct | 576 | 20,313,398 |
The CRM and ERP operating system
One pipeline from inquiry to signed engagement to completed case, with the repetitive work automated away.
All on the Zoho suite.
Situation
Sales, legal and admin each ran on their own tools and their own spreadsheets. Handoffs between them were where cases stalled and clients chased. Form filling, document collection, follow-ups and report generation were all done by hand, by people who were hired to do something else.
What I built
A single operating system on the Zoho stack: CRM for the pipeline and case records, Forms for intake, Bookings for consultations, Sign for engagements, Flow for the automation between them, WorkDrive for documents, SalesIQ for chat, and Analytics for reporting. Designed and implemented the stack, including the CRM and case management configuration.
How
Map the process first, then automate the handoffs rather than the tasks. Every stage change triggers the next action: the intake form creates the record, the signed engagement opens the case, the document checklist chases the client, the case milestone updates the dashboard.
Result
Repetitive work replaced across every team: form fills, document collection, sales follow-ups and report generation. A team of 18 can focus on delivering the work that needs their judgement, rather than checking a procedural box.
Recurring cost elimination
More than 175,000 THB a month of recurring costs removed without losing capability.
Situation
A fast-growing firm accumulates subscriptions, retainers and services nobody re-examines. Selling and admin costs were 90% of revenue.
What I built
A full review of every recurring charge against what it actually produced, and a replacement plan where the capability still mattered.
How
Consolidated overlapping software into our existing tech stack; moved ad spend from channels that did not convert, cancelled unused subscriptions and licenses, restructured billing to reduce third party accounting fees.
Result
Over 175,000 THB a month, 2.1M THB a year, removed. Combined with revenue growth, selling and admin costs fell from 90% to 64% of revenue in one year.
Source: DBD DataWarehouse, Income Statement 2021-2025, data as of 12 Oct 2026
Show the numbers
| Year | Selling and admin | Revenue | Share |
|---|---|---|---|
| 2023 | 9,492,588 | 6,489,139 | 146% |
| 2024 | 11,620,390 | 12,875,944 | 90% |
| 2025 | 14,399,406 | 22,614,435 | 64% |
Management reporting and projections, from scratch
The firm's first real view of profitability drivers, cash flow, client acquisition, sales conversion and service-line performance.
Situation
The accounts told us what had happened months after it happened. Nobody could say which service lines made money, what a client cost to acquire, or what next quarter's cash looked like.
What I built
A management reporting pack and the data pipeline behind it: profitability by service line, cash flow, client acquisition cost by channel, sales conversion by stage, and financial projections the Managing Director and I plan against.
How
Zoho Analytics on top of CRM, Books/bank data and ad platforms; monthly close checklist; a one-page dashboard the whole team reads — confirm tools.
Result
Decisions moved from instinct to numbers. The cost programme, the ad budget re-allocation and the pricing changes all came out of this reporting. Add a specific decision it drove, if you can share one.
End-to-end marketing attribution
Every lead traced from first touch to signed engagement, so a seven-figure ad budget is judged on revenue, not clicks.
Situation
Roughly 300,000 THB a month across Google, Meta and LinkedIn, plus organic YouTube, with no reliable line from spend to signed client.
What I built
Attribution that follows a lead from the ad or video that brought it in, through consultation and proposal, to the signed engagement and the invoice. Return on ad spend by channel and campaign, reviewed monthly.
How
UTM discipline, CRM source capture, offline conversion import back to the ad platforms, Analytics joins — confirm.
Result
Budget now moves to what converts. Share the ROAS change or the share of budget re-allocated if you want a number here; otherwise the leads chart carries this section.
+35 pts
Source: Zoho CRM, leads created per month; share with a utm_campaign value. Line: 3-month rolling average.
Show the numbers
| Month | Leads | Campaign tag |
|---|---|---|
| Jan 2024 | 273 | 4% |
| Feb 2024 | 355 | 9% |
| Mar 2024 | 611 | 12% |
| Apr 2024 | 657 | 14% |
| May 2024 | 513 | 18% |
| Jun 2024 | 433 | 22% |
| Jul 2024 | 531 | 18% |
| Aug 2024 | 488 | 20% |
| Sep 2024 | 519 | 18% |
| Oct 2024 | 805 | 25% |
| Nov 2024 | 613 | 27% |
| Dec 2024 | 506 | 40% |
| Jan 2025 | 653 | 37% |
| Feb 2025 | 490 | 38% |
| Mar 2025 | 497 | 38% |
| Apr 2025 | 476 | 46% |
| May 2025 | 540 | 49% |
| Jun 2025 | 744 | 53% |
| Jul 2025 | 830 | 53% |
| Aug 2025 | 761 | 56% |
| Sep 2025 | 588 | 44% |
| Oct 2025 | 718 | 55% |
| Nov 2025 | 588 | 62% |
| Dec 2025 | 568 | 63% |
| Jan 2026 | 757 | 65% |
| Feb 2026 | 608 | 65% |
| Mar 2026 | 724 | 75% |
| Apr 2026 | 1,082 | 85% |
Teams, compensation and reviews
Hired and developed the teams, with comp plans, training, annual goals and reviews tied to bonuses and raises.
Situation
A firm of lawyers and administrators with no defined roles outside legal work, no compensation structure beyond salary, and no cycle of goals and reviews.
What I built
The sales, marketing and admin teams. Compensation plans that reward the outcomes the firm needs. A training programme. Annual goals and roadmaps for every team, and year-end performance reviews that decide bonuses and raises.
How
Role scorecards; quarterly check-ins; a simple bonus formula tied to team and firm results — confirm.
Result
18 staff across seven inbound lawyers, four outbound lawyers, two sales, two admin and two marketing, each with a plan they are measured against. Retention or productivity figure if available.
Visual to come
Org chart, or the goals-to-review cycle as a simple diagram.
Rebuilding 100,000 files of client history
Software that processed over 100,000 historical files and emails to rebuild client records thought to be unrecoverable.
Situation
Years of client history lived in old mailboxes, shared drives and scanned documents with no structure. The records a growing firm needs, who we had served, for what, and when it renews, did not exist in any usable form.
What I built
A pipeline that read every file and email, extracted the client, service, dates and documents, matched them to people and companies, and loaded clean records into the CRM.
How
Python plus AI document extraction over email exports and the document store; matching rules with human review for the ambiguous cases — confirm.
Result
More than 100,000 files and emails processed and a complete client history rebuilt. That history is now the renewal pipeline and the base for the attribution and reporting work.
Visual to come
A simple flow: sources in, extraction, matching, clean records out, with the counts.
The organic video funnel
Weekly immigration content that became the firm's most trusted inbound channel.
Situation
Paid ads bring leads while you pay. Content compounds. The channel existed; the question was whether to treat it as marketing or as the front door.
What I built
Your role here: cadence, topic selection from client questions, the link from video to consultation booking, and the measurement that showed what it was worth — confirm what you want to claim.
Result
8.5k organic subscribers, weekly uploads, and a channel that outperforms most paid channels on quality of lead. Share of leads from YouTube if known.
Visual to come
Subscriber growth or leads attributed to YouTube over time.
This page
The site you are reading was built from a photo of a business card by an AI pipeline I designed.
Situation
I wanted to show, not tell, what the right tools in the right hands can do.
What I built
A pipeline that reads a business card, researches the company's website and public filings, audits its web presence, decides what is worth saying, writes the page, and publishes it. Each page takes about 90 seconds and costs about 25 US cents.
How
Astro and Tailwind for the site; Playwright and Lighthouse for the audit; Thai DBD data for the financials; Claude for the card reading and the writing, constrained to cite evidence; Cloudflare for hosting. Every number on a company page traces to a source.
Result
You are looking at it.
- Step 1CardA photo of a business card, read by Claude
- Step 2ResearchWebsite, public filings and a web audit
- Step 3WriteClaude decides what is worth saying, citing evidence
- Step 4PublishBuilt with Astro, hosted on Cloudflare
About 90 seconds and 25 US cents a page.