Moosa Memon
Index of work

Systems I've built

From agents that ask before they act to a satellite-alert investigator. The full write-ups include the part that matters: the constraints, the decisions, and what failed first. Numbers are only quoted where they were actually measured.

01

A support agent that asks before it acts

customer-ops-agent: answers from a knowledge base and takes four real actions (ticket, CRM update, email, booking), every mutating one gated behind human approval.

Agents LangGraph / MCP / FastAPI / Postgres
02

A WhatsApp booking agent that cannot double-book

ConverseIQ: a multi-channel agent for a booking-heavy business that answers from the business's own records, books appointments, captures leads, and routes phone calls into the same brain.

Agents FastAPI / Gemini / Qdrant / Supabase
03

Answers from your PDFs, with the source highlighted on the page

DocLens: a full-stack RAG chatbot over uploaded PDFs with hybrid retrieval, reranking, a grounding check that refuses to guess, a side-by-side viewer that highlights the cited page, and reference-free answer evaluation.

RAG FastAPI / LangChain / ChromaDB / React
05

A price prediction API that explains every rupee

AutoPricer: a production-style ML service for used-car resale prices. SHAP attributions that provably sum to the prediction, JWT and API-key auth, a fail-open Redis cache, async batch scoring, drift monitoring, and a retraining gate that refuses ties.

ML Systems FastAPI / scikit-learn / SHAP / Redis
06

Flagging invasive species a year before official detection

Beachhead: a multi-agent early-warning system that fuses citizen-science sightings, climate suitability, documented introduction pathways and propagule pressure into triaged field-survey recommendations, evaluated retrospectively on real GBIF data.

Environmental Python / FastAPI / Pydantic / GBIF API
07

An ops hub where the AI can't certify its own claims

OpsRelay: calls, forwarded emails and typed notes go in; deduplicated, confidence-tagged tasks come out, behind a Slack approval gate a human has to pass before anything is sent or marked confirmed. Built for real-estate offices, agencies and dispatch desks.

Agents FastAPI / LangGraph / Claude API / n8n
08

A support agent that can't touch an account it hasn't verified

VerifyBridge: a conversational layer for subscription businesses that answers from internal docs, performs account actions only after identity verification enforced in the backend, and hands over to a human with the full conversation intact.

Agents Dify / n8n / FastAPI / Qdrant
09

A RAG accuracy audit in a box

rageval: point it at any retrieval or agent system through a thin adapter and get retrieval recall, faithfulness and hallucination rate as a report, plus a regression harness with a CI gate so it never silently degrades again.

RAG Python / LLM-as-judge / CLI / HTML reports
10

An LLM proxy your app adopts by changing one URL

llm-gateway: an OpenAI-compatible proxy with a two-tier cache, complexity-based model routing, prompt-injection screening, PII redaction, output validation and provider failover. The only change in your code is the base URL.

LLM Infra FastAPI / Redis / OpenAI-compatible API / Docker
11

RAG that can answer multi-hop questions

NexusGraph-RAG: converts documents into a Neo4j property graph while keeping Qdrant vector embeddings, then fuses k-hop graph traversal with semantic search through reciprocal rank fusion for questions dense retrieval can't answer.

RAG Neo4j / Qdrant / FastAPI / Claude API
12

Adversarial testing for LLM apps, reported the way security teams read

AegisRedTeam: fires a corpus of adversarial payloads at an LLM endpoint or RAG pipeline, classifies each response with a two-stage evaluator, grades per OWASP LLM Top 10 category, and emits an executive PDF alongside JSON, HTML and Markdown.

LLM Infra Python / CLI / PDF reporting / OWASP LLM Top 10
13

Satellite change alerts, turned into evidence a newsroom can use

Sentinel Dossier: a five-agent pipeline that fuses near-real-time satellite change detection with legal land-use boundaries and multilingual news, reasons about whether a change is legally suspicious, and writes cited, human-reviewable dossiers for the cases that matter most.

Environmental Python / Claude API / Retrieval / SVG maps
14

A daily agenda built from your inbox, Slack and calendar

TaskPilot: four LangGraph agents read across Gmail, Slack and Google Calendar, extract genuine action items, merge cross-channel duplicates, score priority and effort, and block-schedule a realistic day around existing meetings.

Agents LangGraph / FastAPI / Supabase / n8n
15

Rollback for agents that touch the real world

agent-saga-engine: a transactional runtime that executes agent tool calls as a Saga, each forward step paired with a compensating inverse, so a failure at step 3 automatically undoes steps 2 and 1 instead of leaving them permanently committed.

Agents Python / Pydantic v2 / Event sourcing / Framework-agnostic
16

Years of forest audio, turned into cited ecological assessments

Chorus Ledger: tracks a site's acoustic indices and species detections over time, separates real change from seasonality, detects change points, retrieves candidate explanations from the field log and literature, and writes a confidence-scored ledger entry that says what it couldn't determine.

Environmental Python / Time-series / Retrieval / LLM
17

Farming advice that knows when to hand you to a person

