SarudoResearch Path
FeaturesHow It WorksPricing↗ SwitchReseller↗ SwitchDocsAbout
Get Started
Sarudo logo — AI Employee platformSarudo

AI Employees for Modern Businesses

Product

  • Features
  • How It Works
  • Documentation
  • Pricing
  • WordPress plugin
  • Reseller Program
  • FAQ

Company

  • About
  • Careers
  • Blog
  • Contact

Legal

  • Terms of Service
  • Privacy Policy
  • Refund Policy
  • SLA
  • Acceptable Use
  • Data Processing

© 2026 Sarudo. All rights reserved.

hello@sarudo.com
What is Sarudo?Onboarding ProcessSetting Up TelegramYour First InteractionWhat Your AI Employee Can DoSecurity & PrivacyYour First Conversation with SarudoWhat's Under the HoodBackups & Data Export
Telegram Commands ReferenceManaging ConversationsFile SharingApproval WorkflowTips for Effective CommunicationMulti-User Access
Email Setup & ConfigurationSending & Drafting EmailsReading & Searching InboxEmail Approval FlowEmail Use Cases
Voice Call SetupMaking Outbound CallsCall TranscriptionAI-Powered ConversationsCall History & RecordingsVoice Providers & Options
What Meetings Can DoUploading a RecordingAutomatic TranscriptionAction Items & AttendeesFollowing Up on Action Items
Managing Your CalendarReminders & NotificationsScheduling for OthersDaily Briefings
How Sarudo LearnsStoring & Retrieving KnowledgeDocument IngestionSemantic SearchKnowledge CategoriesContradiction HandlingSettings vs Knowledge
Web SearchWebsite BrowsingCompetitor ResearchYouTube & Video AnalysisLocal Business SearchImage Search
SEO Tools OverviewKeyword ResearchTrending Topics & Blog Gap AnalysisSERP Analysis & Competitor TrackingPutting It Together — A Content Research Workflow
Creating DocumentsPDF OperationsFormat ConversionOCR & Text ExtractionPresentationsDiagrams & Visuals
Built-in TemplatesCustom TemplatesRendering DocumentsBulk Mail Merge
CRM OverviewManaging ContactsCompanies & OrganizationsDeals & PipelineActivity TrackingFollow-ups & RemindersHow Deletion Works
Email EnrichmentDomain & Company LookupEmail FinderLinkedIn Enrichment
Automation OverviewCreating WorkflowsPre-Built TemplatesManaging WorkflowsBuilt-in AutomationsWorkflow Reliability FeaturesDry-Run Mode
How the Pipeline WorksStage 1 — Monthly ResearchStage 2 — Daily DrafterStage 3 — Publish LoopSupported CMS TargetsTuning the Pipeline
Social Media SetupDrafting PostsScheduling & PublishingSocial Post CalendarApproval WorkflowPublishing to Your Own Blog
Stripe Integration SetupCreating Checkout LinksSending InvoicesPayment TrackingProcessing Refunds
Notion IntegrationGoogle Sheets IntegrationAirtable IntegrationWebhook EventsBrowser AutomationMedia ProcessingGoogle Docs IntegrationBrowser Automation — Local vs Cloud
  1. Docs
  2. >
  3. Content Calendar Pipeline
  4. >
  5. Stage 1 — Monthly Research

Stage 1 — Monthly Research

How the monthly research stage produces 30 approval-ready topics — gap analysis, brief generation, and the Google Sheet handoff.

Last updated: April 22, 2026
monthly researchstage 1blog gapkeyword researchgoogle sheetbriefs

When Stage 1 Runs

Stage 1 fires automatically on the 20th of every month at 09:00 UTC — that timing gives you ten days before the month ends to review and approve topics, so the daily drafter has an approved queue to pull from starting on day 1 of the next month. You can also trigger Stage 1 on demand any time ("run the monthly research again with these new seed keywords"), which is useful when you want to experiment with different niches or refresh the calendar mid-month. Ad-hoc runs create a new sheet rather than appending to the current one, so your existing approvals are not disturbed.

What Stage 1 Does

The research stage runs through five steps in sequence. Step 1 — call `/seo/blog_gap` with your configured seed keywords, minimum volume, maximum difficulty, and blog URL. Step 2 — take the top 30 gap keywords (trending, rankable, not already covered by an existing post on your blog). Step 3 — create a fresh Google Sheet with the 14-column calendar schema, share it with you as an editor. Step 4 — for every one of the 30 rows, call the LLM to generate a first-person title, a content idea paragraph, and a slug. Step 5 — email you the sheet link with a short summary of what was generated and how the filters landed (existing posts detected, candidates dropped as covered, final gap count).

The email that lands in your inbox

What Stage 1 hands back to you.

You say:
(No prompt — this fires automatically on the 20th)
Sarudo responds:
Subject: Your May 2026 content calendar is ready — 30 topics for review. Body: Research complete. Seed keywords: ai employee, business automation, ai for small business. Checked your blog at myblog.com — found 23 existing posts. Ran 87 candidates through the volume/difficulty filter; 31 dropped as already covered by your existing posts, 56 remained. Top 30 by search volume are in the sheet linked below, each pre-populated with a proposed title and content idea. Flip column J to "approved" on the rows you want published — the daily drafter will pick them up starting tomorrow. [Sheet link]

The Calendar Sheet Schema

Every monthly calendar sheet has 14 columns. `id` and `proposed_at` are set by the workflow. `keyword`, `slug`, `title`, `content_idea` come from the research + LLM brief. `search_volume`, `difficulty`, `competition` come from DataForSEO. `status` is what you control (values: proposed, approved, rejected). `draft_status` is what the workflows control (pending, sent, approved, published, failed). `draft_message_id` is set by the drafter when it emails you the draft (used by the publisher to match your approval reply). `publish_url` is set by the publisher on successful publish. `notes` is a free-form column for both you and the workflows to use.

ℹ️

You can edit the `keyword`, `slug`, `title`, or `content_idea` columns on any row before approving. The drafter uses the final values at the moment it picks the row, so edits are always respected. You cannot usefully edit the other columns — they're workflow state.

What Happens If Stage 1 Fails

Stage 1 has built-in hard-fail behavior rather than quiet drift. If blog gap returns fewer than 3 usable keywords (your filters were too strict, or your seed keywords were too narrow), the workflow aborts and emails you a diagnostic explaining what happened and what to adjust (widen seeds, raise max_difficulty by 10, lower min_volume to 50). If some rows get their LLM brief generation and others do not, the sheet is still delivered with the successful rows — the failed rows get a "| BRIEF FAILED" suffix in the notes column so you can ask the AI to regenerate just those. The pipeline never silently ships an empty or half-empty calendar.

Related Articles

How the Pipeline Works
The three stages of the content calendar pipeline at a glance — monthly research, approval-gated daily drafts, and automated publish.
Stage 2 — Daily Drafter
How the daily drafter picks approved rows, generates full articles, and delivers them as Google Docs for final approval.
Trending Topics & Blog Gap Analysis
Finding rankable opportunities in a niche — high-volume, low-difficulty keywords filtered against what your blog already covers.
Previous
How the Pipeline Works
Content Calendar Pipeline
Next
Stage 2 — Daily Drafter
Content Calendar Pipeline

On This Page