Skip to content

Research Workflows

Fabric’s research workflows discover problems, validate opportunities, and generate execution-ready business playbooks. Three core workflows compose into a pipeline that transforms raw platform content into actionable startup plans.

research/problem-intelligence Discover problems across platforms
│ ideas.0, ideas.1, ...
┌────┴────┐
│ │
research/ research/
playbook idea-deep-dive
WorkflowPurposeOutput
research/problem-intelligenceCross-platform problem discoveryRanked clusters, ideas, specs
research/playbookExecution-ready business playbookSingle opinionated playbook
research/idea-deep-diveBroad market analysisMarket validation, pricing, GTM, revenue

Workflow: research/problem-intelligence

Ingests content from 8 platforms: Reddit, Hacker News, YouTube, YouTube Shorts, TikTok, Instagram, Twitter, and forums. Extracts problems, normalizes and deduplicates, clusters by semantic similarity, detects existing solutions, scores opportunities deterministically, generates startup ideas, and produces SaaS specs.

Terminal window
# Discover problems in a niche
fab-workflow research/problem-intelligence \
--input niche="developer tools" \
-o output/devtools.json
# Reddit discovery mode (auto-discover and crawl subreddits)
fab-workflow research/problem-intelligence \
--input niche="project management" \
--input reddit_discovery=true \
--input depth=25 \
-o output/pm-deep.json
# Monitor specific subreddits (no search query needed)
fab-workflow research/problem-intelligence \
--input 'subreddits=["SaaS","startups","Entrepreneur"]' \
-o output/saas-reddit.json
# Re-run with Reddit discovery on previous output
fab-workflow research/problem-intelligence \
--input-file output/devtools.json \
--input reddit_discovery=true \
--input depth=25 \
--input 'platforms=["reddit"]' \
-o output/devtools-deep.json
plan_ingestion
┌────┼──────────────────────────────────────┐
reddit hackernews youtube shorts tiktok instagram twitter forums
└────┼──────────────────────────────────────┘
merge_sources
extract_problems (parallelized LLM batches)
normalize_problems (text cleanup + embedding dedup)
cluster_problems (cosine similarity > 0.88)
aggregate_solutions (detect existing solutions)
compute_scores (deterministic, no LLM)
generate_ideas (1-3 per top cluster)
score_ideas → generate_specs → format_output
ParameterTypeDefaultDescription
querystringSearch query (optional if niche or subreddits provided)
nichestringDomain to focus on (auto-derives query)
subredditslist[str][]Specific subreddits to monitor
forum_urlslist[str][]Forum URLs to ingest
platformslist[str]all 8Platforms to query: reddit, hackernews, youtube, youtube_shorts, tiktok, instagram, twitter, forums
depthint10Results per platform/subreddit
reddit_discoveryboolfalseAuto-discover relevant subreddits
max_subredditsint15Max subreddits to discover
reddit_concurrencyint3Concurrent subreddit crawls
extract_concurrencyint3Concurrent LLM extraction batches
top_clustersint10Clusters to generate ideas for
top_ideasint5Ideas to generate specs for

At least one of query, niche, subreddits, or forum_urls is required.

When reddit_discovery=true, the adapter auto-discovers relevant subreddits, crawls each in parallel across hot/top/new sort orders, and fetches full comment threads. Uses rotating browser user agents.

Terminal window
fab-workflow research/problem-intelligence \
--input niche="developer tools" \
--input reddit_discovery=true \
--input depth=25 \
--input max_subreddits=20 \
--input reddit_concurrency=5 \
-o output/devtools-deep.json

All opportunity scores are deterministic (no LLM) and bounded [0, 1]:

pain = frustration*0.4 + urgency*0.3 + (1 - sentiment)*0.3
demand = log(mentions+1)/log(max+2)*0.6 + log(users+1)/log(max+2)*0.4
growth = sigmoid(velocity * 2)
solution_gap = dissatisfaction*0.7 + (1 - solution_density)*0.3
recency = exp(-days_since_last / 7)
opportunity = pain*0.30 + demand*0.25 + growth*0.15 + gap*0.20 + recency*0.10
{
"workflow": "research/problem-intelligence",
"scope": "niche",
"niche": "developer tools",
"ranked_clusters": [
{
"id": "cluster_0",
"canonical_problem": "...",
"opportunity_score": 0.82,
"mention_count": 12,
"unique_users": 8,
"avg_frustration": 0.75
}
],
"discovered_subreddits": [
{"name": "webdev", "subscribers": 3214996}
],
"source_documents": [],
"problem_mentions": [],
"clusters": [],
"solution_mentions": [],
"ideas": [],
"specs": []
}

