Inspiration

In Nigeria, 60% of the workforce operates in the informal economy—that's over 60 million skilled workers including plumbers, electricians, cleaners, personal shoppers, and errand runners. Yet they remain invisible to traditional platforms.

I witnessed this firsthand when my neighbor, a skilled electrician, struggled to find clients beyond word-of-mouth referrals. Meanwhile, people in my community were desperately searching for reliable service providers on WhatsApp groups and Facebook pages. The disconnect was jarring: a $500 billion economy running on manual processes.

Traditional job platforms fail informal workers because:

  • They can't afford listing fees or subscriptions
  • Discovery relies on keyword matching, not intelligent skill analysis
  • Price negotiations happen manually, creating friction
  • Payment systems exclude the unbanked majority

The insight: What if an AI agent could orchestrate the entire booking lifecycle autonomously—from discovery to payment—while workers respond asynchronously over hours or days?


What It Does

Choriad is an autonomous AI agent that orchestrates multi-day service bookings across Nigeria's informal economy. Unlike traditional chatbots that answer questions, Choriad executes transactions.

The Complete Workflow:

  1. Intelligent Discovery: Client asks: "I need grocery shopping in Ajah tomorrow, budget ₦25,000"

    • Agent extracts: service type, location, timing, budget, urgency
    • Searches 50+ workers using fuzzy skill matching and location analysis
    • Ranks by fit: 40% skills + 30% location + 15% budget + 10% rating + 5% experience
  2. Autonomous Negotiation:

    • Worker's rate: ₦29,000 | Client's budget: ₦25,000
    • Agent reasons: "16% gap, simple job, flexible worker → propose ₦27,000 midpoint"
    • Creates booking request with 12-hour expiry (urgency-based)
  3. Multi-Day Orchestration:

    • [Hours pass... worker counters with ₦28,000]
    • Agent detects status change via real-time subscription
    • Automatically notifies client: "Worker sent counter-offer of ₦28,000 with note..."
    • Client accepts → Agent creates escrow booking → Processes payment via Flutterwave
  4. Zero Manual Intervention: The agent maintains context across hours/days, handling async worker responses without human supervision.


How I Built It

Architecture: Marathon Agent Pattern

Choriad implements the Marathon Agent pattern—sustained autonomous operation across multi-day workflows with self-correction capabilities.

Core Components:

1. Gemini 3 Reasoning Engine

// 6 Custom Tools for Complex Orchestration
tools = {
  searchWorkers,           // Fuzzy matching + AI ranking
  negotiatePrice,          // Contextual price analysis
  createBookingRequest,    // Job + request creation
  acceptCounterOffer,      // Handle worker counters
  checkBookingRequestStatus, // Real-time status checks
  checkWorkerAvailability  // Conflict detection
}

The agent uses Gemini 3's enhanced reasoning to:

  • Analyze worker-client fit across 5 dimensions
  • Negotiate prices considering job complexity + urgency
  • Decide which tool to call based on conversation state
  • Self-correct when workers reject (suggest alternatives)

2. Real-Time State Synchronization

// Supabase real-time subscriptions bridge async gaps
useEffect(() => {
  const channel = supabase
    .channel('booking-updates')
    .on('postgres_changes', {
      event: 'UPDATE',
      table: 'booking_requests',
      filter: `client_id=eq.${userId}`
    }, (payload) => {
      if (payload.new.status === 'countered') {
        // Agent automatically continues conversation
        injectAutoMessage(`Worker counter-offered ₦${amount}...`)
      }
    })
}, [userId])

3. Tool Orchestration Flow

User Input → Gemini 3 Reasoning → Tool Call → Database Operation
     ↓                                            ↓
State Update ← Real-time Subscription ← Worker Response
     ↓
Gemini 3 Reasoning → Next Tool Call → Continue Workflow

4. Intelligent Worker Matching Algorithm

# Fuzzy skill matching with synonym expansion
"grocery shopping" → ["grocery", "personal shopper", "shopping assistant", "errand runner"]

# Multi-dimensional scoring
matchScore = (
  skillMatch * 0.40 +      # Fuzzy text matching
  locationMatch * 0.30 +   # Area + city analysis
  budgetFit * 0.15 +       # Rate compatibility
  rating * 0.10 +          # Social proof
  experience * 0.05        # Job completion count
)

Challenges I Faced

1. Row-Level Security (RLS) Authentication

Problem: Gemini 3 tool calls failed with "new row violates row-level security policy"

Root Cause: Server-side Supabase client wasn't passing authenticated user session to database operations.

Solution:

// Create authenticated SSR client
const cookieStore = await cookies()
const supabase = createServerClient(
  SUPABASE_URL,
  SUPABASE_ANON_KEY,
  { cookies: { get, set, remove } }
)

// Verify user before tool execution
const { user } = await supabase.auth.getUser()
if (!user || user.id !== clientId) throw AuthError

// Pass authenticated client to all tools
toolResult = await toolFn(input, supabase)

2. Real-Time Context Continuity

Problem: When workers responded hours later, the AI agent had no context about what happened.

Solution: Built checkBookingRequestStatus tool so agent can proactively query current state:

