Mindket

Business profile and keyword report from a website

Newversion 1 · updated

Overview

An n8n workflow that profiles a business from its web address. A Gemini agent researches the site with Firecrawl and Claude, DataForSEO adds its keywords, and Gmail sends you the filled Google Doc report and its PDF.

Business profile and keyword report from a website 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
  • Google Drive: each run’s sheet, filled document and PDF stay there
  • A CRM or a chat tool: add a node after Send email to file the links with the client’s record

Platform

Connects 8 apps

How it works

Trigger

Form

It starts when someone sends the Page SEO/GEO Check form with:

  • A page address
  • A country, from a list
  • A language, from a list

Actions

  1. Turns the country and the language into DataForSEO codes and copies your sheet template
  2. A Gemini agent scrapes the site, searches the web through Claude and saves 14 business fields
  3. DataForSEO adds the keywords the page ranks for, and keyword ideas with their intent
  4. A copy of your Google Doc template is filled in and saved to Drive as a document and a PDF
  5. Gmail sends the two links and the run’s session ID

Result

A business profile with brand traits, a persona and customer questions, two keyword lists, and a report as a document and a PDF

Integrations

What you need before you start.

Google Sheets

Spreadsheet

Holds each run’s copy of your template: the 14 business fields, the ranked keywords and the suggested ones.

NeedsA Google account to sign in with, and a template with three tabs

Google Drive

File storage

Copies both templates for each run and keeps the filled report as a document and a PDF.

NeedsA Google account to sign in with

Google Docs

Documents

Swaps the 16 placeholders in the copied template for the run’s values.

NeedsA Google account, and a document template with the placeholders

Gmail

Email

Sends the report’s two links and the session ID to one inbox.

NeedsA Google account to sign in with

Google Gemini

Language model

Runs Gemini 2.5 Flash for the agent that plans the research and saves the fields.

NeedsGemini API key

Anthropic

Web research

Runs Claude Sonnet 4.5 with web search, for the brand search and the deeper market research.

NeedsAnthropic API key, with web search on

Firecrawl

Web scraping

Reads the page as Markdown for the agent.

NeedsFirecrawl API key, typed into the node’s header

DataForSEO

Keyword data

Returns the page’s ranked keywords, keyword ideas for the site and the search intent of each idea.

NeedsAPI login and password, as HTTP Basic Auth

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
27 steps, starting on a form
AI
1 step calls an AI model: Business Analyst
Sign-ins
Signs in to: Google Drive, Google Gemini, Google Sheets, DataForSEO, Google Docs and Gmail
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 11 of its step types

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

About

What it is

This n8n workflow builds a business profile and a keyword report from one web address. A form asks for the address, a country and a language. A Gemini 2.5 Flash agent scrapes the site with Firecrawl, has Claude search the web twice, and saves 14 fields to a copy of your sheet template. DataForSEO then lists the keywords the page ranks for and new ideas with a clear search intent. The fields fill a copy of your Google Doc template, Drive keeps it as a document and a PDF, and Gmail sends you both links. It runs on 35 nodes.

Who it suits

SEO consultants and agencies who prepare a short audit before a sales call, and marketers who need a first read of a business in a new country. It fits people who already pay for DataForSEO. Skip it if you want a report with no setup. You build two templates and a sub-workflow before the first run.

Who uses it, and how
IndustryWho uses itHow they use itExample
SEO agenciesAccount managersRun it on a prospect’s site the day before the first callAn agency enters a bakery chain’s address and arrives with its ranked keywords and a customer persona.
Marketing consultingFreelancers taking on a clientRead the profile and the brand traits as a first briefA consultant sends the PDF to a new client and asks what the profile got wrong.
Companies entering a marketIn-house marketersPick the new country and its language in the formA team opening in Spain runs its own site in Spanish to see which keyword ideas come back.
Content teamsEditorsTreat the suggested keywords and the five customer questions as a list of pages to writeAn editor turns the five questions into five answers on the site’s help page.

