{
  "nodes": [
    {
      "id": "a8b14ffd-4a8b-4a3d-ba54-5997197e5457",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2880,
        340
      ],
      "parameters": {
        "color": 6,
        "width": 429.96763122593137,
        "height": 322,
        "content": "### \uc801\uc808\ud55c \ub370\uc774\ud130 \uac00\uc838\uc624\uae30\n\uc774 \ub178\ub4dc\ub4e4\uc740 \uc6f9\ud6c5 \ub178\ub4dc\uc5d0\uc11c \ud544\uc694\ud55c \ub370\uc774\ud130\ub9cc \ucd94\ucd9c\ud558\uae30 \uc704\ud55c \uac83\uc785\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "c8ae8766-3942-4b8d-8815-9e96ab9dc1de",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        340
      ],
      "parameters": {
        "color": 5,
        "width": 677,
        "height": 660,
        "content": "N8N\uc5d0\ub294 PDF\ub97c Text\ub85c \ubcc0\ud658\ud558\ub294 Node\uac00 \uc788\uc9c0\ub9cc, PDF\ub294 Text\uc5d0\uc11c \ubcc0\ud658\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc2a4\uce94\ub41c \uc774\ubbf8\uc9c0 PDF\ub294 \ubcc0\ud658\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n\n\uc5ec\uae30\uc5d0\uc11c \ub2e4\ub978 Node\ub97c \uc0ac\uc6a9\ud558\uc5ec Word \ud30c\uc77c\uc744 Text\ub85c \ubcc0\ud658\ud558\uac70\ub098 JPG\ub97c Text\ub85c \ubcc0\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac00\ub2a5\uc131\uc740 \ubb34\ud55c\ud569\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "529f5756-c1a2-4c41-8245-38164543eb8e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1334.2232779572741,
        340
      ],
      "parameters": {
        "color": 7,
        "width": 477.2230145794152,
        "height": 648.5051458745238,
        "content": "\ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc.  \nS3\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucca8\ubd80 \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud558\ub294 \uacbd\uc6b0, \uc5ec\uae30\uc5d0\uc11c S3 \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucca8\ubd80 \ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "101c6544-d319-495d-a14f-e180f51be1f0",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -2840,
        480
      ],
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n  item.json.myNewField = 1;\n}\n\nreturn $input.all();"
      },
      "typeVersion": 2
    },
    {
      "id": "5d0a1090-9be9-41e1-9a15-26bd6498fd95",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3300,
        340
      ],
      "parameters": {
        "color": 5,
        "width": 398,
        "height": 642,
        "content": "### ERPNext\uc5d0\uc11c \uc9c0\uc6d0\uc790\uac00 \uc9c1\uc5c5\uc5d0 \uc9c0\uc6d0\ud568\n\nERPNext\uc5d0\uc11c Webhooks\ub85c \uc774\ub3d9\ud558\uc5ec Job Applicant Doc Type\uc5d0 Webhook\uc744 \uc0dd\uc131\ud558\uace0, \ud2b8\ub9ac\uac70\ub294 \uc0bd\uc785 \uc2dc\ub85c \uc124\uc815\ud558\uc138\uc694.\n\n\uba3c\uc800 Test Webhook\uc744 \uc2e4\ud589\ud558\uace0 Webhook\uc744 \uace0\uc815\ud558\uc138\uc694.\n\n\ud29c\ud1a0\ub9ac\uc5bc\uc744 \ub530\ub974\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "4ed5dfbf-9b16-4f62-83e2-abb63421809b",
      "name": "ApplicantData",
      "type": "n8n-nodes-base.set",
      "position": [
        -2640,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8d600a4f-14d3-4840-aea0-665d26e7771b",
              "name": "body",
              "type": "object",
              "value": "={{ $json.body }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4f141057-8dd6-429a-b48f-fd80b2666882",
      "name": "ERPNext - Reject if Resume not Attached",
      "type": "n8n-nodes-base.erpNext",
      "position": [
        -2380,
        800
      ],
      "parameters": {
        "docType": "Job%20Applicant",
        "operation": "update",
        "properties": {
          "customProperty": [
            {
              "field": "status",
              "value": "Rejected"
            }
          ]
        },
        "documentName": "={{ $('ApplicantData').item.json.body.name }}"
      },
      "credentials": {
        "erpNextApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "de0a9900-4109-4092-ad3b-f36f02517fdf",
      "name": "Applied Against Job",
      "type": "n8n-nodes-base.if",
      "position": [
        -2140,
        460
      ],
      "parameters": {
        "options": {
          "ignoreCase": true
        },
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "abbbd6f3-838e-43fb-a809-6bfffb153244",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.body.Job_opening }}",
              "rightValue": "None"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1c8e889b-dcd9-4807-8528-a7f0300bf558",
      "name": "ERPNext - Hold Applicant",
      "type": "n8n-nodes-base.erpNext",
      "position": [
        -2180,
        800
      ],
      "parameters": {
        "docType": "Job%20Applicant",
        "operation": "update",
        "properties": {
          "customProperty": [
            {
              "field": "status",
              "value": "Hold"
            }
          ]
        },
        "documentName": "={{ $('ApplicantData').item.json.body.name }}"
      },
      "credentials": {
        "erpNextApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "548c61dd-bcc3-4a7f-970e-5ff734926499",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        343.6198532285906
      ],
      "parameters": {
        "color": 6,
        "width": 258,
        "height": 638.3801467714094,
        "content": "### \uc9c1\ubb34 \uacf5\uace0 \ub370\uc774\ud130 \uac00\uc838\uc624\uae30\nERPNext\uc5d0\uc11c\n\n\ud2b9\uc815 \uc9c1\ubb34\uc5d0 \uc9c0\uc6d0\uc774 \uc774\ub8e8\uc5b4\uc9c0\uba74, \uc774\uc81c \uc9c1\ubb34 \uacf5\uace0 \ub370\uc774\ud130\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc73c\uba70, \uc774 \ub370\uc774\ud130\uc5d0\ub294 \uc9c1\ubb34 \uc124\uba85\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "6266e3e0-9bd7-4ab6-a488-55f1b524000f",
      "name": "Get Job Opening",
      "type": "n8n-nodes-base.erpNext",
      "position": [
        -80,
        620
      ],
      "parameters": {
        "docType": "Job%20Opening",
        "operation": "get",
        "documentName": "={{ $('ApplicantData').item.json.body.Job_opening }}"
      },
      "credentials": {
        "erpNextApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "536755cf-19d6-44a4-8449-635f4562b61f",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        140,
        320
      ],
      "parameters": {
        "color": 4,
        "width": 406.7864870360547,
        "height": 662,
        "content": "### AI \uc5d0\uc774\uc804\ud2b8\uac00 \uc9c1\ubb34\ub97c \uc218\ud589\ud568  \nOpenAI  \n\n\uc774 AI \uc5d0\uc774\uc804\ud2b8\uc5d0\uac8c \ub2f9\uc2e0\uc774 \ucc44\uc6a9 \uc804\ubb38\uac00\uc774\uba70 \ubaa8\ub4e0 \uc5ed\ud560\uc774 \uc774 \ub178\ub4dc\uc5d0 \uc815\uc758\ub418\uc5b4 \uc788\uc74c\uc744 \uc54c\ub824\uc8fc\ub294 \uc804\uccb4 \ud504\ub86c\ud504\ud2b8\ub97c \ubcf4\uc138\uc694.  \n\n\ud6c4\ubcf4\uc790\ub97c \ucd5c\uc885 \uc120\ubcc4\ud558\uace0 \ud6c4\ubcf4\uc790\uc758 \uc801\ud569 \uc218\uc900, \uc810\uc218, \ud3c9\uc810 \ubc0f \uc815\ub2f9\uc131\uc744 \ud3ec\ud568\ud55c \uc124\uba85\uc801\uc778 \ucd9c\ub825\uc744 \uc81c\uacf5\ud560 \uac83\uc785\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "0072826c-0e24-4c1f-89f9-388dc6e59ae5",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        980,
        320
      ],
      "parameters": {
        "color": 6,
        "width": 438,
        "height": 662,
        "content": "### ERPNext\uc5d0\uc11c \ub370\uc774\ud130 \uc5c5\ub370\uc774\ud2b8\n\uc5ec\uae30\uc11c \uccab \ubc88\uc9f8 \ub178\ub4dc\ub294 \ub370\uc774\ud130\uc758 \ud615\uc2dd\uc744 \uc9c0\uc815\ud558\uace0 AI \uc5d0\uc774\uc804\ud2b8\uc758 \ucd9c\ub825\uc744 ERPNext\uc5d0 \uc815\uc758\ub41c \uc801\uc808\ud55c \ud544\ub4dc\ub85c \ubcc0\ud658\ud55c \ub2e4\uc74c \ub2e4\uc74c \ub178\ub4dc\ub85c \ubcf4\ub0bc \uac83\uc785\ub2c8\ub2e4.\n\n### ERPNext (HTTP \ub178\ub4dc)\n\uc774 \ub178\ub4dc\ub294 \uc774\uc804 \ub178\ub4dc\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac00\uc838\uc640 ERPNext\uc5d0\uc11c \uc9c0\uc6d0\uc790 \ub370\uc774\ud130\ub97c \uc5c5\ub370\uc774\ud2b8\ud560 \uac83\uc785\ub2c8\ub2e4.\n\n### \ucd9c\ub825"
      },
      "typeVersion": 1
    },
    {
      "id": "28f23589-0608-4ed0-9e70-b6cbd31aa387",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        220,
        800
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8bdd8f1c-e546-4ffb-a058-a3271fcad156",
      "name": "Convert to Fields",
      "type": "n8n-nodes-base.code",
      "position": [
        660,
        620
      ],
      "parameters": {
        "jsCode": "// Input text from the `output` field\nconst textOutput = $json.output || '';\n\n// Function to extract values from the text\nfunction extractFields(text) {\n    const fields = {};\n\n    // Regular expressions to extract each field\n    const fitLevelMatch = text.match(/FitLevel:\\s*(.+)\\n/);\n    const scoreMatch = text.match(/Score:\\s*(\\d+)\\n/);\n    const ratingMatch = text.match(/Rating:\\s*(\\d+)\\n/);\n    const justificationMatch = text.match(/Justification:\\s*([\\s\\S]+)/);\n\n    // Assign extracted values to the fields\n    fields.fit_level = fitLevelMatch ? fitLevelMatch[1].trim() : null;\n    fields.score = scoreMatch ? scoreMatch[1].trim() : null;\n    fields.applicant_rating = ratingMatch ? ratingMatch[1].trim() : null;\n    fields.justification_by_ai = justificationMatch ? justificationMatch[1].trim() : null;\n\n    return fields;\n}\n\n// Extract fields from the output\nconst extractedFields = extractFields(textOutput);\n\n// Return the fields as JSON\nreturn {\n    json: extractedFields\n};\n"
      },
      "typeVersion": 2
    },
    {
      "id": "ae1dc677-9ad7-4138-969f-2ee73b8537f9",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1460,
        320
      ],
      "parameters": {
        "color": 5,
        "width": 226.43884349833064,
        "height": 682,
        "content": "\uc120\ud0dd \ub610\ub294 \uac70\ubd80\n\n\uc810\uc218\uc758 \uae30\uc900\uc740 Score\uac00 80 \uc774\uc0c1\uc774\uba74 Candidate\uac00 \uc120\ud0dd\ub418\uba70, \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 Rejected\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "090f4f22-639a-4fc7-8351-04dafcc09638",
      "name": "If score less than 80",
      "type": "n8n-nodes-base.if",
      "position": [
        1520,
        620
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5f845292-f4aa-44fb-a644-06c0736c3503",
              "operator": {
                "type": "number",
                "operation": "lt"
              },
              "leftValue": "={{ $('Convert to Fields').item.json.score }}",
              "rightValue": 80
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "0d7a84c2-0b1d-4e61-a3df-b81dd7981f1a",
      "name": "Reject Applicant",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1880,
        460
      ],
      "parameters": {
        "url": "=https://erpnext.syncbricks.com/api/resource/Job Applicant/{{ $('ApplicantData').item.json.body.name }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n  \"status\": \"Rejected\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {}
          ]
        },
        "nodeCredentialType": "erpNextApi"
      },
      "credentials": {
        "erpNextApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a55e70d1-7070-407d-9107-41cb33d2f0ae",
      "name": "Update Applicant Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1140,
        620
      ],
      "parameters": {
        "url": "=https://erpnext.syncbricks.com/api/resource/Job Applicant/{{ $('ApplicantData').item.json.body.name }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n  \"applicant_rating\": \"{{ $json.applicant_rating }}\",\n  \"custom_justification_by_ai\": \"{{ $json.justification_by_ai }}\",\n  \"custom_fit_level\": \"{{ $json.fit_level }}\",\n  \"custom_score\":\"{{ $json.score }}\"\n}\n\n\n\n\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {}
          ]
        },
        "nodeCredentialType": "erpNextApi"
      },
      "credentials": {
        "erpNextApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "044d26cb-2b34-4613-8d1d-20f40b47da29",
      "name": "Reume Attachment Link",
      "type": "n8n-nodes-base.set",
      "position": [
        -1820,
        560
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7d0b8b98-0976-4c19-bc7c-738fabd60d28",
              "name": "body.resume_attachment",
              "type": "string",
              "value": "={{ $json.body.resume_link }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a17e9c94-0ec7-430f-adf3-109bcccf3bcb",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2874.102923130834,
        680
      ],
      "parameters": {
        "color": 3,
        "width": 875.658619343735,
        "height": 302,
        "content": "## \uc774\ub825\uc11c \uc0ac\uc6a9 \uac00\ub2a5?\n\uccab \ubc88\uc9f8 \ub178\ub4dc: \uc774\ub825\uc11c\uac00 \ucca8\ubd80\ub418\uc9c0 \uc54a\uc73c\uba74 \uc9c0\uc6d0\uc790\uac00 \uac70\ubd80\ub429\ub2c8\ub2e4.\n\ub450 \ubc88\uc9f8 \ub178\ub4dc: \uc9c1\ubb34\uac00 \uac1c\uc124\uc5d0 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc73c\uba74 \uc9c0\uc6d0\uc790\uac00 \ubcf4\ub958\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "e2508130-4ecd-4d19-b41c-293006d17507",
      "name": "Resume Link Provided",
      "type": "n8n-nodes-base.if",
      "position": [
        -2400,
        480
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3cd3da7d-d0fb-43fd-be10-3c1e627846b9",
              "operator": {
                "type": "string",
                "operation": "startsWith"
              },
              "leftValue": "={{ $json.body.resume_link }}",
              "rightValue": "http"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e6770961-05b2-4488-99b1-7d1a219f8372",
      "name": "Accept Applicant",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1860,
        760
      ],
      "parameters": {
        "url": "=https://erpnext.syncbricks.com/api/resource/Job Applicant/{{ $('ApplicantData').item.json.body.name }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n  \"status\": \"Accepted\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {}
          ]
        },
        "nodeCredentialType": "erpNextApi"
      },
      "credentials": {
        "erpNextApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6b7ad5c5-2a6f-4bb8-8296-3defb40f9605",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3800,
        340
      ],
      "parameters": {
        "color": 4,
        "width": 475.27306699862953,
        "height": 636.1483291619771,
        "content": "## Amjid Ali\uac00 \uac1c\ubc1c\ud568\n\n\uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud574 \uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4. \uc774\ub97c \uac1c\ubc1c\ud558\ub294 \ub370 \uc218\ub9ce\uc740 \uc2dc\uac04\uc758 \ub178\ub825, \uc5f0\uad6c, \uadf8\ub9ac\uace0 \ud5cc\uc2e0\uc774 \ub4e4\uc5c8\uc73c\uba70, \uadc0\ud558\uc758 \uc791\uc5c5\uc5d0 \uac00\uce58\ub97c \ub354\ud558\uae30\ub97c \uc9c4\uc2ec\uc73c\ub85c \ubc14\ub78d\ub2c8\ub2e4.\n\n\uc774 \ud15c\ud50c\ub9bf\uc774 \ub3c4\uc6c0\uc774 \ub41c\ub2e4\uba74, \uc81c \ub178\ub825\uc744 \uc9c0\uc6d0\ud574 \uc8fc\uc2e4 \uac83\uc744 \ubd80\ud0c1\ub4dc\ub9bd\ub2c8\ub2e4. \uadc0\ud558\uc758 \uc9c0\uc6d0\uc740 \uc81c\uac00 \uac1c\uc120\uc744 \uacc4\uc18d\ud558\uace0 \ub354 \uac00\uce58 \uc788\ub294 \uc790\uc6d0\uc744 \ub9cc\ub4dc\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub420 \uac83\uc785\ub2c8\ub2e4.\n\n\uc5ec\uae30\uc5d0\uc11c PayPal\uc744 \ud1b5\ud574 \uae30\ubd80\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:\n\nhttp://paypal.me/pmptraining\n\nERPNext \ub610\ub294 AI\ub97c \uc0ac\uc6a9\ud55c \uc790\ub3d9\ud654\uc5d0 \ub300\ud55c \uc804\uccb4 \ucf54\uc2a4\uc5d0 \ub300\ud574\uc11c\ub294 \uc544\ub798 \ub9c1\ud06c\ub97c \ub530\ub974\uc138\uc694:\n\nhttp://lms.syncbricks.com\n\n\ub610\ud55c, \uc774 \ud15c\ud50c\ub9bf\uc744 \uacf5\uc720\ud560 \ub54c, \uc801\uc808\ud55c \ud06c\ub808\ub527\uc744 \ubcf4\uc7a5\ud558\uae30 \uc704\ud574 \uc81c \uc6d0\ubcf8 \uc815\ubcf4\ub97c \ud3ec\ud568\ud574 \uc8fc\uc2dc\uba74 \ub300\ub2e8\ud788 \uac10\uc0ac\ud558\uaca0\uc2b5\ub2c8\ub2e4.\n\n\uadc0\ud558\uc758 \uad00\ub300\ud568\uacfc \uc9c0\uc6d0\uc5d0 \uac10\uc0ac\ub4dc\ub9bd\ub2c8\ub2e4!\n\uc774\uba54\uc77c: amjid@amjidali.com\nhttps://linkedin.com/in/amjidali\nhttps://syncbricks.com\nhttps://youtube.com/@syncbricks"
      },
      "typeVersion": 1
    },
    {
      "id": "173c6341-2ab7-4ee5-a6bd-0770ae19c013",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -3180,
        620
      ],
      "parameters": {
        "path": "syncbricks-com-tutorial-candidate-shortlist",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "cb0a8dd4-6673-4043-af76-0bf4537a8173",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1980,
        340
      ],
      "parameters": {
        "color": 6,
        "width": 613.5767730410602,
        "height": 654.6630436071407,
        "content": "ERPNext \uc9c0\uc6d0\uc790\ub85c\ubd80\ud130 \uc774\ub825\uc11c \uc138\ubd80 \uc0ac\ud56d \ud30c\uc77c \uac00\uc838\uc624\uae30  \n\uc774\ub825\uc11c \ub2e4\uc6b4\ub85c\ub4dc \ub9c1\ud06c\ub97c \ucd94\ucd9c\ud558\uace0, \ubaa8\ub4e0 \ucca8\ubd80 \ud30c\uc77c\uc774 \ub2e4\ub974\uac8c \ucc98\ub9ac\ub418\ubbc0\ub85c \ucca8\ubd80 \ud30c\uc77c \uc720\ud615\uc744 \uacb0\uc815\ud558\uc138\uc694.  \n\ud604\uc7ac PDF \ubc84\uc804\ub9cc \uc81c\uacf5\ud588\uc9c0\ub9cc, \ub2e4\ub978 \ubc84\uc804\uc758 \ubcc4\ub3c4 \ud750\ub984\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "101938bd-75cd-4557-a44f-ba64c4181f70",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2420,
        340
      ],
      "parameters": {
        "color": 6,
        "width": 429.96763122593137,
        "height": 310.20584626167124,
        "content": "\uc774\ub825\uc11c\uac00 \uc774\uc6a9 \uac00\ub2a5\ud558\uace0 \ud2b9\uc815 \uc9c1\ubb34\uc5d0 \ud574\ub2f9\ud558\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694. \uc774\ub7ec\ud55c \ub178\ub4dc\ub4e4\uc740 \uc6f9\ud6c5 \ub178\ub4dc\uc5d0\uc11c \ud544\uc694\ud55c \ub370\uc774\ud130\ub9cc \ucd94\ucd9c\ud558\uae30 \uc704\ud55c \uac83\uc785\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "596bcbd5-b94a-4a06-aa83-f7d9dc6264be",
      "name": "File Type",
      "type": "n8n-nodes-base.switch",
      "position": [
        -1600,
        560
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "pdf",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "endsWith"
                    },
                    "leftValue": "={{ $json.body.resume_attachment }}",
                    "rightValue": ".pdf"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "doc",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "dabe1bd2-9aba-4a61-b0b3-08c22856b213",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $json.body.resume_attachment }}",
                    "rightValue": ".doc"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": ".jpg",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "1101fc2e-4220-4795-9342-58d88ea146ce",
                    "operator": {
                      "type": "string",
                      "operation": "endsWith"
                    },
                    "leftValue": "={{ $json.body.resume_attachment }}",
                    "rightValue": ".jpg"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "cc7f4ca0-8e9b-49de-a7f1-f1f7913d6dcc",
      "name": "Download PDF Resume",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1160,
        460
      ],
      "parameters": {
        "url": "={{ $json.body.resume_attachment }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "1209643a-7133-45cf-98a3-e242e2e1766b",
      "name": "PDF to Text",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -720,
        440
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "17430d0d-7bca-4ed9-b80e-d1f81dad5d58",
      "name": "Txt File to Text (Example)",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -740,
        680
      ],
      "parameters": {
        "options": {},
        "operation": "text"
      },
      "typeVersion": 1
    },
    {
      "id": "2ab3f083-66d7-4a28-9b00-b9dabcd84282",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        -420,
        620
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "e45d5828-1e7b-454e-9a79-7ab0f60e3cd9",
      "name": "Recruitment AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        200,
        620
      ],
      "parameters": {
        "text": "=System Prompt : \nYou are a highly skilled AI agent trained to compare and analyze text from resumes against job descriptions. Your primary goal is to assess whether the candidate is a good fit for the role based on the given inputs. You will receive two inputs:\n\n1. **Job Description**: A detailed description of the responsibilities, qualifications, and skills required for a specific job role.\n2. **Resume Text**: A summary of a candidate's qualifications, skills, experience, and education.\n\nYour task is to:\n1. **Analyze Match**: Compare the candidate's resume text against the job description and assess the alignment of:\n   - Required skills\n   - Relevant experience\n   - Educational background\n   - Certifications\n   - Keywords mentioned in both texts (e.g., specific tools, methodologies, or terminologies).\n\n2. **Assess Fit**: Determine if the candidate is a strong, moderate, or weak fit for the role. Assign a score from 0 to 100 based on relevance:\n   - **Strong Fit**: 80\u2013100 (Candidate meets or exceeds the majority of the job requirements).\n   - **Moderate Fit**: 50\u201379 (Candidate meets some key requirements but lacks in others).\n   - **Weak Fit**: Below 50 (Candidate does not align with the role requirements).\n\n3. **Provide Justification**: Include a brief explanation of why the candidate is or isn\u2019t a good fit, highlighting strengths, gaps, or missing criteria.\n\nOutput Format:\n- **Fit Level**: [Strong Fit / Moderate Fit / Weak Fit]\n- **Score**: [0\u2013100]\n- **Rating**: [0\u20135]\n- **Justification**: A concise summary of the reasoning behind the fit level.\n\nRemember to maintain a neutral and objective tone in your analysis and ensure that your assessment is solely based on the information provided in the inputs.\"\n\n\nProvide me the output in the following format:\n\nFitLevel\n<fitLevel>\n\nScore:\n<score>\n\nRating:\n<rating>\n\nJustification:\n<justification>\n\nBelow are the inputs \n\nJob Title : {{ $json.job_title }}\nJob Desription : {{ $json.description }}\n\n\nHere here Job Applican't text from Resume : \n{{ $('PDF to Text').item.json.text }}\n",
        "agent": "reActAgent",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "02d40fbc-3b2a-4350-bd01-2dcca11cf23b",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        320
      ],
      "parameters": {
        "color": 6,
        "width": 374.6910896370089,
        "height": 662,
        "content": "### \ud544\ub4dc \uc0dd\uc131\n\n\uc774 JavaScript\ub294 AI Agent\uc5d0\uc11c \ucd94\ucd9c\ub41c fieldws\ub97c \ubcc0\ud658\ud558\uace0, ERPNext\uc5d0 \uc774\ubbf8 \uc0dd\uc131\ub41c \ud544\ub4dc\ub97c \uc0dd\uc131\ud560 \uac83\uc785\ub2c8\ub2e4.\n\nERPNext\uc5d0 \uc544\ub798 \ud544\ub4dc\ub97c \uc0dd\uc131\ud558\uc2ed\uc2dc\uc624: \n\njustification_by_ai\nfit_level\nscore\n\napplicant_rating \ud544\ub4dc\ub294 \uc774\ubbf8 \uc874\uc7ac\ud558\uba70, 1\ubd80\ud130 5\uc131\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ub420 \uac83\uc785\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "fdc011c2-e734-44fe-8a83-975247445d16",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1720,
        320
      ],
      "parameters": {
        "color": 3,
        "width": 394.2810709723076,
        "height": 308.0357387860514,
        "content": "ERPNext\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc5c5\ub370\uc774\ud2b8  \nAPI \ud638\ucd9c  \n\ud6c4\ubcf4\uc790 \uac70\ubd80"
      },
      "typeVersion": 1
    },
    {
      "id": "3c4174cc-b947-4461-87a6-a7dbd0e3c78d",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1720,
        660
      ],
      "parameters": {
        "color": 4,
        "width": 385.4472695263088,
        "height": 308.0357387860514,
        "content": "ERPNext\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc5c5\ub370\uc774\ud2b8  \nAPI \ud638\ucd9c  \n\ud6c4\ubcf4\uc790 \uac70\ubd80"
      },
      "typeVersion": 1
    },
    {
      "id": "0116aa6d-2783-487b-b457-47a6b7d69f02",
      "name": "Microsoft Outlook",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        2240,
        460
      ],
      "parameters": {
        "additionalFields": {}
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "f2eac576-3a17-46e8-8800-1ba250e53047",
      "name": "Sticky Note17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2140,
        331.1661985540012
      ],
      "parameters": {
        "color": 6,
        "width": 338.3336618143153,
        "height": 623.107990360008,
        "content": "\uc2e0\uccad\uc790\ub97c \uc774\uba54\uc77c, WhatsApp, \ub610\ub294 SMS\ub85c \ud1b5\uc9c0\ud558\uc138\uc694. \uc635\uc158\uc740 \ubb34\ud55c\ud569\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "d4a6e756-923c-47c8-9c12-b1e8dcc873ca",
      "name": "WhatsApp Business Cloud",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        2280,
        760
      ],
      "parameters": {
        "operation": "send",
        "requestOptions": {},
        "additionalFields": {}
      },
      "credentials": {
        "whatsAppApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "ApplicantData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Get Job Opening",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "File Type": {
      "main": [
        [
          {
            "node": "Download PDF Resume",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PDF to Text": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ApplicantData": {
      "main": [
        [
          {
            "node": "Resume Link Provided",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Job Opening": {
      "main": [
        [
          {
            "node": "Recruitment AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Accept Applicant": {
      "main": [
        [
          {
            "node": "WhatsApp Business Cloud",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reject Applicant": {
      "main": [
        [
          {
            "node": "Microsoft Outlook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Fields": {
      "main": [
        [
          {
            "node": "Update Applicant Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Applied Against Job": {
      "main": [
        [
          {
            "node": "Reume Attachment Link",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ERPNext - Hold Applicant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download PDF Resume": {
      "main": [
        [
          {
            "node": "PDF to Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recruitment AI Agent": {
      "main": [
        [
          {
            "node": "Convert to Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resume Link Provided": {
      "main": [
        [
          {
            "node": "Applied Against Job",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ERPNext - Reject if Resume not Attached",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If score less than 80": {
      "main": [
        [
          {
            "node": "Reject Applicant",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Accept Applicant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reume Attachment Link": {
      "main": [
        [
          {
            "node": "File Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Applicant Data": {
      "main": [
        [
          {
            "node": "If score less than 80",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Recruitment AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Txt File to Text (Example)": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}