{"id":"a497fc3d-8aef-494a-b67c-8088f5d5f25c","entityType":"agent","slug":"crewai-m-binish-genai-multi-agent-system","name":"GenAI-Multi-Agent-System","canonicalUrl":"https://www.xpersona.co/agent/crewai-m-binish-genai-multi-agent-system","canonicalPath":"/agent/crewai-m-binish-genai-multi-agent-system","generatedAt":"2026-10-09T14:33:54.451Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T05:12:15.899Z","emptyReason":null},"description":"AI-powered multi-agent career preparation platform that analyzes resumes, evaluates job-role fit, generates interview preparation plans, and creates personalized upskilling roadmaps using CrewAI and LLMs. Resume-to-Interview Preparation Assistant 🚀 An interactive, AI-powered multi-agent web application built with **Streamlit** and **CrewAI** that automates the process of tailoring your resume and preparing for interviews. By uploading a resume (PDF/DOCX) and entering a target role, company name, and job description, the assistant deploys a team of specialized AI agents to analyze, research, and coach you to success.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.","installCommand":null,"sourceUrl":"https://github.com/M-Binish/GenAI-Multi-Agent-System","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/M-Binish/GenAI-Multi-Agent-System","kind":"source"}],"safetyScore":66,"overallRank":18.4,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI-powered multi-agent career preparation platform that analyzes resumes, evaluates job-role fit, generates interview preparation plans, and creates personalize"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T05:12:15.899Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"crewai","status":"self-declared"},{"label":"multi-agent","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"crewai","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"multi-agent","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-10-09T05:12:15.899Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-10-09T05:12:15.893Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T05:12:15.899Z","lastCrawledAt":"2026-10-09T05:12:15.893Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T05:12:15.893Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":null,"setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_REPOS","generatedAt":"2026-10-09T14:33:54.451Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-m-binish-genai-multi-agent-system/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"high","updatedAt":"2026-10-09T05:12:15.899Z","emptyReason":null},"readme":"# Resume-to-Interview Preparation Assistant 🚀\n\nAn interactive, AI-powered multi-agent web application built with **Streamlit** and **CrewAI** that automates the process of tailoring your resume and preparing for interviews. By uploading a resume (PDF/DOCX) and entering a target role, company name, and job description, the assistant deploys a team of specialized AI agents to analyze, research, and coach you to success.\n\n---\n\n## ✨ Key Features & Architectural Enhancements\n\n1. **Real-time Incremental Timeline Progress**\n   * Instead of a synchronous run that freezes the browser, the application utilizes a state-machine based runner. It executes one agent at a time and calls `st.rerun()`.\n   * Displays dynamic status badges (`⏳ Pending` $\\rightarrow$ `⟳ Working...` $\\rightarrow$ `✓ Completed`/`🚫 Skipped`) in the timeline layout.\n   * Updates the UI progress bar dynamically as each step completes.\n2. **Orchestrator Router & Dynamic Branching**\n   * Feeds the target **Job Role**, target **Job Description (JD)**, and candidate **Resume** to a supervisor Orchestrator Router agent.\n   * If **MATCHED**: Executes ATS analysis, JD Match analysis, Technical Interview prep, HR Interview prep, and final report synthesis (bypasses upskilling roadmaps).\n   * If **NOT_MATCHED**: Bypasses the technical/HR interview prep and focuses entirely on generating a detailed upskilling study plan and learning roadmap.\n3. **Streamlit State & Widget Isolation**\n   * Solves widget-binding conflicts (`StreamlitAPIException`) by storing form values under isolated variables (`job_role_val`, `company_name_val`, and `job_description_val`), preventing crashes when switching pages.\n4. **NameError & Bottom-level Routing**\n   * Shifted the page routing controls to the bottom of the script, ensuring all UI rendering wrappers and agent helper functions are fully parsed and compiled before execution begins.\n5. **Premium Glassmorphism SaaS UI**\n   * Beautiful card spacing (`2.5rem` height gaps), modern typography, custom-tailored HSL gradient backgrounds, responsive flex card grids, and interactive download buttons.\n\n---\n\n## 🛠️ Required Libraries & Ecosystem\n\n* **`streamlit`**: Frontend and session state management.\n* **`crewai`**: Multi-agent collaboration, backstory, goals, tasks, and LLM orchestration.\n* **`pdfplumber`**: Extracts raw text from uploaded PDF resumes.\n* **`python-docx` (`docx`)**: Parses and extracts plain text paragraphs from DOCX resumes.\n* **`nest-asyncio`**: Patches the standard asyncio event loop for running nested async processes inside Streamlit.\n* **`concurrent.futures` (`ThreadPoolExecutor`)**: Drives thread pools to safely isolate LiteLLM's event loops from Streamlit's main execution loop.\n\n---\n\n## 🔄 How the Project Works (Detailed Pipeline)\n\nBelow is the dynamic execution flow of the multi-agent system:\n\n```mermaid\ngraph TD\n    A[Upload Resume & Inputs] --> B[Text Extraction: pdfplumber / python-docx]\n    B --> C[Validate Inputs & Save to Session State]\n    C --> D[Redirect to Analysis Timeline Page]\n    \n    D --> E[Agent 1: Resume Analyzer]\n    E --> F[Agent 2: ATS scoring & Keyword Enhancer]\n    F --> G[Agent 3: JD Match Analyzer]\n    G --> H[Agent 4: Orchestrator Router]\n    \n    H -->|Matched| I[Agent 5: Technical Interviewer]\n    H -->|Matched| J[Agent 6: HR Interviewer]\n    H -->|Mismatched| K[Agent 7: Learning Plan Coach]\n    \n    I & J --> L[Skip learning_plan_agent]\n    K --> M[Skip technical & hr interview_agents]\n    \n    L & M --> N[Agent 8: Final Report Synthesizer]\n    N --> O[Redirect to Candidate Dashboard]\n    O --> P[Compile Downloadable Reports & Stats]\n```\n\n### Step 1: Input and Configuration\n* The user inputs their **OpenRouter API Key** (starts with `sk-or-...`).\n* Selects a model option (e.g., Llama 3.3 70B, Gemini 2.5 Flash, DeepSeek Chat, Claude 3.5 Sonnet).\n* Uploads their resume and enters their Target Job Role, target Company, and target Job Description.\n\n### Step 2: Text Extraction & State Storage\n* The app programmatically saves the file and extracts raw text via `pdfplumber` (for PDFs) or `python-docx` (for Word documents).\n* Extracted content and inputs are stored in non-widget session state parameters (`job_role_val`, etc.) to survive page transitions.\n\n### Step 3: Incremental State Runner\n* The app redirects to `\"analysis\"`, displaying a progress bar and the workflow timeline with `Pending` badges.\n* The runner selects the next pending step, sets its status to `\"running\"` (shows `⟳ Working...` with loading spinner), and triggers `st.rerun()`.\n* On the rerun, it executes the Crew AI agent task inside a `ThreadPoolExecutor` (bypassing asyncio loop conflicts) and updates the status to `\"completed\"` or `\"skipped\"`.\n\n### Step 4: Final Synthesis & Dashboard\n* Once all steps are complete, the **Final Report Agent** synthesizes recommendations and a 30-day plan.\n* The app redirects to `\"dashboard\"`, rendering interactive tabs for HR questions, Technical questions, upskilling roadmap details, download buttons, and readiness scoring metrics.\n\n---\n\n## 🧠 Specialized AI Agents & How They Work\n\nThe system uses a team of 8 specialized, collaborative agents. Each agent has a custom backstory, role definition, and target goal:\n\n1. **Resume Analyzer Agent** (`run_step1`)\n   * **Role**: Senior ATS Consultant.\n   * **Goal**: Analyze resume content, layout, strengths, weaknesses, and certifications.\n   * **Operation**: Evaluates the raw resume text against the target job role and job description to identify general profile highlights, areas of concern, and potential certifications.\n\n2. **ATS Scoring & Keyword Enhancer** (`run_step4`)\n   * **Role**: Resume Enhancement Expert.\n   * **Goal**: Maximize ATS parsing success and keyword matching.\n   * **Operation**: Identifies missing search keywords and provides a rewrite guide, including a polished summary, custom project bullets, and technical skills formatting.\n\n3. **JD Match Analyzer** (`run_step3`)\n   * **Role**: JD Match Analyzer.\n   * **Goal**: Compare resume keywords directly against target Job Description skills.\n   * **Operation**: Calculates a precise matching percentage score, highlights critical missing tech stack criteria, and outlines matching items.\n\n4. **Orchestrator Router** (`run_router_agent`)\n   * **Role**: Orchestrator Router.\n   * **Goal**: Evaluate general candidate eligibility based on target Job Role, target JD, and Resume.\n   * **Operation**: Compares skills and qualifications against a 70% threshold. Outputs a single word decision (`MATCHED` or `NOT_MATCHED`) which branches the subsequent execution flow.\n\n5. **Learning Plan Coach** (`run_learning_plan_agent`)\n   * **Role**: Learning Plan Coach.\n   * **Goal**: Build a detailed upskilling study guide and roadmap.\n   * **Operation**: Triggers only when the Orchestrator Router outputs `NOT_MATCHED`. Creates a 30-60-90 day schedule focusing on technical resource materials, projects, and growth guides to bridge candidate gaps.\n\n6. **Technical Interviewer** (`run_step6`)\n   * **Role**: Technical Interviewer.\n   * **Goal**: Generate role-specific technical questions.\n   * **Operation**: Triggers only when the Orchestrator Router outputs `MATCHED`. Generates 5 technical, coding, or system design interview prompts matching company standards, providing model answers.\n\n7. **HR Interviewer** (`run_step5`)\n   * **Role**: HR Interviewer.\n   * **Goal**: Create behavioral and fit-focused interview guides.\n   * **Operation**: Triggers only when the Orchestrator Router outputs `MATCHED`. Generates 5 company-culture specific behavioral questions (e.g., STAR format prompts) and response guides.\n\n8. **Final Report Agent** (`run_step7`)\n   * **Role**: Interview Coach.\n   * **Goal**: Synthesize all agent outcomes into a ready-to-use consolidated report.\n   * **Operation**: Integrates ATS analyzer, JD matcher, and upskilling/interview prep outputs to compile a readiness score, matched/missing skill grids, and downloadable text reports.\n\n---\n\n## 📦 Setup & Installation\n\n### Prerequisites\n* Python 3.10 or Python 3.11 (CrewAI is fully supported on these versions).\n* An **OpenRouter API Key** (get one at [openrouter.ai/keys](https://openrouter.ai/keys)).\n\n### Installation Steps\n\n1. **Clone the repository** and navigate to your project directory.\n2. **Create a virtual environment**:\n   ```bash\n   # Windows PowerShell\n   python -m venv .venv\n   .venv\\Scripts\\Activate.ps1\n   \n   # Linux / macOS\n   python3 -m venv .venv\n   source .venv/bin/activate\n   ```\n3. **Install dependencies**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n4. **Launch the Streamlit Web Application**:\n   ```bash\n   streamlit run Multi-Agent-Placement.py\n   ```\n\n### Running a Test Analysis\n1. Open the application at the local address printed in the terminal (usually `http://localhost:8501/`).\n2. Click **Start Analysis** on the landing page.\n3. Paste your OpenRouter API Key.\n4. Input details:\n   - **Target Role**: `Software Engineer`\n   - **Company Name**: `Google`\n   - **Upload Resume**: Upload a PDF/DOCX developer resume (you can use `dummy_resume.docx` in the workspace).\n   - **Job Description**: Paste a standard backend developer job posting.\n5. Click **Start Analysis** to launch the dynamic agents! Watch the badges update in real-time as each agent runs.\n\n---\n\n## 📁 File Structure\n\n* **`Multi-Agent-Placement.py`**: Main application code managing Streamlit layout pages, session states, incremental execution engine, and agent configurations.\n* **`requirements.txt`**: List of required packages (Streamlit, CrewAI, docx parsing, and async helpers).\n* **`dummy_resume.docx`**: Test resume generated programmatically for verification.\n* **`create_dummy_resume.py`**: Helper script to generate a `.docx` resume containing custom skills.\n","readmeExcerpt":"Resume-to-Interview Preparation Assistant 🚀 An interactive, AI-powered multi-agent web application built with **Streamlit** and **CrewAI** that automates the process of tailoring your resume and preparing for interviews. By uploading a resume (PDF/DOCX) and entering a target role, company name, and job description, the assistant deploys a team of specialized AI agents to analyze, research, and coach you to success. ","codeSnippets":[],"executableExamples":[{"language":"mermaid","snippet":"graph TD\n    A[Upload Resume & Inputs] --> B[Text Extraction: pdfplumber / python-docx]\n    B --> C[Validate Inputs & Save to Session State]\n    C --> D[Redirect to Analysis Timeline Page]\n    \n    D --> E[Agent 1: Resume Analyzer]\n    E --> F[Agent 2: ATS scoring & Keyword Enhancer]\n    F --> G[Agent 3: JD Match Analyzer]\n    G --> H[Agent 4: Orchestrator Router]\n    \n    H -->|Matched| I[Agent 5: Technical Interviewer]\n    H -->|Matched| J[Agent 6: HR Interviewer]\n    H -->|Mismatched| K[Agent 7: Learning Plan Coach]\n    \n    I & J --> L[Skip learning_plan_agent]\n    K --> M[Skip technical & hr interview_agents]\n    \n    L & M --> N[Agent 8: Final Report Synthesizer]\n    N --> O[Redirect to Candidate Dashboard]\n    O --> P[Compile Downloadable Reports & Stats]"},{"language":"bash","snippet":"# Windows PowerShell\n   python -m venv .venv\n   .venv\\Scripts\\Activate.ps1\n   \n   # Linux / macOS\n   python3 -m venv .venv\n   source .venv/bin/activate"},{"language":"bash","snippet":"pip install -r requirements.txt"},{"language":"bash","snippet":"streamlit run Multi-Agent-Placement.py"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"AI-powered multi-agent career preparation platform that analyzes resumes, evaluates job-role fit, generates interview preparation plans, and creates personalized upskilling roadmaps using CrewAI and LLMs. Resume-to-Interview Preparation Assistant 🚀 An interactive, AI-powered multi-agent web application built with **Streamlit** and **CrewAI** that automates the process of tailoring your resume and preparing for interviews. By uploading a resume (PDF/DOCX) and entering a target role, company name, and job description, the assistant deploys a team of specialized AI agents to analyze, research, and coach you to success.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":412,"uniquenessScore":64,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T05:12:15.899Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T05:12:15.899Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:33:54.451Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_repos","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}