I Built a Simple SEO Pipeline for My SaaS Instead of Manually Writing Blog Posts

by

I've been working on , a text-to-speech SaaS that turns PDF, DOCX, and TXT documents into audio.

Like many indie developers, I reached the point where I knew I needed to invest more in SEO.

The problem?

I didn't want my workflow to be:

  1. Open a keyword tool

  2. Search random keywords

  3. Ask an AI to write an article

  4. Publish it

  5. Forget the article exists

So I built a small SEO pipeline inside my project.

The workflow is surprisingly simple.

1. Seed topics instead of article ideas

I keep a YAML file with the main use cases around Invocly:

pillars:
  - name: accessibility
    seeds:
      - "text to speech for dyslexia"
      - "reading tool for ADHD"
      - "assistive reading software"

  - name: student_study_use
    seeds:
      - "convert pdf to audio to study"
      - "listen to lecture notes"
      - "text to speech for studying"

  - name: document_conversion_howto
    seeds:
      - "convert docx to mp3"
      - "pdf to audio online free"
      - "how to listen to a pdf"

These aren't final article keywords.

They're starting points for keyword research.

2. An agent researches the keywords

I connected OpenSEO MCP to my coding agent.

The agent reads the seed file, runs keyword research, checks SERPs, and prioritizes long-tail keywords with lower competition.

It then creates small content briefs in another YAML file.

A brief looks roughly like this:

- id: pdf-to-audio-study
  keyword: convert pdf to audio to study
  intent: how_to
  search_volume: 320
  difficulty: 14
  bullets:
    - Why listening can help during exam preparation
    - Step-by-step PDF to audio workflow
    - Scanned PDF and OCR limitations
    - Playback speed for studying
  status: new

The important part is that the research agent does not write the article.

It only researches and creates the brief.

3. A Python script generates the article

I wrote a small script.

It reads the brief, loads my brand voice instructions, builds the writing prompt, and sends it to Gemini.

The generated article must follow a predictable structure:

  • Real opening context

  • 40–60 word Quick Answer

  • Question-based H2 headings

  • Natural internal links

  • At least six FAQ questions

  • FAQPage structured data

The script also runs basic QA checks for title length, meta description length, FAQ count, and article structure.

The final article is saved as MDX directly inside my Next.js project.

4. Every new article improves internal linking

This is one of my favorite parts.

After an article is generated, the agent adds its URL and title to the internal pages list.

For example:

- url: "..."
  topic: "Convert PDF to Audio to Study"

During the next research cycle, the agent can select relevant existing articles for the new brief.

The writing model only receives those selected internal links.

So I don't need to send hundreds of URLs in every prompt.

5. I don't automatically publish to production

The pipeline generates the articles and opens a pull request.

I still review the content before merging.

AI handles the repetitive work.

I keep the final approval.

Did it work?

One of the first articles generated through this workflow reached around 300 Google Search impressions and 6 clicks in its first week.

That's only a 2% CTR and it's far too early to declare the experiment a success.

But for me, the interesting signal is that Google is already testing the page for real searches.

The next part of the system is probably more important than generating more articles: checking Search Console, finding early-ranking pages, and improving the ones showing demand.

I'm building this SEO pipeline while growing Invocly, my document-to-speech SaaS.

The biggest lesson so far?

Automating content generation is easy. Building a feedback loop around what actually ranks is the interesting engineering problem.

7 views

Add a comment

Replies

Be the first to comment