A WhatsApp bot that grades the internet against your résumé
Noria listens for links in your chats, scrapes them, and has an LLM score each opportunity against your profile before pinging you.
What it does
Noria is an agentic pipeline that sits in your WhatsApp chats (or other messaging setups). When someone shares a URL, it scrapes the page via Jina or Puppeteer, feeds the text to Gemini (with Groq as fallback), and evaluates it against a scoring matrix tied to an applicant profile — think jobs or scholarships. If the match score clears 50, it sends a formatted summary back to your assigned number; below that, it stays quiet. A Streamlit “Control Center” handles profiles, scan configs, and QR-linked WhatsApp connections.
The interesting bit
The architecture is unusually earnest for a WhatsApp bot: strict hexagonal architecture, a functional registry that validates every module’s interface at boot, and declarative YAML pipelines per domain. The business logic (prompts, templates) lives in pure domain modules while scrapers, LLMs, and messaging sit behind stateless adapters — so swapping Groq for something else is a wiring change, not a rewrite.
Key highlights
- Event-driven flow:
link_extracted→ scrape → LLM verdict → conditional notify, with a memory cache to skip duplicate URLs - LLM fallback chain (Gemini → Groq) and resilient scraping across multiple adapters
- Declarative pipeline configs in
pipelines/jobs.yamlandpipelines/scholarships.yaml - 223 unit tests with a stated >90% coverage gate
- Ships a self-contained Windows executable that bootstraps its own Python/Node dependencies
Caveats
- The 50-point match threshold is hardcoded into the flow rather than configurable per profile, at least as documented
- It’s a hybrid Node.js + Python (Streamlit) stack — two runtimes to keep happy
- WhatsApp connectivity relies on QR-linked listener tooling; the README doesn’t detail which library or its ban-risk story
Verdict
Worth a look if you want a working reference for hexagonal architecture in an LLM pipeline, or genuinely want job/scholarship alerts in WhatsApp. If you just need a scraper, this is a lot of ceremony for that.
Frequently asked
- What is AhmadHassan-BTed/Noria?
- Noria listens for links in your chats, scrapes them, and has an LLM score each opportunity against your profile before pinging you.
- Is Noria open source?
- Yes — AhmadHassan-BTed/Noria is open source, released under the MIT license.
- What language is Noria written in?
- AhmadHassan-BTed/Noria is primarily written in JavaScript.
- How popular is Noria?
- AhmadHassan-BTed/Noria has 4.6k stars on GitHub.
- Where can I find Noria?
- AhmadHassan-BTed/Noria is on GitHub at https://github.com/AhmadHassan-BTed/Noria.