---
title: "Daily competitor signals compared with your company"
kind: "Kit"
category: "Business"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/7283594d-80cd-4d42-9d71-ac1f18a8b4cd"
updated: "2026-11-09"
---

# Daily competitor signals compared with your company

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that researches each competitor in your Google Sheet every day. Explorium and Tavily feed an agent recent signals, Apify adds LinkedIn and traffic numbers, and gpt-4.1-mini compares them with your company in a short paragraph.

Daily competitor signals compared with your company is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow checks on your competitors every day and writes a comparison with your own company into Google Sheets. It reads a list of company names and domains from one tab. For each one, an AI agent asks Explorium for the past week’s signals: content, ads, product launches, partnerships, press and changes to the tech stack. Tavily finds the company’s LinkedIn page. Two Apify Actors then fetch the follower and staff counts and a traffic figure, and a second agent sets all of it against your own figures in a paragraph. Fifteen nodes run it. Nothing is sent.

### Who it suits

Founders, product marketers and agency strategists who watch a short list of rivals and want a running record in a sheet. Keep the list short, since every company costs several paid calls on each run. Skip it if you want an alert the moment a rival changes something. It only writes rows.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Software and SaaS | Product marketers | List the closest rivals and read the new rows each Monday | A product marketer spots a rival’s new integration in the sheet before the sales team hears of it. |
| Online retail | Brand managers | Fill \`My company\` with their own followers and traffic, so each comparison has a baseline | A skincare brand sets its LinkedIn following against three larger rivals. |
| Marketing agencies | Account strategists | Keep one sheet for each client, with the client’s figures in \`My company\` | A strategist pastes the latest insight paragraphs into a client’s monthly report. |
| B2B services | Founders of consultancies | Switch the schedule to weekly and track the firms they compete with for bids | A founder sees a rival’s run of press coverage before a large pitch. |

You need some n8n and five accounts: OpenAI, Explorium, Tavily, Apify and Google. Its author puts setup at about 15 minutes, which assumes the accounts and the sheet already exist.

### Where to use it

Any n8n that can reach OpenAI, Explorium, Tavily, Apify and Google will run it. Keep it published. A workflow that is not published never fires on its schedule.

- n8n Cloud: import the file, add the credentials and publish
- Your own n8n server: the same file, with the schedule following the server’s time zone
- Google Sheets: one new row for each competitor on every run, so the tab becomes a history
- A chat or email tool: add a node after \`Append row in sheet\` to send each insight on

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Make the sheet first, since three nodes point at it.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key that can use \`gpt-4.1-mini\` |
| Explorium | An account with credit, and a token its MCP server accepts |
| Tavily | An account and its API key, for the LinkedIn search |
| Apify | An account and its API token, with credit for two Actors |
| Google | An account that can edit the sheet, for a Google Sheets OAuth2 credential |
| A sheet | Three tabs: \`Competitor details\`, \`My company\` and \`Competitor analysis\` |

The sheet’s three tabs

| Tab | Columns |
| --- | --- |
| \`Competitor details\` | Company name and Company domain, one competitor in each row |
| \`My company\` | Your own figures in the first row under headers you choose, such as LinkedIn followers, staff and monthly visits. Only that row is read |
| \`Competitor analysis\` | Company, Website Traffic Growth, Content Output, Ad Activity, Product Launch Frequency, Partnerships Integrations Added, LinkedIn Followers, Employee Count, Press Mentions PREvents, Technology Stack Changes, Insights |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Make the sheet with the three tabs, then copy its ID: the long part of its address between `/d/` and `/edit`.
3. Add a Google Sheets OAuth2 credential. In `Get row(s) in sheet`, `Get row(s) in sheet1` and `Append row in sheet`, select it and replace `YOUR_SHEET_ID` with the ID.
4. Add an OpenAI credential and select it in `OpenAI Chat Model`.
5. Open `Explorium`, add a Bearer Auth credential with your Explorium token and select it.
6. In `tavilySearch`, replace `<YOUR_TAVILY_KEY>` in the Authorization header with your key. The brackets go too, so the header reads Bearer, a space and the key.
7. In `Linkedin Followers + Employee count` and `Website visits`, replace `<YOUR_APIFY_TOKEN>` with your Apify token in the same way.
8. Set a day and an hour in `Schedule Trigger`, put one competitor in `Competitor details` and press Execute workflow. Press Publish when the new row looks right.

The file’s `Explorium` node is an MCP Client Tool of version 1, which speaks only SSE, at `https://mcp.explorium.ai/sse`. Explorium’s own sign-in page, read on 2 November 2026, names `https://mcp.explorium.ai/mcp` over HTTP Streamable, signed in with OAuth. Both addresses asked for sign-in when we called them without a token that day. If your token is refused, swap the node for a current MCP Client Tool set up that way and connect it to `AI Agent`.

