Integrated Marketing SEO/Content Execution Play: How We Built a SERP Domination System with Real Data

A deep dive into building a complete integrated marketing SEO/content execution play, the system architecture, tooling, database design, and real visibility data from tracking 3,222 keywords across 31 languages.

Integrated Marketing SEO/Content Execution Play

How did we build search visibility across languages?

Ranking one page at number one matters less than appearing across the whole first page. The system behind this tracks 3,222 keywords in 31 languages, detects brand mentions on pages other people own, and queues those pages for outreach. On the 18 October 2026 refresh, Tajo appeared on 4 of 197 re-checked keywords, all searches for its own name.

Learn more
On This Page

In 2019, Dulé Stojnic and Axel Lavergne at Brevo, formerly Sendinblue, scaled SaaS visibility through an integrated marketing SEO/content execution play: making the brand appear on many of the top-ranking pages for a query, not only trying to rank one owned page at #1. The question was simple: what if your brand appeared on every page in the top 10 results?

They called it the integrated marketing SEO/content execution play, and within 6 months of tracking 600+ keywords, they achieved 50% program-influenced mentions. We took their framework, built a full-stack automation system around it, and ran it on 3,222 keywords in 31 languages. The tracker was set up to score Brevo, the brand the play was built for. Tajo was added on 18 October 2026, so most visibility and mention figures below are Brevo’s, and each table says whose they are.

This post is a complete technical breakdown of the architecture, tooling, database design, and the real data we’re seeing. Below, you’ll find interactive 3D visualizations built with Three.js showing the stored visibility scores, keyword landscape, and outreach pipeline.

2026-10-18 refresh

On 18 October 2026 we re-checked 197 of the 284 stored queries in two passes, including 181 of the 217 target keywords. 316 of the 520 search requests came back empty, so the other 87 queries keep their 3 October results.

  • Google re-indexed the homepage. For “tajo.io”, tajo.io is #1 in the US and France and now shows the homepage’s new title. On 3 October it still showed the old title.
  • One new brand ranking. tajo.io entered the top 20 for “tajo app”: #15 in the US and #14 in France.
  • Still absent for “tajo” in all 7 markets checked. The river holds the knowledge panel in the US, Spain, Germany and France, and a restaurant ranks first in Italy.
  • Non-brand: 0 of 182. tajo.io is not in the results for any of the 182 refreshed category and target queries, the same as on 3 October.
  • Visibility. Tajo is visible on 4 of the 197 refreshed keywords, with a mean score of 0.13. Brevo is visible on 101, with a mean of 11.31.

Demand for the terms that describe Tajo, measured for the first time (US monthly volume and keyword difficulty, Ahrefs):

TermUS volume/moKD
mcp server34,00068
ipaas9,50032
what is an mcp server6,30042
zapier alternatives2,2008
mcp ui1,1000
n8n alternatives1,1004
reverse etl1,00012

On 3 October these terms had no measured volume, and 100 searches a month was assumed for each.

Many stored volumes were wrong. An Ahrefs refresh of 451 country and keyword pairs replaced the stored volume and difficulty, and the old values are kept in keyword_metric_snapshots. The non-English numbers held up worst. “integração shopify” (Brazil) gets 50 searches a month, not the stored 1,200. “integraciones zapier” (Mexico) and “integration zapier” (France) have no measurable volume at all. We recomputed the opportunity ranking with the real volumes and left Jev’s answers unchanged. 17 items fell to zero and dropped out, which leaves 533. The new top five:

RankOpportunityMarketVolumeAhrefs check
1tienda nube integracionArgentina500Not confirmed: Ahrefs has no row, so this is the old stored value
2mercado libre integracionArgentina700Not confirmed: Ahrefs has no row, so this is the old stored value
3integraciones zapierMexico, Argentina380Not confirmed: the head term is 0, and the 380 is an older stored variant
4sincronizar contactosSpain, Mexico, Argentina730Partly: 150 confirmed in Spain, 580 from two older stored variants
5zapier integrationGermany150Confirmed

Only the fifth rests entirely on a fresh Ahrefs number.

The Core Insight: Be Everywhere, Not Just #1

Think about how you actually discover products. You search “best email marketing software,” and you see 10 results. You click 3-4 of them. If one brand appears in every single article you read, that brand wins, even if it never ranked #1 itself.

