Deal Filtering Automation for VCs and PE firms

We've built an automation for VCs that filters inbound deals. As soon as you receive an email, this automation extracts the email along with any pitch decks and passes through your investment thesis and then generates an email draft based on the result.

Workflow JSON

{
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "simple": false,
        "filters": {
          "labelIds": [
            "INBOX"
          ],
          "q": "is:unread"
        },
        "options": {
          "downloadAttachments": true
        }
      },
      "id": "8b355e4a-9e4b-4352-94b4-404484e64924",
      "name": "Gmail Trigger - Deal Flow Inbox",
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1,
      "position": [
        -3024,
        2144
      ],
      "credentials": {
        "gmailOAuth2": {
          "id": "MbrD9BQtwtesvYq8",
          "name": "Gmail account"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "const email = $input.item.json;\nconst binaryData = $input.item.binary || {};\n\n// Extract body text\nconst body = email.text || email.textAsHtml || '';\n\n// Extract sender email\nlet sender = '';\nlet senderName = '';\nif (email.from?.value?.[0]?.address) {\n  sender = email.from.value[0].address;\n  senderName = email.from.value[0].name || '';\n} else if (typeof email.from === 'string') {\n  sender = email.from;\n}\n\n// ── BINARY ATTACHMENTS (actual file attachments) ──────────────────\n// n8n Gmail Trigger puts attachments in $binary, keyed as\n// \"attachment_0\", \"attachment_1\", etc.\nconst binaryAttachments = [];\nfor (const key of Object.keys(binaryData)) {\n  if (key.startsWith('attachment_')) {\n    binaryAttachments.push({\n      type: 'binary',\n      binaryKey: key,\n      fileName: binaryData[key].fileName || key,\n      mimeType: binaryData[key].mimeType || '',\n    });\n  }\n}\n\n// ── GOOGLE DRIVE LINKS in email body ─────────────────────────────\nconst driveUrlRegex = /https:\\/\\/drive\\.google\\.com\\/file\\/d\\/([a-zA-Z0-9_\\-]+)/g;\nconst bodyText = email.text || email.html || '';\nconst driveMatches = [...bodyText.matchAll(driveUrlRegex)];\nconst driveLinks = driveMatches.map(m => ({\n  type: 'drive_link',\n  fileId: m[1],\n  url: `https://drive.google.com/uc?export=download&id=${m[1]}`,\n}));\n\n// ── MERGE both sources into one filesToParse list ─────────────────\nconst filesToParse = [...binaryAttachments, ...driveLinks];\n\nreturn [{\n  json: {\n    emailId: email.id || email.messageId || '',\n    threadId: email.threadId || '',\n    sender,\n    senderName,\n    subject: email.subject || '',\n    body,\n    attachments: binaryAttachments,      // real binary attachments\n    driveLinks,                          // drive links from body\n    filesToParse,                        // combined — use this downstream\n    hasFiles: filesToParse.length > 0,\n    hasRealAttachments: binaryAttachments.length > 0,\n    hasDriveLinks: driveLinks.length > 0,\n    receivedAt: email.date || new Date().toISOString(),\n  },\n  // IMPORTANT: pass binary data through so downstream nodes can use it\n  binary: binaryData,\n}];"
      },
      "id": "7bb1efc5-5b7d-4369-a7ab-7fb7db22aa77",
      "name": "Extract Email Data",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -2752,
        2144
      ]
    },
    {
      "parameters": {
        "inputDataFieldName": "attachment_0",
        "name": "={{ $json.filesToParse[0].fileName }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultName": "/ (Root folder)"
        },
        "options": {}
      },
      "id": "48ed5580-f2f2-4798-a143-dc298c3357f3",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        -1504,
        1968
      ],
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "aLpYUFglLJY84JLr",
          "name": "Google Drive account"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.cloud.llamaindex.ai/api/v1/parsing/upload",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "adaptive_long_table",
              "value": "true"
            },
            {
              "name": "precise_bounding_box",
              "value": "true"
            },
            {
              "name": "high_res_ocr",
              "value": "true"
            },
            {
              "name": "outlined_table_extraction",
              "value": "true"
            },
            {
              "name": "output_tables_as_HTML",
              "value": "true"
            },
            {
              "name": "version",
              "value": "latest"
            },
            {
              "name": "tier",
              "value": "agentic"
            },
            {
              "name": "max_pages",
              "value": "0"
            },
            {
              "name": "input_url",
              "value": "=https://drive.google.com/uc?export=download&id={{ $('Upload to Google Drive').item.json.id }}"
            }
          ]
        },
        "options": {}
      },
      "id": "2158c23e-c036-4030-b02a-4a6b3ff0775d",
      "name": "Submit to LlamaParse",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -992,
        1968
      ],
      "credentials": {
        "httpHeaderAuth": {
          "id": "EDP9JJnCHK58HLth",
          "name": "Llama Parse - Neuroloop Lab Test"
        }
      }
    },
    {
      "parameters": {
        "amount": 10,
        "unit": "seconds"
      },
      "id": "91c59f92-fee7-400d-b05d-8176b7b0426c",
      "name": "Wait 10 Seconds",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        -752,
        1968
      ],
      "webhookId": "llama-wait-10"
    },
    {
      "parameters": {
        "url": "=https://api.cloud.llamaindex.ai/api/v1/parsing/job/{{ $('Submit to LlamaParse').item.json.id }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "id": "0a309321-daee-47f6-a970-b8df9e6dd315",
      "name": "Check LlamaParse Status",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        -544,
        1792
      ],
      "credentials": {
        "httpHeaderAuth": {
          "id": "EDP9JJnCHK58HLth",
          "name": "Llama Parse - Neuroloop Lab Test"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.status }}",
              "value2": "SUCCESS"
            }
          ]
        }
      },
      "id": "9115cb74-e57d-4a8e-be3b-8cda0646a5e4",
      "name": "Parsing Complete?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        -368,
        1792
      ]
    },
    {
      "parameters": {
        "amount": 15,
        "unit": "seconds"
      },
      "id": "7190b215-27e3-49f2-9318-766f6c3d3ceb",
      "name": "Wait 5 More Seconds",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        -208,
        2096
      ],
      "webhookId": "llama-wait-5"
    },
    {
      "parameters": {
        "url": "=https://api.cloud.llamaindex.ai/api/v1/parsing/job/{{ $('Submit to LlamaParse').item.json.id }}/result/markdown",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "id": "a207f806-a9ba-4615-8d54-f2185674d9bb",
      "name": "Get LlamaParse Result",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        -32,
        1968
      ],
      "credentials": {
        "httpHeaderAuth": {
          "id": "EDP9JJnCHK58HLth",
          "name": "Llama Parse - Neuroloop Lab Test"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// Merge parsed deck content with email data\nconst parsedContent = $('Get LlamaParse Result').item.json.markdown || '';\nconst emailData = $('Extract Email Data').item.json;\nreturn [{\n  json: {\n    ...emailData,\n    parsedDeckContent: parsedContent,\n    hasDeck: true\n  }\n}];"
      },
      "id": "0c844785-f2a4-4fca-b30f-1755ef37b83e",
      "name": "Merge Email + Deck Content",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        208,
        1968
      ]
    },
    {
      "parameters": {
        "jsCode": "// No deck - pass email body only\nconst emailData = $('Extract Email Data').item.json;\nreturn [{\n  json: {\n    ...emailData,\n    parsedDeckContent: '',\n    hasDeck: false\n  }\n}];"
      },
      "id": "c0f778f9-2317-464d-ba62-b0cfc2d310a0",
      "name": "No Deck - Use Email Body Only",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -672,
        2544
      ]
    },
    {
      "parameters": {
        "agent": "conversationalAgent",
        "promptType": "define",
        "text": "=You are a senior investment analyst at a VC fund focused on wealth and asset management technology.\n\nYour task is Phase 1: Initial Fit Check. Analyze the incoming deal submission and determine if it meets the investment criteria.\n\n## FIT CRITERIA (ALL must be satisfied for a YES):\n1. Go-to-Market: B2B or B2B2C / B2B2X model\n2. Stage / Traction: $750K+ ARR (or equivalent), Seed through Series A/B\n3. Revenue Mix: At least 30% of revenue from financial services firms\n4. Sector Alignment: Primary = Wealth & asset management tech. Secondary = Technologies applicable to financial firms (cybersecurity, HR/training, data infrastructure) where WAM is a meaningful vertical\n5. Geography: Developed financial markets (North America, Europe, Asia-Pacific, Middle East financial centers)\n\n## INPUT DATA:\nSender: {{ $json.sender }}\nSubject: {{ $json.subject }}\nEmail Body:\n{{ $json.body }}\n\n{% if $json.hasDeck %}Pitch Deck Content:\n{{ $json.parsedDeckContent }}{% endif %}\n\n## YOUR TASK:\nAnalyze all available information. For each criterion, state whether it is MET, NOT MET, or CANNOT ASSESS.\n\nThen output EXACTLY this JSON structure (no markdown code blocks, raw JSON only):\n{\n  \"fitResult\": \"YES\" | \"NO\" | \"UNDETERMINED\",\n  \"companyName\": \"extracted company name or Unknown\",\n  \"founderName\": \"extracted founder name or Unknown\",\n  \"founderEmail\": \"extracted reply-to email\",\n  \"website\": \"company website or empty string\",\n  \"stage\": \"extracted funding stage (Pre-seed/Seed/Series A/Series B etc) or Unknown\",\n  \"arrEstimate\": \"extracted ARR estimate or Unknown\",\n  \"sector\": \"extracted sector description\",\n  \"geography\": \"extracted geography\",\n  \"gtmModel\": \"extracted GTM model\",\n  \"criteriaAssessment\": {\n    \"gtm\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"stageTraction\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"revenueMix\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"sectorAlignment\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"geography\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" }\n  },\n  \"missingCriteria\": [\"list of criteria that CANNOT ASSESS if UNDETERMINED\"],\n  \"failedCriteria\": [\"list of criteria that are NOT MET if NO\"],\n  \"oneLinerSummary\": \"10-word max summary of what the company does\",\n  \"fitRationale\": \"2-3 sentence overall rationale for the fit determination\"\n}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "You are a senior investment analyst at Alpha Tech Partners. Always respond with raw JSON only, no markdown formatting, no code blocks."
        }
      },
      "id": "4b7dfbb7-0775-4856-826d-055eb5e5ec3e",
      "name": "AI Agent - Phase 1 Fit Check",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        624,
        2160
      ]
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "id": "3e2c5972-14ca-4998-ab6b-8df7c8167a34",
      "name": "OpenRouter LLM - Fit Check",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        560,
        2368
      ],
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "agent": "conversationalAgent",
        "promptType": "define",
        "text": "=You are a professional investment associate at a VC fund.\n\nDraft a professional, courteous decline email to the founder. The email should:\n- Thank them for reaching out\n- Explain (briefly and specifically) which investment criteria were not met\n- Leave the door open for future engagement if circumstances change\n- Be warm, respectful, and under 150 words\n- NOT use hollow phrases like 'we wish you the best'\n\nCompany: {{ $json.output.companyName }}\nFounder email: {{ $json.output.founderEmail }}\nFit rationale: {{ $json.output.fitRationale }}\n\nOutput raw JSON only:\n{\n  \"subject\": \"email subject line\",\n  \"body\": \"full email body\",\n  \"recipientEmail\": \"{{ $json.output.founderEmail }}\"\n}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "Output raw JSON only. No markdown. No code blocks."
        }
      },
      "id": "51147f83-4cec-4fd9-b277-f9ea0d819464",
      "name": "AI Agent - Draft Decline Email",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        1392,
        1616
      ]
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "id": "5cffcdbb-518b-4517-8057-1ce063e4142d",
      "name": "OpenRouter LLM - Decline",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        1344,
        1824
      ],
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "resource": "draft",
        "subject": "={{ $json.output.subject }}",
        "message": "={{ $json.output.body }}",
        "options": {}
      },
      "id": "8c20f3e3-2ac1-475f-99a1-0156700258bb",
      "name": "Send Decline Email (DRAFT - Requires Team Approval)",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [
        1904,
        1600
      ],
      "webhookId": "2a48c371-e91c-44fe-9b5f-3ff6e697b584",
      "credentials": {
        "gmailOAuth2": {
          "id": "MbrD9BQtwtesvYq8",
          "name": "Gmail account"
        }
      },
      "notes": "IMPORTANT: Change operation to 'Create Draft' in production. Team must approve before sending."
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g",
          "mode": "list",
          "cachedResultName": "ATP - Pipeline",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Date Received": "={{ $now.format('yyyy-MM-dd') }}",
            "Company / Website": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.website }}",
            "Status": "Declined - Fit Check",
            "Round": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.stage }}",
            "Summary (~10 words)": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.oneLinerSummary }}",
            "ARR Estimate": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.arrEstimate }}",
            "Industry Sector": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.sector }}",
            "Location": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.geography }}",
            "Founder Email": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.founderEmail }}",
            "Fit Result": "NO",
            "Failed Criteria": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.failedCriteria }}",
            "Notes": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.fitRationale }}",
            "Description (up to 200 words)": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.fitRationale }}",
            "Website": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.website }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Date Received",
              "displayName": "Date Received",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Company / Website",
              "displayName": "Company / Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "displayName": "Status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Round",
              "displayName": "Round",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Security",
              "displayName": "Security",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Raise Amount ($)",
              "displayName": "Raise Amount ($)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Pre-Money Valuation",
              "displayName": "Pre-Money Valuation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "ARR Estimate",
              "displayName": "ARR Estimate",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Revenue Model",
              "displayName": "Revenue Model",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Target Client Base",
              "displayName": "Target Client Base",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Domicile",
              "displayName": "Domicile",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Location",
              "displayName": "Location",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Sector",
              "displayName": "Industry Sector",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Function",
              "displayName": "Industry Function",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Industry Category",
              "displayName": "Industry Category",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Industry Segment",
              "displayName": "Industry Segment",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Summary (~10 words)",
              "displayName": "Summary (~10 words)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Description (up to 200 words)",
              "displayName": "Description (up to 200 words)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Founder Email",
              "displayName": "Founder Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Website",
              "displayName": "Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Fit Result",
              "displayName": "Fit Result",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Diligence Score",
              "displayName": "Diligence Score",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Market Score %",
              "displayName": "Market Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Business Score %",
              "displayName": "Business Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Investment Score %",
              "displayName": "Investment Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Screening Decision",
              "displayName": "Screening Decision",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Missing Criteria",
              "displayName": "Missing Criteria",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Failed Criteria",
              "displayName": "Failed Criteria",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Key Risks",
              "displayName": "Key Risks",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Information Gaps",
              "displayName": "Information Gaps",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Analyst Recommendation",
              "displayName": "Analyst Recommendation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Notes",
              "displayName": "Notes",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "03cdacc7-f003-4d6e-99af-5074501b903e",
      "name": "Log Declined Deal to Pipeline Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        2192,
        1600
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "rCJqaqI2nDJAfC3o",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "agent": "conversationalAgent",
        "promptType": "define",
        "text": "=You are a professional investment associate at a VC fund.\n\nDraft a targeted information request email to the founder. We need specific missing data to complete our fit assessment.\n\nMissing criteria we cannot assess:{{ $json.output.missingCriteria }}\nCompany: {{ $json.output.companyName }}\nFounder email: {{ $json.output.founderEmail }}\nThese are the statuses of all the criterias needed: {{ JSON.stringify($json.output.criteriaAssessment, null, 2) }}\n\nThe email should:\n- Be professional and direct\n- Request ONLY the specific information needed to assess the missing criteria\n- Ask for their investor deck if not already provided\n- Be under 120 words\n- Note that this is a one-time request (ATP limits to one follow-up per phase)\n\nOutput raw JSON only:\n{\n  \"subject\": \"email subject line\",\n  \"body\": \"full email body\",\n  \"recipientEmail\": \"{{ $json.output.founderEmail }}\",\n  \"requestedItems\": [\"list of specific items requested\"]\n}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "Output raw JSON only. No markdown. No code blocks."
        }
      },
      "id": "1a2beb11-45eb-41b5-9d1d-282fbef15df6",
      "name": "AI Agent - Draft Info Request Email",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        1440,
        2240
      ]
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "id": "29bc17ce-bb2e-4a6e-be77-277285115970",
      "name": "OpenRouter LLM - Info Request",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        1440,
        2432
      ],
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "resource": "draft",
        "subject": "={{ $json.output.subject }}",
        "message": "={{ $json.output.body }}",
        "options": {}
      },
      "id": "6cd9d10e-bf35-4802-a709-545bf714ff03",
      "name": "Send Info Request Email (DRAFT - Requires Team Approval)",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [
        1968,
        2240
      ],
      "webhookId": "04b442d7-5349-4e7d-960c-b2d904a20d46",
      "credentials": {
        "gmailOAuth2": {
          "id": "MbrD9BQtwtesvYq8",
          "name": "Gmail account"
        }
      },
      "notes": "IMPORTANT: Change operation to 'Create Draft' in production. Team must approve before sending."
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g",
          "mode": "list",
          "cachedResultName": "ATP - Pipeline",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Date Received": "={{ $now.format('yyyy-MM-dd') }}",
            "Company / Website": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.website }}",
            "Status": "Undetermined - Info Requested",
            "Round": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.stage }}",
            "Summary (~10 words)": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.oneLinerSummary }}",
            "ARR Estimate": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.arrEstimate }}",
            "Industry Sector": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.sector }}",
            "Location": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.geography }}",
            "Founder Email": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.founderEmail }}",
            "Fit Result": "UNDETERMINED",
            "Missing Criteria": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.missingCriteria }}",
            "Notes": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.fitRationale }}",
            "Domicile": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.geography }}",
            "Description (up to 200 words)": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.fitRationale }}",
            "Website": "={{ $('AI Agent - Phase 1 Fit Check').item.json.output.website }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Date Received",
              "displayName": "Date Received",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Company / Website",
              "displayName": "Company / Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "displayName": "Status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Round",
              "displayName": "Round",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Security",
              "displayName": "Security",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Raise Amount ($)",
              "displayName": "Raise Amount ($)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Pre-Money Valuation",
              "displayName": "Pre-Money Valuation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "ARR Estimate",
              "displayName": "ARR Estimate",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Revenue Model",
              "displayName": "Revenue Model",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Target Client Base",
              "displayName": "Target Client Base",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Domicile",
              "displayName": "Domicile",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Location",
              "displayName": "Location",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Sector",
              "displayName": "Industry Sector",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Function",
              "displayName": "Industry Function",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Industry Category",
              "displayName": "Industry Category",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Industry Segment",
              "displayName": "Industry Segment",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Summary (~10 words)",
              "displayName": "Summary (~10 words)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Description (up to 200 words)",
              "displayName": "Description (up to 200 words)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Founder Email",
              "displayName": "Founder Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Website",
              "displayName": "Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Fit Result",
              "displayName": "Fit Result",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Diligence Score",
              "displayName": "Diligence Score",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Market Score %",
              "displayName": "Market Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Business Score %",
              "displayName": "Business Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Investment Score %",
              "displayName": "Investment Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Screening Decision",
              "displayName": "Screening Decision",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Missing Criteria",
              "displayName": "Missing Criteria",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Failed Criteria",
              "displayName": "Failed Criteria",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Key Risks",
              "displayName": "Key Risks",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Information Gaps",
              "displayName": "Information Gaps",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Analyst Recommendation",
              "displayName": "Analyst Recommendation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Notes",
              "displayName": "Notes",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "5f546850-9045-4e25-8b6c-f4a7c6dc6b33",
      "name": "Log Undetermined Deal to Pipeline Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        2224,
        2240
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "rCJqaqI2nDJAfC3o",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "agent": "conversationalAgent",
        "promptType": "define",
        "text": "=You are a senior investment analyst at a VC fund focused on wealth and asset management technology.\n\nThis deal has passed the initial fit check. Now perform a PHASE 2 SCREENING analysis.\n\n## SCORING MATRIX (score each 0-10, then apply weight):\n\n### MARKET (weighted scores):\n- Fit - Sector, Stage & Geography [weight: 3%]: Score 10=exact fit (wealth/asset mgmt tech, Series A, top ecosystem), 8=strong fit, 6=moderate, 4=weak, 2=no fit\n- Strategic Relevance [weight: 4%]: Score 10=transforms advisor workflows + strong LP synergy, 8=clear industry relevance, 6=moderate, 4=low, 2=none\n- Market Size & Growth [weight: 3%]: Score 10=TAM>$10B/SOM>$1B validated, 8=TAM $6-10B, 6=TAM $3-7B, 4=TAM $1-3B, 2=TAM<$1B\n\n### BUSINESS (weighted scores):\n- Concept [weight: 10%]: Score 10=game-changing+validated, 8=innovative+addresses real need, 6=practical+limited uniqueness, 4=minor improvement, 2=weak/irrelevant\n- Traction/Engagement [weight: 10%]: Score 10=>$5M ARR/100+ clients, 8=$2-5M/50-100 clients, 6=$1-2M/20-50, 4=$500K-1M/5-20, 2=<$500K/<5 clients, 0=no traction\n- Competition & Moat [weight: 5%]: Score 10=little competition/strong moat, 8=moderate/clear differentiation, 6=notable/slight edge, 4=heavy/minimal diff, 2=saturated/no edge\n- Business Model/GTM [weight: 5%]: Score 10=proven GTM/SaaS/CAC<10%LTV/retention>95%, 8=strong B2B/retention 90-94%, 6=viable/retention 85-90%, 4=weak/retention 80-85%, 2=no GTM/retention<80%\n- Technology & IP [weight: 10%]: Score 10=industry-leading/proprietary/proven moat, 8=strong/unique elements, 6=viable/some diff, 4=basic/minimal diff, 2=generic/critical gaps\n- Regulatory & Compliance [weight: 5%]: Score 10=exceptional compliance+licenses+privacy exceeds standards, 8=strong/necessary licenses, 6=adequate/basic understanding, 4=concerning gaps, 2=critical deficiencies\n\n### TEAM (weighted score):\n- Team [weight: 15%]: Score 10=exceptional/10+yrs/proven exits/magnetic culture, 8=strong/7+yrs/notable achievements, 6=adequate/5+yrs/functional, 4=gaps/2-5yrs/untested, 2=deficiencies/<2yrs/dysfunctional\n\n### INVESTMENT CASE (weighted scores):\n- Deal Terms [weight: 15%]: Score 10=valuation≤8xARR/full pro-rata/clean cap, 8=8-12xARR/standard provisions, 6=12-16xARR/basic provisions, 4=16-22xARR/weak provisions, 2=>22xARR/prohibitive\n- Use of Funds/Efficiency [weight: 5%]: Score 10=>18mo runway/70%+ to product-sales/clear milestones, 8=15-18mo/good allocation, 6=12-15mo/adequate, 4=9-12mo/vague, 2=<9mo/no clarity\n- Exit Opportunities [weight: 5%]: Score 10=multiple premium paths/10x+ in 5-7yrs, 8=strong/5-10x, 6=viable/3-5x, 4=uncertain/2-3x, 2=problematic/no credible exit\n- Expected Growth [weight: 5%]: Score 10=3x+ARR YoY/>100% current, 8=2-3x/70-100%, 6=1.5-2x/40-70%, 4=1-1.5x/20-40%, 2=<1x/<20%\n\n## INPUT DATA:\nCompany: {{ $json.output.companyName }}\nSender: {{ $json.output.founderName }}\nEmail Body:\n{{ $('Extract Email Data').item.json.body }}\n\n\nInformation from the fit check AI agent:\n{{ JSON.stringify($('AI Agent - Phase 1 Fit Check').item.json.output, null, 2) }}\n\n{% if $json.hasDeck %}Pitch Deck Content:\n{{ $json.parsedDeckContent }}{% endif %}\n\n## OUTPUT (raw JSON only, no markdown):\n{\n  \"companyName\": \"company name\",\n  \"founderName\": \"founder name\",\n  \"founderEmail\": \"email\",\n  \"website\": \"website\",\n  \"stage\": \"round stage\",\n  \"raiseSizeEstimate\": \"raise size estimate\",\n  \"preMoneyValuation\": \"pre-money valuation estimate\",\n  \"arrEstimate\": \"ARR estimate\",\n  \"revenueModel\": \"revenue model description\",\n  \"targetClients\": \"target client base\",\n  \"domicile\": \"country of incorporation\",\n  \"location\": \"HQ location\",\n  \"industrySector\": \"Wealth Management & Advisory | Asset & Investment Management\",\n  \"industryFunction\": \"Front Office | Middle Office | Back Office | etc\",\n  \"industryCategory\": \"broad functional area\",\n  \"industrySegment\": \"specific segment\",\n  \"summary10Words\": \"10-word company summary\",\n  \"description200Words\": \"up to 200 word description\",\n  \"problemStatement\": \"core problem being solved\",\n  \"solutionStatement\": \"core solution offered\",\n  \"scores\": {\n    \"fitSectorStageGeo\": { \"score\": 0, \"weight\": 3, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"strategicRelevance\": { \"score\": 0, \"weight\": 4, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"marketSizeGrowth\": { \"score\": 0, \"weight\": 3, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"concept\": { \"score\": 0, \"weight\": 10, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"tractionEngagement\": { \"score\": 0, \"weight\": 10, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"competitionMoat\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"businessModelGTM\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"technologyIP\": { \"score\": 0, \"weight\": 10, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"regulatoryCompliance\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"team\": { \"score\": 0, \"weight\": 15, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"dealTerms\": { \"score\": 0, \"weight\": 15, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"useOfFunds\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"exitOpportunities\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"expectedGrowth\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" }\n  },\n  \"totalWeightedScore\": 0,\n  \"marketScore\": 0,\n  \"businessScore\": 0,\n  \"adoptabilityScore\": 0,\n  \"investmentScore\": 0,\n  \"screeningDecision\": \"ADVANCE|MONITOR|DECLINE\",\n  \"strengths\": [\"strength 1\", \"strength 2\", \"strength 3\"],\n  \"weaknesses\": [\"weakness 1\", \"weakness 2\"],\n  \"opportunities\": [\"opportunity 1\", \"opportunity 2\"],\n  \"threats\": [\"threat 1\", \"threat 2\"],\n  \"informationGaps\": [\"gap 1 - required for scoring\", \"gap 2\"],\n  \"keyRisks\": [\"risk 1\", \"risk 2\"],\n  \"advantages\": [\"advantage 1\", \"advantage 2\"],\n  \"analystRecommendation\": \"2-3 sentence recommendation for the investment team\"\n}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "You are a senior investment analyst at Alpha Tech Partners. Score each criterion carefully using ONLY the information available. If information is unavailable for scoring, score conservatively (4 or below) and note the gap. Output raw JSON only."
        }
      },
      "id": "b139ac23-5c58-4edf-a912-a221029eb93d",
      "name": "AI Agent - Phase 2 Screening Analysis",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        1344,
        2880
      ]
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "id": "f5234709-4fc0-4d05-9b16-5600de21e25d",
      "name": "OpenRouter LLM - Screening",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        1344,
        3072
      ],
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g",
          "mode": "list",
          "cachedResultName": "ATP - Pipeline",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GWkAjpN-TG6nGhbTjvAJtDxgWgR8mtAclHTe83HUU9g/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Date Received": "={{ $now.format('yyyy-MM-dd') }}",
            "Company / Website": "={{ $json.output.website }}",
            "Status": "Approved",
            "Round": "={{ $json.output.stage }}",
            "Raise Amount ($)": "={{ $json.output.raiseSizeEstimate }}",
            "Pre-Money Valuation": "={{ $json.output.preMoneyValuation }}",
            "ARR Estimate": "={{ $json.output.arrEstimate }}",
            "Revenue Model": "={{ $json.output.revenueModel }}",
            "Target Client Base": "={{ $json.output.targetClients }}",
            "Domicile": "={{ $json.output.domicile }}",
            "Location": "={{ $json.output.location }}",
            "Industry Sector": "={{ $json.output.industrySector }}",
            "Industry Function": "={{ $json.output.industryFunction }}",
            "Industry Category": "={{ $json.output.industryCategory }}",
            "Industry Segment": "={{ $json.output.industrySegment }}",
            "Summary (~10 words)": "={{ $json.output.summary10Words }}",
            "Description (up to 200 words)": "={{ $json.output.description200Words }}",
            "Founder Email": "={{ $json.output.founderEmail }}",
            "Website": "={{ $json.output.website }}",
            "Market Score %": "={{ $json.output.marketScore }}",
            "Business Score %": "={{ $json.output.businessScore }}",
            "Investment Score %": "={{ $json.output.investmentScore }}",
            "Screening Decision": "={{ $json.output.screeningDecision }}",
            "Diligence Score": "={{ $json.output.totalWeightedScore }}",
            "Information Gaps": "={{ $json.output.informationGaps }}",
            "Key Risks": "={{ $json.output.keyRisks }}",
            "Analyst Recommendation": "={{ $json.output.analystRecommendation }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Date Received",
              "displayName": "Date Received",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Company / Website",
              "displayName": "Company / Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "displayName": "Status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Round",
              "displayName": "Round",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Security",
              "displayName": "Security",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Raise Amount ($)",
              "displayName": "Raise Amount ($)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Pre-Money Valuation",
              "displayName": "Pre-Money Valuation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "ARR Estimate",
              "displayName": "ARR Estimate",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Revenue Model",
              "displayName": "Revenue Model",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Target Client Base",
              "displayName": "Target Client Base",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Domicile",
              "displayName": "Domicile",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Location",
              "displayName": "Location",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Sector",
              "displayName": "Industry Sector",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Function",
              "displayName": "Industry Function",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Category",
              "displayName": "Industry Category",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry Segment",
              "displayName": "Industry Segment",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary (~10 words)",
              "displayName": "Summary (~10 words)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Description (up to 200 words)",
              "displayName": "Description (up to 200 words)",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Founder Email",
              "displayName": "Founder Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Website",
              "displayName": "Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Fit Result",
              "displayName": "Fit Result",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Diligence Score",
              "displayName": "Diligence Score",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Market Score %",
              "displayName": "Market Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Business Score %",
              "displayName": "Business Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Investment Score %",
              "displayName": "Investment Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Screening Decision",
              "displayName": "Screening Decision",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Missing Criteria",
              "displayName": "Missing Criteria",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Failed Criteria",
              "displayName": "Failed Criteria",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Key Risks",
              "displayName": "Key Risks",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Information Gaps",
              "displayName": "Information Gaps",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Analyst Recommendation",
              "displayName": "Analyst Recommendation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "displayName": "Notes",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "adc57663-9c66-4a17-925b-e6951f75d3b9",
      "name": "Update Pipeline Sheet - Screening",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        1824,
        2880
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "rCJqaqI2nDJAfC3o",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "160UzJdaSWrMMOb1OH3cL54766dULzZGEXQsSUB1ve_c",
          "mode": "list",
          "cachedResultName": "ATP - Screening Memos",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/160UzJdaSWrMMOb1OH3cL54766dULzZGEXQsSUB1ve_c/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/160UzJdaSWrMMOb1OH3cL54766dULzZGEXQsSUB1ve_c/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Date": "={{ $now.format('yyyy-MM-dd') }}",
            "Company Name": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.companyName }}",
            "Status": "Initial Fit Check Approved",
            "Industry": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.industrySector }}",
            "Series": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.stage }}",
            "Pre-Money Valuation": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.preMoneyValuation }}",
            "Raise Amount": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.raiseSizeEstimate }}",
            "ARR Estimate": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.arrEstimate }}",
            "Revenue Model": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.revenueModel }}",
            "Target Clients": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.targetClients }}",
            "Problem": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.problemStatement }}",
            "Solution": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.solutionStatement }}",
            "Description": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.description200Words }}",
            "Strengths": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.strengths }}",
            "Weaknesses": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.weaknesses }}",
            "Opportunities": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.opportunities }}",
            "Threats": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.threats }}",
            "Diligence Score": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.totalWeightedScore }}",
            "Market Score %": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.marketScore }}",
            "Business Score %": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.businessScore }}",
            "Investment Score %": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.investmentScore }}",
            "Score - [each of 14 criteria]": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.scores }}",
            "Information Gaps": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.informationGaps }}",
            "Key Risks": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.keyRisks }}",
            "Advantages": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.advantages }}",
            "Analyst Recommendation": "={{ $('AI Agent - Phase 2 Screening Analysis').item.json.output.analystRecommendation }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Date",
              "displayName": "Date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "displayName": "Company Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "displayName": "Status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry",
              "displayName": "Industry",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Series",
              "displayName": "Series",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Pre-Money Valuation",
              "displayName": "Pre-Money Valuation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Raise Amount",
              "displayName": "Raise Amount",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "ARR Estimate",
              "displayName": "ARR Estimate",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Revenue Model",
              "displayName": "Revenue Model",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Target Clients",
              "displayName": "Target Clients",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Problem",
              "displayName": "Problem",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Solution",
              "displayName": "Solution",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "displayName": "Description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Strengths",
              "displayName": "Strengths",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Weaknesses",
              "displayName": "Weaknesses",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Opportunities",
              "displayName": "Opportunities",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Threats",
              "displayName": "Threats",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Diligence Score",
              "displayName": "Diligence Score",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Market Score %",
              "displayName": "Market Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Business Score %",
              "displayName": "Business Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Investment Score %",
              "displayName": "Investment Score %",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Score - [each of 14 criteria]",
              "displayName": "Score - [each of 14 criteria]",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Comment - [each of 14 criteria]",
              "displayName": "Comment - [each of 14 criteria]",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Information Gaps",
              "displayName": "Information Gaps",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Key Risks",
              "displayName": "Key Risks",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Advantages",
              "displayName": "Advantages",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Analyst Recommendation",
              "displayName": "Analyst Recommendation",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Screening Decision",
              "displayName": "Screening Decision",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Founder Email",
              "displayName": "Founder Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Website",
              "displayName": "Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "b2319754-63a6-4a63-a39e-a14553226c8f",
      "name": "Write Screening Memo to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        2080,
        2880
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "rCJqaqI2nDJAfC3o",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 3
          },
          "conditions": [
            {
              "id": "95500e41-f807-40d4-995c-899408b6d578",
              "leftValue": "={{ $json.hasFiles }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "looseTypeValidation": true,
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        -2400,
        2160
      ],
      "id": "48c270ca-a1d3-4f73-b5cc-8ef8da49c981",
      "name": "Has Attachments?"
    },
    {
      "parameters": {
        "operation": "share",
        "fileId": {
          "__rl": true,
          "value": "={{ $json.id }}",
          "mode": "id"
        },
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "anyone"
          }
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        -1296,
        1968
      ],
      "id": "a203dea5-06b6-4865-9a78-e0526902ad1b",
      "name": "Share file",
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "aLpYUFglLJY84JLr",
          "name": "Google Drive account"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"fitResult\": \"YES\",\n  \"companyName\": \"extracted company name or Unknown\",\n  \"founderName\": \"extracted founder name or Unknown\",\n  \"founderEmail\": \"extracted reply-to email\",\n  \"website\": \"company website or empty string\",\n  \"stage\": \"extracted funding stage (Pre-seed/Seed/Series A/Series B etc) or Unknown\",\n  \"arrEstimate\": \"extracted ARR estimate or Unknown\",\n  \"sector\": \"extracted sector description\",\n  \"geography\": \"extracted geography\",\n  \"gtmModel\": \"extracted GTM model\",\n  \"criteriaAssessment\": {\n    \"gtm\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"stageTraction\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"revenueMix\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"sectorAlignment\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" },\n    \"geography\": { \"result\": \"MET|NOT MET|CANNOT ASSESS\", \"rationale\": \"brief reason\" }\n  },\n  \"missingCriteria\": [\"list of criteria that CANNOT ASSESS if UNDETERMINED\"],\n  \"failedCriteria\": [\"list of criteria that are NOT MET if NO\"],\n  \"oneLinerSummary\": \"10-word max summary of what the company does\",\n  \"fitRationale\": \"2-3 sentence overall rationale for the fit determination\"\n}",
        "autoFix": true
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        704,
        2384
      ],
      "id": "85519d0c-36a8-44e6-84ed-75ce699fa525",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        736,
        2576
      ],
      "id": "d34c59ee-8a64-41d0-a95c-97f045d10c68",
      "name": "OpenRouter Chat Model",
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "92950a11-9fda-4d27-a08b-269d8249a31d",
              "leftValue": "={{ $json.output.fitResult }}",
              "rightValue": "NO",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        1024,
        2176
      ],
      "id": "82ff143e-67e4-404f-ae04-c59f046b1ebd",
      "name": "Is Fit = NO?"
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"subject\": \"email subject line\",\n  \"body\": \"full email body\",\n  \"recipientEmail\": \"john@gmail.com\"\n}",
        "autoFix": true
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        1536,
        1856
      ],
      "id": "3c79cb9a-a514-47a2-8ed8-2eb48c2a918f",
      "name": "Structured Output Parser1"
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        1520,
        2000
      ],
      "id": "a1b2f94f-e873-498e-abd4-71e506486fb9",
      "name": "OpenRouter Chat Model1",
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "92950a11-9fda-4d27-a08b-269d8249a31d",
              "leftValue": "={{ $json.output.fitResult }}",
              "rightValue": "UNDETERMINED",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        1200,
        2480
      ],
      "id": "3653b89c-8662-4901-93c5-998922951318",
      "name": "Is Fit = UNDETERMINED?"
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"subject\": \"email subject line\",\n  \"body\": \"full email body\",\n  \"recipientEmail\": \"john@gmail.com\",\n  \"requestedItems\": [\"list of specific items requested\"]\n}",
        "autoFix": true
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        1616,
        2448
      ],
      "id": "8f2b04ea-5317-4ee1-a0e7-6306ac079de3",
      "name": "Structured Output Parser2"
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        1648,
        2608
      ],
      "id": "edb29400-1623-45dc-b87a-5e636af76962",
      "name": "OpenRouter Chat Model2",
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"companyName\": \"company name\",\n  \"founderName\": \"founder name\",\n  \"founderEmail\": \"email\",\n  \"website\": \"website\",\n  \"stage\": \"round stage\",\n  \"raiseSizeEstimate\": \"raise size estimate\",\n  \"preMoneyValuation\": \"pre-money valuation estimate\",\n  \"arrEstimate\": \"ARR estimate\",\n  \"revenueModel\": \"revenue model description\",\n  \"targetClients\": \"target client base\",\n  \"domicile\": \"country of incorporation\",\n  \"location\": \"HQ location\",\n  \"industrySector\": \"Wealth Management & Advisory | Asset & Investment Management\",\n  \"industryFunction\": \"Front Office | Middle Office | Back Office | etc\",\n  \"industryCategory\": \"broad functional area\",\n  \"industrySegment\": \"specific segment\",\n  \"summary10Words\": \"10-word company summary\",\n  \"description200Words\": \"up to 200 word description\",\n  \"problemStatement\": \"core problem being solved\",\n  \"solutionStatement\": \"core solution offered\",\n  \"scores\": {\n    \"fitSectorStageGeo\": { \"score\": 0, \"weight\": 3, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"strategicRelevance\": { \"score\": 0, \"weight\": 4, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"marketSizeGrowth\": { \"score\": 0, \"weight\": 3, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"concept\": { \"score\": 0, \"weight\": 10, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"tractionEngagement\": { \"score\": 0, \"weight\": 10, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"competitionMoat\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"businessModelGTM\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"technologyIP\": { \"score\": 0, \"weight\": 10, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"regulatoryCompliance\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"team\": { \"score\": 0, \"weight\": 15, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"dealTerms\": { \"score\": 0, \"weight\": 15, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"useOfFunds\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"exitOpportunities\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" },\n    \"expectedGrowth\": { \"score\": 0, \"weight\": 5, \"weightedScore\": 0, \"comment\": \"rationale\" }\n  },\n  \"totalWeightedScore\": 0,\n  \"marketScore\": 0,\n  \"businessScore\": 0,\n  \"adoptabilityScore\": 0,\n  \"investmentScore\": 0,\n  \"screeningDecision\": \"ADVANCE|MONITOR|DECLINE\",\n  \"strengths\": [\"strength 1\", \"strength 2\", \"strength 3\"],\n  \"weaknesses\": [\"weakness 1\", \"weakness 2\"],\n  \"opportunities\": [\"opportunity 1\", \"opportunity 2\"],\n  \"threats\": [\"threat 1\", \"threat 2\"],\n  \"informationGaps\": [\"gap 1 - required for scoring\", \"gap 2\"],\n  \"keyRisks\": [\"risk 1\", \"risk 2\"],\n  \"advantages\": [\"advantage 1\", \"advantage 2\"],\n  \"analystRecommendation\": \"2-3 sentence recommendation for the investment team\"\n}",
        "autoFix": true
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        1520,
        3088
      ],
      "id": "c2347e35-7156-4bbd-9650-e253f4e31eb6",
      "name": "Structured Output Parser3"
    },
    {
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "typeVersion": 1,
      "position": [
        1456,
        3296
      ],
      "id": "a901301e-963b-44fe-b500-85aa28039fe5",
      "name": "OpenRouter Chat Model3",
      "credentials": {
        "openRouterApi": {
          "id": "fPGAgoXwik56AiIL",
          "name": "OpenRouter account"
        }
      }
    }
  ],
  "connections": {
    "Gmail Trigger - Deal Flow Inbox": {
      "main": [
        [
          {
            "node": "Extract Email Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Email Data": {
      "main": [
        [
          {
            "node": "Has Attachments?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        [
          {
            "node": "Share file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Submit to LlamaParse": {
      "main": [
        [
          {
            "node": "Wait 10 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 10 Seconds": {
      "main": [
        [
          {
            "node": "Check LlamaParse Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check LlamaParse Status": {
      "main": [
        [
          {
            "node": "Parsing Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parsing Complete?": {
      "main": [
        [
          {
            "node": "Get LlamaParse Result",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 5 More Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 5 More Seconds": {
      "main": [
        [
          {
            "node": "Check LlamaParse Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get LlamaParse Result": {
      "main": [
        [
          {
            "node": "Merge Email + Deck Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Email + Deck Content": {
      "main": [
        [
          {
            "node": "AI Agent - Phase 1 Fit Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Deck - Use Email Body Only": {
      "main": [
        [
          {
            "node": "AI Agent - Phase 1 Fit Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Phase 1 Fit Check": {
      "main": [
        [
          {
            "node": "Is Fit = NO?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter LLM - Fit Check": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Phase 1 Fit Check",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Draft Decline Email": {
      "main": [
        [
          {
            "node": "Send Decline Email (DRAFT - Requires Team Approval)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter LLM - Decline": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Draft Decline Email",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Send Decline Email (DRAFT - Requires Team Approval)": {
      "main": [
        [
          {
            "node": "Log Declined Deal to Pipeline Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Draft Info Request Email": {
      "main": [
        [
          {
            "node": "Send Info Request Email (DRAFT - Requires Team Approval)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter LLM - Info Request": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Draft Info Request Email",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Send Info Request Email (DRAFT - Requires Team Approval)": {
      "main": [
        [
          {
            "node": "Log Undetermined Deal to Pipeline Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Phase 2 Screening Analysis": {
      "main": [
        [
          {
            "node": "Update Pipeline Sheet - Screening",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter LLM - Screening": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Phase 2 Screening Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Update Pipeline Sheet - Screening": {
      "main": [
        [
          {
            "node": "Write Screening Memo to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write Screening Memo to Sheet": {
      "main": [
        []
      ]
    },
    "Has Attachments?": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Deck - Use Email Body Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Share file": {
      "main": [
        [
          {
            "node": "Submit to LlamaParse",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent - Phase 1 Fit Check",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Is Fit = NO?": {
      "main": [
        [
          {
            "node": "AI Agent - Draft Decline Email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Is Fit = UNDETERMINED?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent - Draft Decline Email",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Is Fit = UNDETERMINED?": {
      "main": [
        [
          {
            "node": "AI Agent - Draft Info Request Email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent - Phase 2 Screening Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent - Draft Info Request Email",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser3": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent - Phase 2 Screening Analysis",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "68e38a4d16f6bb0fc4dc0d12c182b0537e5cd43d16c8c06d03fb68dbc38c8ff4"
  }
}