Logo Lanfrica

Emmanuel326/tinymuscle

Domain:

digital infrastructure

Record type:

software
Creator:
Emm
Host:
AI agent that hunts government tenders across African procurement portals. Powered by TinyFish. # TinyMuscle TinyMuscle is a stateful web intelligence pipeline that turns any structured page on the live internet into a monitored, deduplicated, queryable feed — with no brittle CSS selectors, no headless Chrome configuration, and no per-site maintenance burden. Built for African government procurement portals: sites running decade-old PHP, behind Cloudflare, with inconsistent pagination, broken SSL, and no public API. If it works there, it works anywhere. --- ## The Problem Government tenders, UN procurement notices, grant opportunities — the data exists. It is public. It is valuable. But it lives behind the worst UIs on the internet: JavaScript-rendered tables, multi-step pagination, session cookies, CAPTCHA walls, and PDF links three clicks deep. A Nairobi-based construction firm misses a KSh 50M contract not because they were unqualified but because the portal was down on the day it was posted and nobody checked again. Traditional scrapers break the moment a developer renames a CSS class. Scheduled curl jobs get IP-banned. Manual monitoring does not scale past two or three portals. --- ## The Architecture TinyMuscle makes one architectural bet: delegate all browser complexity to TinyFish and own everything else. ``` TinyFish (browser agent) ↓ SSE stream — partial results committed in real time Extractor (raw JSON → Tender structs) ↓ shape-agnostic — handles flat arrays and nested objects Gemini 2.5 Flash (relevance scoring against business profile) ↓ single LLM call per batch — not per tender BBolt (two-key deduplication) ↓ primary key: portalID + referenceNumber ↓ version key: SHA256 of content fields SSE broadcast → Dashboard ↓ on demand TinyFish (document fetcher) ↓ navigates to tender notice, finds and extracts all documents Gemini 2.5 Flash (analyzer) ↓ reads documents against business profile Analysis: summary, eligibility, required docs, draft bid response ``` Each stage has one job. Nothing crosses boundaries. The scheduler does not …