### How to use it

Keep `Competitor details` to the companies you want watched, one name and domain to a row. Each run takes them one at a time, and every pass adds a row to `Competitor analysis` with the agent’s findings, three numbers from Apify and a paragraph of insight. Nothing is overwritten. To change your own baseline, edit the first row of `My company`.

What to change for a different result

| To change | Where |
| --- | --- |
| How often it runs | \`Schedule Trigger\`, which has no time set in the file and so runs daily at midnight |
| What the research looks for | The system message of \`AI Agent\` and the example in \`Structured Output Parser\`, seven fields in both |
| How far back it looks | The last line of the same system message, which asks for signals from the past week |
| The comparison | The system message of \`Insights\`, which asks for a paragraph of about 200 words |
| Columns saved | The mapping in \`Append row in sheet\` |
| Model | \`OpenAI Chat Model\`, \`gpt-4.1-mini\` for both agents and the parser |

### Example

You put one rival in `Competitor details` and your own figures in `My company`.

Two tabs before a run

| Tab | Row |
| --- | --- |
| \`Competitor details\` | Company name: Northwind Analytics. Company domain: northwind.example |
| \`My company\` | LinkedIn followers: 4,200. Employees: 35. Monthly visits: 18,000 |

The research agent answers in its parser’s shape, shown here with the content cut:

```json
{
  "contentOutput": "…",
  "adActivity": "…",
  "productLaunches": "…",
  "partnershipsIntegrationsAdded": "…",
  "pressMentionsPREvents": "…",
  "technologyStackChanges": "…",
  "linkedin": "https://www.linkedin.com/company/…"
}
```

The LinkedIn address goes to the first Actor, which returns the follower count and the company’s size. The domain goes to the second, which returns a traffic history. `Insights` reads those numbers, the six findings and your row. The new row in `Competitor analysis` ends with its paragraph, for instance that Northwind posts more often than you but has fewer followers.

### 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. An agent is a node that picks its own tools, here Explorium and a web search, which hang under it on thin lines. Start with a single competitor. Then open the run under Executions, where each node shows what it received and what it sent, which is where a wrong token or a missing column turns up.

**For experts.** The research agent gathers words, the two Actors add numbers, and a second agent with no tools writes the comparison.

The calls behind each row

| Node | Call | What to know |
| --- | --- | --- |
| \`Explorium\` | MCP Client Tool 1, SSE, Bearer Auth | The prompt has the agent match the business first, then call Explorium’s enrichment tools |
| \`tavilySearch\` | POST to Tavily’s search | The agent writes the whole JSON body. The prompt asks for three results from linkedin.com |
| \`Linkedin Followers + Employee count\` | LinkedIn Profile Scraper by anchor on Apify | Reads \`follower\_count\` and the second item of \`company\_size\` |
| \`Website visits\` | Ahrefs Scraper by radeance on Apify, traffic only | Reads \`organic\` from the fifth entry of \`website\_traffic\_history\` |
| \`Insights\` | \`gpt-4.1-mini\`, with no parser | Its input ends with your first \`My company\` row as JSON |

Both Actors answered when we looked them up on 2 November 2026. Each is called synchronously, and Apify ends such a call after 300 seconds, according to its API reference.

### Good to know

It spends money at four vendors. Two of its columns also hold less than their names say.

- Billing: OpenAI bills two \`gpt-4.1-mini\` agent runs for each competitor, plus a repair call whenever the parser rejects a reply. Explorium spends credits on its lookups, Tavily counts each search, and both Actors bill per result on Apify. Start small
- A retired model: OpenAI shuts down \`gpt-4.1-mini\` on 14 January 2027 and names \`gpt-6-luna\` as the replacement. Change the model in \`OpenAI Chat Model\` before then
- Explorium credit: its sign-in page offers a free trial of 100 credits and says calls fail once the balance is spent
- Traffic: \`Website Traffic Growth\` gets one organic traffic figure, the fifth entry of the history, not a rate of growth. A young domain may have nothing there
- Staff: \`Employee Count\` takes the second item of the Actor’s \`company\_size\`, so check in a first run what that item holds
- Overlap: the prompt asks for the past week while the schedule runs daily, so one piece of news can show up on several days. A weekly schedule matches the prompt
- History: rows are appended and never updated, so clear old ones when the tab grows long
- Your data: competitor names and domains go to OpenAI, Explorium, Tavily and Apify, and your first \`My company\` row goes to OpenAI
- Your keys: the Tavily key and the Apify token sit in headers, so take them out before you share the workflow
- Credentials: the JSON holds none, and nothing from its author’s sheet

## README

```markdown
# Daily competitor signals compared with your company

