# tinoho/sdr_agent.py — personalize outbound at scale
import anthropic
from typing import List
from tinoho.icp import score_lead, ICP_PROFILE

client = anthropic.Anthropic()

def personalize_outreach(lead: Lead, signals: List[Signal]) -> str:
    """Generate a hyper-personalized first touch."""
    system = (
        "You are an SDR for a fractional CRO consultancy. "
        "Reference the prospect's recent funding, hiring "
        "signals, and tech stack. Keep under 90 words."
    )
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=400,
        system=system,
        messages=[{
            "role": "user",
            "content": f"Lead: {lead.json()}"
        }]
    )
    return response.content[0].text

# Score lead fit before queueing email
for lead in apollo.fetch_new_leads(limit=250):
    score = score_lead(lead, ICP_PROFILE)
    if score >= 0.78:
        msg = personalize_outreach(lead, lead.signals)
        apollo.sequences.enroll(
            sequence_id="seq_outbound_v3",
            contact_id=lead.id,
            opener=msg,
        )
        hubspot.contacts.update(lead.id, {
            "hs_lead_status": "sdr_engaged",
            "fit_score": score,
        })


# tinoho/sdr_agent.py — personalize outbound at scale
import anthropic
from typing import List
from tinoho.icp import score_lead, ICP_PROFILE

client = anthropic.Anthropic()

def personalize_outreach(lead: Lead, signals: List[Signal]) -> str:
    """Generate a hyper-personalized first touch."""
    system = (
        "You are an SDR for a fractional CRO consultancy. "
        "Reference the prospect's recent funding, hiring "
        "signals, and tech stack. Keep under 90 words."
    )
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=400,
        system=system,
        messages=[{
            "role": "user",
            "content": f"Lead: {lead.json()}"
        }]
    )
    return response.content[0].text

# Score lead fit before queueing email
for lead in apollo.fetch_new_leads(limit=250):
    score = score_lead(lead, ICP_PROFILE)
    if score >= 0.78:
        msg = personalize_outreach(lead, lead.signals)
        apollo.sequences.enroll(
            sequence_id="seq_outbound_v3",
            contact_id=lead.id,
            opener=msg,
        )
        hubspot.contacts.update(lead.id, {
            "hs_lead_status": "sdr_engaged",
            "fit_score": score,
        })


# tinoho/sdr_agent.py — personalize outbound at scale
import anthropic
from typing import List
from tinoho.icp import score_lead, ICP_PROFILE

client = anthropic.Anthropic()

def personalize_outreach(lead: Lead, signals: List[Signal]) -> str:
    """Generate a hyper-personalized first touch."""
    system = (
        "You are an SDR for a fractional CRO consultancy. "
        "Reference the prospect's recent funding, hiring "
        "signals, and tech stack. Keep under 90 words."
    )
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=400,
        system=system,
        messages=[{
            "role": "user",
            "content": f"Lead: {lead.json()}"
        }]
    )
    return response.content[0].text

# Score lead fit before queueing email
for lead in apollo.fetch_new_leads(limit=250):
    score = score_lead(lead, ICP_PROFILE)
    if score >= 0.78:
        msg = personalize_outreach(lead, lead.signals)
        apollo.sequences.enroll(
            sequence_id="seq_outbound_v3",
            contact_id=lead.id,
            opener=msg,
        )
        hubspot.contacts.update(lead.id, {
            "hs_lead_status": "sdr_engaged",
            "fit_score": score,
        })


# tinoho/sdr_agent.py — personalize outbound at scale
import anthropic
from typing import List
from tinoho.icp import score_lead, ICP_PROFILE

client = anthropic.Anthropic()

def personalize_outreach(lead: Lead, signals: List[Signal]) -> str:
    """Generate a hyper-personalized first touch."""
    system = (
        "You are an SDR for a fractional CRO consultancy. "
        "Reference the prospect's recent funding, hiring "
        "signals, and tech stack. Keep under 90 words."
    )
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=400,
        system=system,
        messages=[{
            "role": "user",
            "content": f"Lead: {lead.json()}"
        }]
    )
    return response.content[0].text