// Agent detects status questions
if (userAsksAboutStatus) {
  const status = await checkBookingRequestStatus(bookingId)
  // Returns: {status: "countered", counterAmount: 28000, counterNote: "..."}
}

3. Payment Link Generation

Problem: Initially pointed payment links to booking_requests table, but bookings are created in bookings table.

Solution: Modified worker acceptance flow to immediately create bookings row:

// Worker accepts → Create booking → Return booking.id for payment
const booking = await supabase.from('bookings').insert({...}).select().single()
return { paymentUrl: `/client/bookings/${booking.id}/pay` }

4. Duplicate Real-Time Notifications

Problem: Client received duplicate messages when worker accepted (once from booking_requests update, once from bookings insert).

Solution: Implemented deduplication with processedRequests ref:

const processedRequests = useRef(new Set())

if (processedRequests.current.has(requestId)) return
processedRequests.current.add(requestId)

Accomplishments

Built a production-ready autonomous agent that handles real monetary transactions

Solved the async continuity problem - agent maintains context across hours/days

Intelligent matching algorithm - 55%+ accuracy on first match (vs. random 20%)

End-to-end escrow system - integrated Flutterwave for secure payments

Real-time orchestration - agent responds within seconds of worker actions

Zero-prompt engineering - uses structured tool calls, not system prompts


What I Learned

Technical Insights:

  1. Gemini 3's reasoning shines in tool orchestration - not just chat completion
  2. Real-time subscriptions + AI = game changer for async workflows
  3. State management is critical for multi-day agent operations

Market Insights:

  1. Informal economy needs different UX - workers respond on their schedule
  2. Trust is paramount - escrow eliminates payment friction
  3. Pricing transparency matters - showing negotiation logic builds confidence

What's Next for Choriad

Immediate (Next 30 Days):

  • [ ] Voice interface using Gemini Live API (for low-literacy workers)
  • [ ] SMS fallback for workers without smartphones
  • [ ] Multilingual support (Yoruba, Igbo, Hausa)

Short-term (3 Months):

  • [ ] Reputation system with AI-powered review analysis
  • [ ] Worker verification using document OCR + facial recognition
  • [ ] Dispute resolution with AI-mediated arbitration

Long-term (6-12 Months):

  • [ ] Expand to Kenya, Ghana, South Africa (300M+ workers)
  • [ ] B2B API for enterprises to book bulk services
  • [ ] Insurance integration for liability coverage
  • [ ] Skills training marketplace powered by AI tutors

Vision:

Become the operating system for Africa's informal economy - where every gig worker has an AI agent working for them 24/7.


Impact Metrics

Target Market:

  • 🌍 300M informal workers across Africa
  • 💰 $500B economy (60-80% of African GDP)
  • 🇳🇬 Nigeria pilot: 60M+ workers, $200B+ market

Early Results (Beta Testing):

  • 2.3 minutes average booking time (vs. 45min traditional)
  • 🎯 55% match accuracy on first recommendation
  • 💬 87% positive sentiment from client feedback
  • 🔄 0% payment disputes thanks to escrow system

Social Impact:

  • Financial inclusion for unbanked workers
  • Income stability through demand matching
  • Price transparency via AI negotiation
  • Skill validation replacing manual credentials

Technical Innovation

Why This Goes Beyond Traditional Chatbots:

Traditional Chatbot Choriad (Marathon Agent)
Answers questions Executes transactions
Forgets after session Maintains multi-day context
Requires user prompts Operates autonomously
Single-turn responses Multi-step orchestration
Static information Real-time state management

Gemini 3 Features Leveraged:

  1. Enhanced Reasoning: 6-step tool orchestration with contextual decision-making
  2. Tool Calling: Structured function execution (not prompt hacking)
  3. Long Context: Maintains booking history across async workflows
  4. Fast Inference: Sub-2s worker evaluation for 50+ candidates

Open Source & Community

Choriad is committed to transparency:

  • 📂 Public repository with full codebase
  • 📖 Documentation for deployment in other African countries
  • 🤝 API access for researchers studying informal economies
  • 💡 Framework reusable for other multi-day orchestration use cases

  • GitHub

  • Experience Choriad


Built With

AI/ML:

  • Gemini 3 Flash Preview (reasoning engine)
  • Google AI Studio (prototyping)

Backend:

  • Next.js 14 (App Router)
  • Supabase (PostgreSQL + Real-time subscriptions)
  • Row-Level Security (RLS) for data protection

Frontend:

  • React 18 (TypeScript)
  • Tailwind CSS + shadcn/ui
  • Framer Motion (animations)

Payments:

  • Flutterwave (escrow + mobile money)

Infrastructure:

  • Vercel (hosting)
  • GitHub (version control)

Team

Israel Abazie - Founder & Developer
Passionate about using AI to solve real-world problems in emerging markets.


Acknowledgments

Special thanks to:

  • Google DeepMind for Gemini 3 API access
  • Nigerian gig workers who provided feedback during beta testing
  • The Devpost community for inspiration

"In the Action Era, AI doesn't just chat—it executes. Choriad proves that autonomous agents can orchestrate complex, multi-party transactions across days, bringing dignity and opportunity to millions of invisible workers."

Built With

Share this project:

Updates