Back

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.

+76% revenue

The BTIS turnaround

Revenue up 76% and the first profitable year, twelve months after I joined.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Net profitProfitLossTHB
-800K20212021: net loss -800K THB-5.9M20222022: net loss -5.9M THB-5.7M20232023: net loss -5.7M THB-1.8M20242024: net loss -1.8M THB+675K20252025: net profit +675K THB0
Show the numbers
YearNet 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

RevenueSales and services, THB
407K20212021: revenue 407K THB5.6M20222022: revenue 5.6M THB6.5M20232023: revenue 6.5M THB12.9M20242024: revenue 12.9M THB22.6M20252025: revenue 22.6M THB
Show the numbers
YearRevenue (THB)
2021407,192
20225,640,756
20236,489,139
202412,875,944
202522,614,435

Source: DBD DataWarehouse, Income Statement 2021-2025

+66% leads/month

Doubling down on the marketing engine

Leads up 66% a month since I joined, on the same budget discipline.

  1. 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.

  2. 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.

  3. 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.

  4. 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%

Leads per month, Feb 2025 to Sep 2026
4005007501,0001,250Since I joined490Apr 25Jul 25Oct 25Jan 26Apr 26Jul 26Feb 2025: 490 leadsMar 2025: 497 leadsApr 2025: 476 leadsMay 2025: 540 leadsJun 2025: 744 leadsJul 2025: 830 leadsAug 2025: 761 leadsSep 2025: 588 leadsOct 2025: 718 leadsNov 2025: 588 leadsDec 2025: 568 leadsJan 2026: 757 leadsFeb 2026: 608 leadsMar 2026: 724 leadsApr 2026: 1,082 leadsMay 2026: 779 leadsJun 2026: 894 leadsJul 2026: 784 leadsAug 2026: 914 leadsSep 2026: 760 leads4005007501,0001,250Since I joined490Apr 25Jul 25Oct 25Jan 26Apr 26Jul 26Feb 2025: 490 leadsMar 2025: 497 leadsApr 2025: 476 leadsMay 2025: 540 leadsJun 2025: 744 leadsJul 2025: 830 leadsAug 2025: 761 leadsSep 2025: 588 leadsOct 2025: 718 leadsNov 2025: 588 leadsDec 2025: 568 leadsJan 2026: 757 leadsFeb 2026: 608 leadsMar 2026: 724 leadsApr 2026: 1,082 leadsMay 2026: 779 leadsJun 2026: 894 leadsJul 2026: 784 leadsAug 2026: 914 leadsSep 2026: 760 leads

Source: Zoho CRM, all leads created in the month. Oct 2026 left out (partial month). Axis starts at 400.

Show the numbers
Month20252026
Jan757
Feb490608
Mar497724
Apr4761,082
May540779
Jun744894
Jul830784
Aug761914
Sep588760
Oct718
Nov588
Dec568
Recurring revenue

A sales function from zero

Built the firm's first sales team and the systems under it, turning one-off clients into recurring revenue.

  1. 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.

  2. 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.

  3. 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.

  4. 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

Won contract value per year, THB
I joined Feb 202513.5M2024 · before me446 won deals2024: 13.5M THB won, 446 deals20.0M2025 · I joined (Feb)854 won deals2025: 20.0M THB won, 854 deals20.3M2026 to mid-Oct576 won deals2026 to mid-Oct: 20.3M THB won, 576 dealsI joined Feb 202513.5M2024 · before me446 won deals2024: 13.5M THB won, 446 deals20.0M2025 · I joined (Feb)854 won deals2025: 20.0M THB won, 854 deals20.3M2026 to mid-Oct576 won deals2026 to mid-Oct: 20.3M THB won, 576 deals

Per month, Jan 2024 to Sep 2026