# Score lead fit before queueing email
for lead in apollo.fetch_new_leads(limit=250):
    score = score_lead(lead, ICP_PROFILE)
    if score >= 0.78:
        msg = personalize_outreach(lead, lead.signals)
        apollo.sequences.enroll(
            sequence_id="seq_outbound_v3",
            contact_id=lead.id,
            opener=msg,
        )
        hubspot.contacts.update(lead.id, {
            "hs_lead_status": "sdr_engaged",
            "fit_score": score,
        })


# tinoho/sdr_agent.py — personalize outbound at scale
import anthropic
from typing import List
from tinoho.icp import score_lead, ICP_PROFILE

client = anthropic.Anthropic()

def personalize_outreach(lead: Lead, signals: List[Signal]) -> str:
    """Generate a hyper-personalized first touch."""
    system = (
        "You are an SDR for a fractional CRO consultancy. "
        "Reference the prospect's recent funding, hiring "
        "signals, and tech stack. Keep under 90 words."
    )
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=400,
        system=system,
        messages=[{
            "role": "user",
            "content": f"Lead: {lead.json()}"
        }]
    )
    return response.content[0].text

# Score lead fit before queueing email
for lead in apollo.fetch_new_leads(limit=250):
    score = score_lead(lead, ICP_PROFILE)
    if score >= 0.78:
        msg = personalize_outreach(lead, lead.signals)
        apollo.sequences.enroll(
            sequence_id="seq_outbound_v3",
            contact_id=lead.id,
            opener=msg,
        )
        hubspot.contacts.update(lead.id, {
            "hs_lead_status": "sdr_engaged",
            "fit_score": score,
        })


# tinoho/sdr_agent.py — personalize outbound at scale
import anthropic
from typing import List
from tinoho.icp import score_lead, ICP_PROFILE

client = anthropic.Anthropic()

def personalize_outreach(lead: Lead, signals: List[Signal]) -> str:
    """Generate a hyper-personalized first touch."""
    system = (
        "You are an SDR for a fractional CRO consultancy. "
        "Reference the prospect's recent funding, hiring "
        "signals, and tech stack. Keep under 90 words."
    )
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=400,
        system=system,
        messages=[{
            "role": "user",
            "content": f"Lead: {lead.json()}"
        }]
    )
    return response.content[0].text

# Score lead fit before queueing email
for lead in apollo.fetch_new_leads(limit=250):
    score = score_lead(lead, ICP_PROFILE)
    if score >= 0.78:
        msg = personalize_outreach(lead, lead.signals)
        apollo.sequences.enroll(
            sequence_id="seq_outbound_v3",
            contact_id=lead.id,
            opener=msg,
        )
        hubspot.contacts.update(lead.id, {
            "hs_lead_status": "sdr_engaged",
            "fit_score": score,
        })
// n8n workflow — SDR Agent v4 (build & handoff)
{
  "name": "SDR Agent — Outbound Sequence",
  "active": true,
  "nodes": [
    {
      "id": "trigger_schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": { "rule": "0 */6 * * *" }
    },
    {
      "id": "apollo_search",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.apollo.io/v1/mixed_people/search",
        "method": "POST",
        "body": {
          "person_titles": ["VP Sales", "CRO", "Head of GTM"],
          "organization_num_employees_ranges": ["50,200"],
          "organization_industry_tag_ids": ["saas"],
          "per_page": 100
        }
      }
    },
    {
      "id": "score_with_claude",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "parameters": {
        "model": "claude-sonnet-4-6",
        "systemPrompt": "Score lead fit 0-1 vs ICP."
      }
    },
    {
      "id": "branch_by_score",
      "type": "n8n-nodes-base.if"
    },
    {
      "id": "hubspot_upsert",
      "type": "n8n-nodes-base.hubspot"
    }
  ]
}