“The more frequently someone hears about your product from multiple sources, the more likely they are to buy your product.”

This is the integrated marketing SEO/content execution effect. Like a cocktail party where everyone recommends the same book.

The Math Behind It

Visibility Score, the simplest metric:

Visibility Score % = (mentions in top 20 ÷ 20) × 100

If your brand appears on 8 of the top 20 results for “best CRM software,” your visibility score is 40%.

Position-Weighted Visibility, because position 1 matters more than position 20:

Weighted Score = Σ(Position Weight where mentioned) / Σ(All Position Weights) × 100
Position Weights: #1 = 20pts, #2 = 19pts, ... #20 = 1pt (total 210)

Opportunity Score, where to focus your effort:

Opportunity = (100% - Visibility Score) × Monthly Search Volume

A keyword with 35,000 monthly searches and 5% visibility = opportunity score of 33,250. That’s where you pitch first.


System Architecture

Here’s the full stack we built to automate the integrated marketing SEO/content execution workflow:

Technology Stack

LayerTechnologyPurpose
DatabasePostgreSQL14 tables, 30,202 records
ScriptsPython 3.124 core automation scripts (~2,000 LOC)
Search-result dataAhrefs API + web scrapingKeyword metrics + live result scraping
Content ScrapingWeb scraping MCPPage content extraction for mention detection
Visibility EngineCustom Python3 scoring methods with position weighting
OrchestrationClaude Code + MCPAI-assisted analysis and execution

The Pipeline

  1. Keyword Research (keyword_research.py)

  2. SERP Analyzer

    • Top 20 per KW
    • serp_analyzer.py
  3. Mention Checker

    • Scrape + Match
    • mention_checker.py
  4. Visibility Calculator

    • visibility_calculator.py
  5. Opportunity Scoring

    • Gap Analysis
  6. Outreach Pipeline (3,964 targets)

The pipeline from keyword research to outreach

Database Design

Our PostgreSQL database has 14 tables tracking everything from raw keywords to outreach prospect status. Here’s the data we’re working with:

Core Tables

TableRecordsPurpose
keywords3,222Target keywords with volume, difficulty, silo
serp_results8,921SERP positions and ranking URLs
brand_mentions8,902Brand mention tracking per URL
visibility_scores1,816Calculated visibility over time
outreach_prospects3,964Link building opportunities
seo_content_plan585Content planning with status
google_ads_keywords1,593Google Ads keyword performance: CPC, impressions, conversions
keyword_volume_history238Volume trend tracking
keyword_metric_snapshots850Dated volume and difficulty snapshots, old values kept

Schema Highlights

The keywords table supports multi-country, multi-language tracking:

CREATE TABLE keywords (
id SERIAL PRIMARY KEY,
keyword VARCHAR(500) NOT NULL,
silo VARCHAR(100), -- Content silo grouping
volume_ahrefs INTEGER, -- Monthly search volume
difficulty INTEGER, -- Keyword difficulty (0-100)
cpc NUMERIC(10,2), -- Cost per click
search_intent VARCHAR(50), -- informational, commercial, transactional
country VARCHAR(5), -- us, de, fr, etc.
language VARCHAR(5), -- en, de, fr, etc.
UNIQUE(keyword, country, language)
);

The visibility_scores table tracks brand visibility per keyword over time:

CREATE TABLE visibility_scores (
id SERIAL PRIMARY KEY,
keyword_id INTEGER REFERENCES keywords(id),
brand_name VARCHAR(100),
visibility_score NUMERIC(5,2), -- 0-100%
mention_count INTEGER,
pages_with_mentions INTEGER,
total_pages_checked INTEGER,
calculated_at TIMESTAMP DEFAULT NOW()
);

Keyword Landscape: 9.8M Monthly Searches

We’re tracking 3,222 keywords across 45 content silos, representing about 9.8 million monthly searches. Here’s the distribution:

Top Silos by Search Volume

SiloKeywordsAvg VolumeTotal Volume
Support13,010,0003,010K
Email Marketing6462,9631,624K
CRM4004,0371,575K
Business Strategy4168,750675K
Marketing Strategy1236,275435K
Marketing Automation1741,367220K
Customer Engagement1631,020166K
Messaging1161,263138K
Tools343,333130K
Analytics1012,820128K

