وكيل ذكي لفرز المتقدمين للوظائف

يقرأ كل طلب توظيف وسيرة ذاتية، ويقيّمها مقابل متطلبات الوظيفة الأساسية، ويبرز المرشحين الأقوياء.

وكيل ذكيمتقدم توفّر ~15 ساعة شهريًا وكلاء الذكاء الاصطناعيبواسطة فريق Flowngn

تعمل مع n8n · Make · Zapier

كيف تعمل

المشغّل: Webhook — طلب توظيف مع سيرة ذاتية PDF
  1. يرسل نموذج التقديم الإجابات والسيرة الذاتية (PDF).
  2. يُستخرج النص من السيرة الذاتية.
  3. يقرأ الوكيل متطلبات الوظيفة، ويقيّم المرشح، ويحفظ النتيجة.
  4. المرشحون الأقوياء (7+) يُنشرون في #hiring ليراجعهم شخص.

ماذا يستطيع أن يفعل

على عكس الأتمتة الثابتة، يقرر الوكيل أي أدواته يستخدم وبأي ترتيب — ويتذكر المحادثة.

  • يستخرج النص من السير الذاتية بصيغة PDF
  • يقيّم مقابل المتطلبات الأساسية للوظيفة مع الأدلة
  • يحفظ كل مرشح بتقييمه وملخصه
  • ينبّه فريق التوظيف بالمرشحين الأقوياء

التعليمات (System prompt)

التعليمات التي تشكّل سلوك الوكيل. موجودة بالفعل داخل قالب n8n — انسخها إلى Make أو Zapier، وعدّل أجزاء YOUR_….

التعليمات (System prompt)
You screen job applicants for YOUR_COMPANY. You receive an application (answers + CV text). Be fair and consistent.

Steps:
1. Use "Job openings" to read the requirements for the role they applied for.
2. Score the candidate 1–10 against the MUST-HAVE requirements only, with 2–3 sentences of evidence from the CV.
3. Use "Save candidate" with the score and summary — always, for every applicant.
4. If the score is 7 or more, use "Notify hiring team" so a person can review and schedule an interview.

Rules:
- Judge only skills, experience and requirements. Ignore and never mention age, gender, religion, nationality, marital status, photos, or names.
- Never reject anyone yourself — you only score and summarise; humans decide.
- If the CV is empty or unreadable, save the candidate with score 0 and the note "CV unreadable".

قواعد الأمان

مدمجة في التعليمات والأدوات:

  • يتجاهل العمر والجنس والدين والجنسية والصور والأسماء
  • لا يرفض أحدًا أبدًا — البشر يتخذون كل القرارات
  • يقيّم فقط مقابل المتطلبات التي كتبتها

يستخدم مفتاح الذكاء الاصطناعي الخاص بك (Claude أو OpenAI أو غيرهما). التكلفة تعتمد على النموذج وطول المحادثة — والنموذج الصغير السريع يجعل معظم المحادثات بجزء من السنت.

المخطط

ApplicationWebhookRead CV (PDF)Extract from FileScreening agentAI AgentClaude modelAnthropic Chat Mo…◷MemorySimple MemoryGJob openingsGoogle Sheets ToolGSave candidateGoogle Sheets ToolSNotify hiring …Slack Tool
مشغّل منطق ذكاء اصطناعي أداة للوكيل

ابنِها بأداتك

اختر أداتك — نفس الأتمتة، خطوة بخطوة.

انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_. خطوات الذكاء الاصطناعي تستخدم نموذج Claude، ويمكنك استبداله بـ OpenAI أو Gemini أو Ollama.