// n8n workflow — SDR Agent v4 (build & handoff)
{
  "name": "SDR Agent — Outbound Sequence",
  "active": true,
  "nodes": [
    {
      "id": "trigger_schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": { "rule": "0 */6 * * *" }
    },
    {
      "id": "apollo_search",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.apollo.io/v1/mixed_people/search",
        "method": "POST",
        "body": {
          "person_titles": ["VP Sales", "CRO", "Head of GTM"],
          "organization_num_employees_ranges": ["50,200"],
          "organization_industry_tag_ids": ["saas"],
          "per_page": 100
        }
      }
    },
    {
      "id": "score_with_claude",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "parameters": {
        "model": "claude-sonnet-4-6",
        "systemPrompt": "Score lead fit 0-1 vs ICP."
      }
    },
    {
      "id": "branch_by_score",
      "type": "n8n-nodes-base.if"
    },
    {
      "id": "hubspot_upsert",
      "type": "n8n-nodes-base.hubspot"
    }
  ]
}


// n8n workflow — SDR Agent v4 (build & handoff)
{
  "name": "SDR Agent — Outbound Sequence",
  "active": true,
  "nodes": [
    {
      "id": "trigger_schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": { "rule": "0 */6 * * *" }
    },
    {
      "id": "apollo_search",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.apollo.io/v1/mixed_people/search",
        "method": "POST",
        "body": {
          "person_titles": ["VP Sales", "CRO", "Head of GTM"],
          "organization_num_employees_ranges": ["50,200"],
          "organization_industry_tag_ids": ["saas"],
          "per_page": 100
        }
      }
    },
    {
      "id": "score_with_claude",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "parameters": {
        "model": "claude-sonnet-4-6",
        "systemPrompt": "Score lead fit 0-1 vs ICP."
      }
    },
    {
      "id": "branch_by_score",
      "type": "n8n-nodes-base.if"
    },
    {
      "id": "hubspot_upsert",
      "type": "n8n-nodes-base.hubspot"
    }
  ]
}


// n8n workflow — SDR Agent v4 (build & handoff)
{
  "name": "SDR Agent — Outbound Sequence",
  "active": true,
  "nodes": [
    {
      "id": "trigger_schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": { "rule": "0 */6 * * *" }
    },
    {
      "id": "apollo_search",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.apollo.io/v1/mixed_people/search",
        "method": "POST",
        "body": {
          "person_titles": ["VP Sales", "CRO", "Head of GTM"],
          "organization_num_employees_ranges": ["50,200"],
          "organization_industry_tag_ids": ["saas"],
          "per_page": 100
        }
      }
    },
    {
      "id": "score_with_claude",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "parameters": {
        "model": "claude-sonnet-4-6",
        "systemPrompt": "Score lead fit 0-1 vs ICP."
      }
    },
    {
      "id": "branch_by_score",
      "type": "n8n-nodes-base.if"
    },
    {
      "id": "hubspot_upsert",
      "type": "n8n-nodes-base.hubspot"
    }
  ]
}


// n8n workflow — SDR Agent v4 (build & handoff)
{
  "name": "SDR Agent — Outbound Sequence",
  "active": true,
  "nodes": [
    {
      "id": "trigger_schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": { "rule": "0 */6 * * *" }
    },
    {
      "id": "apollo_search",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.apollo.io/v1/mixed_people/search",
        "method": "POST",
        "body": {
          "person_titles": ["VP Sales", "CRO", "Head of GTM"],
          "organization_num_employees_ranges": ["50,200"],
          "organization_industry_tag_ids": ["saas"],
          "per_page": 100
        }
      }
    },
    {
      "id": "score_with_claude",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "parameters": {
        "model": "claude-sonnet-4-6",
        "systemPrompt": "Score lead fit 0-1 vs ICP."
      }
    },
    {
      "id": "branch_by_score",
      "type": "n8n-nodes-base.if"
    },
    {
      "id": "hubspot_upsert",
      "type": "n8n-nodes-base.hubspot"
    }
  ]
}


