Inspiration

Millions of people across the UAE have items collecting dust at home — old phones, furniture, electronics — that they want to sell but never do.

The friction is real:

  • photograph the item
  • write a compelling description
  • research fair pricing
  • navigate marketplace forms
  • spend days answering repetitive buyer questions
  • haggle over AED 50
  • coordinate pickup times

Most people give up before they even start.

What if selling something was as easy as taking a photo?

That question is what NovaSell was built to answer.


What it does

NovaSell is a fully autonomous AI sales agent that handles the entire selling lifecycle — from a single product photo to a closed deal.

$$ \text{Photo} \xrightarrow{\text{Nova Lite}} \text{Item Analysis} \xrightarrow{\text{Nova Pro}} \text{Listing + Price} \xrightarrow{\text{Nova Act}} \text{Live on Marketplace} \xrightarrow{\text{Nova Pro / Sonic}} \text{Sold} $$

Snap a photo

Nova Lite identifies:

  • item
  • brand
  • condition
  • defects

AI prices and writes the listing

Nova Pro researches Dubai market comparables and generates an SEO-optimized listing.


One-tap approval

The seller reviews and approves.

That's their only job.


Nova Act posts it

The agent autonomously navigates Shozon and Dubizzle as a human would:

  • filling forms
  • uploading images
  • handling CAPTCHA via live browser handoff

AI handles all buyers

Nova Pro:

  • responds to chat messages
  • negotiates price within seller-defined boundaries
  • schedules pickups

Nova Sonic takes phone calls

Real-time speech-to-speech buyer calls, fully handled by AI 24/7.


How we built it

We used the entire Amazon Nova model family as specialized agents, each owning a distinct layer.

Nova Lite

Multimodal vision for:

  • item identification
  • condition scoring

Nova Pro

Reasoning for:

  • pricing
  • listing generation
  • buyer conversation
  • negotiation

Nova Sonic

Real-time voice via:

invoke_model_with_bidirectional_stream

Audio pipeline:

  • PCM 16kHz in
  • PCM 24kHz out

Nova Act

Browser automation SDK navigating Shozon's React SPA without any marketplace API dependency.


Everything is orchestrated using Temporal state machines, giving us durable, resumable workflows that survive:

  • crashes
  • long HITL pauses
  • retries

The system runs as two Kubernetes pods:

  • ACP HTTP server (FastAPI)
  • Temporal worker

Deployed via Helm.


Challenges we ran into

Challenge How we solved it
Shozon is a React SPA — standard navigation times out Start Nova Act on about:blank, navigate with domcontentloaded, wait for networkidle
CAPTCHA blocks full automation HITL system: pause Temporal workflow, stream live browser via CDP to chat UI, resume on user signal
Temporal activity times out during long HITL Background asyncio heartbeat every 30s, keeping activity alive for up to 60 minutes
Nova Act ActGuardrailsError when triggering HITL Never call nova.act("use HITL tool") — call hitl_callbacks.ui_takeover() directly
Nova Sonic bidirectional stream in mixed async/sync runtime Wrap sync boto3 stream in ThreadPoolExecutor, bridge using loop.run_in_executor()
Stale Chrome SingletonLock after pod crash _cleanup_singleton_lock() removes stale lock files before every Nova Act session
Duplicate activity execution on Temporal retry Set maximum_attempts=1 on publish activity — HITL cannot be safely retried

Accomplishments that we're proud of

End-to-end automation without marketplace APIs

Nova Act navigates Shozon's entire multi-step ad wizard purely through vision and browser control, exactly like a human.


Production-grade HITL system

  • pause Temporal workflow mid-activity
  • stream live browser via Chrome DevTools Protocol
  • resume cleanly after human interaction

This is non-trivial distributed systems engineering.


Voice AI integrated into workflow orchestration

Nova Sonic voice calls run alongside durable Temporal state machines, with the full listing and pricing context available to the voice agent in real time.


Four Nova models working as one system

Each model does exactly what it’s best at:

  • Nova Lite sees
  • Nova Pro reasons
  • Nova Act acts
  • Nova Sonic speaks

Together they create a fully autonomous selling pipeline.


What we learned

Temporal is the right foundation for agentic systems.

Long-running AI workflows — where a step might pause 30 minutes for a human — require durable execution.

Temporal provides:

  • retries
  • heartbeats
  • resumability

Capabilities that asyncio alone cannot provide.


Multi-agent systems require hard boundaries.

The temptation is to use one powerful model for everything.

What actually works:

  • Nova Lite → vision
  • Nova Pro → reasoning
  • Nova Act → execution
  • Nova Sonic → voice

Each agent does one job extremely well.


Browser automation at this level is systems engineering.

You encounter problems like:

  • SPA hydration timing
  • race conditions
  • CDP vs Playwright screenshot differences
  • stale lock files after crashes

None of this exists in tutorials.

You learn it by breaking things in production.


Anti-bot detection must be designed from day one.

Marketplaces actively detect automation.

NovaSell implements:

  • human-like typing cadence
  • random action delays
  • persistent browser profiles
  • rate limiting

This became a core architectural concern, not an afterthought.


What's next for NovaSell

Multi-marketplace posting

List simultaneously on:

  • Shozon
  • Dubizzle
  • Facebook Marketplace

All from one photo.


Proactive repricing

Nova Pro continuously monitors comparable listings and automatically adjusts price to remain competitive.


Buyer trust scoring

Detect:

  • low-trust buyers
  • time-wasters
  • scam patterns

before the seller ever engages.


Full voice negotiation

Nova Sonic handles complete price negotiations via voice calls, not just simple Q&A.


Seller analytics dashboard

Real-time insights:

  • views
  • inquiries
  • conversion rate
  • average time-to-sell by category

WhatsApp integration

Buyers and sellers can:

  • receive messages
  • approve offers
  • confirm deals

directly through WhatsApp.

Built With

Share this project:

Updates