01M2M3M4MFeb 2025: I joinedTrend: +50K THB a month, every monthJan 24Jan 25Jan 26Jan 2024: 0.9M THB won, 24 dealsFeb 2024: 0.6M THB won, 13 dealsMar 2024: 1.6M THB won, 45 dealsApr 2024: 0.6M THB won, 20 dealsMay 2024: 1.0M THB won, 18 dealsJun 2024: 0.5M THB won, 11 dealsJul 2024: 1.6M THB won, 59 dealsAug 2024: 1.2M THB won, 59 dealsSep 2024: 1.3M THB won, 54 dealsOct 2024: 1.2M THB won, 37 dealsNov 2024: 2.2M THB won, 72 dealsDec 2024: 0.7M THB won, 34 dealsJan 2025: 1.4M THB won, 67 dealsFeb 2025: 1.4M THB won, 75 dealsMar 2025: 0.9M THB won, 56 dealsApr 2025: 1.3M THB won, 59 dealsMay 2025: 2.3M THB won, 100 dealsJun 2025: 1.9M THB won, 78 dealsJul 2025: 2.6M THB won, 85 dealsAug 2025: 1.4M THB won, 63 dealsSep 2025: 2.0M THB won, 70 dealsOct 2025: 1.7M THB won, 68 dealsNov 2025: 1.8M THB won, 70 dealsDec 2025: 1.2M THB won, 63 dealsJan 2026: 1.7M THB won, 78 dealsFeb 2026: 1.4M THB won, 59 dealsMar 2026: 2.5M THB won, 85 dealsApr 2026: 1.4M THB won, 40 dealsMay 2026: 2.1M THB won, 64 dealsJun 2026: 3.3M THB won, 77 dealsJul 2026: 2.0M THB won, 49 dealsAug 2026: 2.6M THB won, 55 dealsSep 2026: 2.4M THB won, 50 deals01M2M3M4MFeb 2025: I joinedTrend: +50K THB a month, every monthJan 24Jul 24Jan 25Jul 25Jan 26Jul 26Jan 2024: 0.9M THB won, 24 dealsFeb 2024: 0.6M THB won, 13 dealsMar 2024: 1.6M THB won, 45 dealsApr 2024: 0.6M THB won, 20 dealsMay 2024: 1.0M THB won, 18 dealsJun 2024: 0.5M THB won, 11 dealsJul 2024: 1.6M THB won, 59 dealsAug 2024: 1.2M THB won, 59 dealsSep 2024: 1.3M THB won, 54 dealsOct 2024: 1.2M THB won, 37 dealsNov 2024: 2.2M THB won, 72 dealsDec 2024: 0.7M THB won, 34 dealsJan 2025: 1.4M THB won, 67 dealsFeb 2025: 1.4M THB won, 75 dealsMar 2025: 0.9M THB won, 56 dealsApr 2025: 1.3M THB won, 59 dealsMay 2025: 2.3M THB won, 100 dealsJun 2025: 1.9M THB won, 78 dealsJul 2025: 2.6M THB won, 85 dealsAug 2025: 1.4M THB won, 63 dealsSep 2025: 2.0M THB won, 70 dealsOct 2025: 1.7M THB won, 68 dealsNov 2025: 1.8M THB won, 70 dealsDec 2025: 1.2M THB won, 63 dealsJan 2026: 1.7M THB won, 78 dealsFeb 2026: 1.4M THB won, 59 dealsMar 2026: 2.5M THB won, 85 dealsApr 2026: 1.4M THB won, 40 dealsMay 2026: 2.1M THB won, 64 dealsJun 2026: 3.3M THB won, 77 dealsJul 2026: 2.0M THB won, 49 dealsAug 2026: 2.6M THB won, 55 dealsSep 2026: 2.4M THB won, 50 deals

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
YearWon dealsWon value (THB)
202444613,453,862
202585419,950,590
2026 to mid-Oct57620,313,398
Every team automated

The CRM and ERP operating system

One pipeline from inquiry to signed engagement to completed case, with the repetitive work automated away.

