Dating Communication Automation Extension
System Architecture //
1. System Overview
This is a production browser extension for automating dating communication. It brings together an operator interface, an API, a background orchestrator, and PostgreSQL as one controlled workflow
The extension supports both chat campaigns and letter campaigns, giving operators one workspace for profiles, templates, media, and external channels with visible campaign state, heartbeat control, and an audit trail
2. The Challenge
Dating campaigns ran across several external communication channels with different rules, formats, and session states. Manual work created risks of duplicate sends, lost context, stuck processes, and unpredictable behavior after a browser was closed or a session expired
There was also no single control layer: templates, profiles, queues, media, pauses, and outcomes lived in separate parts of the process and required constant supervision
3. What I Built
Browser-based session control
The extension works on top of a real authenticated browser session and transfers the required state without storing passwords or performing separate background logins. If the session disappears, the browser closes, or the heartbeat stops, the orchestrator pauses activity and waits for a safe recovery
One operator workspace
Profiles, chat campaigns, letter campaigns, templates, galleries, pauses, and statuses are managed from one interface. Differences between external channels are hidden behind a shared model, so the operator works with one process instead of a collection of disconnected scripts
A resilient orchestrator
The FastAPI server and asynchronous response engine manage queues, timeouts, verification retries, and step order. Heartbeats are checked continuously, while stalled or unavailable operations are prevented from blocking the entire campaign
Duplicate and delivery protection
The system keeps a sending history, tracks active conversations separately, and uses a blacklist window to avoid returning to the same recipient too soon. Different campaign types keep their own states, templates, and media sets
Data for campaign improvement
Every send is recorded with its template and profile context. This makes it possible to compare variants, study responses, and make decisions from accumulated performance data instead of intuition


4. Result
The system operates as a stable operational layer rather than a collection of manual macros. The saved run statistics show 8,452 messages sent with 0 recorded errors
The main result is control: operators can see what is happening, the system does not guess its way through authentication, duplicates are filtered, and a lost browser session does not turn into uncontrolled activity
5. Architecture
Chrome extension, Python, FastAPI, asynchronous orchestration, PostgreSQL, Docker, heartbeat monitoring, queues, telemetry logs, and isolated browser sessions