An n8n workflow that looks at each competitor in a Google Sheet once a day. An AI agent gathers the past week's signals
through Explorium and finds the company's LinkedIn page with Tavily. Two Apify Actors add follower, staff and traffic
numbers, and a second agent compares all of it with your own company in a paragraph. Every run adds one row for each
competitor to the sheet.

## What is inside

- `workflow.json`: the workflow as n8n exports it, fifteen nodes and no sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The author's sheet and its three tab ids are gone. The three Google Sheets nodes ask for `YOUR_SHEET_ID` and find their
  tab by name: `Competitor details`, `My company` or `Competitor analysis`.
- The Authorization headers held `Bearer <token>`. They now read `Bearer <YOUR_APIFY_TOKEN>` in the two Apify nodes and
  `Bearer <YOUR_TAVILY_KEY>` in `tavilySearch`, so you can see which key goes where.
- The Explorium credential is gone from `Explorium`. Its address is unchanged.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenAI API key that can use `gpt-4.1-mini`.
- An Explorium account with credit, and a token its MCP server accepts.
- A Tavily account and its API key.
- An Apify account and its API token, with credit for two Actors.
- A Google account, and a Google Sheet with three tabs (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 with the three tabs below, then copy its ID: the long part of its address between `/d/` and `/edit`.
3. Add a Google Sheets OAuth2 credential. In `Get row(s) in sheet`, `Get row(s) in sheet1` and `Append row in sheet`,
   select it and replace `YOUR_SHEET_ID` with the ID.
4. Add an OpenAI credential and select it in `OpenAI Chat Model`. The two agents and the parser all use it.
5. Open `Explorium`, add a Bearer Auth credential with your Explorium token and select it.
6. In `tavilySearch`, replace `<YOUR_TAVILY_KEY>` in the Authorization header with your key. The brackets go too, so the
   header reads Bearer, a space and the key.
7. In `Linkedin Followers + Employee count` and `Website visits`, replace `<YOUR_APIFY_TOKEN>` with your Apify token in
   the same way.
8. Open `Schedule Trigger` and pick a day and an hour. The file sets none, so it runs daily at midnight.
9. Put one competitor in `Competitor details` and press Execute workflow. Press Publish when the new row looks right.

`Explorium` is an MCP Client Tool of version 1, which only speaks SSE, pointed at `https://mcp.explorium.ai/sse` with
Bearer Auth. Explorium's own sign-in page, read on 2 November 2026, names `https://mcp.explorium.ai/mcp` over HTTP
Streamable, signed in with OAuth. Both addresses asked for sign-in when we called them without a token that day. If your
token does not get through, add a fresh MCP Client Tool node. Set its Endpoint to the `/mcp` address, its transport to
HTTP Streamable and its authentication to MCP OAuth2, then connect it to `AI Agent` as a tool and delete the old one.

## The sheet

| Tab | Columns |
|---|---|
| `Competitor details` | `Company name`, `Company domain`, one competitor in each row |
| `My company` | Your own figures in the first row, under headers you choose, such as LinkedIn followers, staff and monthly visits. Only that row is read |
| `Competitor analysis` | `Company`, `Website Traffic Growth`, `Content Output`, `Ad Activity`, `Product Launch Frequency`, `Partnerships Integrations Added`, `LinkedIn Followers`, `Employee Count`, `Press Mentions PREvents`, `Technology Stack Changes`, `Insights` |

Spell the headers of the first and last tabs as above, since the nodes match them by name.

## How a run goes

1. `Schedule Trigger` starts `Get row(s) in sheet`, which reads every row of `Competitor details`. `Loop Over Items`
   hands them on one at a time, and `Edit Fields` keeps the name and the domain.
2. `AI Agent` runs `gpt-4.1-mini`. Its prompt has it match the business in Explorium, call Explorium's enrichment tools,
   then search linkedin.com through `tavilySearch` for the company page. It writes the whole Tavily request body itself.
   `Structured Output Parser` holds its reply to seven fields: `contentOutput`, `adActivity`, `productLaunches`,
   `partnershipsIntegrationsAdded`, `pressMentionsPREvents`, `technologyStackChanges` and `linkedin`. The prompt asks for
   signals from the past week, and the agent retries when it fails.
3. `Linkedin Followers + Employee count` sends the LinkedIn address to Apify's LinkedIn Profile Scraper by anchor. The
   workflow reads `follower_count` and the second item of `company_size` from its answer.
4. `Website visits` sends the domain to Apify's Ahrefs Scraper by radeance, with only traffic switched on. The workflow
   reads `organic` from the fifth entry of `website_traffic_history`.
5. `Get row(s) in sheet1` reads `My company`, and `Aggregate` gathers its rows into one list.
6. `Insights`, a second agent on the same model with no tools and no parser, gets the findings, the three numbers and
   your first `My company` row as JSON. It writes a paragraph of about 200 words.
7. `Append row in sheet` adds a row to `Competitor analysis`, then the loop takes the next competitor.

Both Actors answered when we looked them up on 2 November 2026. Each is called synchronously, and Apify ends such a call
after 300 seconds, according to its API reference.

## Change the look

- How often: `Schedule Trigger`. The prompt asks for the past week, so a weekly run matches it.
- What the research looks for: the system message of `AI Agent` and the example in `Structured Output Parser`. Change
  both together, then the mapping in `Append row in sheet`.
- The comparison: the system message of `Insights`, which sets the length at about 200 words.
- Your baseline: the first row of `My company`. Use the same kinds of figures the competitors get, so the agent compares
  like with like.
- Model: `OpenAI Chat Model`, shared by both agents and the parser.

## Good to know

- Each competitor costs two `gpt-4.1-mini` agent runs, plus a repair call when the parser rejects a reply. Explorium
  spends credits on its lookups, Tavily counts every search, and both Actors bill per result on Apify. Start with one
  competitor.
- OpenAI shuts down `gpt-4.1-mini` on 14 January 2027 and names `gpt-6-luna` as the replacement. Pick the new model
  in `OpenAI Chat Model` before that date.
- Explorium's sign-in page offers a free trial of 100 credits and says calls fail once the balance is spent.
- `Website Traffic Growth` gets one organic traffic figure, not a rate of growth. A young domain may have no fifth entry
  in its history, which leaves the column empty.
- `Employee Count` takes the second item of the Actor's `company_size`. Check in a first run what that item holds.
- Rows are appended and never updated, so the tab keeps a history and grows on every run. Clear old rows now and then.
- The prompts carry a few typing slips from the original copy, such as "tody". They do not change what the agents do, so
  they are left as they were.
- Competitor names and domains go to OpenAI, Explorium, Tavily and Apify. Your first `My company` row goes to OpenAI.
- The Tavily key and the Apify token sit in headers, so take them out before you share the workflow.
```

## What is in it

2 files, 26 KB, downloaded as a zip.

```text
README.md  7 KB
workflow.json  19 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 11 steps, starting on a schedule
- AI: 2 steps call an AI model: AI Agent and Insights
- Sign-ins: Signs in to: Google Sheets, OpenAI and Apify
- API keys: No API key is left in the file; 1 blank in it for your own key
- Step types: Mindket’s checker reads all 7 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/7283594d-80cd-4d42-9d71-ac1f18a8b4cd)
- [Its page on Mindket](https://mindket.com/p/7283594d-80cd-4d42-9d71-ac1f18a8b4cd)
