{
  "name": "Rastreador de Postulantes y Proceso de Selección",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "postulacion-empleo",
        "options": {}
      },
      "id": "a9b0c1d2-0019-4a01-b001-ef1234567001",
      "name": "Webhook - Formulario Postulación",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "functionCode": "const data = items[0].json.body;\n\nreturn [{\n  json: {\n    nombre: data.nombre,\n    correo: data.correo,\n    telefono: data.telefono,\n    experiencia_anios: parseInt(data.experiencia_anios || 0),\n    ubicacion: data.ubicacion || '',\n    pretension_salarial: parseFloat(data.pretension_salarial || 0),\n    enlace_hv: data.enlace_hv || '',\n    cargo_postulado: data.cargo || '',\n    fecha_postulacion: new Date().toISOString()\n  }\n}];"
      },
      "id": "a9b0c1d2-0019-4a02-b002-ef1234567002",
      "name": "Function - Procesar Datos",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [500, 300]
    },
    {
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.experiencia_anios }}",
              "operation": "largerEqual",
              "value2": 2
            },
            {
              "value1": "={{ $json.pretension_salarial }}",
              "operation": "smallerEqual",
              "value2": 1500
            }
          ]
        }
      },
      "id": "a9b0c1d2-0019-4a03-b003-ef1234567003",
      "name": "IF - Cumple Requisitos Mínimos",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [750, 300]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "byName",
          "value": "Candidatos Aptos"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Nombre": "={{ $json.nombre }}",
            "Correo": "={{ $json.correo }}",
            "Teléfono": "={{ $json.telefono }}",
            "Experiencia": "={{ $json.experiencia_anios }} años",
            "Pretensión Salarial": "={{ $json.pretension_salarial }}",
            "Ubicación": "={{ $json.ubicacion }}",
            "Cargo": "={{ $json.cargo_postulado }}",
            "Enlace HV": "={{ $json.enlace_hv }}",
            "Fecha": "={{ $json.fecha_postulacion }}",
            "Estado": "Por revisar"
          }
        },
        "options": {}
      },
      "id": "a9b0c1d2-0019-4a04-b004-ef1234567004",
      "name": "Google Sheets - Candidatos Aptos",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [1000, 200],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $json.correo }}",
        "subject": "=Confirmación de Postulación - {{ $json.cargo_postulado }}",
        "emailType": "html",
        "message": "=<div style='font-family:Arial,sans-serif;max-width:600px;margin:0 auto;'><h2 style='color:#1a73e8;'>Hemos recibido tu postulación</h2><p>Estimado/a {{ $json.nombre }},</p><p>Gracias por tu interés en la posición de <strong>{{ $json.cargo_postulado }}</strong>.</p><p>Hemos recibido tu hoja de vida y la estamos revisando. Te informaremos sobre los próximos pasos del proceso de selección en los próximos <strong>5 días hábiles</strong>.</p><h3>Próximos pasos:</h3><ol><li>Revisión de hoja de vida (1-5 días)</li><li>Entrevista telefónica (si clasificas)</li><li>Entrevista presencial o virtual</li><li>Decisión final</li></ol><p>¡Te deseamos mucho éxito!</p></div>",
        "options": {}
      },
      "id": "a9b0c1d2-0019-4a05-b005-ef1234567005",
      "name": "Gmail - Confirmación Candidato Apto",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [1250, 200],
      "credentials": {
        "gmailOAuth2": {
          "id": "",
          "name": "Gmail account"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $json.correo }}",
        "subject": "=Gracias por tu postulación - {{ $json.cargo_postulado }}",
        "emailType": "html",
        "message": "=<div style='font-family:Arial,sans-serif;max-width:600px;margin:0 auto;'><h2 style='color:#1a73e8;'>Gracias por tu interés</h2><p>Estimado/a {{ $json.nombre }},</p><p>Agradecemos tu interés en la posición de <strong>{{ $json.cargo_postulado }}</strong>.</p><p>Después de revisar los requisitos del puesto, en esta ocasión avanzaremos con otros perfiles que se ajustan más a las necesidades específicas de la vacante.</p><p>Sin embargo, tu perfil quedará en nuestra base de datos y te contactaremos si surge una oportunidad que se alinee mejor con tu experiencia.</p><p>¡Te deseamos mucho éxito en tu búsqueda profesional!</p></div>",
        "options": {}
      },
      "id": "a9b0c1d2-0019-4a06-b006-ef1234567006",
      "name": "Gmail - Agradecimiento No Apto",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [1000, 450],
      "credentials": {
        "gmailOAuth2": {
          "id": "",
          "name": "Gmail account"
        }
      }
    }
  ],
  "connections": {
    "Webhook - Formulario Postulación": {
      "main": [
        [
          {
            "node": "Function - Procesar Datos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function - Procesar Datos": {
      "main": [
        [
          {
            "node": "IF - Cumple Requisitos Mínimos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Cumple Requisitos Mínimos": {
      "main": [
        [
          {
            "node": "Google Sheets - Candidatos Aptos",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Gmail - Agradecimiento No Apto",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Candidatos Aptos": {
      "main": [
        [
          {
            "node": "Gmail - Confirmación Candidato Apto",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "hr-operations"
    },
    {
      "name": "reclutamiento"
    },
    {
      "name": "seleccion"
    }
  ]
}