You need to be at home in n8n: two templates, a sub-workflow and accounts at four vendors. Its author puts setup at about 14 minutes, which assumes the templates and the sub-workflow already exist.

Where to use it

Any n8n that can reach Google, Anthropic, Firecrawl and DataForSEO will run it. The report lands in your Drive and your inbox.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Google Drive: each run’s sheet, filled document and PDF stay there
  • A CRM or a chat tool: add a node after Send email to file the links with the client’s record

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Build the two templates first, since every run copies both.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
GoogleOne account for Sheets, Docs, Drive and Gmail, and a Gemini API key
AnthropicAn API key with web search on, for the two Claude tools
FirecrawlAn API key, for the scrape
DataForSEOAn API login and password, for three keyword calls
A sub-workflowYour own, for a site’s links and Google’s results, with the fields below
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Make a sheet with the tabs Business Data, Page Ranked Keywords and Suggested Page Keywords, headed as the README lists. Put its ID in Copy file in place of YOUR_SHEET_TEMPLATE_ID.
  3. Make a Google Doc laid out as your report, with placeholders such as {{client_name}}. The README lists all 16. Put its ID in Make Copy of Template in place of YOUR_DOC_TEMPLATE_ID.
  4. Add Google Sheets, Drive, Docs and Gmail credentials, and select each one in the nodes of its app.
  5. In Send email, replace YOUR_EMAIL_ID with the inbox for the reports.
  6. Add a Gemini credential in Business Analyst, and an Anthropic credential in online_Search and deep_research.
  7. In URL_search, replace <YOUR_FIRECRAWL_KEY> with your key, brackets included.
  8. Add an HTTP Basic Auth credential with your DataForSEO login. Select it in Get Ranked Keywords, Keyword for Site and Search Intent.
  9. Build the sub-workflow and pick it in get_internal_links, serp_Search and ai_Mode.
  10. Save, send a test through the form’s test address, then publish.

The sub-workflow is not in the file. Its three tool nodes pointed at a workflow in its author’s own n8n, so they arrive empty. Yours receives these fields, and function names the job:

{
  "function": "internal_links, serp_search or ai_mode",
  "url": "<the form’s Page URL>",
  "keyword": "<the agent’s search words>",
  "location_code": "<DataForSEO’s number for the country>",
  "language_code": "<DataForSEO’s code for the language>"
}

get_internal_links sends only function and url. The file does not show what its author’s version returned, so any text or JSON the agent can read will do. The README names DataForSEO and Firecrawl endpoints that fit the three jobs.

How to use it

Open the form from Submit Form, type the address without https, and pick a country and a language. The run goes on behind the form and takes a while, since the agent may use up to 40 tool rounds. When it ends, an email brings the document link, the PDF link and the run’s session ID. Each run gets its own copy of the sheet.

What to change for a different result
To changeWhere
The report’s lookYour document template, where the placeholders sit
The fields the agent writesThe field table in the Business Analyst prompt
Which keyword ideas stay1000 in Filter Keywords, and 200 and 0.7 in Filter
How many ranked keywords"limit": 200 in the body of Get Ranked Keywords
Who gets the email, and its wordsSend to, the subject and the text of Send email

Example

You enter northfieldbikes.example, pick United Kingdom and English, and send the form. The agent saves a row like this one in Business Data, shown with its text cut:

{
  "client_name": "Northfield Bikes",
  "client_country": "United Kingdom",
  "client_language": "English",
  "brand_personality_matrix": "…, …, …, …, …",
  "people_ask": "1. …?\n2. …?\n3. …?\n4. …?\n5. …?",
  "customer_journey": "Awareness: …\nConsideration: …\nPurchase: …\nLoyalty: …",
  "GEO_tactic": "…",
  "call_to_action": "…"
}

Page Ranked Keywords gets up to 200 rows, each with its volume, cost per click, competition and estimated traffic. Suggested Page Keywords gets the ideas that passed the filters, with their intent labels. Then the email arrives:

Subject: Business Analysis for Northfield Bikes

Hey 👋
Here’s your report 📄
📝 Name: Business Analysis Report for Northfield Bikes
🌐 Document: <link to the uploaded document>
📘 PDF: <link to the PDF>
⚙️ Session ID: cc48213

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. The agent’s tools hang under it on thin lines, and the agent decides which to call and when. Run one small site first. Then open Business Analyst in that execution to read each tool call and its answer.

For experts. No node reads the agent’s own reply. Its work reaches the report only through the row it saves, and the keyword branch uses the form’s values alone.

The agent’s tools
ToolWhat it isWhat to know
URL_searchFirecrawl’s scrape, Markdown of the main contentAccepts a cached copy up to four hours old (maxAge)
online_Search, deep_researchClaude Sonnet 4.5 with web searchUp to 5 and 10 searches a call, answers in the form’s language
get_internal_links, serp_Search, ai_ModeYour sub-workflowThe last two pass DataForSEO’s location and language codes
insert_row_in_data_tableAn append to Business DataThe session ID and the form’s country, language and address go in without the agent
Think_tooln8n’s think toolA place for the agent’s notes, costing tokens only

Gemini runs at temperature 0.2 with up to 7,000 output tokens.

Good to know

It spends money at four vendors, and a run can end without a report.

  • Billing: Google bills the agent’s rounds, Anthropic bills tokens plus each web search, Firecrawl counts the scrape, and DataForSEO bills every call, with one intent call for each keyword idea
  • Models: Anthropic retires claude-sonnet-4-5-20250929 on 30 November 2026, its deprecations page said on 2 November 2026, so switch both Claude tools to claude-sonnet-5-5. Google now serves Gemini 2.5 only to accounts that used it before, so a new key may need gemini-3.8-flash
  • No report: when the page ranks for nothing, no idea passes the filters or the agent never saves its row, the run stops before the email. The README shows how to let it go on
  • The floor: a comment in Filter Keywords says 100 searches, but its code keeps ideas from 1,000 up
  • An unused field: the save tool asks for primary_competitors, which the report never shows
  • Files: each run leaves a sheet copy, a filled Google Doc and two uploads in your Drive
  • Open form: once it is published, anyone with its address can start a run on your keys
  • Your data: the address and the scraped text go to Firecrawl, Google, Anthropic and DataForSEO
  • Credentials: the JSON holds none and nothing from its author’s Drive. The backslashes the original copy lost from three prompts are back

README and files

README

Business profile and keyword report from a website

An n8n workflow that turns one web address into a written business profile and two keyword lists. You give a form the
address, a country and a language. A Gemini agent studies the site with seven tools and saves 14 fields about the business
to a sheet. DataForSEO then adds the keywords the page already ranks for and new ones worth a page of their own. Last, the
workflow fills a copy of your Google Doc template, keeps it in Google Drive as a document and a PDF, and emails you both links.

What is inside

  • workflow.json: the workflow as n8n exports it, 35 working nodes and seven sticky notes that label its parts. It holds
    no credential.
  • README.md: these notes.

