---
title: "How to Build an AI-Powered SEO Outreach Workflow"
url: https://adtech.lol/articles/012744c1-f84d-4934-9165-790c51a78611
source_url: https://searchengineland.com/how-to-build-an-ai-powered-seo-outreach-workflow-497259/
source_site: searchengineland
author: "Miloš Radić"
published: 2023-10-02T00:00:00+00:00
tags: ["SEO", "AI", "Outreach", "Backlink Analysis", "Citation Monitoring"]
publisher: AdTech Radar
---

# How to Build an AI-Powered SEO Outreach Workflow

> This article explores an innovative approach to SEO outreach that integrates traditional backlink analysis with AI citation data to identify unexplored opportunities for linking.

## Introduction

Traditional backlink gap analysis helps identify websites that link to competitors but not to your brand. It can also miss another set of outreach opportunities: third-party pages that regularly appear as sources in AI-generated answers.

To find those opportunities, I built an AI-powered SEO outreach workflow that combines competitor backlink data with AI citation data. Using an AI coding agent, I turned that approach into a custom tool for prospecting, contact discovery, outreach tracking, and reply alerts — without a traditional development background.

## How the AI-powered SEO outreach workflow came together

The idea was to identify third-party pages that already influence discovery and earn relevant mentions on them. If a page repeatedly appears as a source in AI answers, getting mentioned there may improve our chances of appearing in the same information ecosystem.

I don’t assume a causal relationship. I treat citation frequency as a more relevant outreach prioritization signal for this goal than Domain Rating (DR) alone.

That meant looking at two overlapping sets of pages: those linking to competitors and those cited in monitored AI answers. The challenge was bringing both into one actionable list that I could manage on my own.

### What didn’t work: No-code automation and live API queries

Two approaches failed before I found a workable solution.

**Dead end 1 — Make.com:** I initially tried connecting Ahrefs, Google Sheets, and Lemlist through Make.com.

But merging data sources, ranking prospects by custom signals, and finding contacts with fallback options proved cumbersome in its visual interface. I spent more time configuring modules than thinking about SEO.

**Dead end 2 — Live Ahrefs queries:** I then tried pulling data directly from Ahrefs to keep it fresh.

Under my API setup, large result sets consumed significant units. My first competitor intersection returned 311,000 domains, and every refresh consumed more units.

The solution was to build a small local app using a prefiltered CSV export. I narrowed the initial 311,000 domains to about 39,000 in Ahrefs, then processed the data locally. After deduplication and filtering for DR 40+, 500+ monthly organic visits, English-language sites, and spam patterns, roughly 24,000 domains remained.

This approach eliminated repeated API queries and let me sort and filter the data locally without additional Ahrefs API costs.

### Combining two signals to identify and rank outreach opportunities

With the data stored locally, the real move was to stop treating it as one giant pile and start treating it as two signals I could overlay. The logic runs in four steps:

- **Traditional backlink gap analysis answers:** Who mentions or links to competitors but not us?
- **AI citation monitoring answers:** Which third-party pages repeatedly appear in the answers we’re tracking?
- **The intersection answers a more useful outreach question:** Which missing mentions occur on pages that appear important in both environments?
- **Citation frequency:** This is a prioritization heuristic, not a proven ranking factor.

Overlay them into one board and tag every domain by where it shows up:

- **Both:** Links to rivals and gets cited in monitored AI answers. Top priority.
- **AI-only:** It turns up as a source but isn’t a classic link target. A gap that conventional backlink audits usually miss.
- **Backlink-only:** The traditional play.

Then rank the board by how often each source appears as a citation in monitored AI answers, rather than by DR. DR indicates a domain’s backlink strength. Citation count gives me a more directly relevant prioritization signal for this particular goal: identifying pages that are already appearing in AI answers. Whether that produces better outreach outcomes than DR is something I’m still measuring — I’ll have a comparison once enough placements have landed either way.

I loaded roughly 24,000 filtered domains into the board and ended with a prioritized list across the three tiers — sorted so the couple hundred rows I consider most actionable sit right at the top. One list, both signals, worked top-down.

## Vibe coding: Prompts, metrics, and costs

I’m not a developer. I’d never shipped a line of production code. After the Make.com detour, I used an AI coding agent to build a local web app over about a week of evenings. The process involved plenty of trial and error, but I eventually built a working tool.

The process that worked for me:

- **Describe one small piece at a time.** Don’t ask the AI to “build me an SEO tool.” Start with one screen, one behavior, or one data source.
- **Review the output and push back.** Half of vibe coding is catching the AI’s mistakes. When it first built the contact finder, it returned an address that looked legitimate but didn’t exist. It had guessed firstname@domain instead of finding a real address. The fix was one more sentence in the prompt.
- **Keep secrets out of the code.** Every API key lives in a single launch script that never gets committed — the one grown-up habit I insisted on from the start.

### The prompts

The prompts that built the core were simple and specific:

- “I have a CSV of roughly 24,000 domains from an Ahrefs link intersect. Build a local web app that loads it into a sortable board. For each domain, show which of my competitors it links to and the count.”
- “Add a second data source: this Peec export of pages where AI answers cite my competitors. Merge it into the board by domain, and tag each row as ‘both’, ‘AI-only’, or ‘backlink-only’. Sort by how often the page is cited in AI answers, not by DR.”
- “For a given domain, find a real contact. Search my outreach tool first. If that fails, scrape the site for a published info@ / marketing@ / support@ address. Never invent an email address.”
- “When someone replies in my email tool, post it to Slack automatically — and include the exact article I’m trying to get into, so I can act without digging.”

That third prompt — never invent an email — is a guardrail I added after the AI tried to make one up.

### Managing API and token costs

Building this way involves two types of costs.

- **API units:** Under my Ahrefs API setup, usage depended on the amount of data returned. Pulling 311,000 domains live was expensive, especially when every refresh consumed more units. The solution was to filter the data in Ahrefs, export a smaller CSV, and process it locally. Once the data was local, resorting and filtering incurred no additional Ahrefs API costs.
- **Tokens:** AI-generated content, such as tailored outreach pitches, consumes tokens. Costs depend on model choice, context size, and volume. Generating pitches for thousands of prospects creates unnecessary expenses. My rule: Spend tokens on the last mile — one tailored pitch for one real target — rather than bulk tasks a filter can handle for free.

The workflow stays affordable by focusing computational resources on the roughly 200 most actionable prospects rather than the entire dataset.

## Putting the AI-powered SEO outreach app to work

The result was a single dashboard with four connected components:

- **Opportunities board:** Roughly 24,000 domains grouped into three tiers (both, AI-only, and backlink-only) and ranked by AI citation count. I can search by domain or URL to find a specific article.
- **Contact discovery:** Finds a verifiable contact or legitimate general inbox for each domain without guessing email addresses.
- **Outreach tracking:** Connects to Lemlist so I can run a light four-touch sequence across LinkedIn and email over roughly eight days and track its status in one place.
- **Reply alerts:** Sends replies to Slack automatically, including the exact article I’m targeting.

### Why the workflow was worth keeping

The tool finds gaps I’d previously overlooked and helps turn them into outreach conversations. Two things convinced me it was worth keeping.

First, combining backlink gaps with AI citation data surfaced pages I’d never have prioritized by DR alone. One example is ZenPilot’s “ClickUp vs Wrike” article, which appears in monitored AI answers and mentions competing products but omits Productive, an agency management software platform. Its low DR would make it easy to overlook in a traditional backlink audit, but its citation frequency makes it a promising outreach target.

Second, the tool connects prospecting with outreach. For each opportunity, it identifies a contact, lets me run a short outreach sequence, and sends replies to Slack with the target article attached.

The first batch generated replies from people close enough to the pages to potentially act on the requests. Instead of stopping at identifying gaps, the workflow helps me find the right people and start conversations.

The initial campaign has generated a 58.6% open rate, 15.3% reply rate, and 31.9% LinkedIn invitation acceptance rate across 760 targets. Whether those conversations translate into placements and improved visibility remains to be seen.

### The limitations

- **Single-user setup:** The app runs locally on my machine. It’s a workbench, not a SaaS product.
- **Manual oversight:** I still review targets and approve messages.
- **AI generation costs:** Fully automating AI-written pitches requires model credits. Otherwise, I write them myself.
- **API constraints:** Rate limits and costs apply, and the tool depends on the quality of its two data sources.
- **Citation coverage:** Results reflect the AI prompts I monitor. Different prompts could surface different pages.

## Why this isn’t a shortcut to building a product

It’s tempting to think you can vibe-code a SaaS product in a week. I work at a SaaS company, and it’s not that simple.

My tool serves one user, runs on one laptop, and stores everything in JSON files. That simplicity made the quick build possible.

Adding a second user would require authentication, permissions, and data isolation. Supporting multiple customers would mean implementing multitenancy, a database, migrations, and tested backups.

Reliability is another challenge. I once shipped a filter that incorrectly marked live backlinks as dead for weeks because the API stored hostnames with a “www” prefix and my comparison didn’t account for it.

In a personal workbench, that’s an annoying afternoon. In a commercial product, it’s a support issue that could undermine customer trust.

AI helped me build a tool tailored to my needs. It didn’t make me a software company.

## Where else this approach applies

The framework could work for SaaS, agencies, and ecommerce brands with identifiable competitors and sufficient third-party coverage.

Combining backlink gaps with AI citation data could also help with:

- **Content planning:** Identify topics and articles that AI-generated answers frequently cite.
- **Digital PR:** Prioritize outlets based on how often they appear in AI answers rather than DR alone.
- **AI visibility tracking:** Monitor changes in your brand’s share of AI citations over time to assess whether your efforts are gaining traction.

Source: [https://searchengineland.com/how-to-build-an-ai-powered-seo-outreach-workflow-497259/](https://searchengineland.com/how-to-build-an-ai-powered-seo-outreach-workflow-497259/)