Workflow: research/idea-deep-dive

Broad market analysis for due diligence before committing to an idea. Runs 8 sequential LLM calls covering market validation, product variants, pricing, landing page, content strategy, go-to-market, and revenue projections.

Terminal window
# From problem-intelligence output (pick top idea)
fab-workflow research/idea-deep-dive \
--input-file output/devtools.json --pick "ideas.0" \
-o output/deep-dive.json
# Pick a different idea
fab-workflow research/idea-deep-dive \
--input-file output/devtools.json --pick "ideas.1" \
-o output/deep-dive-idea2.json
# Manual input
fab-workflow research/idea-deep-dive \
--input name="TaskFlow" \
--input description="AI project management for solo devs" \
--input target_persona="indie developers" \
-o output/deep-dive.json
prepare_idea → validate_market → generate_product_variants →
research_pricing → design_landing_page → plan_content_strategy →
plan_go_to_market → project_revenue → format_output
SectionContents
market_validationTAM/SAM/SOM, 5-10 competitors, timing, audience deep dive, demand signals
product_variantsAll viable forms ranked (SaaS, mobile, extension, templates, course, community, etc.)
pricing_researchWillingness to pay, 3-4 tiers, pricing psychology, estimated ARPU
landing_pageHero, problem, solution, features, social proof, FAQ — with actual copy
content_strategy10 blog posts, 5 videos, 3 lead magnets, social plan, email sequence, SEO keywords
go_to_marketPre-launch, launch week day-by-day, first 100 users, first 1000 users, partnerships
revenue_projections3 scenarios with month-by-month MRR, breakeven timeline, LTV/CAC

Workflow: research/playbook

Generates a high-fidelity, execution-ready business playbook via 8 parallel LLM calls. Includes naming, MVP strategy, build spec, monetization, 14-day social schedule across 6 platforms (Twitter, Reddit, LinkedIn, TikTok, Instagram, YouTube Shorts), day-by-day execution plan, success metrics, and launch assets with ready-to-post content for every platform.

Terminal window
# From problem-intelligence output (pick top idea)
fab-workflow research/playbook \
--input-file output/devtools.json --pick "ideas.0" \
-o output/playbook.json
# Pick a different idea
fab-workflow research/playbook \
--input-file output/devtools.json --pick "ideas.2" \
-o output/playbook-idea3.json
# From a deep Reddit crawl
fab-workflow research/playbook \
--input-file output/devtools-deep.json --pick "ideas.0" \
-o output/playbook-deep.json
# Manual input (no prior workflow needed)
fab-workflow research/playbook \
--input name="TaskFlow" \
--input description="AI project management for solo devs" \
--input target_persona="indie developers" \
-o output/playbook.json
SectionContents
name_suggestions8-10 brandable product names
opportunityProblem, persona, why now, market signals
evidenceSummary, real user quotes, pain signals
productPositioning, value prop, core features, MVP scope, what NOT to build
mvp_strategyWhere to start, day-1 version, week-1 version, validation question
buildComplexity, time to MVP, stack, file structure, DB schema, API endpoints, unknowns
monetizationModel, price points, competitor pricing, when/how to charge, free tier strategy
success_metricsDay-1/week-1/month-1 signals, activation metric, failure signals, revenue target
distribution14-day social schedule across 6 platforms, email templates, DM scripts, Fabric automation
execution_planDay-by-day plan (day 1 through day 7, then weeks 2-4) with hourly time estimates
extensionsWhat to build next, automation opportunities, feature/platform expansion
risksProduct, market, execution risks with likelihood and mitigation
assetsLanding page (hero, features, FAQ), launch posts for Twitter/Reddit/LinkedIn/TikTok/Instagram/YouTube Shorts, pitch
  • Grounded — all claims tie back to real problem data and user quotes
  • Opinionated — makes decisions, chooses positioning, recommends strategy
  • Executable — everything answers “can someone act on this immediately?”
  • MVP-disciplined — aggressively limits scope, includes explicit “what not to build”

All research workflows accept --input-file to load a previous workflow’s output. Combined with --pick (dot-notation path) and --map (rename fields), this enables chaining without glue code.

