AutomationFlowsWeb Scraping › Yard Stats: Semantic Search Tool

Yard Stats: Semantic Search Tool

Yard Stats: Semantic Search Tool. Uses executeWorkflowTrigger, httpRequest. Event-driven trigger; 3 nodes.

Event trigger★☆☆☆☆ complexity3 nodesExecute Workflow TriggerHTTP Request
Web Scraping Trigger: Event Nodes: 3 Complexity: ★☆☆☆☆ Added:

This workflow follows the Execute Workflow Trigger → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Yard Stats: Semantic Search Tool",
  "nodes": [
    {
      "id": "1",
      "name": "Workflow Input",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        200,
        300
      ],
      "notes": "Called by the 'Semantic Search' tool node inside Yard Stats: Q&A (Call n8n Workflow Tool) -- not meant to be run standalone or scheduled. Expects {query_text, start?, end?, object_types?, limit?} as input -- start/end should be resolved ISO timestamps (the calling Agent already resolved 'last week'/'today' into concrete bounds before calling this tool, same as every other tool in that workflow). Packaged as its own sub-workflow (rather than one HTTP Request Tool node) specifically so the 1024-float embedding vector never has to round-trip through the Agent's own context/tokens -- it's computed and consumed entirely server-side, between these two HTTP calls.",
      "notesInFlow": true,
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "query_text",
              "type": "string"
            },
            {
              "name": "start",
              "type": "string"
            },
            {
              "name": "end",
              "type": "string"
            },
            {
              "name": "object_types",
              "type": "string"
            },
            {
              "name": "limit",
              "type": "number"
            }
          ]
        }
      }
    },
    {
      "id": "2",
      "name": "Call Embedding Model",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        450,
        300
      ],
      "notes": "Same embedding slot/model (Qwen3-Embedding-0.6B-GGUF, 1024 dims) the AI stage's own embed step uses (ai_worker._embed_text, or n8n's equivalent embed-then-insert step if that flow is active) -- the query text has to be embedded with the same model that wrote the stored sightings' vectors, or cosine distance between them is meaningless.",
      "notesInFlow": true,
      "parameters": {
        "method": "POST",
        "url": "http://REPLACE_WITH_VLM_HOST:REPLACE_WITH_VLM_PORT/REPLACE_WITH_EMBED_SLOT/v1/embeddings",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ { \"input\": $json.query_text } }}",
        "options": {}
      }
    },
    {
      "id": "3",
      "name": "Search Semantic (API)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        300
      ],
      "notes": "ingest-worker's POST /search/semantic -- cosine-distance ordered, filtered by the start/end window and object_types the Agent already resolved/chose. Returns the rows as-is; the Agent reads this tool's output directly, no separate parse step needed.",
      "notesInFlow": true,
      "parameters": {
        "method": "POST",
        "url": "http://REPLACE_WITH_INGEST_WORKER_HOST:REPLACE_WITH_INGEST_WORKER_PORT/search/semantic",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ { \"embedding\": $('Call Embedding Model').item.json.data?.[0]?.embedding, \"start\": $('Workflow Input').item.json.start || null, \"end\": $('Workflow Input').item.json.end || null, \"object_types\": $('Workflow Input').item.json.object_types ? $('Workflow Input').item.json.object_types.split(',').map(s => s.trim()) : null, \"limit\": $('Workflow Input').item.json.limit || 10 } }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Workflow Input": {
      "main": [
        [
          {
            "node": "Call Embedding Model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Embedding Model": {
      "main": [
        [
          {
            "node": "Search Semantic (API)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Yard Stats: Semantic Search Tool. Uses executeWorkflowTrigger, httpRequest. Event-driven trigger; 3 nodes.

Source: https://github.com/shuricksumy/frigate-yard-stats/blob/main/n8n/yard-stats-semantic-search-tool.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

Our KB Tool - Confluence KB is crafted to seamlessly integrate into the IT Ops AI SlackBot Workflow, enhancing the IT support process by enabling sophisticated search and response capabilities via Sla

Execute Workflow Trigger, HTTP Request
Web Scraping

twenty-sync. Uses executeWorkflowTrigger, httpRequest. Event-driven trigger; 6 nodes.

Execute Workflow Trigger, HTTP Request
Web Scraping

This workflow converts an HTML string into a polished PDF file using the powerful open-source Gotenberg service. It's designed to be a reusable utility in your automation stack. Receives Input: The wo

HTTP Request, Execute Workflow Trigger
Web Scraping

LFM Race. Uses httpRequest, executeWorkflowTrigger. Event-driven trigger; 6 nodes.

HTTP Request, Execute Workflow Trigger
Web Scraping

Pitskill Race. Uses httpRequest, executeWorkflowTrigger. Event-driven trigger; 6 nodes.

HTTP Request, Execute Workflow Trigger