How a client moves through the operating system
MARKETINGGoogle AdsMetaLinkedInYouTubeNetworkingBook: Make Thailand HomeCRMsales pipelinesales coordinatorinquiryqualifiedconsultationproposalengagementSalesIQwebsite chatClientinquiryBookingsconsultationsand callsSignengagementletterFormsclient portal,document intakeWorkDrivedocumentstorageCustom modulescase managementlegal teamAnalyticsreportingAccountsreceiptsClient paysRecurringand referralsbooksoutcomewonreporting from every stagerepeat and referred clients re-enter the pipelineFlow: automated handoffsMARKETINGGoogle AdsMetaLinkedInYouTubeNetworkingBook: Make Thailand HomeCRMsales pipelinesales coordinatorinquiryqualifiedconsultationproposalengagementSalesIQwebsitechatClientinquiryBookingsconsultationsand callsSignengagement letterFormsclient portal,document intakeWorkDrivedocumentstorageCustom modulescase managementlegal teamClient paysAccountsreceiptsRecurringand referralsAnalyticsreportingFlow: automated handoffs

All on the Zoho suite.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

THB 2.1M/yr saved

Recurring cost elimination

More than 175,000 THB a month of recurring costs removed without losing capability.

  1. Situation

    A fast-growing firm accumulates subscriptions, retainers and services nobody re-examines. Selling and admin costs were 90% of revenue.

  2. What I built

    A full review of every recurring charge against what it actually produced, and a replacement plan where the capability still mattered.

  3. 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.

  4. 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.

Selling and admin expenses as a share of revenue
0%50%100%150%= all revenue146%90%64%2023202420252023: selling and admin 9,492,588 THB on revenue 6,489,139 THB (146%)2024: selling and admin 11,620,390 THB on revenue 12,875,944 THB (90%)2025: selling and admin 14,399,406 THB on revenue 22,614,435 THB (64%)

Source: DBD DataWarehouse, Income Statement 2021-2025, data as of 12 Oct 2026

Show the numbers
YearSelling and adminRevenueShare
20239,492,5886,489,139146%
202411,620,39012,875,94490%
202514,399,40622,614,43564%
Built from scratch

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Where the monthly report comes from
CRMpipeline and casesBookingsconsultationsBooksaccounts, bank feedAd platformsGoogle, Meta, LinkedInAnalyticsjoins thesourcesOne-page monthly reportProfitability by service lineCash flowAcquisition cost by channelConversion by stageProjectionsCRMpipeline and casesBookingsconsultationsBooksaccounts, bank feedAd platformsGoogle, Meta, LinkedInAnalyticsjoins the sourcesOne-page monthly reportProfitability by service lineCash flowAcquisition cost by channelConversion by stageProjections
Stylised reproduction of the live dashboard. Shapes are illustrative; no figures are shown.
Lead to revenue

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.

  1. Situation

    Roughly 300,000 THB a month across Google, Meta and LinkedIn, plus organic YouTube, with no reliable line from spend to signed client.

  2. 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.

  3. How

    UTM discipline, CRM source capture, offline conversion import back to the ad platforms, Analytics joins — confirm.

  4. 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

