{
  "name": "Personal portfolio CV  Rag chatbot - with conversation store and email summary",
  "nodes": [
    {
      "id": "cfe6fd0a-546b-4f5d-8dbd-6ff2dd123a67",
      "name": "Embeddings Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        880,
        640
      ]
    },
    {
      "id": "bea384d2-a847-467d-a3eb-80e96bfb5a99",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1380,
        380
      ],
      "parameters": {
        "width": 660,
        "height": 960,
        "content": "## Set up steps\n\n1. **Google Cloud Project and Vertex AI API**:\n   - Create a Google Cloud project.\n   - Enable the Vertex AI API for your project.\n\n2. **Google AI API Key**:\n   - Obtain a Google AI A"
      }
    },
    {
      "id": "ac704b58-be39-47cf-9811-f4b9914673a0",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        1720
      ],
      "parameters": {
        "width": 840,
        "height": 540,
        "content": "## (optional) Chatting Stage :  SAVE CONVERSATION TO DATABASE NOCODB\n\n### Purpose\nThis endpoint api is intentionally decoupled. It optionally allows your frontend app to save the conversation history "
      }
    },
    {
      "id": "1ebb4304-ea8b-4838-854a-727234bd363c",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        420,
        2560
      ]
    },
    {
      "id": "cddff6d4-36d1-4647-a1a3-d931760e4d52",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        2440
      ],
      "parameters": {
        "width": 620,
        "height": 360,
        "content": "\n## EMAIL REPORT - DAILY CONVERSATIONS\n\n### Purpose\nThis scheduler will run daily scheduler. It will get all the daily conversation history daily from the database nocodb and then send an email summar"
      }
    },
    {
      "id": "69546a2b-0636-435f-8055-f1914aaf8891",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        1080
      ],
      "parameters": {
        "width": 840,
        "height": 580,
        "content": "## Chatting Stage :  CHAT ENDPOINT\n\n### Purpose\nThis endpoint api allows you to chat with the ai agent.\nThe ai agent will answer based on the vector database index `seanrag`. You may change the indexn"
      }
    },
    {
      "id": "9f3f93b4-73ee-4b0f-8460-92d8cb8dcf1c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        240
      ],
      "parameters": {
        "width": 640,
        "height": 400,
        "content": "## Setup Stage: TRAINING AUTOMATICALLY\n\n### Purpose\nThis trigger auto detects when a resume is updated or created.\nThen it will automatically convert the content data into chunks to be stored into  th"
      }
    },
    {
      "id": "0d941808-1478-442b-bd7a-e21177b376e3",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        2400
      ],
      "parameters": {
        "width": 2380,
        "height": 400,
        "content": " "
      }
    },
    {
      "id": "ea0c79b5-2dc0-4af7-a075-ffc0740dd096",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        1040
      ],
      "parameters": {
        "width": 2400,
        "height": 1220,
        "content": " "
      }
    },
    {
      "id": "b96bf7b6-03ec-43b2-9e29-063d467aec40",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        220
      ],
      "parameters": {
        "width": 2280,
        "height": 560,
        "content": " "
      }
    },
    {
      "id": "c73f8dcd-cdf6-4235-b980-0d16da65ae85",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        120
      ],
      "parameters": {
        "width": 260,
        "height": 80,
        "content": "# TRAINING"
      }
    },
    {
      "id": "fac51949-5b45-41f8-9d1f-dc7df180f0b6",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        800,
        1400
      ]
    },
    {
      "id": "0ec411ac-9ee8-4a84-87d4-b9a3ac47e379",
      "name": "Google Drive - Resume CV File Created",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        380,
        340
      ]
    },
    {
      "id": "7822a8fe-9c7c-418b-885c-c26eda33d44e",
      "name": "Google Drive - Resume CV File Updated",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        380,
        500
      ]
    },
    {
      "id": "912b1222-7c03-41a3-8c30-d93ed47b8141",
      "name": "Download CV File From Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        700,
        360
      ]
    },
    {
      "id": "96e86dab-a1d9-4845-908a-18b56fddee7c",
      "name": "Pinecone - Vector Store forr CV Content",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        920,
        360
      ]
    },
    {
      "id": "c3ccc43b-c16d-47c6-9876-1fd7cba8966b",
      "name": "CV File Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        1340,
        480
      ]
    },
    {
      "id": "4aa11c5b-794c-4a22-825b-f18e80a4eb05",
      "name": "CV content - Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        1440,
        600
      ]
    },
    {
      "id": "f6bf29f8-80b6-4705-96aa-322a26d661ab",
      "name": "Chat API - webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        580,
        1200
      ]
    },
    {
      "id": "1b401d1e-f615-494b-8d4a-44cef48e73cc",
      "name": "Personal CV AI Agent Assistant",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        880,
        1140
      ]
    },
    {
      "id": "b3ab3ed9-978a-4c9a-b305-1674a72c1f43",
      "name": "Chat API Response - Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1560,
        1180
      ]
    },
    {
      "id": "be5b1afc-feb7-4b38-b340-0f2e559a2d3c",
      "name": "Chat Memory -  Window Buffer",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        980,
        1420
      ]
    },
    {
      "id": "e3d50a38-caa7-4933-b25f-59a134c9d4e2",
      "name": "Resume lookup : Vector Store Tool",
      "type": "@n8n/n8n-nodes-langchain.toolVectorStore",
      "position": [
        1260,
        1320
      ]
    },
    {
      "id": "6ee711e3-2efe-4df7-a188-bc65f1e68d19",
      "name": "Resume Vector Store (Retrieval)",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        1280,
        1460
      ]
    },
    {
      "id": "740e8937-d2cc-4292-a8ac-a02fb16756da",
      "name": "Resume Embeddings Google Gemini (retrieval)",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        1320,
        1600
      ]
    },
    {
      "id": "8c80b27a-108f-409f-b109-3cc015a2e1bc",
      "name": "Resume Google Gemini Chat Model (retrieval)",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1600,
        1460
      ]
    },
    {
      "id": "ce9d9bc3-2404-493f-9a67-85ed3b33b031",
      "name": "Save Conversation API - Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        620,
        1920
      ]
    },
    {
      "id": "1bb1d48b-887c-4132-9f5f-5aa068cbf495",
      "name": "Save Conversation - NocoDB",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        940,
        1940
      ]
    },
    {
      "id": "8de96f7e-d7a0-46cc-9fd0-18c79b1220d6",
      "name": "Save Conversation API Webhook - Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1220,
        1940
      ]
    },
    {
      "id": "6e7c53c1-24c1-487d-8d99-2e7b8cedcf16",
      "name": "NocoDB - get all todays conversation",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        680,
        2560
      ]
    },
    {
      "id": "54a392f4-d77f-4dc9-a11d-416ca8853464",
      "name": "Group Conversation By Unique Session + Email - Code",
      "type": "n8n-nodes-base.code",
      "position": [
        900,
        2560
      ]
    },
    {
      "id": "db18e8bf-cca3-4d99-93f7-910688d44017",
      "name": "Format HTML Display  For email",
      "type": "n8n-nodes-base.html",
      "position": [
        1140,
        2540
      ]
    },
    {
      "id": "e43ef9ed-bb25-48c6-8a17-c9a98930961b",
      "name": "Send Report To Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1420,
        2560
      ]
    },
    {
      "id": "fbfd0984-beee-444e-a39d-ea6daac8e5c6",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        940
      ],
      "parameters": {
        "width": 260,
        "height": 80,
        "content": "# CHATTING"
      }
    },
    {
      "id": "93afead7-ee52-4a08-bc29-cd0e93ceea47",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        2300
      ],
      "parameters": {
        "width": 260,
        "height": 80,
        "content": "# REPORTING"
      }
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "NocoDB - get all todays conversation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Chat API - webhook": {
      "main": [
        [
          {
            "node": "Personal CV AI Agent Assistant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CV File Data Loader": {
      "ai_document": [
        [
          {
            "node": "Pinecone - Vector Store forr CV Content",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Google Gemini": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone - Vector Store forr CV Content",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Personal CV AI Agent Assistant",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Save Conversation - NocoDB": {
      "main": [
        [
          {
            "node": "Save Conversation API Webhook - Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Chat API Response - Webhook": {
      "main": [
        []
      ]
    },
    "Chat Memory -  Window Buffer": {
      "ai_memory": [
        [
          {
            "node": "Personal CV AI Agent Assistant",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Format HTML Display  For email": {
      "main": [
        [
          {
            "node": "Send Report To Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Personal CV AI Agent Assistant": {
      "main": [
        [
          {
            "node": "Chat API Response - Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resume Vector Store (Retrieval)": {
      "ai_vectorStore": [
        [
          {
            "node": "Resume lookup : Vector Store Tool",
            "type": "ai_vectorStore",
            "index": 0
          }
        ]
      ]
    },
    "Save Conversation API - Webhook": {
      "main": [
        [
          {
            "node": "Save Conversation - NocoDB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resume lookup : Vector Store Tool": {
      "ai_tool": [
        [
          {
            "node": "Personal CV AI Agent Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Download CV File From Google Drive": {
      "main": [
        [
          {
            "node": "Pinecone - Vector Store forr CV Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "NocoDB - get all todays conversation": {
      "main": [
        [
          {
            "node": "Group Conversation By Unique Session + Email - Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive - Resume CV File Created": {
      "main": [
        [
          {
            "node": "Download CV File From Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive - Resume CV File Updated": {
      "main": [
        [
          {
            "node": "Download CV File From Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone - Vector Store forr CV Content": {
      "main": [
        []
      ]
    },
    "Resume Embeddings Google Gemini (retrieval)": {
      "ai_embedding": [
        [
          {
            "node": "Resume Vector Store (Retrieval)",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Resume Google Gemini Chat Model (retrieval)": {
      "ai_languageModel": [
        [
          {
            "node": "Resume lookup : Vector Store Tool",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "CV content - Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "CV File Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Group Conversation By Unique Session + Email - Code": {
      "main": [
        [
          {
            "node": "Format HTML Display  For email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}