Mediapilote Backlinks, AI agent-driven link building
Under contract · Mediapilote● Live
A link-building platform where an AI agent audits a client’s links, finds media outlets, negotiates by email and tracks articles, on Cloudflare Workflows.
Context
Link building involves a lot of manual work: auditing a site’s links, finding relevant outlets, contacting them, negotiating, checking publication, then making sure the link stays live. Mediapilote wanted to turn it into a product, with a client area and built-in invoicing.
The project started in late August 2026 from a product specification and a complete mockup. It relies on the intranet for accounts and on the internal SEO tool for backlink data.
Challenge
The core of the product is a long, asynchronous process: an exchange with an outlet can stretch over several weeks, with follow-ups, unexpected replies, refusals or disputes. Every step had to survive restarts and hand control back to the team when a decision falls outside the agreed scope.
The agent writes to real outlets on the agency’s behalf. Its emails had to stay plain, be transparent about their purpose and honour opt-out requests, and the team had to be able to test everything without sending anything.
Approach
I set up a Cloudflare monorepo with a Next.js web app and an agent Worker, built in sprints: authentication, client portfolio, onboarding and weekly audits, source discovery and scoring, acquisition, article generation, client area, Stripe payments and Factur-X invoicing, link monitoring and disputes. Each process is a durable Workflow, split into atomic steps to stay within duration limits.
Outgoing emails go through automatic checks (length, personalisation, opt-out link), and a simulation mode redirects everything to a test address. Incoming replies are classified by AI and attached to the right opportunity. The interface was compared screen by screen with the mockup until every blocking gap was closed.
(04) — Results
Key figures- 4
- days to production
- 18
- email templates
- 6
- development sprints
- 83
- commits
