Niche Website Builder

n8n workflow • 116 nodes • 8 agents • 6 GPT calls • end-to-end domain-to-company pipeline

6
GPT 5.4 calls
5
Spaceship API
3
Cloudflare API
27
Paperclip API
5
IF gates
11
SSH nodes
40+
Code nodes
8
Agents hired
GPT 5.4
Spaceship
Cloudflare
Paperclip
Code
SSH
IF Gate
Trigger

Master Pipeline overview

      graph TD
        T["๐ŸŽฏ Manual Trigger"]:::trigger --> SD["Set Domain
klassenplan.de"]:::code SD --> BROWSE["Browse Domain
SSH + dev-browser"]:::ssh BROWSE --> PARSE["Parse Browse Data"]:::code PARSE --> GPT1["GPT: Site Analysis"]:::gpt GPT1 --> SA["Site Analysis"]:::code SA --> GPT2["GPT: Replication"]:::gpt GPT2 --> RA["Replication Analysis"]:::code RA --> GPT3["GPT: Monetization"]:::gpt GPT3 --> MS["Monetization Strategy"]:::code MS --> TS["Tech Stack"]:::code TS --> GPT4["GPT: Final Verdict"]:::gpt GPT4 --> V["Verdict"]:::code V --> REP{"Replicable?"}:::gate REP -->|"true"| DNP["Build Domain Name Prompt"]:::code REP -->|"false"| STOP["โ›” Workflow Ends"]:::stop SA --> MD1["๐Ÿ“„ Save markdown"]:::side RA --> MD2["๐Ÿ“„ Save markdown"]:::side MS --> MD3["๐Ÿ“„ Save markdown"]:::side TS --> MD4["๐Ÿ“„ Save markdown"]:::side V --> MD5["๐Ÿ“„ Save markdown"]:::side DNP --> GPT5["GPT: Domain Names"]:::gpt GPT5 --> DS["Domain Suggestions"]:::code DS --> MD6["๐Ÿ“„ Save markdown"]:::side DS --> AVAIL["Spaceship: Check Availability"]:::spaceship AVAIL --> PICK["Final Domain Pick"]:::code PICK --> RETRY{"Need Retry?"}:::gate RETRY -->|"false
domain found"| VALIDATE["Validate Contacts"]:::code RETRY -->|"true
all 10 taken"| RPROMPT["Build Retry Prompt"]:::code RPROMPT --> GPT6["GPT: Retry Names"]:::gpt GPT6 --> RPARSE["Parse Retry"]:::code RPARSE --> RAVAIL["Spaceship: Retry Avail"]:::spaceship RAVAIL --> RPICK["Retry Final Pick"]:::code RPICK --> VALIDATE VALIDATE --> PURCHASE["Spaceship: Purchase"]:::spaceship PURCHASE --> RECHECK["Spaceship: Recheck"]:::spaceship RECHECK --> CFGET["CF: Get Existing Zone"]:::cloudflare CFGET --> ZONE{"Zone Exists?"}:::gate ZONE -->|"true"| PROV["Domain Provisioning"]:::code ZONE -->|"false"| CFCREATE["CF: Create Zone"]:::cloudflare CFCREATE --> PROV PROV --> SETNS["Spaceship: Set NS"]:::spaceship SETNS --> SUMMARY["Summarize Provisioning"]:::code SUMMARY --> COMPANY["Paperclip: Company
create or reuse"]:::paperclip SUMMARY --> RENAME["๐Ÿ“ Rename Research Folder"]:::ssh SUMMARY --> CLAUDE["๐Ÿ“„ Store CLAUDE.md"]:::ssh COMPANY --> PROJECT["Paperclip: Project
create or reuse"]:::paperclip PROJECT --> CEO["Paperclip: CEO Agent
create or reuse"]:::paperclip CEO --> HIRE_R["Hire Researcher
codex_local ยท GPT 5.4"]:::paperclip HIRE_R --> ISSUE["Create Research Issue"]:::paperclip ISSUE --> HIRE_S["Hire Strategist
codex_local ยท GPT 5.4"]:::paperclip HIRE_S --> HIRE_D["Hire Developer
claude_local ยท Opus 4.6"]:::paperclip HIRE_D --> HIRE_W["Hire Writer
codex_local ยท GPT 5.4
+ AGENTS.md"]:::paperclip HIRE_W --> HIRE_B["Hire Backend
codex_local ยท GPT 5.4
+ AGENTS.md"]:::paperclip HIRE_B --> HIRE_DB["Hire Database
claude_local ยท Opus 4.6
+ AGENTS.md"]:::paperclip HIRE_DB --> HIRE_DO["Hire DomainOps
codex_local ยท GPT 5.4
+ AGENTS.md"]:::paperclip HIRE_DO --> UPDATE["Update CEO Prompt
full team roster"]:::paperclip classDef trigger fill:#064e3b,stroke:#6ee7b7,color:#d1fae5 classDef gpt fill:#064e3b,stroke:#10b981,color:#a7f3d0 classDef spaceship fill:#451a03,stroke:#f59e0b,color:#fde68a classDef cloudflare fill:#431407,stroke:#f97316,color:#fed7aa classDef paperclip fill:#2e1065,stroke:#8b5cf6,color:#ddd6fe classDef code fill:#0c2744,stroke:#38bdf8,color:#bae6fd classDef ssh fill:#1e1b4b,stroke:#a78bfa,color:#ddd6fe classDef gate fill:#4c0519,stroke:#f43f5e,color:#fecdd3 classDef stop fill:#1c1917,stroke:#57534e,color:#a8a29e classDef side fill:#1a1a2e,stroke:#475569,color:#94a3b8,stroke-dasharray:4

AI Analysis Chain 5 GPT calls

Phases 1-3: browsing โ†’ site analysis โ†’ replication โ†’ monetization โ†’ tech stack โ†’ final verdict

      graph LR
        SD["Set Domain"]:::code --> BD["Browse Domain
dev-browser headless"]:::ssh BD --> PBD["Parse Browse Data"]:::code PBD --> BSP["Build Site Prompt"]:::code BSP --> G1["GPT: Site Analysis
gpt-5.4 ยท temp 0.2"]:::gpt G1 --> SA["Site Analysis
parse JSON"]:::code SA --> BRP["Build Replication Prompt"]:::code SA -->|"side"| M1["๐Ÿ“„ site-analysis.md"]:::side BRP --> G2["GPT: Replication
gpt-5.4 ยท temp 0.2"]:::gpt G2 --> RA["Replication Analysis
parse JSON"]:::code RA --> BMP["Build Monetization Prompt"]:::code RA -->|"side"| M2["๐Ÿ“„ replication.md"]:::side BMP --> G3["GPT: Monetization
gpt-5.4 ยท temp 0.2"]:::gpt G3 --> MS["Monetization Strategy
parse JSON"]:::code MS --> TSK["Tech Stack
data merge"]:::code MS -->|"side"| M3["๐Ÿ“„ monetization.md"]:::side TSK --> BVP["Build Verdict Prompt"]:::code TSK -->|"side"| M4["๐Ÿ“„ tech-stack.md"]:::side BVP --> G4["GPT: Final Verdict
gpt-5.4 ยท temp 0.1"]:::gpt G4 --> VD["Verdict
BUILD IT / SKIP / DO NOT BUILD"]:::code VD -->|"side"| M5["๐Ÿ“„ verdict.md"]:::side VD -->|"side"| M6["๐Ÿ“„ analysis.md"]:::side classDef gpt fill:#064e3b,stroke:#10b981,color:#a7f3d0 classDef code fill:#0c2744,stroke:#38bdf8,color:#bae6fd classDef ssh fill:#1e1b4b,stroke:#a78bfa,color:#ddd6fe classDef side fill:#1a1a2e,stroke:#475569,color:#94a3b8,stroke-dasharray:4

Domain Pipeline purchase + DNS

Phases 4-9: naming โ†’ availability โ†’ retry โ†’ purchase โ†’ Cloudflare โ†’ nameservers

      graph TD
        V["Verdict"]:::code --> REP{"Replicable?"}:::gate
        REP -->|"true"| BDN["Build Domain Name Prompt"]:::code
        REP -->|"false"| DEAD["โ›” Dead End"]:::stop

        BDN --> G5["GPT: Domain Names
gpt-5.4 ยท reasoning: high
temp 0.7 ยท 10min timeout
"]:::gpt G5 --> DS["Domain Suggestions
sorted by overall_score"]:::code DS --> DSO["Domain Suggestions Only"]:::code DSO --> BSA["Build Availability Request"]:::code BSA --> SDA["Spaceship: Domain Availability
POST /domains/available"]:::spaceship SDA --> DAR["Domain Availability Results
merge scores + availability"]:::code DAR --> FDP["Final Domain Pick
best available non-premium"]:::code FDP --> NR{"Need Retry?"}:::gate NR -->|"false ยท domain found"| VSC["Validate Spaceship Contacts"]:::code NR -->|"true ยท all 10 taken"| BRP2["Build Retry Prompt
excludes tried domains"]:::code BRP2 --> G6["GPT: Retry Domain Names
gpt-5.4 ยท 10min timeout"]:::gpt G6 --> PRS["Parse Retry Suggestions"]:::code PRS --> SRA["Spaceship: Retry Availability"]:::spaceship SRA --> RFP["Retry Final Pick
throws after 2 attempts"]:::code RFP --> VSC VSC --> SPD["Spaceship: Purchase Domain
POST /domains/{domain}
autoRenew: false, years: 1
"]:::spaceship SPD --> SRD["Spaceship: Recheck
GET /domains/{domain}"]:::spaceship SRD --> CFGE["CF: Get Existing Zone
GET /zones?name={domain}"]:::cloudflare CFGE --> ZE{"Zone Exists?"}:::gate ZE -->|"true"| DPC["Domain Provisioning Context"]:::code ZE -->|"false"| CFCZ["CF: Create Zone
POST /zones"]:::cloudflare CFCZ --> DPC DPC --> BNUP["Build NS Payload"]:::code BNUP --> SNS["Spaceship: Set Nameservers
PUT /domains/{d}/nameservers
provider: custom, hosts: [cf ns]
"]:::spaceship SNS --> SDP["Summarize Provisioning"]:::code SDP --> COMP["โ†’ Paperclip Company"]:::paperclip SDP --> REN["๐Ÿ“ Rename Research Folder"]:::ssh SDP --> CLM["๐Ÿ“„ Store CLAUDE.md"]:::ssh classDef trigger fill:#064e3b,stroke:#6ee7b7,color:#d1fae5 classDef gpt fill:#064e3b,stroke:#10b981,color:#a7f3d0 classDef spaceship fill:#451a03,stroke:#f59e0b,color:#fde68a classDef cloudflare fill:#431407,stroke:#f97316,color:#fed7aa classDef paperclip fill:#2e1065,stroke:#8b5cf6,color:#ddd6fe classDef code fill:#0c2744,stroke:#38bdf8,color:#bae6fd classDef ssh fill:#1e1b4b,stroke:#a78bfa,color:#ddd6fe classDef gate fill:#4c0519,stroke:#f43f5e,color:#fecdd3 classDef stop fill:#1c1917,stroke:#57534e,color:#a8a29e

Paperclip Bootstrap company + agents

Phases 10-12: company โ†’ project โ†’ CEO โ†’ hire 7 agents โ†’ update CEO with full team

      graph TD
        SDP["Summarize Domain Provisioning"]:::code --> BCR["Build Company Request"]:::code
        BCR --> PLC["List Companies"]:::paperclip
        PLC --> REC["Resolve Existing"]:::code
        REC --> CE{"Company Exists?"}:::gate
        CE -->|"true"| REUSE_C["Reuse Company"]:::code
        CE -->|"false"| CREATE_C["Create Company"]:::paperclip
        REUSE_C --> PCR["Company Result"]:::code
        CREATE_C --> PCR
        PCR --> DAA["Disable Agent Approval"]:::paperclip
        DAA --> BPR["Build Project Request"]:::code
        BPR --> PLP["List Projects"]:::paperclip
        PLP --> REP2["Resolve Existing"]:::code
        REP2 --> PE{"Project Exists?"}:::gate
        PE -->|"true"| REUSE_P["Reuse Project"]:::code
        PE -->|"false"| CREATE_P["Create Project"]:::paperclip
        REUSE_P --> PPR["Project Result"]:::code
        CREATE_P --> PPR

        PPR --> BCEO["Build CEO Hire"]:::code
        BCEO --> PLA["List Agents"]:::paperclip
        PLA --> RCEO["Resolve Existing CEO"]:::code
        RCEO --> CEOE{"CEO Exists?"}:::gate
        CEOE -->|"true"| REUSE_CEO["Reuse CEO"]:::code
        CEOE -->|"false"| CREATE_CEO["Create CEO Hire"]:::paperclip
        REUSE_CEO --> CEOR["CEO Result"]:::code
        CREATE_CEO --> CEOR
        CEOR --> BSR["Bootstrap Result"]:::code

        BSR --> HR["Hire Researcher
codex_local ยท GPT 5.4"]:::paperclip HR --> RI["Create Research Issue
Discover competitors"]:::paperclip RI --> HS["Hire Strategist
codex_local ยท GPT 5.4"]:::paperclip HS --> HD["Hire Developer
claude_local ยท Opus 4.6"]:::paperclip HD --> HW["Hire Writer
codex_local ยท GPT 5.4"]:::paperclip_managed HW --> HWI["Build AGENTS.md
106 lines ยท managed"]:::ssh HWI --> HWP["Patch Writer Config"]:::paperclip HWP --> HB["Hire Backend
codex_local ยท GPT 5.4"]:::paperclip_managed HB --> HBI["Build AGENTS.md
84 lines ยท managed"]:::ssh HBI --> HBP["Patch Backend Config"]:::paperclip HBP --> HDB["Hire Database
claude_local ยท Opus 4.6"]:::paperclip_managed HDB --> HDBI["Build AGENTS.md
121 lines ยท managed"]:::ssh HDBI --> HDBP["Patch Database Config"]:::paperclip HDBP --> HDO["Hire DomainOps
codex_local ยท GPT 5.4"]:::paperclip_managed HDO --> HDOI["Build AGENTS.md
94 lines ยท managed"]:::ssh HDOI --> HDOP["Patch DomainOps Config"]:::paperclip HDOP --> UCE["Update CEO Prompt
full 8-agent team roster
phase pipeline instructions
"]:::paperclip classDef code fill:#0c2744,stroke:#38bdf8,color:#bae6fd classDef paperclip fill:#2e1065,stroke:#8b5cf6,color:#ddd6fe classDef paperclip_managed fill:#1e1065,stroke:#a78bfa,color:#c4b5fd classDef ssh fill:#1e1b4b,stroke:#a78bfa,color:#ddd6fe classDef gate fill:#4c0519,stroke:#f43f5e,color:#fecdd3

Agent Roster 8 agents

      graph TD
        CEO["๐Ÿ‘‘ CEO
claude_local ยท Opus 4.6
Owns strategy, staffing, delegation
"]:::ceo CEO --> RES["๐Ÿ” Researcher
codex_local ยท GPT 5.4
Competitor analysis, SEO research
"]:::codex CEO --> STR["๐ŸŽฏ Strategist
codex_local ยท GPT 5.4
Sitemap, keyword map, briefs
"]:::codex CEO --> DEV["๐Ÿ’ป Developer
claude_local ยท Opus 4.6
Scaffold, design system, features
"]:::claude CEO --> WRI["โœ๏ธ Writer
codex_local ยท GPT 5.4
SEO copy, legal pages, microcopy
"]:::codex CEO --> BAK["โš™๏ธ Backend
codex_local ยท GPT 5.4
API, auth, service logic
"]:::codex CEO --> DBA["๐Ÿ—„๏ธ Database
claude_local ยท Opus 4.6
PostgreSQL schema, migrations
"]:::claude CEO --> DOP["๐ŸŒ DomainOps
codex_local ยท GPT 5.4
DNS verification, propagation
"]:::codex classDef ceo fill:#451a03,stroke:#f59e0b,color:#fde68a classDef claude fill:#1e1b4b,stroke:#a78bfa,color:#ddd6fe classDef codex fill:#064e3b,stroke:#10b981,color:#a7f3d0