diff --git a/kits/assistant/interview-preparation/interview-prep-kit/.env.example b/kits/assistant/interview-preparation/interview-prep-kit/.env.example new file mode 100644 index 00000000..32047c82 --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/.env.example @@ -0,0 +1,4 @@ +INTERVIEW_PREP_FLOW_ID="89a0f4dc-3a9d-46c2-acdf-167ed4194583" +LAMATIC_API_URL="YOUR_API_ENDPOINT" +LAMATIC_PROJECT_ID="YOUR_PROJECT_ID" +LAMATIC_API_KEY="YOUR_API_KEY" diff --git a/kits/assistant/interview-preparation/interview-prep-kit/README.md b/kits/assistant/interview-preparation/interview-prep-kit/README.md new file mode 100644 index 00000000..e0052dea --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/README.md @@ -0,0 +1,88 @@ +# 🎯 Interview Preparation Coach — AgentKit + +An AI-powered interview preparation coach that evaluates candidate answers for both behavioral and technical questions, providing structured feedback with scores, strengths, areas for improvement, and better answer suggestions. + +## What It Does + +- Accepts a job description/question, candidate resume, and interview answer +- Evaluates the answer from **behavioral** and **technical** perspectives +- Returns a score (1–10), strengths, improvements, and a suggested better answer for each dimension +- Powered by Groq's `llama-3.1-8b-instant` model via Lamatic's InstructorLLM node + +## Prerequisites + +- [Lamatic Account](https://lamatic.ai) with the flow deployed +- [Groq API Key](https://console.groq.com) configured in Lamatic +- Node.js 18+ + +## Environment Variables + +Copy `.env.example` to `.env` and fill in your values: + +```bash +cp .env.example .env +``` + +| Variable | Description | +|---|---| +| `INTERVIEW_PREP_FLOW_ID` | Your Lamatic Flow ID | +| `LAMATIC_API_URL` | Your Lamatic API endpoint | +| `LAMATIC_PROJECT_ID` | Your Lamatic project ID | +| `LAMATIC_API_KEY` | Your Lamatic API key | + +## Setup & Run + +```bash +# Install dependencies +npm install + +# Start development server +npm run dev +``` + +Open [http://localhost:3000](http://localhost:3000) in your browser. + +## Usage + +Send a POST request to the API or use the UI: + +```json +{ + "jobDescription": "Tell me about a time you resolved a conflict in your team.", + "resume": "5 years of software engineering experience...", + "userAnswer": "In my previous role, I encountered a disagreement between two engineers..." +} +``` + +### Example Response + +```json +{ + "behavioral_score": 7, + "behavioral_strengths": ["Good conflict awareness", "Clear communication"], + "behavioral_improvements": ["Needs more specific outcomes", "Missing follow-up actions"], + "behavioral_better_answer": "A stronger answer would include the specific steps taken...", + "technical_score": 6, + "technical_strengths": ["Understands the problem domain"], + "technical_improvements": ["Lacks technical depth", "No metrics mentioned"], + "technical_better_answer": "A more complete answer would reference specific tools used..." +} +``` + +## Flow Architecture + +``` +API Request → Behaviour_Prep (LLM) ─┐ + ├→ API Response + Technical_Prep (LLM) ─┘ +``` + +## Lamatic Flow + +- **Flow ID:** `89a0f4dc-3a9d-46c2-acdf-167ed4194583` +- **Model:** `groq/llama-3.1-8b-instant` +- **Provider:** Groq + +## Contributing + +See the main [CONTRIBUTING.md](https://github.com/Lamatic/AgentKit/blob/main/CONTRIBUTING.md) for guidelines. diff --git a/kits/assistant/interview-preparation/interview-prep-kit/config.json b/kits/assistant/interview-preparation/interview-prep-kit/config.json new file mode 100644 index 00000000..5ce24e28 --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/config.json @@ -0,0 +1,33 @@ +{ + "name": "Interview Preparation", + "description": "An AI-powered interview preparation coach that evaluates candidate answers for both behavioral and technical questions, providing structured feedback with scores, strengths, improvements, and better answer suggestions.", + "tags": ["🤖 Agentic", "✨ Generative", "🎯 Assistant"], + "author": { + "name": "Interview Prepration", + "email": "" + }, + "steps": [ + { + "id": "89a0f4dc-3a9d-46c2-acdf-167ed4194583", + "type": "mandatory", + "envKey": "INTERVIEW_PREP_FLOW_ID" + } + ], + "integrations": [ + { + "name": "Groq", + "description": "LLM provider for evaluating interview answers using llama-3.1-8b-instant" + } + ], + "features": [ + "Behavioral interview answer evaluation", + "Technical interview answer evaluation", + "Structured feedback with scores (1-10)", + "Strengths and improvements analysis", + "Better answer suggestions" + ], + "demoUrl": "", + "githubUrl": "https://github.com/Lamatic/AgentKit/tree/main/kits/assistant/interview-preparation", + "deployUrl": "", + "documentationUrl": "" +} diff --git a/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/README.md b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/README.md new file mode 100644 index 00000000..2cae781d --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/README.md @@ -0,0 +1,36 @@ +# Interview Preparation Evaluator — Flow + +## Overview +This flow evaluates a candidate's interview answer using AI, providing structured feedback on both behavioral and technical dimensions. + +## Flow ID +``` +89a0f4dc-3a9d-46c2-acdf-167ed4194583 +``` + +## Inputs + +| Field | Type | Description | +|---|---|---| +| `jobDescription` | string | The interview question being asked | +| `resume` | string | Candidate's background/resume | +| `userAnswer` | string | The candidate's answer to evaluate | + +## Outputs + +| Field | Type | Description | +|---|---|---| +| `behavioral_score` | number | Score out of 10 for behavioral aspects | +| `behavioral_strengths` | array | List of behavioral strengths | +| `behavioral_improvements` | array | List of behavioral improvements | +| `behavioral_better_answer` | string | Suggested better behavioral answer | +| `technical_score` | number | Score out of 10 for technical aspects | +| `technical_strengths` | array | List of technical strengths | +| `technical_improvements` | array | List of technical improvements | +| `technical_better_answer` | string | Suggested better technical answer | + +## Nodes +1. **API Request** — Receives inputs +2. **Behaviour_Prep** (InstructorLLM) — Evaluates behavioral aspects using Groq llama-3.1-8b-instant +3. **Technical_Prep** (InstructorLLM) — Evaluates technical aspects using Groq llama-3.1-8b-instant +4. **API Response** — Returns combined results diff --git a/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/config.json b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/config.json new file mode 100644 index 00000000..9917fe57 --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/config.json @@ -0,0 +1,61 @@ +{ + "flowId": "89a0f4dc-3a9d-46c2-acdf-167ed4194583", + "trigger": { + "type": "API Request", + "schema": { + "jobDescription": "string", + "resume": "string", + "userAnswer": "string" + } + }, + "nodes": [ + { + "nodeName": "Behaviour_Prep", + "type": "InstructorLLMNode", + "model": "groq/llama-3.1-8b-instant", + "provider": "groq", + "schema": { + "type": "object", + "properties": { + "score": { "type": "number", "required": true }, + "strengths": { "type": "array", "items": { "type": "string" } }, + "improvements": { "type": "array", "items": { "type": "string" } }, + "better_answer": { "type": "string", "required": true } + } + }, + "prompts": { + "system": "You are a senior hiring manager evaluating a job candidate's interview answer. Give honest, specific, and constructive feedback. Always respond in valid JSON.", + "user": "Evaluate this interview answer and provide structured feedback.\nQuestion: {{trigger.jobDescription}}\nCandidate Answer: {{trigger.userAnswer}}\nReturn a JSON object with this exact structure:\n{\n \"score\": 7,\n \"strengths\": [\"point1\", \"point2\"],\n \"improvements\": [\"point1\", \"point2\"],\n \"better_answer\": \"A more complete answer would be...\"\n}" + } + }, + { + "nodeName": "Technical_Prep", + "type": "InstructorLLMNode", + "model": "groq/llama-3.1-8b-instant", + "provider": "groq", + "schema": { + "type": "object", + "properties": { + "score": { "type": "number", "required": true }, + "strengths": { "type": "array", "items": { "type": "string" } }, + "improvements": { "type": "array", "items": { "type": "string" } }, + "better_answer": { "type": "string", "required": true } + } + }, + "prompts": { + "system": "You are a senior hiring manager evaluating a job candidate's interview answer. Give honest, specific, and constructive feedback. Always respond in valid JSON.", + "user": "Evaluate this interview answer and provide structured feedback.\nQuestion: {{trigger.jobDescription}}\nCandidate Answer: {{trigger.userAnswer}}\nReturn a JSON object with this exact structure:\n{\n \"score\": 7,\n \"strengths\": [\"point1\", \"point2\"],\n \"improvements\": [\"point1\", \"point2\"],\n \"better_answer\": \"A more complete answer would be...\"\n}" + } + } + ], + "response": { + "behavioral_score": "{{Behaviour_Prep.score}}", + "behavioral_strengths": "{{Behaviour_Prep.strengths}}", + "behavioral_improvements": "{{Behaviour_Prep.improvements}}", + "behavioral_better_answer": "{{Behaviour_Prep.better_answer}}", + "technical_score": "{{Technical_Prep.score}}", + "technical_strengths": "{{Technical_Prep.strengths}}", + "technical_improvements": "{{Technical_Prep.improvements}}", + "technical_better_answer": "{{Technical_Prep.better_answer}}" + } +} diff --git a/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/inputs.json b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/inputs.json new file mode 100644 index 00000000..0e1a082d --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/inputs.json @@ -0,0 +1,23 @@ +{ + "type": "object", + "properties": { + "jobDescription": { + "type": "string", + "description": "The interview question or job description context for evaluation", + "required": true, + "example": "Tell me about a time you handled a conflict in your team." + }, + "resume": { + "type": "string", + "description": "The candidate's resume or background information", + "required": true, + "example": "5 years of experience in software engineering, worked at XYZ company..." + }, + "userAnswer": { + "type": "string", + "description": "The candidate's interview answer to be evaluated", + "required": true, + "example": "In my previous role, I encountered a situation where two team members disagreed on the technical approach..." + } + } +} diff --git a/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/meta.json b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/meta.json new file mode 100644 index 00000000..0723e8af --- /dev/null +++ b/kits/assistant/interview-preparation/interview-prep-kit/flows/interview-evaluator/meta.json @@ -0,0 +1,50 @@ +{ + "id": "89a0f4dc-3a9d-46c2-acdf-167ed4194583", + "name": "Interview Preparation Evaluator", + "description": "Evaluates interview answers for behavioral and technical questions using AI, providing detailed structured feedback.", + "version": "1.0.0", + "type": "flow", + "nodes": [ + { + "id": "trigger", + "type": "API Request", + "description": "Receives jobDescription, resume, and userAnswer as inputs" + }, + { + "id": "Behaviour_Prep", + "type": "Generate JSON (InstructorLLM)", + "description": "Evaluates the behavioral aspect of the interview answer", + "model": "groq/llama-3.1-8b-instant", + "outputs": ["score", "strengths", "improvements", "better_answer"] + }, + { + "id": "Technical_Prep", + "type": "Generate JSON (InstructorLLM)", + "description": "Evaluates the technical aspect of the interview answer", + "model": "groq/llama-3.1-8b-instant", + "outputs": ["score", "strengths", "improvements", "better_answer"] + }, + { + "id": "response", + "type": "API Response", + "description": "Returns combined behavioral and technical evaluation results" + } + ], + "inputs": { + "jobDescription": "string", + "resume": "string", + "userAnswer": "string" + }, + "outputs": { + "behavioral_score": "number", + "behavioral_strengths": "array", + "behavioral_improvements": "array", + "behavioral_better_answer": "string", + "technical_score": "number", + "technical_strengths": "array", + "technical_improvements": "array", + "technical_better_answer": "string" + }, + "provider": "groq", + "createdAt": "2026-03-26" +}