What we changed from the original copy

  • Copy file and Make Copy of Template pointed at its author's own sheet and document. They now ask for
    YOUR_SHEET_TEMPLATE_ID and YOUR_DOC_TEMPLATE_ID.
  • get_internal_links, serp_Search and ai_Mode called a sub-workflow in its author's n8n. They arrive empty, so you
    pick your own (below).
  • The Firecrawl header in URL_search reads Bearer <YOUR_FIRECRAWL_KEY>.
  • The export had dropped the backslashes from three prompts, and we put them back. In Business Analyst, the line break
    the agent must write between questions and between journey stages had become a bare n, and it reads \n again. In
    online_Search and deep_research, the math markers read \( \) and \[ \] again.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • A Google account for Sheets, Docs, Drive and Gmail.
  • A Gemini API key from Google AI Studio.
  • An Anthropic API key. Its web search must be on, which it is unless an admin turned it off in the Claude Console.
  • A Firecrawl API key.
  • A DataForSEO account, for its API login and password.
  • A sub-workflow of your own for a site's links and for Google results (below).

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Make the sheet template with the three tabs below. Copy its ID, the long part of its address between /d/ and /edit,
    and put it in Copy file in place of YOUR_SHEET_TEMPLATE_ID.
  3. Make the document template with the 16 placeholders below, and put its ID in Make Copy of Template in place of
    YOUR_DOC_TEMPLATE_ID.
  4. Add Google credentials. Sheets: insert_row_in_data_table, Insert Page Ranked Keywords,
    Insert Suggested Page Keywords and Get Business Data. Drive: Copy file, Make Copy of Template, Generate Doc,
    Add Doc to Drive, Generate PDF and Add PDF To Drive. Docs: Change Variables in Doc. Gmail: Send email.
  5. In Send email, replace YOUR_EMAIL_ID in Send to with the inbox that should get the reports.
  6. Add a Gemini credential and select it in Business Analyst.
  7. Add an Anthropic credential and select it in online_Search and deep_research. Set both to claude-sonnet-5-5
    before 30 November 2026 (Good to know).
  8. In URL_search, replace <YOUR_FIRECRAWL_KEY> with your key. The brackets go too.
  9. Add an HTTP Basic Auth credential with your DataForSEO login and password. Select it in Get Ranked Keywords,
    Keyword for Site and Search Intent.
  10. Build the sub-workflow and pick it in get_internal_links, serp_Search and ai_Mode.
  11. Save, send one test through the form's test address, then publish the workflow.

The two templates

The sheet template is copied for every run, and each copy keeps that run's data. Spell the headers exactly as here.

| Tab | Columns |
|---|---|
| Business Data | session_id, client_name, client_country, client_language, client_website, client_description, target_audience_personas, brand_personality_matrix, unique_value_proposition, primary_competitors, people_ask, customer_journey, customer_persona_trait, eeat_signal_integration, GEO_tactic, call_to_action |
| Page Ranked Keywords | keyword, search_volume, cpc, competition_level, estimated_traffic, session_id |
| Suggested Page Keywords | keyword, search_volume, cpc, competition, intent, intent_probability, session_id |

The document template is your report's layout. Write these placeholders where each value should go, braces included:
{{client_name}}, {{client_website}}, {{client_country}}, {{client_language}}, {{date_time}},
{{client_description}}, {{target_audience_personas}}, {{brand_personality_matrix}},
{{unique_value_proposition}}, {{people_ask}}, {{customer_journey}}, {{customer_persona_trait}},
{{eeat_signal_integration}}, {{GEO_tactic}}, {{call_to_action}} and {{ranked_keywords_sheets_link}}. The last one
becomes a link to the run's copy of the sheet, where the keyword lists are.

The sub-workflow

Three of the agent's tools call one sub-workflow, and function tells it which job is wanted. Start yours with a When
Executed by Another Workflow trigger that accepts these five fields:

{
  "function": "internal_links, serp_search or ai_mode",
  "url": "<the form's Page URL>",
  "keyword": "<the agent's search words>",
  "location_code": "<DataForSEO's number for the country>",
  "language_code": "<DataForSEO's code for the language>"
}

get_internal_links sends function and url only. serp_Search and ai_Mode send the other four. Return text or JSON
the agent can read. The file says nothing about what its author's version did, so this is one way to build it, from
DataForSEO's and Firecrawl's API pages read on 2 November 2026:

internal_links  POST https://api.firecrawl.dev/v2/map
serp_search     POST https://api.dataforseo.com/v3/serp/google/organic/live/advanced
ai_mode         POST https://api.dataforseo.com/v3/serp/google/ai_mode/live/advanced

