Mindket

Crawler agent that saves company social links to Supabase

Newversion 1 · updated

Overview

An n8n workflow that reads company names and websites from a Supabase table. An AI agent opens each site, follows its links and returns the social media profiles, which are saved to a second table.

Crawler agent that saves company social links to Supabase is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Another database: swap the two Supabase nodes for a Postgres, Airtable or Google Sheets node
  • Another data point: change the prompt and the schema to collect contact pages or a company summary

Platform

Connects 2 apps

How it works

Trigger

Manual start

It starts when you click Test workflow in n8n, and it works through the rows of a table:

  • The name and website columns of companies_input in Supabase

Actions

  1. Supabase returns the rows of companies_input, 50 by default
  2. The AI agent opens each website with two tools, one for its text and one for its links
  3. GPT-4o picks the pages to read and returns the social media profile links as JSON
  4. The company name, its website and the links are joined, item by item
  5. Supabase gets one new row per company in companies_output

Result

One row per company in companies_output, with its name, its website and a list of social media platforms with their URLs

Integrations

What you need before you start.

OpenAI

Language model

Runs gpt-4o for the agent, which decides which pages to open and returns the links as JSON.

NeedsOpenAI API key

Supabase

Database

Supplies the company list from companies_input and stores the results in companies_output.

NeedsA Supabase project, its host and a service role key

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
8 steps, starting by hand
Not reached
16 nodes no run reaches: Convert HTML to Markdown, Retrieve URLs, Split out URLs, Remove duplicated, Set domain to path and 11 more
AI
1 step calls an AI model: Crawl website
Sign-ins
Signs in to: Supabase and OpenAI
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 5 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow finds the social media profile links of a list of companies. It reads company names and websites from a Supabase table called companies_input. For each company an AI agent, GPT-4o, opens the website, reads its text and its links, follows the ones it needs and returns the profiles it finds as JSON. The workflow then writes the company name, its website and those links into a second table, companies_output. Twelve nodes run the flow. Two of them are tools that each hold a small workflow, and sixteen unconnected copies of those steps sit on the canvas beside ten sticky notes.

Who it suits

Teams that keep a list of companies and want the social profiles filled in without copying links by hand, such as sales, marketing and research teams. Skip it for sites that need a login or build their pages with JavaScript. The tools read plain HTML only.

Who uses it, and how
IndustryWho uses itHow they use itExample
SalesSales operations teamsFill in the social profiles of a lead list before outreachA rep sees a prospect’s LinkedIn and X links in one table beside the website.
MarketingAgenciesCheck which platforms a client’s rivals are onAn agency lists the platforms of ten rivals from their home pages.
ResearchAnalystsAdd social links to a company databaseAn analyst adds profile links to a list of startups.
RecruitingRecruitersKeep a company’s channels beside each open roleA recruiter follows a company’s pages before an interview.

You need a little n8n: import a file, add two credentials and create two Supabase tables. The workflow’s own sticky notes give no setup time.

Where to use it

Any n8n that can reach OpenAI, Supabase and the websites you list will run it.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Another database: swap the two Supabase nodes for a Postgres, Airtable or Google Sheets node
  • Another data point: change the prompt and the schema to collect contact pages or a company summary

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Two accounts and two tables cover every step.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key that can use gpt-4o
SupabaseA project with the tables companies_input and companies_output and its service role key
  1. In Supabase, create companies_input with the text columns name and website. Create companies_output with the text columns company_name and company_website and a jsonb column social_media.
  2. Add two or three companies to companies_input.
  3. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  4. Add an OpenAI credential and select it in OpenAI Chat Model.
  5. Add a Supabase credential and select it in Get companies and Insert new row.
  6. Click Test workflow. When the run ends, open companies_output. Each company should have a row with its social links.

How to use it

Fill companies_input, click Test workflow and read companies_output. The agent opens each site’s home page, reads the text and the links, and may open more pages, such as a contact page, to find profiles. Each result is a list of platforms with their URLs, saved as JSON beside the company’s name and website.

What to change for a different result
To changeWhere
What it looks forThe prompt and system message in Crawl website, and the schema in JSON Parser
The modelOpenAI Chat Model
The source and target tablesGet companies and Insert new row
How many companiesThe limit in Get companies, or its Return All switch
The fields read from a rowSelect company name and website

Example

A row in companies_input holds the name Acme Tools and its website. The agent opens the home page, finds links to LinkedIn and Instagram in the footer and returns them.

Insert new row writes one row to companies_output: company_name, company_website and social_media with the two platforms and their URLs. Nobody copied a link by hand.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here an AI agent is the middle box with two tools under it. Start with one company, then open the run to see which pages the agent fetched.

For experts. The two tools store their workflows inside the tool nodes, so the canvas copies do not run.

Where to look closer
NodeWhat it doesWhat to know
Crawl websiteAgent version 1.6 with the model, two tools and an output parserThis version runs as a Tools Agent, and the prompt asks for social profile URLs only
TextA Tool Workflow node with a stored workflowReturns the page as Markdown without links or images, and adds http:// to an address with no protocol
URLsA Tool Workflow node with a stored workflowReads the attributes of every a tag, so a link needs an href, and completes only links that start with /
Merge all dataCombines two inputs by positionNeeds the agent’s output and the mapped fields in the same order

Good to know