// n8n workflow — SDR Agent v4 (build & handoff)
{
  "name": "SDR Agent — Outbound Sequence",
  "active": true,
  "nodes": [
    {
      "id": "trigger_schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": { "rule": "0 */6 * * *" }
    },
    {
      "id": "apollo_search",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.apollo.io/v1/mixed_people/search",
        "method": "POST",
        "body": {
          "person_titles": ["VP Sales", "CRO", "Head of GTM"],
          "organization_num_employees_ranges": ["50,200"],
          "organization_industry_tag_ids": ["saas"],
          "per_page": 100
        }
      }
    },
    {
      "id": "score_with_claude",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "parameters": {
        "model": "claude-sonnet-4-6",
        "systemPrompt": "Score lead fit 0-1 vs ICP."
      }
    },
    {
      "id": "branch_by_score",
      "type": "n8n-nodes-base.if"
    },
    {
      "id": "hubspot_upsert",
      "type": "n8n-nodes-base.hubspot"
    }
  ]
}
// tinoho/lead-router.ts — Apollo → enrich → HubSpot
import { Apollo } from '@apollo/sdk'
import { Client as HubSpot } from '@hubspot/api-client'
import { Anthropic } from '@anthropic-ai/sdk'

interface Lead {
  email: string
  company: string
  title: string
  fitScore: number
  signals: Signal[]
}

async function syncLeadToHubSpot(lead: Lead): Promise<Contact> {
  const enriched = await apollo.people.enrich({
    email: lead.email,
    reveal_personal_emails: true,
  })

  const contact = await hubspot.crm.contacts.upsert({
    email: enriched.email,
    properties: {
      firstname: enriched.first_name,
      lastname: enriched.last_name,
      company: enriched.organization.name,
      jobtitle: enriched.title,
      lifecyclestage: 'lead',
      hs_lead_status: 'sdr_queue',
      fit_score: lead.fitScore,
      source: 'apollo_outbound_v3',
    },
  })

  return contact
}

async function runDailyBatch() {
  const leads = await apollo.searchPeople({
    titles: ['VP Sales', 'CRO', 'Head of GTM'],
    employeeRange: [50, 200],
    industries: ['saas'],
    perPage: 100,
  })

  for (const lead of leads) {
    const score = await scoreLeadFit(lead)
    if (score >= 0.78) await syncLeadToHubSpot({ ...lead, fitScore: score })
  }
}


// tinoho/lead-router.ts — Apollo → enrich → HubSpot
import { Apollo } from '@apollo/sdk'
import { Client as HubSpot } from '@hubspot/api-client'
import { Anthropic } from '@anthropic-ai/sdk'

interface Lead {
  email: string
  company: string
  title: string
  fitScore: number
  signals: Signal[]
}

async function syncLeadToHubSpot(lead: Lead): Promise<Contact> {
  const enriched = await apollo.people.enrich({
    email: lead.email,
    reveal_personal_emails: true,
  })

  const contact = await hubspot.crm.contacts.upsert({
    email: enriched.email,
    properties: {
      firstname: enriched.first_name,
      lastname: enriched.last_name,
      company: enriched.organization.name,
      jobtitle: enriched.title,
      lifecyclestage: 'lead',
      hs_lead_status: 'sdr_queue',
      fit_score: lead.fitScore,
      source: 'apollo_outbound_v3',
    },
  })

  return contact
}

async function runDailyBatch() {
  const leads = await apollo.searchPeople({
    titles: ['VP Sales', 'CRO', 'Head of GTM'],
    employeeRange: [50, 200],
    industries: ['saas'],
    perPage: 100,
  })

  for (const lead of leads) {
    const score = await scoreLeadFit(lead)
    if (score >= 0.78) await syncLeadToHubSpot({ ...lead, fitScore: score })
  }
}


// tinoho/lead-router.ts — Apollo → enrich → HubSpot
import { Apollo } from '@apollo/sdk'
import { Client as HubSpot } from '@hubspot/api-client'
import { Anthropic } from '@anthropic-ai/sdk'

interface Lead {
  email: string
  company: string
  title: string
  fitScore: number
  signals: Signal[]
}

