Here's a pattern every solo founder knows: you finish dinner, open your phone, and there are three customer emails from the last four hours — all sitting unanswered.
Two recent threads on r/smallbusiness described the same trap from opposite sides. One founder put an AI agent on their support inbox and now checks it constantly because "the agent only needs human help for about 90 seconds a day — but I don't know WHICH 90 seconds." Another just wanted customers who write at midnight to get something back before morning, without handing the whole inbox to a bot.
The uncomfortable truth: customers don't wait until business hours anymore. A lead who emails at 11pm and hears nothing until 9am has already visited your competitor's site. But a full 24/7 AI support agent is overkill (and a trust risk) for most small operations.
The middle ground nobody builds anymore
Not a chatbot. Not a human. An auto-responder with judgment:
- It knows when you're off the clock (including cross-midnight shifts — 22:00–06:00 counts as "after hours" even though it spans two dates)
- It sends a useful reply during those hours: matched from your own FAQ list, in the customer's language (English or Chinese), not a generic "we got your email"
- It stays quiet during business hours — you answer those yourself, like an adult
- It respects a whitelist (VIPs get flagged for you, not auto-answered) and never answers the same email twice (message-id dedup)
- It has a daily send cap, so a mail loop or spam burst can't turn into 500 embarrassing auto-replies
What I built: a cron-sized after-hours responder
A single-file Python CLI (pure standard library — just imaplib and smtplib, zero pip installs) that does exactly the above:
- IMAP in, SMTP out — works with any mailbox, including plain Gmail app passwords
- Schedule windows — define your off-hours once; cross-midnight windows handled correctly
- FAQ matching — keyword-scored against your FAQ file; matched → tailored reply, unmatched → polite "we'll reply first thing" with your response-time promise
-
--dry-runmode — preview exactly who would get what, before you let it send anything (this is the feature that lets you sleep at night) - Exit code contract — 0 = nothing to do, 1 = replies sent, 2 = error. Bolts straight into cron:
# Every 10 minutes, answer only what arrives after hours
*/10 * * * * python afterhours_responder.py --config faq.yaml --max-daily 40
-
Your credentials stay local — config lives in
~/.afterhours/, no third-party SaaS reads your inbox
Why this beats "I'll check in the morning"
The 11pm emailer isn't necessarily angry — they just expect acknowledgment. A specific, useful reply at 11:04pm ("yes, we support CSV import, here's the format") converts. Silence until morning doesn't. And unlike a full AI agent, this thing can't go rogue: it answers from your FAQ file, capped, whitelisted, and previewable.
If you run a small business, a side project, or an agency inbox that never sleeps — the full kit (responder + FAQ config + README with cron and Gmail app-password recipes) is on AgentChip. One-time purchase, no subscription, your inbox never leaves your machine.
Related: if your problem isn't after-hours email but knowing when a competitor changes their pricing page, we built a watcher for that too — same philosophy: one file, zero dependencies, cron-friendly.
Top comments (0)