DEV Community

Cover image for OpenScout: An Autonomous Open-Weight AI Event Scout
Ayush P
Ayush P

Posted on AI-assisted

OpenScout: An Autonomous Open-Weight AI Event Scout

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🀝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend


What I Built

I built OpenScout – Personal Open Source Event Notifier, an autonomous AI-powered scout that monitors, aggregates, and ranks developer events, hackathons, and open-source meetups based on deep semantic relevance.

Who I Built It For & The Problem It Solves

I built OpenScout specifically for my close friend, who is deeply interested in open-source development, developer meetups, hackathons, and cutting-edge topics in AI/ML, DevOps, Docker, Kubernetes, and Cloud Computing.

Living in India, my friend constantly looked for events in Pune, Mumbai, or global Online hackathons. However, they kept missing incredible opportunities because developer event announcements are scattered across dozens of fragmented websites, RSS feeds, Discord communities, and social media threads. Manually tracking all of these sources was exhausting, and relevant events often slipped by unnoticed until registration had already closed.

Before writing a single line of code, I discussed this problem with my friend. They confirmed that having a personal agent that understands their exact technical interests, uses AI to filter through the noise, explains why an event is worth attending, and alerts them automatically would be a game-changer.


Code

OpenScout πŸ”­

Personal Open Source Event Notifier

Built for Hacktoberfest 2026 DEV Challenge β€” β€œBuild for a Friend”

Python 3.11 FastAPI Open-Weight AI License: MIT


1. Problem

My friend is deeply passionate about developer meetups, open-source conferences, hackathons, and cutting-edge topics across AI/ML, DevOps, Kubernetes, and Cloud Computing.

However, they constantly missed relevant events happening in their local cities (Pune and Mumbai) or globally Online. Why? Because event listings are fragmented across dozens of separate sites, newsletters, Discord channels, Meetup groups, and RSS feeds. Sifting through hundreds of irrelevant generic announcements takes too much time, so great opportunities slipped by.

Before writing a single line of code, I discussed this problem directly with my friend. They enthusiastically confirmed that having an autonomous personal event agent that aggregates open-source opportunities, deeply understands their technical interests, ranks matches using AI, and alerts them when an event is worth attending would be genuinely useful.


2.

…

The repository contains:

  • FastAPI backend with clean REST endpoints and an extensible EventSource architecture.
  • Open-weight AI relevance engine built for local inference via Ollama (Gemma).
  • SQLite persistence layer for profile preferences, event storage, user feedback (Interested / Not Interested), and notification logs.
  • Frontend Dashboard built with accessible, responsive HTML5/CSS/Vanilla JavaScript (no bulky frameworks required).
  • Autonomous background runner (scheduler.py) and Docker configurations (Dockerfile, docker-compose.yml).
  • Comprehensive test suite with 100% passing tests across AI parsing, deduplication, and API routes.

How I Built It

OpenScout puts open-weight AI at the core of the system, not as a cosmetic addition:

                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚   Event Sources  β”‚ (Live Dev.to Feeds, FOSS Seeds)
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         ↓
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚ Event Collector  β”‚ (De-duplication & HTML Sanitization)
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         ↓
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚    SQLite DB     β”‚ (Events, Profile, Feedback)
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         ↓
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚  Open-Weight AI  β”‚ (Gemma 2 / Gemma 3 via Ollama)
                β”‚ Relevance Engine β”‚ (Strict JSON: Score, Reason, Tags)
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         ↓
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚ Web Dashboard &  β”‚ (Ranking, Feedback Loop &
                β”‚   Notification   β”‚  High-Relevance Alert Dispatch)
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Enter fullscreen mode Exit fullscreen mode
  1. Open-Weight Model: The application uses Google's open-weight Gemma (gemma2:2b / gemma3:4b) running locally via Ollama.
  2. Semantic Decision Engine: For every event collected, the engine presents the user's interests, locations, and the event details (title, description, tags, location, online status) to the model.
  3. Structured JSON Output: The open-weight model outputs structured JSON with:
    • relevance_score: Float between 0.0 and 1.0.
    • matched_interests: Precise list of matched topics (e.g., ["Kubernetes", "DevOps"]).
    • reason: A concise, human-readable explanation of why the event fits.
    • should_notify: Boolean indicating whether the score meets or exceeds the user's notification threshold and matches preferred locations.
  4. Resilient Local Architecture: If the local inference daemon is temporarily starting up, OpenScout features an open-weight fallback simulation so demos and tests remain 100% verifiable and functional without relying on proprietary cloud APIs.
  5. Feedback Loop: When my friend marks an event as Interested or Not Interested, the feedback is stored in SQLite to build a dataset for personalization and future few-shot prompt adaptation.

Why Does Open Innovation Matter?

Open innovation and open-weight models are the cornerstone of OpenScout. Here is why open AI was essential and why closed proprietary APIs (like OpenAI or Anthropic) were rejected:

  1. Complete Data Privacy & Sovereignty: A developer's technical interests, learning goals, and physical location are private personal data. By running an open-weight model locally through Ollama, zero personal preferences or queries ever leave my friend's laptop.
  2. Zero Recurring Token Costs: An autonomous event scout needs to evaluate dozens of incoming event descriptions periodically in the background. With proprietary APIs, running batch inferences 24/7 quickly accumulates monthly API bills. Open-weight models offer unlimited, cost-free local inference.
  3. No Closed-API Dependency or Vendor Lock-in: If a commercial API changes its terms of service, deprecates endpoints, or revokes API keys, proprietary wrappers break. Because OpenScout runs on open weights, it can run completely offline, indefinitely, on any standard developer hardware.
  4. Full Transparency and Customizability: With open-weight models, we retain full control over model parameters (temperature, system constraints, token limits) and can switch between open models (gemma2:2b, mistral, llama3.2) with a single environment variable change (MODEL_NAME).

Prize Categories

  • Hacktoberfest Weekend Challenge: Build for a Friend
  • Open-Source AI / Open Innovation Track

Top comments (0)