Rootstock: a farmer describes what they see; the agent structures it, pulls their soil profile and recent weather, retrieves vetted guidance filtered to their situation, writes an answer where every sentence cites a numbered claim, and then decides whether it should be answering at all.

Agents Python / Retrieval / LLM / Weather + soil APIs
18

A browser agent for the SaaS tools that have no API

VisionBot-RPA: an autonomous web agent that combines a vision LLM with accessibility-tree parsing to run multi-step workflows on sites without public APIs: form filling, data extraction, dynamic application interaction, from a natural-language goal.

Automation Playwright / Vision LLM / Python / Docker
19

Triage for dark fishing vessels, from radar return to cited brief

Bright Return: cross-references synthetic-aperture-radar vessel detections against marine protected area boundaries and vessel-risk data to produce prioritized, cited briefs for human review. The analyst layer on top of a mature detection problem.

Environmental Python / Geospatial / SAR / CLI
20

A fine-tune that had to beat an honest baseline first

ForgeTune: fine-tunes a small open model to turn unstructured PSX company announcements into schema-valid JSON, on a hand-corrected dataset, evaluated against a prompted baseline instead of a straw man.

ML Systems LoRA / Small open models / Pydantic / Evaluation
21

An overflow receptionist that only answers what the humans missed

RingRelay: a compliance-first AI receptionist for spas, salons, clinics and studios. It rings the staff first, picks up only the calls, texts and emails nobody answered, handles routine questions from a grounded knowledge base, and escalates the moment anything is sensitive.

Agents Twilio / LangGraph / FastAPI / n8n
22

Auditing 100% of a ledger instead of sampling 10%

LedgerSentry: ingests a whole ledger from CSV or XLSX, checks every transaction against configurable rules and per-cohort statistical detection, and hands the reviewer a short, explained, severity-ranked queue instead of a spreadsheet.

Automation Python / FastAPI / n8n / Airtable
23

An appointment setter that books inside the Instagram DM

SetterFlow: qualifies inbound Instagram leads through ordinary conversation, filters out the ones who aren't a fit, and books the rest onto the calendar without ever leaving the thread. No booking link, no channel switch. Built for coaches, consultants and agencies selling high-ticket offers.

Agents Python / LLM / n8n / Calendar API
24

Noticing the commission a carrier simply didn't pay

CommissionSync: ingests insurance carrier commission statements in whatever form they arrive (PDF, CSV, Excel, scanned fax), normalizes them into one schema, checks every payment against the agency's own commission schedules, and surfaces only the rows a human needs to look at.

Automation Python / OCR / n8n / Supabase
25

Multi-tenant RAG where the tenant boundary lives in SQL

PerimeterRAG: a retrieval-augmented Q&A backend for multi-tenant SaaS. Fast, source-cited answers over each customer's documents, with access scoping enforced in the database rather than hoped for in application code, and an explicit 'not in your documents' instead of a confident guess.

RAG FastAPI / Postgres / pgvector / Docker
26

Drive folder in, cited Slack answers out, all in n8n

DocuQuery: an n8n-orchestrated RAG pipeline that watches a Google Drive folder, keeps a Pinecone index of its PDFs current, and answers plain-language questions in Slack with citations back to the source document and page. 71 nodes across three workflows, 131 tests.

RAG n8n / Pinecone / Google Drive / Slack
27

Load boards, filtered down to the calls worth making

LaneMatch: watches multiple freight load boards, normalizes listings into one schema, and surfaces only the loads that fit a carrier's trucks, lanes and rate targets, with an explanation for every ranking, pushed to Slack.

Automation Python / FastAPI / n8n / Embeddings
28

Distressed-property leads that qualify before they cost money

AcquisitionIQ: scheduled connectors pull county distressed-property filings, a config-driven engine decides which fit the buy box, only qualifying records get skip-traced, and contact-ready seller leads land in Airtable. Second market, zero code changes.

Automation Python / n8n / Supabase / Airtable
29

Marketing-ops agents that compute the evidence before they interpret it

Orbit: a multi-tenant platform where specialised agents analyse each client's own account data, produce evidence-backed findings, and route every proposed change through a human approval gate before anything executes. Not a content generator.

Agents Python / LLM / SQLite / Multi-tenant
30

Candidate screening that stays accurate after launch

RecruitFlow AI: a conversational screening agent grounded in a RAG knowledge base, automated nurture for candidates who go quiet, and a recruiter-facing pipeline and insights layer. Built for staffing teams that need to scale outreach without adding headcount.

Agents FastAPI / Claude API / RAG / n8n
31

A voice assistant built like a small service

VoxAgent: wake word, offline speech recognition, a LangGraph tool-calling agent (weather, search, semantic notes, reminders) and spoken replies; the same core drives the mic loop, a text REPL and a live reasoning dashboard.

Agents LangGraph / Gemini / Vosk / SQLite
32

Small language models running entirely on-device

EdgeSLM-Engine: compiles Qwen2.5-0.5B and SmolLM2 to ONNX with KV-cache support, quantizes to INT8/FP16, and runs a hand-rolled generation loop on CPU, DirectML, CUDA, or in the browser via WebGPU. No cloud, no per-token cost.

LLM Infra ONNX Runtime / WebGPU / Quantization / Python
33

Instruction datasets synthesized from raw documents

SynthData-Forge: chunks unlabelled text, generates grounded seed instructions, hardens them with Evol-Instruct mutations, produces gold responses with Claude, filters by reward-model score, dedupes with MinHash LSH, and exports JSONL/Parquet/HF with full lineage per sample.

ML Systems Claude API / Evol-Instruct / MinHash LSH / Hugging Face datasets
34

Four recommenders, one ranked watchlist

ReelFusion: fuses transformer content similarity, matrix factorization, deep collaborative filtering and gradient boosting into a weighted ranking with per-signal score breakdowns, plus SVD fold-in personalization without retraining.

ML Systems PyTorch / scikit-learn / Flask / CI
35

Clinical notes into validated structured data

ClinicalParse: an extraction pipeline that turns unstructured clinical notes into schema-enforced diagnoses, medications and dosages, with a self-correcting retry loop on validation failure, drug-interaction flagging, confidence annotations and FHIR-lite output.

Automation LangChain / Pydantic / FastAPI / Docker
36

Synthetic data for rare species, built so a null result can win

Ghost Trap: fine-tunes a diffusion model on a handful of rare-species camera-trap images, composites generated examples onto real backgrounds, and measures on a sealed real-only test set against a pre-registered decision rule whether recall actually improved.

Environmental Diffusion models / PyTorch / Camera traps / Pre-registration
37

Downscaling coral heat stress, validated against real loggers

Reef Grain: a conditional diffusion model generating ensembles of reef-scale thermal fields from 5 km satellite SST, built to be validated against held-out in-situ loggers. Work in progress: the Phase 0 finding is that the satellite product is roughly 70× too smooth to contain reef-scale variability, which reframed the design; the generative model's own verdict is not yet established.

Environmental Diffusion models / NOAA CRW / In-situ validation / Python
38

TradingView alerts into risk-managed paper orders

OrderBlock: a webhook-driven execution engine that validates signed TradingView alerts against Smart Money Concepts rules, filters them through an ML signal-quality scorer, applies position sizing and daily limits, and places orders through an Alpaca paper-trading adapter.

Automation FastAPI / HMAC webhooks / scikit-learn / Alpaca API
39

One order, fanned out across every account, controlled from Telegram

OrderPilot: a Django/Celery execution engine that validates risk, sizes a trade per account, dispatches it idempotently across multiple brokerage accounts, and exposes real-time alerts and a remote kill-switch through a Telegram bot and web cockpit.

Automation Django / Celery / Telegram Bot API / Docker
40

Clean 3D point clouds from handheld scanning rigs

PointFusion: fuses 200 Hz IMU data with 30 Hz depth and RGB streams to produce motion-compensated, spatially registered point clouds, exportable as PLY/PCD, served through a FastAPI job API.

ML Systems Open3D / NumPy / FastAPI / Sensor fusion
41

Resume-to-job matching where every point is traceable

ResumeAlign: a calibrated 0-100 fit score built from a four-layer skill-matching cascade (exact, synonym, fuzzy, embedding) over Gemini-extracted structures, showing which requirement matched via which layer against what evidence, and which are genuinely missing.

ML Systems Gemini / MiniLM embeddings / Pydantic / FastAPI
42

An AI career OS that can't invent skills you don't have

CareerPilot AI: transparent job-match scoring, resume tailoring with an honesty guard, job aggregation from official ATS APIs, and an application tracker whose outcomes train a personal match model. Next.js, Postgres, credits and billing.

Automation Next.js / TypeScript / Postgres / ATS APIs
43

Live-tuning a motorised camera rig from the desktop

GimbalForge: a desktop control panel for a pan/tilt camera rig that pushes sweep speed, smoothing, patrol radius and deadzone to ESP32/Arduino firmware over serial as you drag, with live telemetry, named presets, and a built-in simulator so the whole app demos with no hardware attached.

Automation Python / ESP32 / Serial / Desktop GUI
44

Photoreal renders that keep the geometry the client approved

RenderShift AI: turns basic 3D renders into photorealistic visuals conditioned on locked canny and depth control maps per camera angle, and applies revision comments as masked, targeted edits rather than full regenerations. Runs the full cycle with no GPU.

ML Systems Diffusion models / ControlNet / OpenCV / FastAPI
45

Adversarial Q&A from video, with a human on every item

ProbeSet AI: ingests video, extracts transcript and keyframes, drafts evidence-grounded adversarial Q&A pairs with a multimodal model, dedupes with pgvector, and routes every item through named human review before export as a tagged eval dataset. Demo pass over real videos not yet run.

ML Systems LangGraph / Gemini / pgvector / FastAPI

Bring me the problem. Leave with how I'd build it.

A 20-minute architecture call. No pitch, no slide deck. If I'm not the right person for it, I'll say so and point you somewhere better.