JobHound
TELEGRAM ↗ @UseJobHoundBot
Problem
Several people want different job alerts from one bot, without one user’s state leaking into another’s.
Decisions
Per-user state in SQLite.
Deduplicated delivery so a restart does not resend. Scheduling that recovers from a missed run instead of skipping it.
[ INSPECT ]One scheduled run
example
- 01Schedule due
A user's schedule comes up; a run missed while offline runs on the next start.
- one user's rows only02Load that user
Their filters, seen-set, and schedule. Nothing is shared with another user.
- 03Match
New jobs are checked against that user's filters.
- 04Record
The alert is recorded as delivered before it is sent, so a duplicate is dropped.
- 05Send
Delivered to that user's Telegram chat.
interpretation
Drawn for the archive from the architecture summary. It shows the order of one run and where a user’s scope begins; it is not a code listing.
Validation
Isolation, deduplication, and recovery, as the architecture records them.
60+ automated tests cover per-user data isolation, source selection, and on-demand search, with manual end-to-end QA in Telegram before release.
[ INSPECT ]Architecture summary
documented
- Isolation
- Each user’s filters, seen-set, and schedule live in their own rows.
- Deduplication
- Delivered alerts are recorded before sending; duplicates are dropped.
- Recovery
- Missed schedules run on next start rather than being lost.
interpretation
Described from the project status record. No tokens, chat identifiers, or database contents are shown. The repository is private.