Nothing to handle today
Nothing urgent - a glance at the optional signals at the bottom of the page if you have a moment.
Quick access
The essentials of the content system, without leaving the page - full library on Content.
Signals to approve (471) - optionnel
Newly detected opportunities - promote or dismiss whenever it suits you, full review on Signals detected.
How the engine runs - optional
Two engines. A single human checkpoint.
The system is made of two engines running in parallel that sometimes hand work to each other. Click a module to see what it actually does - and where the action already exists higher up on this page (replies, follow-ups, sequences, partners), the link jumps straight there rather than to another tab.
DRY_RUN on right now, no email is actually sent. Spot the two modules outlined in red below: that is the boundary.
Market signals (press, government registries, industrial park operators, job postings), Google Maps by category, tracked LinkedIn engagement, referral. They all converge into prospects.origin.
A prospect coming from LinkedIn engagement goes through real ICP rules (or a Claude judgement call when it is ambiguous). A prospect coming from a market signal or Google Maps is qualified "by construction": the search itself already targeted the right market, so this step is skipped.
Referral (40) > multi-signal confirmation (25) > signal strength (30, depends on the source) > company size (20) > freshness (10, decaying with the age of the signal).
Client history (free, reuses a real known email) → free web search → Kaspr (capped) → Apollo (paid, last resort). Each step is only attempted if the previous one returned nothing.
The free pass (regex + MX check for email, format for phone) runs on everyone via cron. The paid pass (NeverBounce / Twilio) stays a manual click, one prospect at a time - never in bulk.
The approved template for this (market, track) is rendered with a single real personalised variable - the signal line. A market with no approved sequence never generates an email, even if everything else in the machine ran fine.
Compiled batches wait for manual approval on /lots (2026-08-12: replaces the Telegram flow, never configured on this deployment). A batch moves from draft → approved/rejected. Nothing can be sent without going through it.
Sent through Instantly, only for an approved batch, with a final unsubscribe filter applied at the moment of sending. Never called by cron - always triggered by hand.
DRY_RUN on right now: nothing has actually been sent.
Not opened after 4 days → new subject line, same problem seen from another angle. Opened but no reply after 5 days → a new concrete angle ("just following up" phrasing is explicitly banned).
Claude classifies intent (interested / question / not interested / later / off-topic / unsubscribe). Only "interested" and "question" are escalated to the team on Telegram. A polite "not interested" does not unsubscribe anyone - it goes back to the partner engine (orange bridge).
Metrics per subject/angle variant, automatic alert on bounces and spam. Automatic selection of the best variant waits for at least 20 sends per variant - not reached yet, the data is still too thin.
The studio's Gmail history was mined once, under NDA, to rebuild every real client relationship - not a hypothesis, lived experience.
Every relationship classified by market (outsourcing / dedicated) and by "is it worth following up". Some classifications had to be adjusted by hand when the automatic analysis budget ran out - owned and documented, not hidden.
Quotes to follow up, deliveries awaiting client sign-off, silent projects, referral requests on won quotes, former clients to reconnect with. Each has its draft ready and its one-click Gmail send.
A reply in the thread of a follow-up already sent (never a fabricated cold prospect) is read by Claude and classified (accepted / question / refusal / stop contact / other). Shown with the full text directly here on /flux - no longer escalated through Telegram (bot confirmed broken, see the Approval module above), until a human marks it seen. It never changes the quote status or the client record - only a human decides.
A single contact seen at at least 2 different companies behaves like a business introducer. A contact with at least 5 relationships at a single company is an under-managed account. Never put into a cold sequence.
Technical status of today's cron (task by task)
Each node is a scheduled task, in the order it runs each day. Green = ran successfully today or recently, red = failed, grey = never run.
Database copy to the other VPS
No individual tracking (system script, not a Python task).
Continuous tasks, outside this chain: engagement watch (30 min), reply reading (30 min), "Run the scan" button (10 min) · Weekly: partners (Monday), digest (Friday).