I build AI marketing automation, with SEO + GEO and AI workflows alongside it. Five engagement shapes cover the work: a free scoping call, the Pilot Build, the Sprint, the Custom build, and the Ops Retainer. Every paid shape is quoted on scope, in writing, within 24 hours of the call. Taking new engagements.
Each shape is productized: fixed scope, fixed deliverables, written quote before signing. Scoping Call is the entry (free, 30 min). Pilot Build when you want one working piece before committing to a full build. Sprint when the workflow fits in one sentence. Custom for anything multi-workflow. Ops Retainer for maintenance and tuning of systems already shipped. Every paid shape is quoted on scope before signing.
I walk you through one workflow, sharpen scope, and decide which paid shape fits.
If none does, I'll say so on the call and point you to a better-suited consultant or vendor.
A small, fixed-price build. In a day or two I build one part of your workflow and get it running on your real data, so you can see how it works before paying for the full build.
Pilot vs Sprint: a Pilot builds one piece. A Sprint builds the complete, production-ready workflow: deployed to your infrastructure, documented, supported, and owned. The $750 Pilot fee comes off the Sprint price if you keep going, so it costs nothing extra to start small.
A good fit when you want to see it work first, or a past tool didn't hold up.
The complete, production-ready build of one workflow, with a fixed scope and fixed delivery window. Agreed at signing, then deployed to your infrastructure, documented, and owned outright by the end of the sprint. Where a Pilot builds one piece, the Sprint builds the whole workflow.
The workflow has to fit in one sentence, for example, "send a summary of yesterday's sign-ups to my inbox at 6am every weekday." If it can't, a Custom build is the right shape instead.
Not ready to commit? Start with a $750 Pilot Build and apply it toward the Sprint.
Common scopes: daily operational brief, weekly metrics report, sales follow-up automation, content cross-poster, AI-assisted inbox triage.
Fixed-price sprints: GEO / AI-search ($2,500), MCP server ($3,500), programmatic SEO ($4,500), lead pipeline ($4,500). Anything off this list is quoted on scope.
For builds that exceed the scope of a Sprint. The engagement opens with the free scoping call and a written spec plus quote within 24 hours. Milestone-paid, with progress updates throughout and a demo at each milestone.
Reference engagement: CISNET marketing site rebuild. Next.js 16 migration, 200+ programmatic SEO pages, Facebook Lead Ads pipeline, custom admin portal. Three months, solo, shipped Q4 2025.
Custom is the right shape for any scope that doesn't fit cleanly into one of the productized engagements above.
A monthly engagement for clients whose systems I've already shipped. The retainer is structured around specific deliverables, not general access. Every hour goes against monitoring, prompt and eval maintenance, on-call response, or minor enhancements.
Two tiers depending on system size. Both have a capped monthly hour budget that resets monthly and doesn't roll over. Cancellable any month with 30 days' notice.
Engagement rule: never sold cold. Only available after a Pilot Build, Sprint, or Custom build has shipped.
Three concrete subtypes. If one describes you, the engagement fits.
$200K-$3M ARR, 1-8 people. The team is technical but needs workflows shipped, onboarding sequences, billing webhook handlers, AI-augmented features, internal ops automation.
5-20 people, founder-led, $1-5M revenue. Common engagements: internal tooling, creative-variant generators, client lead pipelines, white-label dashboards, content production engines.
Small teams with technical leadership and no procurement cycle. Marketing sites, lead-pipeline infrastructure, custom admin portals, programmatic SEO pages. CISNET is the reference case.
Each of these ships as a fixed-scope Sprint or gets customized to your stack. Anything not listed here lives in Custom.
Turn one source article into six or more platform-ready drafts: an X thread, a LinkedIn carousel, a newsletter, a video script, a Reddit post, and a podcast intro. It triggers off your RSS feed and drafts with AI, and nothing ships until you approve it.
A new signup hits a Whop, Stripe, or Lemon Squeezy webhook, Claude personalizes the welcome, the subscriber gets tagged, and a Day-0 to Day-30 sequence fires automatically. Wired on the AOF stack.
A 6am summary lands in your inbox covering stalled deals, urgent items, the day's priorities, and metric movement. It pulls from your CRM, calendar, and email, and the AI flags what actually needs your attention.
Tracks six or more competitors across pricing pages, launch blogs, X, and changelogs, and flags pricing changes and new launches. The weekly report drafts Sunday night and lands in your inbox Monday morning.
I install and configure Claude Code across your team, with a custom CLAUDE.md, sub-agents, hooks, and MCP servers tuned to your stack. Training and a cheatsheet are included.
Apply a unified design language to your existing app: a token system, component patterns, and voice rules, with an audit and migration plan included. Built on Terminal DS or your own brand.
A full community workspace on Whop, Skool, or custom on your stack, with member auth, gated content, a weekly drop cadence, an AI coach, and automated onboarding. AIOpsForge is the reference build.
Schema markup, JSON-LD, per-page OG images, a sitemap, robots rules, FAQ schema, and an llms.txt for AI-search engines. Built to rank in Google and to be cited by Perplexity and ChatGPT.
A landing page and gated PDF feed into Beehiiv, Kit, or ConvertKit, where leads get tagged and sequenced and the AI personalizes follow-ups. Stripe or Whop checkout is wired in, with Plausible analytics and funnel tracking.
A custom Model Context Protocol server that connects Claude to your internal tools, data, or APIs as first-class actions. Past examples: a Notion MCP, a Linear MCP, a CRM MCP.
One brief generates many image and copy variants for an ad set, with brand-tone guardrails built in and approve, reject, or regenerate controls. Built for agencies running paid creative at volume.
If yours isn't here, ask on the call.
Every paid engagement is quoted on scope after the free 30-minute scoping call. The written quote lands inside 24 hours: deliverables, milestones, timeline, total price. Once you accept it and sign, the price is locked; productized scope keeps it from moving. The Pilot Build is a flat $750, credited toward a Sprint if you proceed. Sprints are paid 50% on signing and 50% at delivery. Custom builds are milestone-paid against a staged schedule. Ops Retainer is monthly, cancellable with 30 days' notice. No hourly billing, no surprise invoices.
My default stack is Claude Code for development, Vercel for hosting + serverless + cron, Anthropic API for the AI layer, and Supabase for Postgres + auth + RLS. Around that: TypeScript, Next.js, Tailwind v4, Resend for transactional email, Stripe for payments, Plausible for analytics. I'll work in your stack if it's modern. Next.js, Astro, Django, Rails, Laravel, FastAPI, Postgres are all in scope. I won't build on n8n, Make, or Zapier as the primary execution layer: they're fragile under load, expensive past 5K events/mo, and the visual graph becomes unreadable to anyone who joins the team after I leave.
You. Outright. Every engagement is work-for-hire under a written agreement. At the close you receive the full source code, the deployment access, every environment variable, every account credential, and the right to modify, extend, or sell the work without restriction. I retain no IP, no licensing rights, no royalty claims. If you stop working with me tomorrow, the system keeps running on infrastructure that's already in your name.
Hourly billing pays the consultant to take longer. The consultant earns more by taking longer. The client earns peace of mind only by watching the clock. Both sides end up optimizing for the wrong thing. Fixed-price flips it: I'm incentivized to ship efficiently because overrun eats my margin, and you're incentivized to give clear feedback because every approved milestone gets you closer to the deliverable. A working production system is what we both want, and fixed-price is the structure that keeps us both focused on shipping it.
I'm based in Toronto on Eastern Time. Most communication is async by default: a shared Slack channel or email thread plus a recorded Loom walkthrough at each milestone. That keeps timezone gaps from blocking progress. Live calls happen at kickoff, milestone demos, and the closing retro. I'll book those in your timezone if it falls between 9am and 9pm Toronto time. If we're more than 8 hours apart, the engagement runs entirely in writing plus Loom updates, which most clients prefer anyway.
Sprints are productized fixed-scope builds, the scope is locked at the spec stage and the engagement ends at the agreed deliverable. If you realize you need more, it becomes a separate Sprint quoted at the close of the first. Custom builds are more flexible: anything outside the written spec gets a new written quote with a new timeline and price, surfaced as a change-order before any work happens. I won't silently absorb extra scope to keep the relationship pleasant, that ends in burnout for me and a quietly delayed deliverable for you.
Sprints start within 5-7 days of signing, because the shape is productized and scoping is fast. Custom builds depend on current capacity: 2-3 weeks out so I can write a real spec first. A Pilot Build starts within a few days of signing, since it's a single scoped piece. The fastest path to a real answer on timing is the free 30-minute scoping call. I'll quote both price and earliest start date in the written quote inside 24 hours.
Book the call anyway. The free 30 minutes is structured around figuring out what's actually broken, not selling you on a specific shape. If AI isn't the right fix, if the real problem is positioning, sales process, hiring, or your existing tool is already fine, I'll say so on the call and recommend who or what is a better next step. If it isn't the right fix, I'll say so and point you to who or what is. That's the call working as intended.