DEV Community

QLoop Technologies
QLoop Technologies

Posted on • Edited on

CloudSweeper: Cutting Cloud Waste with an AI FinOps Agent

DEV's Worldwide Show and Tell Challenge Submission 🎥

This is a submission for the DEV's Worldwide Show and Tell Challenge Presented by Mux

What I built

I built CloudSweeper, an AI-powered FinOps agent that helps engineers confidently reduce cloud costs across AWS and Azure.

Instead of just flagging “possible waste,” CloudSweeper analyzes real usage metrics, configurations, tags, and historical behavior to recommend one of three clear actions for each resource:

  • KEEP
  • DOWNSIZE
  • DELETE

Each recommendation includes a confidence score and an estimated cost impact so that engineers can act without fear of breaking production.

The system is designed to be:

  • Read-only (no write permissions)
  • Safe by default (no automated changes)
  • Engineer-in-the-loop, not fully autonomous

CloudSweeper’s goal isn’t aggressive cleanup — it’s helping teams move from visibility to confident action when managing cloud spend.

CloudSweeper is built for small to mid-sized teams that don’t have a dedicated FinOps function, but still need enterprise-grade cost discipline.

My Pitch Video

Demo

Live App: https://cloudsweeper.io

CloudSweeper connects to AWS and Azure using read-only access.
No write permissions, no complex automation.
You can onboard in a few minutes by providing minimal connectivity details and immediately see idle-resource recommendations after the first scan is complete.

The Story Behind It

Cloud cost waste is not a visibility problem — it’s a confidence problem.

In almost every AWS or Azure environment I worked with, teams already suspected there was waste:
Idle VMs, unused databases, orphaned disks, forgotten IPs. Dashboards made that obvious.

What stopped the action was fear.

No engineer wants to be the person who deletes something and breaks production.
When ownership is unclear and usage patterns are noisy, the safest choice is to do nothing.
So waste quietly accumulates month after month.

CloudSweeper started as an internal experiment to close that gap.

The idea was simple: instead of just flagging “possible waste,” combine real usage metrics,
configuration data, and historical behavior — then explain why a resource looks idle, and how confident the system is about that conclusion.

Today, CloudSweeper acts as an AI-enabled FinOps agent that helps engineers move from visibility to confident decision-making — without automation, without risk, and always with humans in the loop.

Technical Highlights

CloudSweeper is built as an async, multi-tenant Python system designed to scan safely
customer-owned cloud environments without disrupting workloads.

Core Stack

  • Python 3.13 (fully async)
  • aioboto3 for AWS interactions
  • Azure SDKs (azure-*) for Azure resource and metrics access
  • aiohttp for async HTTP operations
  • Pydantic v2 for strict data validation and schema enforcement
  • Azure Cosmos DB for multi-tenant state and scan results
  • python-dotenv for environment configuration

Cloud Scanning Architecture

  • Secure read-only IAM / RBAC access (no delete permissions, ever)
  • Async scanners for AWS and Azure resources
  • Metrics-driven idle detection using:
    • CloudWatch (AWS)
    • Azure Monitor
  • Conservative defaults:
    • If metrics are missing or ambiguous, the resource is skipped
    • No assumptions, no forced classification

Each idle candidate includes a human-readable idle reason

(e.g. actual CPU %, thresholds, and time window), not just a binary flag.

AI-Powered Recommendation Engine

  • AI evaluates enriched resource context (metrics, configs, tags, history)
  • Produces structured recommendations:
    • KEEP
    • DOWNSIZE
    • DELETE
  • Each recommendation includes:
    • A confidence score
    • Cost impact estimates
    • Reasoning trace

The system is explicitly engineer-in-the-loop:
No automatic actions are taken.

Notifications & Integrations

  • Webhook-based notifications for detected idle resources
  • Payloads include detailed idle reasons and context
  • Supports integration with tools like Slack, Teams, or internal systems
  • Retry logic and validation to ensure delivery reliability