The model is near its shutdown, a run reads 50 rows by default and a crawl can go wrong in a few ways.

  • Model: OpenAI’s deprecations page, read on 12 November 2026, lists gpt-4o-2024-08-06 and gpt-4o-2024-11-20 with a shutdown on 14 January 2027 and names gpt-6-luna as the replacement. It does not list the name gpt-4o itself. Mindket’s copy keeps gpt-4o, so change it in OpenAI Chat Model before that day
  • Rows: Get companies has no Return All switch turned on, so it reads its default limit of 50
  • Errors: one failing site stops the run, since no step handles an error
  • Pages: the tools make a plain request, so a page built by JavaScript or one that blocks automated requests gives the agent little or nothing. A link that does not start with / and is not a full URL is dropped
  • Safety: the agent fetches whatever address it builds, including ones inside your network, and a page can carry text meant to steer the model. Crawl public sites you may read and keep the instance away from private addresses
  • Cost: each company takes several OpenAI calls, since the agent decides how many pages to open
  • Your data: the page text goes to OpenAI and the table rows stay in your Supabase project
  • Credentials: the JSON holds none

README and files

README

Crawler agent that saves company social links to Supabase

An n8n workflow that reads company names and websites from a Supabase table, then sends an AI agent to each site. The agent
reads the home page, follows the links it finds and returns the company's social media profile links in one JSON shape. A last
step writes the company, its website and those links into a second Supabase table.

What is inside

  • workflow.json: the workflow as n8n exports it, twelve nodes that run, sixteen unconnected copies of the tool steps and ten
    sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The credential links on the OpenAI and Supabase nodes were removed. Select your own.
  • A sticky note that pointed to the author's video guide and newsletter now holds a short setup note: the credentials to add,
    the two tables to create and a word about the unconnected copies.
  • The schema in JSON Parser listed platforms as a required key, and no property has that name. It now lists social_media,
    the one property the schema defines.
  • The model stays gpt-4o. See "Good to know" for its shutdown date.
  • Nothing else. The tools, the prompt and the table names are as they were.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An OpenAI API key that can use gpt-4o.
  • A Supabase project with two tables:
  • companies_input with the text columns name and website, one row per company.
  • companies_output with the text columns company_name and company_website and a jsonb column social_media.

Set it up

  1. In Supabase, create the two tables above and add a few companies to companies_input. Start with two or three rows.
  2. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  3. Add an OpenAI credential and select it in OpenAI Chat Model.
  4. Add a Supabase credential with your project's host and service role key. Select it in Get companies and Insert new row.
  5. Click Test workflow. The agent opens each company's site, and the rows appear in companies_output.
  6. Open companies_output. Each row holds the company name, its website and social_media, a list of platforms with their URLs.

How the two tools work

The agent calls two tools. Each is a Tool Workflow node with its workflow stored inside the node, so nothing else has to be saved
or linked. Each one takes a single query field, the full website address.

  • Text (text_retrieval_tool) adds http:// to an address that has no protocol, fetches the page, turns the HTML into
    Markdown without its links and images, and returns the text.
  • URLs (url_retrieval_tool) fetches the page and reads the attributes of every a tag. It drops tags without an href,
    removes repeats, puts the site's address in front of any link that starts with /, keeps only valid URLs and returns the
    list of titles and links as text.

The sixteen unconnected nodes on the canvas are drawn copies of these steps, shown so you can see them. The tools run what is
stored inside their own nodes. If you change a step, change it in the tool's workflow, not on the canvas.

How a run goes

  1. Execute workflow starts it. Get companies reads rows from companies_input, and Select company name and website keeps
    name and website.
  2. Each company goes two ways. Map company name and website renames the fields to company_name and company_website. `Crawl
    website` (version 1.6, a Tools Agent) is told to retrieve the social media profile URLs of the site.
  3. The agent uses Text and URLs as often as it decides, then answers in the shape JSON Parser defines: a social_media list
    of objects with a platform and a list of urls.
  4. Set social media array copies that list into a field of its own. Merge all data joins it to the mapped name and website,
    item by item in order, and Insert new row adds the result to companies_output.

Change the look

  • What it looks for: the system message and the prompt in Crawl website, and the schema in JSON Parser. Edit both together.
  • The model: OpenAI Chat Model.
  • The tables: Get companies and Insert new row. Any database n8n has a node for can take their place.
  • The fields read from the input: Select company name and website.

Good to know

  • Model: OpenAI's deprecations page, read on 12 November 2026, lists gpt-4o-2024-08-06 and gpt-4o-2024-11-20 with a shutdown
    on 14 January 2027 and names gpt-6-luna as the replacement. The page does not list the name gpt-4o itself. Change the model
    in OpenAI Chat Model before that day.
  • Get companies has no Return All switch turned on, so it reads the node's default limit of 50 rows. Turn Return All on, or
    work in batches, for a longer list.
  • One failing site stops the whole run, because no step handles an error. Merge all data pairs items by position, so keep the
    order of the companies as it is.
  • The tools make a plain request and read the HTML that comes back. A page built by JavaScript, or one that blocks automated
    requests, gives the agent little or nothing. A link that does not start with / and is not a full URL is dropped.
  • The agent fetches whatever address it builds, including ones inside your network, and a page can carry text meant to steer the
    model. Crawl public company sites you are allowed to read, follow each site's rules and keep the n8n instance away from private
    addresses.
  • Each company costs several OpenAI calls, since the agent decides how many pages to open.
  • The page text goes to OpenAI, and your table rows stay in your Supabase project.
Files
NOTICE.md  582 B
README.md  6 KB
workflow.json  34 KB

3 files, 40 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

Similar in Marketing & SEO

See all in Marketing & SEO

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New

Flux.2-Klein-9B-MatchingPose

nhathoangfoto · Kit

A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…

New