Terminal window
fab-workflow research/problem-intelligence \
--input niche="developer tools" -o output/devtools.json
fab-workflow research/playbook \
--input-file output/devtools.json --pick "ideas.0" \
-o output/playbook.json
Terminal window
fab-workflow research/problem-intelligence \
--input-file output/devtools.json \
--input reddit_discovery=true \
--input depth=25 \
--input 'platforms=["reddit"]' \
-o output/devtools-deep.json
Terminal window
for i in 0 1 2 3 4; do
fab-workflow research/playbook \
--input-file output/devtools.json --pick "ideas.$i" \
-o "output/playbook-idea-$i.json"
done
Pick pathExtracts
ideas.0First idea object
ideas.2Third idea object
ranked_clusters.0Top-ranked cluster
specs.0First SaaS spec

The extracted value becomes the input for the next workflow. Any --input K=V flags merge on top.


Use caseWorkflowWhy
Start building todayresearch/playbookOpinionated, concrete execution plan, launch assets
Validate before committingresearch/idea-deep-diveMarket analysis, competitors, pricing, revenue
BothRun bothThey accept the same input format

Workflow: research/deep_research

Multi-source fan-out research with parallel web, YouTube, Reddit, and RSS search.

Terminal window
fab-workflow research/deep_research \
--input query="Why are developers switching to Rust" \
-o output/rust-research.json

Workflow: research/hot_topics

Scans trending topics across categories with content opportunity scoring.

Terminal window
fab-workflow research/hot_topics \
--input categories='["tech", "business"]' \
-o output/hot-topics.json

Workflow: research/competitive

Analyzes competitor content strategy to find gaps.

Terminal window
fab-workflow research/competitive \
--input competitors='["@mkbhd", "@fireship"]' \
--input niche="tech education" \
-o output/competitive.json

Workflow: research/trends

Multi-signal trend analysis with content idea generation.

Terminal window
fab-workflow research/trends \
--input niche="AI agents" \
--input platform="TikTok" \
-o output/trends.json

Workflow: research/discovery

Finds high-performing content in a niche for repurposing.

Terminal window
fab-workflow research/discovery \
--input niche="productivity" \
--input platform="YouTube" \
-o output/content-discovery.json

Workflow: video/export-platforms

Takes a finished 9:16 video and produces platform-ready exports with resize, duration trimming, and LLM-generated metadata.

Terminal window
# Export a video for multiple platforms
fab-workflow video/export-platforms \
--input media_path=output/short.mp4 \
--input topic="AI productivity tools" \
--input 'platforms=["tiktok","instagram","youtube_shorts"]' \
-o output/exports.json
PlatformAspectResolutionMax DurationMetadata
tiktok9:161080x1920180sDescription (150 char), hashtags, sound suggestion
instagram9:161080x192090sCaption (2200 char), 20-30 hashtags, cover frame
youtube_shorts9:161080x192060sTitle, description, tags, thumbnail text
youtube16:91920x1080unlimitedTitle, description, 10-15 tags, thumbnail
instagram_feed1:11080x108060sCaption, 20-30 hashtags
linkedin9:161080x1920600sProfessional post text, 3-5 hashtags

Aspect ratio changes use blur-fill (blurred background, no black bars). Videos exceeding platform max duration are trimmed.


PlatformAPIAuth RequiredRate Limit
RedditPublic JSON API (old.reddit.com)No2s between calls
Hacker NewsAlgolia APINo0.5s between calls
YouTubeyt-dlp + commentsNo
YouTube Shortsyt-dlp + #shorts filter (90s max)No
TikTokyt-dlp tiktoksearch or DuckDuckGo fallbackNo
InstagramGraph API or DuckDuckGo + Jina Reader fallbackINSTAGRAM_ACCESS_TOKEN for Graph API2s between calls
TwitterAPI v2 or DuckDuckGo fallbackTWITTER_BEARER_TOKEN for API v2
ForumsJina ReaderNo

VariableRequiredDescription
GEMINI_API_KEYYesLLM extraction, ideation, spec generation, playbook, deep dive
OPENAI_API_KEYNoEmbeddings (falls back to sentence-transformers locally)
TWITTER_BEARER_TOKENNoTwitter API v2 (falls back to web search)
INSTAGRAM_ACCESS_TOKENNoInstagram Graph API (falls back to web search)
FlagDescription
-o FILESave output JSON to file
-v / --verbosePrint full JSON to terminal
--input K=VSet input key-value (repeatable)
--input-file FILELoad input from JSON file
--pick PATHExtract nested field from input file
--map TO=FROMRename fields from input file
--model MODELOverride LLM model
--quality PROFILEQuality profile (local, cheap, premium)