{
  "id": "t4GwTrKGGPLWVwVQ",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Generate a clean hiring brief and interview scorecards in 1 minute",
  "tags": [],
  "nodes": [
    {
      "id": "680c3b20-8bfb-403f-893f-0bcb2fa82bcd",
      "name": "Sending raw hiring brief transcript",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -40,
        -80
      ],
      "parameters": {
        "options": {},
        "formTitle": "Upload your raw Hiring Brief (PDF)",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "Interview transcript",
              "requiredField": true
            },
            {
              "fieldLabel": "Name your document",
              "placeholder": "Document name",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5c131ad3-5c02-41c8-844e-6733fd75a94c",
      "name": "Extracting text",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        120,
        -80
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "Interview_transcript"
      },
      "typeVersion": 1
    },
    {
      "id": "a3e449a4-dfb3-4521-827e-4c998c1821d5",
      "name": "Summarizing raw transcript",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        280,
        -80
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "o3-mini",
          "cachedResultName": "O3-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a senior tech recruiter who turns messy kickoff-call transcripts into\npolished, recruiter-grade hiring briefs.\n\nNON-NEGOTIABLES\n---------------\n\u2022 **Nothing useful may be discarded.** If in doubt, include it.\n\u2022 Preserve colourful anecdotes, direct quotes, founder back-stories,\n  culture rituals, hiring wins & fails, and spicy truths.\n  They are critical for candidate sell.\n\u2022 Never invent missing information; instead flag gaps under **\u201c\u2753 Open Questions.\u201d**\n\u2022 Write in clear, business-casual English\u2014concise but human.\n  Avoid marketing fluff.\n\nOUTPUT\n------\nDeliver **well-formatted Markdown** with the following headings.\nOmit a section only if the transcript truly contains zero information for it.\n\n\ud83d\udccd **Executive Summary** \u2013 3-4 lines on who\u2019s hiring, why, and what\u2019s at stake.\n\n# Company Snapshot\n## Origin Story & Vision  \n## Differentiation & Market Position  \n## Growth Outlook (headcount, ARR, funding roadmap)\n\n# Team & Culture\n## Current Org & Key Leaders  \n## Culture in Action \u2013 rituals, norms, \u201cno brilliant jerks,\u201d etc.  \n\ud83c\udf99\ufe0f **Anecdotes & War-Stories** \u2013 quirky quotes, past hiring wins & fails.\n\n# Product & Market Context\n(what they build, who buys, traction, tech challenges)\n\n# Role Overview \u2013 **Senior Talent Acquisition Partner**\n## Mission & Impact (first 12-18 mo)  \n## Core Responsibilities  \n## Success Metrics / KPIs  \n## Career Growth Path\n\n# Ideal Candidate Profile\n### Must-Have Experience  \n### Mindset & Personal Traits  \n### Nice-to-Haves  \n### Red Flags / Anti-Profiles\n\n# Compensation & Benefits\n(base, bonus, equity, perks, remote stipend, full benefit stack)\n\n# Interview Process\n(stages, owners, assignments, timing)\n\n# Sourcing Targets & Competitor Pools\n(Bain Vector, Hugging Face, etc.)\n\n\u26a0\ufe0f **Challenges, Blockers & Strategic Notes**\n(real risks, founder quirks, prior mis-hires, process pain points)\n\n\u2753 **Open Questions**\n(Bullets of anything missing, unclear, or contradictory\u2014\ne.g. diversity baseline, exact start date, equity cliff terms)\n\nFORMAT RULES\n------------\n\u2022 Use headings, sub-headings, and bullet lists for readability.  \n\u2022 Short pull-quotes are fine:  \n  > *\u201cWe fired clients who only want decks.\u201d \u2014 Nicolas, COO*  \n\u2022 Do NOT include Markdown code fences or extra commentary\u2014only the brief itself.\n\nADDENDUM \u2013 ensure these are PRESENT verbatim if they exist in the transcript:\n\u2022 Benefit amounts (\u20ac1 000 WFH kit + \u20ac100/month, 30 holiday days, Alan Blue, Moka.care, Gympass).\n\u2022 \u201cFocus Blocks\u201d calendar etiquette.\n\u2022 Recovery-score Whoop-band pilot.\n\u2022 Mini-table: NLG vs. BCG Gamma vs. Artefact (speed, pricing model, equity upside).\n\u2022 Heading: # Hiring Logistics & Legal Constraints (UTC-2\u2194UTC+3, EOR via Remote.com, \u22642-month notice).\nFailing to include any of the above when present triggers an **\u201cOpen Question.\u201d**\n"
            },
            {
              "content": "=Here is the raw transcript : {{ $json.text }}"
            }
          ]
        }
      },
      "credentials": {},
      "typeVersion": 1.8
    },
    {
      "id": "57c1aad9-7c87-4742-8a7a-7be2f6a6e0c3",
      "name": "Generating scorecards",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        680,
        -140
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "o3-mini",
          "cachedResultName": "O3-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a People-Ops expert.  \nYour job: create **compact interview scorecards** for each stage of a hiring process.\n\nOUTPUT REQUIREMENTS\n-------------------\nFor **each** stage listed in the input, return **exactly**:\n\n\u2022 **Primary Focus** \u2013 one short sentence.  \n\u2022 **Hard & Soft Skills to Probe** \u2013 4-8 bullet items. \n    \u2013 For **each skill**, give:  \n      \u2022 2-3 sample questions (bullet list)  \n      \u2022 1 short line on what a *great* answer would include.\n\nNO scoring tables, ratings, or long prose.\n\nSTYLE & FORMAT\n--------------\n\u2022 Plain text / minimal Markdown that pastes cleanly into Google Docs.  \n\u2022 Use the exact stage names provided.  \n\u2022 Keep bullets tight (max ~15 words each).  \n\u2022 Reference role-specific cues from the brief (KPIs, culture values).  \n\u2022 If info is missing, note \u201c[needs clarification]\u201d instead of guessing."
            },
            {
              "content": "=here is the input : {{ $json.message.content }}"
            }
          ]
        }
      },
      "credentials": {},
      "typeVersion": 1.8
    },
    {
      "id": "1ab4bc8f-fb00-4e19-9228-5ca0683632f1",
      "name": "Creating hiring brief file",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        680,
        80
      ],
      "parameters": {
        "title": "={{ $('Sending raw hiring brief transcript').item.json['Name your document'] }}",
        "folderId": "1TzPXCntKOEym3GM_s8HVyG9VNIGWe70h"
      },
      "credentials": {},
      "typeVersion": 2
    },
    {
      "id": "249d8f89-7e97-42d6-87d8-8e1acb02de9d",
      "name": "Adding brief to file",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        880,
        80
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Summarizing raw transcript').item.json.message.content }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {},
      "typeVersion": 2
    },
    {
      "id": "7738eab0-0be8-43a8-828d-cbcdc0fce3ef",
      "name": "Creating Scorecards file",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1040,
        -140
      ],
      "parameters": {
        "title": "=Scorecard -  {{ $('Sending raw hiring brief transcript').item.json['Name your document'] }}",
        "folderId": "1TzPXCntKOEym3GM_s8HVyG9VNIGWe70h"
      },
      "credentials": {},
      "typeVersion": 2
    },
    {
      "id": "3781bf90-331a-4dff-af85-47f74ffebdfe",
      "name": "Adding scorecards to File",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1260,
        -140
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Generating scorecards').item.json.message.content }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {},
      "typeVersion": 2
    },
    {
      "id": "a9950174-c55f-4c47-b22a-b1bb0f17af2f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -460
      ],
      "parameters": {
        "color": 5,
        "width": 747,
        "height": 332,
        "content": "### \ud83d\udca1 Who is this template for ?\nBasically anyone involved in recurring recruiting processes and looking to save a considerable amount of time and energy (Talent acquisitions Managers, recruiting consultants, hiring managers, founders\u2026etc)\n\n### \ud83d\udccb What it does :\n- It takes a messy and raw transcript from an \u201cintake meeting\u201d between a recruiter and a hiring manager and turns it into a **clean and exhaustive brief + scorecard templates for each interview rounds**\n- It does it under 1 MINUTE while the usual full \u201cmanual\u201d process usually takes several hours\n\n### \ud83d\udc68\u200d\ud83c\udfa4 Setup\n1. Add you **OpenAI API key (or any other LLM)**, and **Google Drive** credentials\n2. Update a raw transcript of one of your Hiring Brief meeting (as PDF)\n3. Let the workflow do the rest"
      },
      "typeVersion": 1
    },
    {
      "id": "5088789a-80bc-490a-b5b5-8bf7f7371257",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        700,
        -260
      ],
      "parameters": {
        "color": 7,
        "width": 202,
        "height": 96,
        "content": "\ud83d\udc47 Feel free to adapt the prompt so that the format of the scorecards reflects your existing process. "
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8b8b1490-6c84-4950-bec1-9831182f8aac",
  "connections": {
    "Extracting text": {
      "main": [
        [
          {
            "node": "Summarizing raw transcript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generating scorecards": {
      "main": [
        [
          {
            "node": "Creating Scorecards file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creating Scorecards file": {
      "main": [
        [
          {
            "node": "Adding scorecards to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creating hiring brief file": {
      "main": [
        [
          {
            "node": "Adding brief to file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarizing raw transcript": {
      "main": [
        [
          {
            "node": "Creating hiring brief file",
            "type": "main",
            "index": 0
          },
          {
            "node": "Generating scorecards",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sending raw hiring brief transcript": {
      "main": [
        [
          {
            "node": "Extracting text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}