How a run goes

  1. Submit Form takes the page's address and picks from two lists. Get Country & Language Code turns the
    country and the language into DataForSEO's codes, and Session ID makes a run ID such as cc48213.
  2. Copy file copies your sheet template for this run, named after the address.
  3. Business Analyst runs Gemini 2.5 Flash with eight tools. One scrapes the page (URL_search), and the three
    sub-workflow tools list its links and read Google. Two ask Claude to search the web in the chosen language
    (online_Search, deep_research). Think_tool holds its notes, and insert_row_in_data_table saves the 14 fields.
    It may take up to 40 tool rounds.
  4. Get Ranked Keywords asks DataForSEO for up to 200 keywords the address ranks for. Filter keywords drops repeats and
    sorts them by search volume, and they land in Page Ranked Keywords.
  5. Keyword for Site asks Google Ads data for keyword ideas. Filter Keywords keeps ideas with 1,000 or more monthly
    searches, Search Intent labels each one, and Filter keeps those over 200 searches with an intent probability above
    0.7. They land in Suggested Page Keywords.
  6. Get Business Data reads the run's row back by its session ID. Make Copy of Template copies your document, and
    Change Variables in Doc replaces its 16 placeholders.
  7. Generate Doc exports the filled document as an OpenDocument file, and Add Doc to Drive uploads it to My Drive.
    Generate PDF and Add PDF To Drive do the same as a PDF.
  8. Send email sends the file name, both links and the session ID to the address in Send to.

Change the look

  • The report's layout: your document template. Move, style or drop placeholders there.
  • What the agent writes: the field table in the Business Analyst prompt. It sets five brand traits, five questions,
    four journey stages and a persona of four to six sentences.
  • Which keywords count: 1000 in Filter Keywords, 200 and 0.7 in Filter, and "limit": 200 in the body of
    Get Ranked Keywords.
  • The email: the subject and text of Send email.
  • Countries and languages: the form's two lists. A new one also needs its code in Get Country & Language Code.
  • Models: Business Analyst uses models/gemini-2.5-flash, and both Claude tools use claude-sonnet-4-5-20250929.

Good to know

  • Models: Anthropic's deprecations page, read on 2 November 2026, retires claude-sonnet-4-5-20250929 on 30 November 2026
    and names claude-sonnet-5-5 as its replacement. Google's page says the 2.5 models stay on but only for accounts that
    used them before, and points new projects to Gemini 3.8 Flash. If your key is refused, pick gemini-3.8-flash in
    Business Analyst.
  • Billing: Google bills the agent's tokens over all its rounds. Anthropic bills tokens plus each web search, up to 5 in an
    online_Search call and 10 in a deep_research call. Firecrawl counts each scrape, and DataForSEO bills every call,
    with Search Intent making one call for each keyword idea. Try one small site first.
  • A run can stop without a report. When the page ranks for nothing, or no keyword idea passes the filters, the next node
    gets no items and nothing after it runs, so no email comes. To let it carry on with empty lists, turn on Always Output
    Data in the settings of Filter keywords, Filter Keywords and Filter. The same happens when the agent never saves
    its row, and the run's execution shows which tool it skipped.
  • The search floor: a comment in Filter Keywords says 100, but its code keeps 1,000 and up. So the volume test in
    Filter never removes anything, and only the intent probability decides.
  • primary_competitors: the save tool has a column for it, but the prompt does not ask for it and the report never
    shows it.
  • client_website is saved as typed in the form, though the prompt asks the agent for a bare domain.
  • Drive fills up: each run leaves a copy of the sheet, a filled Google Doc, and the uploaded document and PDF, the last two
    in the root of My Drive. The emailed Document link opens the OpenDocument upload.
  • Open form: once the workflow is published, anyone with the form's address can start a run on your keys. Turn on the
    form trigger's basic authentication or keep the address to yourself.
  • Your data: the address and what the scrape finds go to Firecrawl, Google, Anthropic and DataForSEO.
  • Your key: the Firecrawl key sits in a header, so take it out before you share the workflow.
Files
README.md  10 KB
workflow.json  100 KB

2 files, 110 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Marketing & SEO

See all in Marketing & SEO

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

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