About this project
i2i-yield-watch is a hands-off watcher for the i2iFunding P2P lending marketplace. A scheduled GitHub Actions run performs three scraper passes at roughly five-minute spacing inside a 15-minute cron window, normalises and scores each loan by yield and credit, and sends alerts when newly qualifying loans appear. All state is kept in committed JSON files under data/ (git-as-DB), so no external database is required; an optional Firestore backend can be re-enabled via an environment variable.
Scraping uses Playwright to intercept the site's own XHR calls, since direct HTTP requests to the listing API are blocked. The scraper attaches a response listener before navigation, waits for the initial batch, then clicks "Show More" until the row count stabilises, returning deduplicated rows. Whole-session retries with backoff are included.
Notifications go to Telegram (and optionally ntfy). Logic distinguishes new loans above a configurable rate gate, a silent bucket summary grouped by rate bands, a loud tier for loans crossing a high-rate threshold, qualifying-set change summaries, and an optional periodic digest. Dedup state prevents re-announcing the same loan. A Telegram command bot allows on-demand workflow dispatch (scrape, invest, wallet, digest, status, ping) and is kept alive by a self-handoff mechanism plus a tick pinger workflow.
The dashboard is a static GitHub Pages single-page app that fetches the committed JSON files directly. It offers active/archived tabs, month pills, filters for rate, priority, credit and product, search, sort, pagination, charts, keyboard shortcuts and dark/light themes.
An optional auto-investor can place and reverse real investments through direct HTTP calls with auto-login. It ships safe-gated: dry-run by default, and real placement requires both a live flag and a transaction PIN, with a default rate gate above 100%. Selection ranks loans by rate and credit score, sizes positions within per-loan caps and wallet balance, and stops on any mid-run error. Multi-account support lets several logins share the portfolio, each with its own credentials, gates and dedup namespace. Additional features include near-miss reporting for loans that pass the rate gate but fail the credit gate, and an idle-capital watchdog that nudges when no qualifying loan appears for a configurable number of days.
Security notes: no secrets are committed; environment files and service-account JSON are git-crypt encrypted, credentials live in GitHub Actions secrets, and no borrower PII is stored in the public repository. The project is MIT licensed and described as stable and running in production. It is presented as general information and personal automation, not investment advice; P2P lending carries real risk of capital loss.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.