Share of leads with a campaign tag, Jan 2024 to Apr 2026
12 months before:22%Feb 2025 to Apr 2026:56%0%25%50%75%100%Feb 2025: I joined85%Jan 24Jan 25Jan 26Jan 2024: 4% with a campaign tag (273 leads)Feb 2024: 9% with a campaign tag (355 leads)Mar 2024: 12% with a campaign tag (611 leads)Apr 2024: 14% with a campaign tag (657 leads)May 2024: 18% with a campaign tag (513 leads)Jun 2024: 22% with a campaign tag (433 leads)Jul 2024: 18% with a campaign tag (531 leads)Aug 2024: 20% with a campaign tag (488 leads)Sep 2024: 18% with a campaign tag (519 leads)Oct 2024: 25% with a campaign tag (805 leads)Nov 2024: 27% with a campaign tag (613 leads)Dec 2024: 40% with a campaign tag (506 leads)Jan 2025: 37% with a campaign tag (653 leads)Feb 2025: 38% with a campaign tag (490 leads)Mar 2025: 38% with a campaign tag (497 leads)Apr 2025: 46% with a campaign tag (476 leads)May 2025: 49% with a campaign tag (540 leads)Jun 2025: 53% with a campaign tag (744 leads)Jul 2025: 53% with a campaign tag (830 leads)Aug 2025: 56% with a campaign tag (761 leads)Sep 2025: 44% with a campaign tag (588 leads)Oct 2025: 55% with a campaign tag (718 leads)Nov 2025: 62% with a campaign tag (588 leads)Dec 2025: 63% with a campaign tag (568 leads)Jan 2026: 65% with a campaign tag (757 leads)Feb 2026: 65% with a campaign tag (608 leads)Mar 2026: 75% with a campaign tag (724 leads)Apr 2026: 85% with a campaign tag (1,082 leads)12 months before: 22%Feb 2025 to Apr 2026: 56%0%25%50%75%100%Feb 2025: I joined85%Jan 24Jul 24Jan 25Jul 25Jan 26Jan 2024: 4% with a campaign tag (273 leads)Feb 2024: 9% with a campaign tag (355 leads)Mar 2024: 12% with a campaign tag (611 leads)Apr 2024: 14% with a campaign tag (657 leads)May 2024: 18% with a campaign tag (513 leads)Jun 2024: 22% with a campaign tag (433 leads)Jul 2024: 18% with a campaign tag (531 leads)Aug 2024: 20% with a campaign tag (488 leads)Sep 2024: 18% with a campaign tag (519 leads)Oct 2024: 25% with a campaign tag (805 leads)Nov 2024: 27% with a campaign tag (613 leads)Dec 2024: 40% with a campaign tag (506 leads)Jan 2025: 37% with a campaign tag (653 leads)Feb 2025: 38% with a campaign tag (490 leads)Mar 2025: 38% with a campaign tag (497 leads)Apr 2025: 46% with a campaign tag (476 leads)May 2025: 49% with a campaign tag (540 leads)Jun 2025: 53% with a campaign tag (744 leads)Jul 2025: 53% with a campaign tag (830 leads)Aug 2025: 56% with a campaign tag (761 leads)Sep 2025: 44% with a campaign tag (588 leads)Oct 2025: 55% with a campaign tag (718 leads)Nov 2025: 62% with a campaign tag (588 leads)Dec 2025: 63% with a campaign tag (568 leads)Jan 2026: 65% with a campaign tag (757 leads)Feb 2026: 65% with a campaign tag (608 leads)Mar 2026: 75% with a campaign tag (724 leads)Apr 2026: 85% with a campaign tag (1,082 leads)

Source: Zoho CRM, leads created per month; share with a utm_campaign value. Line: 3-month rolling average.

Show the numbers
MonthLeadsCampaign tag
Jan 20242734%
Feb 20243559%
Mar 202461112%
Apr 202465714%
May 202451318%
Jun 202443322%
Jul 202453118%
Aug 202448820%
Sep 202451918%
Oct 202480525%
Nov 202461327%
Dec 202450640%
Jan 202565337%
Feb 202549038%
Mar 202549738%
Apr 202547646%
May 202554049%
Jun 202574453%
Jul 202583053%
Aug 202576156%
Sep 202558844%
Oct 202571855%
Nov 202558862%
Dec 202556863%
Jan 202675765%
Feb 202660865%
Mar 202672475%
Apr 20261,08285%
18 people

Teams, compensation and reviews

Hired and developed the teams, with comp plans, training, annual goals and reviews tied to bonuses and raises.

  1. 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.

  2. 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.

  3. How

    Role scorecards; quarterly check-ins; a simple bonus formula tied to team and firm results — confirm.

  4. 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.

100k+ files

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.

  1. 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.

  2. 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.

  3. How

    Python plus AI document extraction over email exports and the document store; matching rules with human review for the ambiguous cases — confirm.

  4. 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.

8.5k subscribers

The organic video funnel

Weekly immigration content that became the firm's most trusted inbound channel.

  1. 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.

  2. 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.

  3. 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.

Built live

This page

The site you are reading was built from a photo of a business card by an AI pipeline I designed.

  1. Situation

    I wanted to show, not tell, what the right tools in the right hands can do.

  2. 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.

  3. 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.

  4. Result

    You are looking at it.

How a page gets made
  1. Step 1CardA photo of a business card, read by Claude
  2. Step 2ResearchWebsite, public filings and a web audit
  3. Step 3WriteClaude decides what is worth saying, citing evidence
  4. Step 4PublishBuilt with Astro, hosted on Cloudflare

About 90 seconds and 25 US cents a page.