ملف Workflow JSON
عرض الكود (273 سطر)
{
  "name": "وكيل ذكي لفرز المتقدمين للوظائف (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## وكيل ذكي لفرز المتقدمين للوظائف\nيقرأ كل طلب توظيف وسيرة ذاتية، ويقيّمها مقابل متطلبات الوظيفة الأساسية، ويبرز المرشحين الأقوياء.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "job-application",
        "options": {}
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Application",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        0,
        0
      ],
      "webhookId": "47157a09-b804-49e3-ad6e-7700150ed55a"
    },
    {
      "parameters": {
        "operation": "pdf",
        "binaryPropertyName": "cv",
        "options": {}
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Read CV (PDF)",
      "type": "n8n-nodes-base.extractFromFile",
      "typeVersion": 1,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Role applied for: {{ $('Application').item.json.body.role }}\nCandidate email: {{ $('Application').item.json.body.email }}\nAnswers: {{ JSON.stringify($('Application').item.json.body.answers || {}) }}\n\nCV:\n{{ ($json.text || '').slice(0, 12000) }}",
        "options": {
          "systemMessage": "=You screen job applicants for YOUR_COMPANY. You receive an application (answers + CV text). Be fair and consistent.\n\nSteps:\n1. Use \"Job openings\" to read the requirements for the role they applied for.\n2. Score the candidate 1–10 against the MUST-HAVE requirements only, with 2–3 sentences of evidence from the CV.\n3. Use \"Save candidate\" with the score and summary — always, for every applicant.\n4. If the score is 7 or more, use \"Notify hiring team\" so a person can review and schedule an interview.\n\nRules:\n- Judge only skills, experience and requirements. Ignore and never mention age, gender, religion, nationality, marital status, photos, or names.\n- Never reject anyone yourself — you only score and summarise; humans decide.\n- If the CV is empty or unreadable, save the candidate with score 0 and the note \"CV unreadable\"."
        }
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Screening agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        600,
        0
      ]
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "claude-sonnet-5",
          "mode": "list"
        },
        "options": {}
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Claude model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        260,
        220
      ]
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Application').item.json.body.email }}",
        "contextWindowLength": 10
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        430,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Returns our open roles with must-have and nice-to-have requirements.",
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Jobs",
          "mode": "name"
        },
        "options": {}
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Job openings",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        600,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Saves the candidate with score and summary.",
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Candidates",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "date": "={{ $now.toISO() }}",
            "email": "={{ $('Application').item.json.body.email }}",
            "role": "={{ $('Application').item.json.body.role }}",
            "score": "={{ $fromAI('score', \"Score 0-10 against must-have requirements\", 'number') }}",
            "summary": "={{ $fromAI('summary', \"2-3 sentences of evidence from the CV\", 'string') }}",
            "status": "to review"
          }
        },
        "options": {}
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Save candidate",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        770,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Tells the hiring team about a strong candidate (score 7+).",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "#hiring",
          "mode": "name"
        },
        "text": "={{ $fromAI('message', \"Role, score, 2-line summary and the candidate's email\", 'string') }}",
        "otherOptions": {}
      },
      "id": "47157a09-b804-49e3-ad6e-7700150ed55a",
      "name": "Notify hiring team",
      "type": "n8n-nodes-base.slackTool",
      "typeVersion": 2.2,
      "position": [
        940,
        220
      ]
    }
  ],
  "connections": {
    "Application": {
      "main": [
        [
          {
            "node": "Read CV (PDF)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read CV (PDF)": {
      "main": [
        [
          {
            "node": "Screening agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude model": {
      "ai_languageModel": [
        [
          {
            "node": "Screening agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Memory": {
      "ai_memory": [
        [
          {
            "node": "Screening agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Job openings": {
      "ai_tool": [
        [
          {
            "node": "Screening agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Save candidate": {
      "ai_tool": [
        [
          {
            "node": "Screening agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Notify hiring team": {
      "ai_tool": [
        [
          {
            "node": "Screening agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

← افتحها في ساحة التجربة لتعديلها

نصائح

  • أخبر المتقدمين أن الذكاء الاصطناعي يساعد في فرز الطلبات، وراجع عينة من التقييمات المنخفضة بنفسك.

أتمتات مشابهة