async function syncLeadToHubSpot(lead: Lead): Promise<Contact> {
  const enriched = await apollo.people.enrich({
    email: lead.email,
    reveal_personal_emails: true,
  })

  const contact = await hubspot.crm.contacts.upsert({
    email: enriched.email,
    properties: {
      firstname: enriched.first_name,
      lastname: enriched.last_name,
      company: enriched.organization.name,
      jobtitle: enriched.title,
      lifecyclestage: 'lead',
      hs_lead_status: 'sdr_queue',
      fit_score: lead.fitScore,
      source: 'apollo_outbound_v3',
    },
  })

  return contact
}

async function runDailyBatch() {
  const leads = await apollo.searchPeople({
    titles: ['VP Sales', 'CRO', 'Head of GTM'],
    employeeRange: [50, 200],
    industries: ['saas'],
    perPage: 100,
  })

  for (const lead of leads) {
    const score = await scoreLeadFit(lead)
    if (score >= 0.78) await syncLeadToHubSpot({ ...lead, fitScore: score })
  }
}


// tinoho/lead-router.ts — Apollo → enrich → HubSpot
import { Apollo } from '@apollo/sdk'
import { Client as HubSpot } from '@hubspot/api-client'
import { Anthropic } from '@anthropic-ai/sdk'

interface Lead {
  email: string
  company: string
  title: string
  fitScore: number
  signals: Signal[]
}

async function syncLeadToHubSpot(lead: Lead): Promise<Contact> {
  const enriched = await apollo.people.enrich({
    email: lead.email,
    reveal_personal_emails: true,
  })

  const contact = await hubspot.crm.contacts.upsert({
    email: enriched.email,
    properties: {
      firstname: enriched.first_name,
      lastname: enriched.last_name,
      company: enriched.organization.name,
      jobtitle: enriched.title,
      lifecyclestage: 'lead',
      hs_lead_status: 'sdr_queue',
      fit_score: lead.fitScore,
      source: 'apollo_outbound_v3',
    },
  })

  return contact
}

async function runDailyBatch() {
  const leads = await apollo.searchPeople({
    titles: ['VP Sales', 'CRO', 'Head of GTM'],
    employeeRange: [50, 200],
    industries: ['saas'],
    perPage: 100,
  })

  for (const lead of leads) {
    const score = await scoreLeadFit(lead)
    if (score >= 0.78) await syncLeadToHubSpot({ ...lead, fitScore: score })
  }
}


// tinoho/lead-router.ts — Apollo → enrich → HubSpot
import { Apollo } from '@apollo/sdk'
import { Client as HubSpot } from '@hubspot/api-client'
import { Anthropic } from '@anthropic-ai/sdk'

interface Lead {
  email: string
  company: string
  title: string
  fitScore: number
  signals: Signal[]
}

async function syncLeadToHubSpot(lead: Lead): Promise<Contact> {
  const enriched = await apollo.people.enrich({
    email: lead.email,
    reveal_personal_emails: true,
  })

  const contact = await hubspot.crm.contacts.upsert({
    email: enriched.email,
    properties: {
      firstname: enriched.first_name,
      lastname: enriched.last_name,
      company: enriched.organization.name,
      jobtitle: enriched.title,
      lifecyclestage: 'lead',
      hs_lead_status: 'sdr_queue',
      fit_score: lead.fitScore,
      source: 'apollo_outbound_v3',
    },
  })

  return contact
}

async function runDailyBatch() {
  const leads = await apollo.searchPeople({
    titles: ['VP Sales', 'CRO', 'Head of GTM'],
    employeeRange: [50, 200],
    industries: ['saas'],
    perPage: 100,
  })

  for (const lead of leads) {
    const score = await scoreLeadFit(lead)
    if (score >= 0.78) await syncLeadToHubSpot({ ...lead, fitScore: score })
  }
}


// tinoho/lead-router.ts — Apollo → enrich → HubSpot
import { Apollo } from '@apollo/sdk'
import { Client as HubSpot } from '@hubspot/api-client'
import { Anthropic } from '@anthropic-ai/sdk'