The Support row is one keyword, “help desk solutions”, which Ahrefs puts at 3,010,000 searches a month: nearly a third of the total. Read it as an outlier, not a silo. The chart leaves it out. Average volume counts only keywords with a measured volume.

Average Keyword Difficulty: 23.6/100

That is the mean over the 2,499 keywords with a difficulty score. The sweet spot for integrated marketing SEO/content execution is keywords with difficulty 20-50 and volume above 1,000. 615 of our keywords sit there.


Real Visibility Data

This is where the strategy gets real. The tracker was built to score Brevo, and Tajo joined it on 18 October 2026. On that day’s refresh of 197 keywords, Tajo’s mean visibility was 0.13% and Brevo’s was 11.31%. Tajo shows up on four keywords, all searches for its own name:

Where Tajo Is Visible (2026-10-18)

KeywordMarketTajo PositionVisibilityPages Found On
tajo.ioUS#19.52%1 of 6 checked
tajo.ioFrance#19.52%1 of 15 checked
tajo appFrance#143.33%1 of 19 checked
tajo appUS#152.86%1 of 19 checked

Where the Biggest Opportunities Are

These are the highest-volume keywords in the 18 October refresh. Tajo is on none of them:

KeywordMarketMonthly VolumeTajoBrevoOpportunity Score
crm softwareUS617,0000%8.57%617,000
crmUS193,0000%27.14%193,000
whatsapp businessUS59,0000%0%59,000
newsletterUS49,0000%18.10%49,000
email marketing campaignsUS38,0000%17.62%38,000
mcp serverUS34,0000%0%34,000
crm systemUS23,0000%18.57%23,000
email marketingItaly20,0000%0%20,000
live chatUS20,0000%0%20,000
online marketingUS20,0000%9.52%20,000

Scoring Opportunities With Jev

The table above was wrong about us, and it took until 3 October 2026 to see it. Ranked by (100% − visibility) × volume, head terms such as “crm” at 193,000 searches a month, or “newsletter” at 69,800 in the 3 October candidate set, look like the best places to spend a week. Tajo is an agentic integration builder: reverse ETL, MCP servers and tools, and an MCP UI for building syncs between SaaS apps. Shopify and Brevo are its first connectors. A reader looking for newsletter tips is not trying to connect two tools. Volume can’t see that. A model can.

So we put Jev, TypeSafe’s typed-judgment model, between the keyword database and the to-do list. It doesn’t write anything. It answers four questions about each opportunity and returns a typed answer with a confidence for each. Code does everything else.

The four questions

Every request carries the same paragraph describing Tajo, plus the facts we hold for that item: volume, keyword difficulty, the stored top 10 with known domain ratings, how many forums and listicles sit in it, and our existing article (word count, days since update, pageviews) or the third-party page.

QuestionLevels
Fit: would a page for this lead a reader to building integrations between SaaS tools?Score 0–3: unrelated · adjacent · same problem space · exactly what Tajo solves
IntentChoice: informational · comparing tools · ready to set up · navigational
Winnability for a young, low-authority domain within three months, from the facts givenScore 0–4: very hard · hard · moderate · achievable · easy
ActionChoice: new article · update existing · localize · outreach for inclusion · forum or video answer · no action

The formula lives in code

priority = log10(1 + volume) × fit_norm × win_norm × intent_weight
fit_norm = clamp((fit − 1) / 2, 0, 1)
win_norm = (winnability + 1) / 5
intent_weight = Σ P(intent) × weight (ready to set up 1.0, comparing 0.9,
learning 0.6, navigational 0.3; our own brand 1.0)

Volume goes in on a log scale, so a keyword ten times bigger earns one more point, not ten times the points. Adjacent fit scores zero: we don’t pay for traffic that can’t reach a sync. Winnability never hits zero, so a perfect-fit keyword stays on the list even when it is hard. Intent is weighted by Jev’s whole probability distribution, so doubt about intent shrinks the score instead of forcing a guess.

Then the gates. Any fit or winnability answer below 0.6 confidence goes to a person, not into the ranking.

OutcomeOpportunities
Ranked550
Sent to a human (confidence below 0.6)648
Zeroed as adjacent or unrelated562
Jev confidently said “no action”106
Scored1,866

What changed

