Build an SEO knowledge graph digital twin with Claude, Postgres, and Slack
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (11)
- Manual Trigger
n8n-nodes-base.manualTrigger - Schedule Trigger
n8n-nodes-base.scheduleTrigger - Edit Fields (Set)
n8n-nodes-base.set - HTTP Request
n8n-nodes-base.httpRequest - Code
n8n-nodes-base.code - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - HTML
n8n-nodes-base.html - Postgres
n8n-nodes-base.postgres - Split Out
n8n-nodes-base.splitOut - Merge
n8n-nodes-base.merge - Slack
n8n-nodes-base.slack
What it does
Quick overview This workflow crawls a website from its sitemap, extracts on-page content and links, uses Anthropic Claude to identify keywords and entities, stores everything as an SEO knowledge graph in Postgres, then posts crawl health stats to a Slack channel. How it works 1. Triggers manually or on a weekly schedule to start a crawl using the configured seed URL, sitemap URL, page limit, and Slack channel. 2. Fetches sitemap.xml, parses and deduplicates page URLs (optionally same-domain only), and batches them for processing up to the max page count. 3. For each page URL, downloads the HTML and extracts the title, meta description, H1s, body text, and outbound links. 4. Sends the page content to Anthropic Claude to return structured JSON for primary/secondary keywords, named entities, and topic categories. 5. Writes the page node plus keyword, entity, and link relationships into Postgres tables (seopages, seokeywords, seoentities, seopagekeywords, seopageentities, seopagelinks). 6. After all pages are processed, queries Postgres for digital-twin stats (pages, unique keywords, entities, internal links, orphan pages) and posts the summary to Slack. Setup 1. Create a Postgres database and add an n8n Postgres credential, then create the required tables and constraints used by the queries (seopages, seokeywords, seoentities, seopagekeywords, seopageentities, seopagelinks, including the ON CONFLICT keys). 2. Add an HTTP Header Auth credential for the Anthropic API (x-api-key) and ensure the selected model name in the config matches your Anthropic access. 3. Add a Slack credential, set or create the target channel, and update seedUrl, sitemapUrl, maxPages, sameDomainOnly, anthropicModel, and slackChannel in the crawl configuration.