app:
  description: 複数面接官の評価を統合し、合意点・意見差を抽出して次のアクションを提案するワークフロー
  icon: 🤝
  icon_background: '#FFEAD5'
  mode: workflow
  name: 面接評価差分サマリ
  use_icon_as_answer_icon: false
kind: app
version: 0.6.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      image:
        enabled: false
    opening_statement: ''
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
  graph:
    edges:
    - data:
        sourceType: start
        targetType: parameter-extractor
      id: start-to-pe1
      source: start
      target: pe1
    - data:
        sourceType: parameter-extractor
        targetType: llm
      id: pe1-to-llm1
      source: pe1
      target: llm1
    - data:
        sourceType: llm
        targetType: end
      id: llm1-to-end
      source: llm1
      target: end
    nodes:
    - data:
        title: 開始
        type: start
        variables:
        - label: query
          max_length: 2048
          options: []
          required: true
          type: paragraph
          variable: query
      height: 90
      id: start
      position:
        x: 80
        y: 282
      type: custom
      width: 244
    - data:
        title: 面接評価抽出（パラメータ抽出）
        type: parameter-extractor
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        query:
        - start
        - query
        parameters:
        - name: interviewers
          type: string
          description: '各面接官の評価を標準化して返す。形式: 面接官名|score(0-10)|strengths(カンマ区切り)|weaknesses(カンマ区切り)|recommendation(合格/保留/不合格)。面接官ごとにセミコロンで区切る。例:
            山田|8|主体性,技術力|経験不足|合格; 佐藤|6|協調性|深堀が弱い|保留'
          required: true
        - name: agreed_points
          type: string
          description: 入力テキストから抽出した、面接官間で合意されているポイント（短いフレーズをカンマ区切りで）
          required: true
        - name: disagreements
          type: string
          description: 面接官間で意見が分かれている点（短いフレーズをカンマ区切りで）
          required: true
        reasoning_mode: prompt
        instruction: '以下の自由形式の面接評価メモを読み、指定のフォーマットで抽出してください。

          - interviewers: 各面接官について「名前|score(0-10)|strengths(カンマ区切り)|weaknesses(カンマ区切り)|recommendation(合格/保留/不合格)」の形式で、面接官ごとにセミコロンで区切って返してください。項目がない場合は空欄にしてください。

          - agreed_points: 面接官間で明確に合意している評価ポイントを短いフレーズで列挙し、カンマ区切りで返してください。合意点がない場合は「なし」と返してください。

          - disagreements: 面接官間で見解の相違がある主要な点を短いフレーズで列挙し、カンマ区切りで返してください。相違がない場合は「なし」と返してください。

          '
      height: 90
      id: pe1
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - data:
        title: 統合サマリ生成（LLM）
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.6
        prompt_template:
        - role: system
          text: 'あなたは人材サービス分野の専門家です。複数の面接官評価を統合して、(1) 短い統合サマリ、(2) 合意点の要約、(3) 意見差の詳細（どの面接官がどの点で異なるか）、(4)
            次のアクション提案（優先度・実行担当を含む）を日本語でわかりやすく出力してください。出力は見出しと箇条書きで整理し、実行しやすい具体的な提案を含めてください。不要な冗長な説明は避けてください。

            '
        - role: user
          text: '原文評価:

            {{#start.query#}}


            抽出結果:

            面接官データ: {{#pe1.interviewers#}}

            合意点: {{#pe1.agreed_points#}}

            相違点: {{#pe1.disagreements#}}


            指示:

            1) 上記を基に「統合サマリ」を3〜4行で作成してください（採用可否の暫定判断を含む）。

            2) 「合意点」は箇条書きで、面接官間の共通見解を短いフレーズで示してください。

            3) 「意見差」は箇条書きで、どの面接官がどの点で異なるかを明示してください（例: 山田は合格、佐藤は保留）。

            4) 「次のアクション提案」は優先度順に3つまで、想定する担当者（例: 採用担当/面接官/採用マネージャー）を明記し、具体的な実施内容と期待成果を簡潔に書いてください。

            5) 出力は日本語。見出しは「統合サマリ」「合意点」「意見差」「次のアクション提案」としてください。

            '
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm1
      position:
        x: 680
        y: 282
      type: custom
      width: 244
    - data:
        title: 終了
        type: end
        outputs:
        - value_selector:
          - llm1
          - text
          variable: result
      height: 90
      id: end
      position:
        x: 980
        y: 282
      type: custom
      width: 244
  hash: null
