Skip to content

hongnoul/cadabra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cadabra

Cadabra is a Chromium extension that reranks Amazon search results in real time using anonymized behavioral aggregates and an AWS backend.

Stack

  • Chromium Extension (Manifest v3)
  • AWS API Gateway + Lambda (TypeScript)
  • Amazon Nova via AWS Bedrock
  • DynamoDB for user profile persistence
  • Bun runtime and package manager

System Overview

  1. Extension extracts user-visible candidate product metadata from Amazon search results.
  2. Extension computes local behavioral features (UserBehaviorVector, normalized 0..1).
  3. Extension sends behavioral vector + candidate list to backend.
  4. Backend infers/loads user profile and ranking weights.
  5. Backend returns reranked ASINs + short explanations.
  6. Extension reorders DOM nodes and injects explanation badges.

Core product function is reranking accuracy and interpretability. Frontend iteration is expected, but should be minimalist and supportive of the reranking experience.

Project Layout

  • extension/: Manifest v3 extension source
  • backend/: Lambda handlers, Bedrock client, scoring logic
  • infra/: AWS SAM template

Contracts

Implemented in:

  • extension/src/types.ts
  • backend/src/types.ts
  • backend/src/novaPrompt.ts

Key constraints:

  • Only DOM-visible data is used for product extraction.
  • No private Amazon APIs.
  • No server-side scraping.
  • No PII storage.
  • Raw clickstream is not persisted long-term.

Bun Setup

Extension

cd extension
bun install
bun run build

Then load extension/ as an unpacked extension in Chromium.

Set backend URL via cadabra_api_base_url in extension storage, or update DEFAULT_API_BASE_URL in extension/src/background.ts.

Backend

cd backend
bun install
bun run build

Deploy with AWS SAM using infra/template.yaml.

Default environment variables:

  • AWS_REGION=us-east-1
  • USERS_TABLE_NAME=Users
  • NOVA_MODEL_ID=amazon.nova-pro-v1:0

API Endpoints

  • POST /v1/rerank
  • POST /v1/profile/infer

Both endpoints expect strict JSON payloads matching backend types.

Current Status

MVP scaffold is in place for:

  • Candidate extraction
  • Behavioral aggregation
  • Nova-based profile/rerank calls
  • Deterministic fallback weight scorer
  • DOM reranking + restore toggle + badges

Frontend Direction

  • Keep UI enhancements minimalist and low-noise.
  • Prioritize clarity: small badges, concise reasons, unobtrusive controls.
  • Do not reduce search-page usability or break native interactions.
  • Any visual enhancement should support trust in reranking, not distract from shopping flow.

About

AI-powered behavioral reranking for smarter shopping.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors