Varun Cumbamangalam
ProjectsAboutContact

Varun Cumbamangalam.

Senior IoT and Edge AI Engineer, AI Product Manager at OraLens Healthcare

ProjectsAboutContactPrivacy

© 2026 Varun Cumbamangalam. Built with Next.js and Tailwind CSS.

All Projects
BidWave - Freelance Opportunity Engine logoBidWave - Freelance Opportunity Engine logo
BackendAI/ML

BidWave - Freelance Opportunity Engine

Scrape, rank, draft, approve: a freelance bid pipeline that never submits on its own.

BidWave - Freelance Opportunity Engine main screen
4

Platform Adapters

2-stage

Fit Ranking

3

Alert Channels

Tech Stack

FastAPISQLAlchemySQLiteAlembicAPSchedulerPlaywrightscikit-learnClaude APIHTMXJinja2Tailwind CSS

The problem

Hunting for freelance work means switching between platforms, filtering low-signal listings, rewriting similar proposals and tracking follow-ups by hand. Full automation is faster but breaks platform rules and sends proposals nobody reviewed.

The challenge

The pipeline had to be cheap and safe. A TF-IDF prefilter screens listings before any paid LLM call, the LLM call budget is capped per cycle and per day, and generated proposals land in an approval queue rather than being submitted. Every outbound URL passes an HTTPS and public-DNS check, platform credentials are encrypted at rest, and CAPTCHA failures auto-disable a scraper with a cooldown.

System Design

Single-process pipeline: scheduler and dashboard feed platform adapters, the matcher and drafter, and the notifiers, all over one SQLite file.

One uvicorn process runs the FastAPI app, an HTMX dashboard rendered with Jinja2 and Tailwind, and an APScheduler that scrapes every 30 minutes and matches every 5. Platform adapters share a registry and a common job model, with a Playwright pool for sites that need a headless browser. Listings are de-duplicated on platform and job id in SQLite through async SQLAlchemy and Alembic migrations. The matcher runs TF-IDF at a 0.3 threshold, then a Claude rerank at 0.6, and notifiers push matches above 0.75 to Telegram, Discord and SMTP.

Results

BidWave covers onboarding, four source adapters, two-stage matching, proposal generation and refinement, an application pipeline with a bid-approval queue, scheduled discovery, and alerts over email, Telegram and Discord. It runs self-hosted with a shared-secret auth guard on every route and a CI check that keeps the built dashboard assets in sync with the templates.

Personal Project

More from Personal Project

Ummidvar - AI Job Application Agent

Autonomous, multi-profile job application agent: discovers roles across 7+ boards, ranks each 0-100 with a 5-component explainable scorer, generates hallucination-safe tailored applications via a Facts Graph, auto-submits through real ATS systems, tracks replies via Gmail, and flags visa-sponsorship signals across 5 countries - 286 tests, 11 modular packages, zero vendor lock-in.

PythonFastAPIPlaywright

Ummidvar - Autonomous Job Agent

Product vision and feature scoping for Ummidvar - an autonomous, multi-profile job application agent. Defined the 11-package modular architecture from a product perspective, prioritised the anti-hallucination Facts Graph as a non-negotiable product constraint, and scoped visa-sponsorship intelligence for 5 international markets.

PRD AuthoringFeature PrioritisationMulti-Persona Design

Sylars Work Manager - Agent Operations Workspace

End-to-end ownership

A self-hosted workspace for assigning repository work to AI agents with exact-SHA project context, isolated task environments, progress steering, and explicit human approval gates.

TypeScriptNode.jsDocker Compose

Watchdog - Multi-cloud Observability Control Plane

End-to-end ownership

A privacy-minimised observability and safe-operations control plane spanning AWS, Azure, GCP, container hosts, registry storage, incidents, and exact human-approved cleanup plans.

TypeScriptNext.jsAWS Lambda

RenderBoard AI - Interior Design Rendering Platform

End-to-end ownership

An AI interior-design workspace: upload a floor plan, confirm rooms and scale, place furniture, approve each room, then render path-traced and diffusion images into a presentation board. Runs on Azure with scale-to-zero GPU workers.

FastAPICeleryRedis

LoadCell - Strength Machine Controller

End-to-end ownership

A local-first Android app that drives personally owned Aroleap-compatible strength hardware over Bluetooth LE: set resistance, run custom plans, count reps from the machine's own telemetry, and keep every set even if the process dies.

KotlinJetpack ComposeBluetooth LE

Swadhika Studios - Editorial Interior Portfolio

End-to-end ownership

A calm, editorial website for an interior-design and turnkey-delivery studio, built around full-bleed project photography, deliberate typography, and unhurried motion.

HTMLCSSJavaScript

BidWave - Freelance Opportunity Intelligence

Product Owner

A self-hosted opportunity engine that aggregates freelance listings, ranks fit in two stages, drafts tailored proposals, and keeps application decisions under human control.

Product DiscoveryPRD AuthoringRICE Prioritisation

Atelier CRM - Studio Readiness & Delivery

Product Owner

A status-first CRM for boutique interior-design studios, connecting client approvals, procurement readiness, installation milestones, and project delivery in one operating view.

Workflow ResearchStatus ModelPRD Authoring

Interested in this work?

I can walk through the architecture and code during an interview.

Get in Touch All Projects