interface Lead {
  email: string
  company: string
  title: string
  fitScore: number
  signals: Signal[]
}

async function syncLeadToHubSpot(lead: Lead): Promise<Contact> {
  const enriched = await apollo.people.enrich({
    email: lead.email,
    reveal_personal_emails: true,
  })

  const contact = await hubspot.crm.contacts.upsert({
    email: enriched.email,
    properties: {
      firstname: enriched.first_name,
      lastname: enriched.last_name,
      company: enriched.organization.name,
      jobtitle: enriched.title,
      lifecyclestage: 'lead',
      hs_lead_status: 'sdr_queue',
      fit_score: lead.fitScore,
      source: 'apollo_outbound_v3',
    },
  })

  return contact
}

async function runDailyBatch() {
  const leads = await apollo.searchPeople({
    titles: ['VP Sales', 'CRO', 'Head of GTM'],
    employeeRange: [50, 200],
    industries: ['saas'],
    perPage: 100,
  })

  for (const lead of leads) {
    const score = await scoreLeadFit(lead)
    if (score >= 0.78) await syncLeadToHubSpot({ ...lead, fitScore: score })
  }
}

Your fractional CRO.

Your fractional CRO.

I’m a hands-on revenue leader and GTM operator focused on scaling B2B businesses with
AI-powered systems.

Senior-level thinking. Fraction of the cost.
None of the hiring risk.

Results that move the needle.

Track record building and scaling SME and mid-market businesses across SaaS, fintech and data platforms.

Track record building and scaling SME and mid-market businesses across SaaS, fintech and data platforms.

50 - 55% CAGR over 10 yrs

Core revenue metrics sustained over a decade at OFX as former Head of APAC sales leading a team of 30 staff.

50 - 55% CAGR over 10 yrs

Core revenue metrics sustained over a decade at OFX as former Head of APAC sales leading a team of 30 staff.

MVP < 6 mths

Launched from concept to MVP in US market with global bank and listed manufacturing company as former CRO for an ESG SaaS platform.

MVP < 6 mths

Launched from concept to MVP in US market with global bank and listed manufacturing company as former CRO for an ESG SaaS platform.

NRR uplift < 12 mths

High single digit % uplift in net revenue retention < 12 months for a leading e-learning SaaS platform as former CRO leading a team of 35 staff.

NRR uplift < 12 mths

High single digit % uplift in net revenue retention < 12 months for a leading e-learning SaaS platform as former CRO leading a team of 35 staff.

$460m IPO

Early employee and led APAC sales at OFX when it listed on the ASX in 2013 with 300+ staff.

$460m IPO

Early employee and led APAC sales at OFX when it listed on the ASX in 2013 with 300+ staff.

One full revenue stack. Eight capabilities.

Each capability is a component of one integrated revenue system — designed to work together, built to scale.

01

Strategy

Commercial strategy, GTM motion selection.

03

RevOps

Pipeline architecture, tech stack optimisation, and full-funnel revenue engine design.

05

Sales

Pipeline development, and high-performance sales team building.

07

Board Advisory & Consulting

Strategic counsel for founders on revenue, growth, and investor readiness.

02

GTM Execution

Go-to-market execution across sales-led, product-led, partnership-led, marketing-led, and event-led motions.

04

Marketing

Demand generation, ABM, messaging framework, and campaign execution.

06

Brand

Segmentation, targeting, positioning, for B2B audiences.

Want to know more?

What makes Tino different?

A unique combination across several areas.

Area

Others

Track Record in high-growth environments

Serial founder & operator

Serial founder & operator

Serial founder & operator

Track Record in high-growth environments

ASX-listed & VC-backed company experience

Advisor & board member to founder-led businesses

Strategy through to execution

AI-first mindset

GTM stack experience

Tino Ho

~55% CAGR x 10yrs growth performance

~55% CAGR x 10yrs at one company

~55% CAGR x 10yrs at one company

Built & ran multple businesses

From startup to public markets

