https://github.com/kolesnikova-dev/finance-notifier
FinanceNotifier is a weekly background job that scrapes news articles, summarizes them with Google Gemini Flash and sends me an email with the summarized articles
https://github.com/kolesnikova-dev/finance-notifier
csharp dotnet google-gemini-ai hangfire html-agility-pack playwright
Last synced: 11 months ago
JSON representation
FinanceNotifier is a weekly background job that scrapes news articles, summarizes them with Google Gemini Flash and sends me an email with the summarized articles
- Host: GitHub
- URL: https://github.com/kolesnikova-dev/finance-notifier
- Owner: kolesnikova-dev
- Created: 2025-06-14T22:56:13.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-29T20:20:47.000Z (about 1 year ago)
- Last Synced: 2025-06-29T21:18:01.817Z (about 1 year ago)
- Topics: csharp, dotnet, google-gemini-ai, hangfire, html-agility-pack, playwright
- Language: C#
- Homepage:
- Size: 30.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FinanceNotifier
FinanceNotifier is a C#-based background service that scrapes important financial news, summarizes it using AI, and delivers it to my inbox weekly.
The goal is to keep users up to date on key financial developments — without requiring them to actively monitor news sources.
## Features
- Scheduled weekly scraping job (every Sunday at 6AM EST)
- Concurrent web scraping using `HttpClient` and `HtmlAgilityPack`
- AI-generated article summaries (summarizied by `Gemini Flash`)
- Email delivery via `MailKit`
## Built with clean architecture and asynchronous C# practices
📌 Tech Stack
C# (.NET)
- `Hangfire` for reliable background scheduling
- `Playwright` for scraping SPAs with dynamic content
- `HtmlAgilityPack` for HTML parsing
- `HttpClient` for data fetching
- `MailKit` for email sending
- `Gemini Flash` integration
## Architectural Choices
Typically, I prefer built-in solutions, however, after conducting research I made following decisions:
- Picked `Hangfire` over `System.Timers` for retry support
- Picked `MailKit` instead of `SmtpClient` as it is becoming obsolete