Design Principles

  • Async-first for scale and speed
  • Modular codebase with strict size limits per module
  • Transparent logging and graceful degradation
  • Safety over aggressiveness
  • Explainability over black-box decisions.

Why This Scales

CloudSweeper is designed to scale across hundreds or thousands of cloud accounts:

  • Fully async scanning architecture
  • Stateless scanners with tenant isolation
  • Cloud-provider–agnostic recommendation layer
  • Designed for continuous scans, not one-off audits

As cloud usage grows, CloudSweeper grows with it—without requiring more human effort.

Top comments (5)

Collapse
 
varshithvhegde profile image
Varshith V Hegde

Awesome !!

You can embed the mux player using below :
{% embed https://player.mux.com/rjEuncpGv1yFFjvNHJ2NWGRmb6knVq01TDX9xHqNnSMw %}

Collapse
 
aryan4266 profile image
Aryan4266

I like the idea, but I’ll be blunt — the pitch feels a bit generic at first glance.

“AI FinOps / cloud waste” is an extremely crowded space, so unless the differentiation is obvious within the first 10 seconds, people may scroll past.Many teams already use tools that flag idle resources or estimate cost savings.

For example, we use Flexera (Spot.io). It’s not just about cloud cost optimization — one of many features they offer — but the key differentiator for us is how it handles Reserved Instances (RIs), distributing them across multiple accounts efficiently.which gives us huge savings beyond AWS’s native pricing. That’s a feature that really stood out for us.

What would really make CloudSweeper stand out is highlighting measurable differentiators upfront — for example, confidence-scored recommendations that prevent risky deletions, risk modeling, or savings beyond what AWS native tools offer.

Good luck

Collapse
 
qlooptech profile image
QLoop Technologies

Thanks for the candid feedback — this is fair, and I appreciate the specificity.

You’re absolutely right that “AI + FinOps” is a crowded space, and many tools already do a good job at detecting idle resources or optimizing pricing constructs like RIs. CloudSweeper isn’t trying to compete head-on on every FinOps dimension (like RI arbitrage or commitment management).

Where we’re intentionally different is decision confidence, not detection.

In many environments we’ve seen, the bottleneck isn’t identifying waste — it’s engineers hesitating to act because ownership is unclear, metrics are incomplete, or the blast radius isn’t apparent. That’s why CloudSweeper focuses on:

Explaining why a resource looks idle (with concrete metrics and time windows),

attaching a confidence score to recommendations,

and defaulting to conservative behavior when signals are ambiguous.

We should probably surface that differentiation more aggressively in the first few seconds of the pitch — your point there is well taken.

Appreciate the thoughtful comparison and the feedback. This is precisely the kind of input that helps sharpen the product and the message.

Collapse
 
7tiwch_96ca9d860eda886af9 profile image
7tiwch

Avec cette prente, on donne une description à des personnages, le génie, le roi, et Mary Gold, la princesse et la fille de roi, pour que quand je coupe les scènes pour les envoyer à IAI pour générer un vidéo, ils me puissent donner les mêmes personnages sans changer quelque chose.:Style général :
Vidéo animée cinématographique, conte féerique, ambiance magique et dramatique, éclairage doré, musique orchestrale douce puis sombre, narration voix off grave et chaleureuse, animation fluide type film Pixar/DreamWorks mais plus réaliste, détails riches, profondeur de champ, mouvements de caméra lents et élégants.
🎭 SCÈNE 1 – OUVERTURE
Un rideau royal rouge s’ouvre lentement dans une chambre immense remplie de trésors dorés : coffres empilés, pièces d’or, bijoux scintillants, statues dorées.
La lumière chaude reflète l’or partout.
👉 Inclure une petite figurine animée d’une jeune fille (Marygold), délicate et lumineuse.
👉 Inclure une petite figurine animée du roi Midas, richement vêtu, couronne dorée.
🎙️ Voix du narrateur (calme et mystérieuse) :
« Il était une fois, dans un palais lointain, un homme qui possédait tout ce qu’un être humain pouvait désirer : la puissance, le respect… et une fille magnifique nommée Marygold.
Mais pour le roi Midas, rien n’était jamais suffisant. Son cœur ne battait pas pour les gens, mais pour le son froid et métallique des pièces d’or. »
Le roi rit en tenant de l’or dans ses bras.
✨ SCÈNE 2 – LE DÉSIR
Le roi touche lentement l’or autour de lui, fasciné.
🎙️ Roi Midas (voix avide) :
« Oh, mon précieux or… tu es si brillant, si pur.
Les fleurs fanent, les gens vieillissent, mais toi tu es éternel.
Si seulement chaque pierre, chaque feuille, chaque goutte d’eau pouvait devenir cet éclat jaune que j’aime tant… »
💥 Un bruit effrayant.
Un génie mystérieux apparaît derrière les rideaux, entouré de fumée et de lumière surnaturelle.
🎙️ Roi (effrayé) :
« Qui est là ? Qui ose déranger mon silence ? »
🎙️ Génie (voix grave et puissante) :
« Je suis celui qui peut transformer tes rêves les plus fous en réalité, Midas.
Es-tu prêt à obtenir ce que tu désires vraiment ? »
🧞 SCÈNE 3 – LE VŒU
Conversation intense entre le roi et le génie.
🎙️ Roi :
« Je veux que tout ce que je touche se transforme en or pur. »
🎙️ Génie :
« C’est un souhait dangereux…
Mais soit. Dès demain, au lever du soleil, tu auras le toucher d’or. »
🎙️ Roi (fou de joie) :
« C’est incroyable ! Je suis l’homme le plus riche du monde ! »
🍎 SCÈNE 4 – LA MALÉDICTION
Le lendemain matin.
Le roi prend une pomme pour manger — elle se transforme en or.
Il verse de l’eau — elle devient or liquide.
🎙️ Roi (désespéré) :
« Oh non ! Ma pomme ! Elle est dure comme la pierre !
Et mon eau… c’est de l’or !
Je ne peux ni manger ni boire ! »
🌸 SCÈNE 5 – LA PERTE
Dans le jardin du palais, lumineux et fleuri.
Le roi touche les fleurs : elles deviennent dorées.
🎙️ Marygold (en pleurs) :
« Père ! Regardez mes jolies fleurs… elles sont devenues froides et sans odeur. »
🎙️ Roi (essayant de la rassurer) :
« Ne pleure pas, ma fille… »
💥 Il la touche.
Marygold se transforme en statue d’or.
🎙️ Roi (cri de terreur) :
« Non ! Marygold ! Ma fille !
Qu’ai-je fait ?
L’or est une malédiction ! Rendez-moi ma fille ! »
🌊 SCÈNE 6 – LA RÉDEMPTION
Le génie réapparaît.
🎙️ Génie :
« Alors, Midas… es-tu enfin satisfait ? »
🎙️ Roi (à genoux) :
« Je suis un imbécile !
Prends tout mon or, mais rends-moi ma fille ! »
🎙️ Génie :
« Va à la rivière.
Lave tes mains et asperge de cette eau tout ce que tu as changé en or. »
Le roi obéit.
Il asperge sa fille.
✨ Marygold redevient humaine.
🎙️ Marygold :
« Oh, père ? Que s’est-il passé ? »
🎙️ Roi (ému) :
« Rien, ma chérie…
J’ai juste appris qu’un morceau de pain et ton sourire valent plus que toutes les montagnes d’or du monde. »
🌅 SCÈNE 7 – CONCLUSION
Retour dans la chambre aux trésors du début, désormais silencieuse et vide.
Plus de roi. Plus de princesse.
🎙️ Narrateur (sage et doux) :
« L’avidité mène à la perte.
Et les choses les plus précieuses dans la vie ne sont pas matérielles. »
✨ Fondu au noir.

Collapse
 
blogger profile image
Coder

Impressive take on the FinOps confidence gap