Strategic counsel at board level

Not just decks — real outcomes

Builds with modern AI tools (n8n, Claude, etc)

Modern Tools (Hubspot, Zoominfo, Apollo, Expandi, etc.)

Some of the companies Tino has worked for and customers served

OFX Safetrac Aware Super St James Place InterSystems Tyro

What other people say about Tino.

Tino is a well-rounded leader with a keen ability to navigate go-to-market complexities and translate sophisticated client needs into tangible, results-oriented outcomes. He consistently delivered innovative solutions, particularly in the areas of ESG and AI. I recommend Tino without reservation as an ethical and impactful professional.

Michael Go

Chair & Non-Executive Director

Tino was a great asset to OzForex and will be missed. He spent 10 years at OzForex playing an important part in the growth of the business from a small start up to an ASX listed, market leading international payments specialist. Tino demonstrates a great energy and enthusiasm which enables him to build and develop strong relationships both internally and externally.

Jeff Parker

CEO Paymentology

Tino has demonstrated a remarkable ability to devise growth strategies and guide marketing and sales endeavours. If you're seeking a strategic independent advisor who excels in fostering growth, propelling marketing and sales efforts, and instilling a culture of data-driven and collaborative thinking, Tino is an excellent choice.

Julie Manios

Proptech Executive Director

I had the pleasure of working with Tino for five years at OFX (formerly OzForex). He is diligent, productive and responsive. Tino setup the BDM function at OFX and as part of the leadership team helped to deliver consistent year on year growth.

Christopher Minehan

Former OFX CMO, Founder ClickedOn

I enjoyed working with Tino who was professional and diligent throughout the engagement. he exhibits genuine passion for his work which gave me the confidence to engage him and his team. During the project he consistently listened to our requirements and tailored the outputs accordingly. I would highly recommend working with him.

Tim Beard

Chief Commercial Officer Silverbullet

Tino served as our CRO and occasionally stepped in as acting Sales Manager during his tenure. His leadership was exceptional, showing a strong commitment not only to increasing the company's revenue but also to fostering my professional growth within the business and beyond.

Ben Zylbersztajn

Senior BDM Safetrac

What other People Say About Tino.

Tino is a well-rounded leader with a keen ability to navigate go-to-market complexities and translate sophisticated client needs into tangible, results-oriented outcomes. He consistently delivered innovative solutions, particularly in the areas of ESG and AI. I recommend Tino without reservation as an ethical and impactful professional.

Michael Go

Chair & Non-Executive Director

Tino was a great asset to OzForex and will be missed. He spent 10 years at OzForex playing an important part in the growth of the business from a small start up to an ASX listed, market leading international payments specialist. Tino demonstrates a great energy and enthusiasm which enables him to build and develop strong relationships both internally and externally.

Jeff Parker

CEO, Paymentology | Former CEO, OzForex | Board Member & Investor

Tino has demonstrated a remarkable ability to devise growth strategies and guide marketing and sales endeavours. If you're seeking a strategic independent advisor who excels in fostering growth, propelling marketing and sales efforts, and instilling a culture of data-driven and collaborative thinking, Tino is an excellent choice.

Julie Manios

Proptech Executive Director

I had the pleasure of working with Tino for five years at OFX (formerly OzForex). He is diligent, productive and responsive. Tino setup the BDM function at OFX and as part of the leadership team helped to deliver consistent year on year growth.

Christopher Minehan

Former OFX CMO, Founder ClickedOn

I enjoyed working with Tino who was professional and diligent throughout the engagement. he exhibits genuine passion for his work which gave me the confidence to engage him and his team. During the project he consistently listened to our requirements and tailored the outputs accordingly. I would highly recommend working with him.

Tim Beard

Chief Commercial Officer Silverbullet

Tino served as our CRO and occasionally stepped in as acting Sales Manager during his tenure. His leadership was exceptional, showing a strong commitment not only to increasing the company's revenue but also to fostering my professional growth within the business and beyond.

Ben Zylbersztajn

Senior BDM Safetrac