The first pass divided fit by three and let volume carry the rest. A Portuguese “best newsletters” listicle came in at number 16. Adjacent fit, 25,000 searches, and the volume did all the work. That pass contradicted the thing we sell, so the formula changed to zero out adjacent fit, and everything was scored again.

In the final run, the top ten are all integration and sync queries:

RankOpportunityLocaleVolumeAction
1integração Shopifypt1,200Retarget our existing Shopify integration article to the Portuguese query
2–4Zapier integrationses, de, fr550–880One new article, three languages
5Tienda Nube integrationes500New article
7contact synces980New article

“newsletter” finished 543rd of 550. After the 18 October volume refresh it sits 526th of 533, and “integração Shopify” fell from 1st to 8th on its real volume of 50.

The run also turned up something no formula would have found: 97% of our localized articles still carry the English primary keyword. The Portuguese Shopify article was written in Portuguese and aimed at an English search.

What it costs

Scoring 1,866 items took 2.77 million input tokens: about eleven cents. Asking the same 19 items twice moved scores by 0.034 on average, and flipped 2 of 38 choice answers. So any two priorities within 0.1 of each other are a tie. The judgments are only as good as the facts fed in. Most of our stored search results date from February 2026 (6,802 of 8,921), and the 3 October run had none for its non-English keywords, so winnability there rested on keyword difficulty alone. The 18 October refresh added 338 results for 37 non-English keywords. Jev has not re-scored anything since.


Brand Mention Detection

Our mention checker has scanned 8,898 pages so far. Brevo, or its old name Sendinblue, appears on 1,248 of them (14.0% mention rate), 34,010 mentions in all. Only 215 of those pages include a link. Tajo appears on 4 pages, all on tajo.io. Pages added on 18 October were checked from the search snippet, not the full page, which undercounts.

The mention checker works by:

  1. Fetching page content via a web scraping API (handles bot detection and CAPTCHAs)
  2. Regex matching for brand names and aliases (case-insensitive, with context extraction)
  3. Link detection to determine if mentions include backlinks
  4. Context extraction to capture the sentence around each mention
# Simplified mention detection logic
def find_brand_mentions(content, brand_names):
mentions = []
for brand in brand_names:
pattern = re.compile(
rf'\b{re.escape(brand)}\b',
re.IGNORECASE
)
for match in pattern.finditer(content):
# Extract surrounding context (200 chars)
start = max(0, match.start() - 100)
end = min(len(content), match.end() + 100)
context = content[start:end]
mentions.append({
'brand': brand,
'position': match.start(),
'context': context,
'has_link': check_for_link(content, match)
})
return mentions

Outreach Pipeline: 3,964 Prospects

The outreach system identifies pages ranking for our target keywords that don’t mention the tracked brand yet. Each becomes a prospect.

Pipeline Breakdown

StatusCount%
Pending (needs qualification)3,964100%

No prospect has been qualified or contacted yet: the database holds no Go or No-Go decisions.

Prospect Types

TypeCountStrategy
Ranking page with no mention3,567Inclusion request
Listicle or comparison page314Ask to be listed
Forum or video thread83Answer in the thread

The 397 listicle, comparison, forum and video pages came from the 18 October refresh. Some are written by vendors, so they need triage before any pitch.

Content Plan Status

StatusCount
Complete525
Planned60

We have 585 content pieces in the plan. 525 are complete. The 60 planned pieces are 35 new articles and 25 revamps, the content engine that feeds the integrated marketing SEO/content execution machine.


The Tooling: MCP-Powered Automation

The entire system is orchestrated through Model Context Protocol (MCP) servers, allowing AI-assisted execution of every workflow step.

Ahrefs MCP Integration

keywords-explorer-overview → Keyword metrics (volume, difficulty, CPC)
keywords-explorer-matching → Related keyword discovery
serp-overview → SERP position data for any keyword
site-explorer-organic-keywords → Competitor keyword analysis
batch-analysis → Bulk domain metrics

Web Scraping MCP Integration

search_engine → Live SERP scraping (Google, Bing, Yandex)
search_engine_batch → Batch SERP scraping
scrape_as_markdown → Full page content extraction
scrape_batch → Batch content scraping

Workflow: From Keyword to Outreach

Here’s a real workflow we run regularly:

Step 1: Keyword Research

Terminal window
python3 keyword_research.py --stats
# Returns: 3,222 keywords, 45 silos, 9.8M total volume

Step 2: SERP Analysis

Terminal window
python3 serp_analyzer.py --keyword-id 1 --summary
# Keyword 1 in the database: 7 stored results, 7 unique domains

Step 3: Mention Checking

Terminal window
python3 mention_checker.py --stats
# Returns: 8,898 pages checked, 1,248 with Brevo, 34,010 mentions

Step 4: Visibility Calculation

Terminal window
python3 visibility_calculator.py --overall --report
# 2026-10-18 refresh: Tajo 0.13%, Brevo 11.31% mean visibility

Lessons Learned (So Far)

1. Start with Competitor Keywords

In the “Competitor” silo, Brevo’s latest visibility averages 26.8% across 166 keywords, against 24.1% across all 795 scored keywords, because comparison pages naturally mention multiple brands. Keywords like “mailchimp alternatives” or “hubspot vs brevo” are low-hanging fruit.

2. Review Sites Are Gold

Sites like G2, Capterra, and PCMag rank for almost everything and will list you if you meet their criteria. The 173 stored results with a domain rating average DR 87.3. You can’t outrank them, but you can be on them.

3. Volume ≠ Opportunity

“crm” has 193,000 monthly US searches, and most of those readers are not trying to connect two tools. Fit to what you actually sell beats volume, which is why the opportunity score is now a Jev judgment multiplied in code, not raw volume times a gap.

Of 1,248 pages mentioning Brevo, only 215 include a link. That’s a 17.2% link rate. Every unlinked mention is an easy outreach win, you can ask nicely for a link since they already endorse you.

5. Multi-Language Multiplies Everything

The keyword set covers 31 languages, and six of them (EN, ES, PT, DE, FR, IT) hold 2,892 of the 3,222 keywords. Each language multiplies your opportunity surface. A keyword with 1,000 searches in English might have 500 in French and 300 in German, that’s 1,800 from one concept.


What’s Next: 90-Day Targets

Metric2026-10-18Target
Keywords re-checked in the latest refresh197200+
Tajo overall visibility0.13%20%+
Active outreach contacts050+
Third-party pages mentioning Tajo012+
Backlinks from tracked mentions of Tajo0100+

Try It Yourself

The integrated marketing SEO/content execution methodology works for any brand. Here’s how to start:

  1. Pick 20 keywords, focus on “best X”, “X alternatives”, “X vs Y” formats
  2. Audit the SERPs, for each keyword, check who ranks in positions 1-20
  3. Check for mentions, does your brand appear on those pages?
  4. Calculate visibility, use the formulas above
  5. Prioritize by fit, not volume, score each opportunity for fit, intent and winnability, then multiply in code (the formula is above)
  6. Pitch the gaps, reach out to pages that rank but don’t mention you

The beauty of integrated marketing SEO/content execution is that it compounds. Every new mention improves your visibility score, and every visibility improvement makes the next mention easier to earn.


The figures in this post come from queries against our integrated marketing SEO/content execution tracking database on 18 October 2026. The Three.js visualizations render the same data: 3,222 keywords, 8,921 SERP results, and 3,964 outreach prospects.

Frequently Asked Questions

What is an integrated marketing SEO/content execution play?

It means getting your brand mentioned on many of the pages that rank for a query, instead of only trying to rank one page of your own at number one. The tracker behind this article holds 3,222 keywords in 31 languages and 8,921 stored search results, as of 18 October 2026.

How is visibility scored?

Each of the top 20 results for a keyword gets a weight of 21 minus its position. The weighted score is the weight earned by pages that mention the brand, divided by 210, times 100. On the 18 October 2026 refresh of 197 keywords, Tajo averaged 0.13 and Brevo 11.31.

How are opportunities prioritized?

Jev, TypeSafe's typed-judgment model, scores each opportunity for fit, intent and winnability, and code multiplies those by log-scaled search volume. Of 1,866 items scored on 3 October 2026, 550 were ranked and 648 went to a person because Jev's confidence was below 0.6.

Request early access

Enter your first name and business email address. We will email you a link to confirm your request for Tajo access.

Get Brevo

This page as Markdown: surround-sound-strategy.md

Loading Markdown…