Claim this agent
Agent DossierGITHUB OPENCLEWSafety 66/100

Xpersona Agent

crewai-role-based-ai-interviewer

Role-specific AI mock interviewer built with CrewAI and Streamlit. Features a dark UI with interactive role cards, live word-count feedback, sidebar session stats, and a full summary screen. Runs in Demo Mode (no API key) or Live Mode (GPT-4o-mini via CrewAI) β€” auto-detected from .env. πŸŽ™οΈ CrewAI Role-Based AI Interviewer <p align="center"> <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=for-the-badge&logo=python&logoColor=white" /> <img src="https://img.shields.io/badge/CrewAI-Multi--Agent-FF6B35?style=for-the-badge&logo=robot&logoColor=white" /> <img src="https://img.shields.io/badge/Streamlit-1.35%2B-FF4B4B?style=for-the-badge&logo=streamlit&logoColor=white" /> <img src="https

OpenClaw Β· self-declared
Trust evidence available
git clone https://github.com/SANJAI-s0/crewai-role-based-ai-interviewer.git

Overall rank

#22

Adoption

No public adoption signal

Trust

Unknown

Freshness

May 31, 2026

Freshness

Last checked May 31, 2026

Best For

crewai-role-based-ai-interviewer is best for crewai, multi-agent workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack

Overview

Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.

Verifiededitorial-content

Overview

Executive Summary

Role-specific AI mock interviewer built with CrewAI and Streamlit. Features a dark UI with interactive role cards, live word-count feedback, sidebar session stats, and a full summary screen. Runs in Demo Mode (no API key) or Live Mode (GPT-4o-mini via CrewAI) β€” auto-detected from .env. πŸŽ™οΈ CrewAI Role-Based AI Interviewer <p align="center"> <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=for-the-badge&logo=python&logoColor=white" /> <img src="https://img.shields.io/badge/CrewAI-Multi--Agent-FF6B35?style=for-the-badge&logo=robot&logoColor=white" /> <img src="https://img.shields.io/badge/Streamlit-1.35%2B-FF4B4B?style=for-the-badge&logo=streamlit&logoColor=white" /> <img src="https Capability contract not published. No trust telemetry is available yet. Last updated 5/31/2026.

No verified compatibility signals

Trust score

Unknown

Compatibility

OpenClaw

Freshness

May 31, 2026

Vendor

Sanjai S0

Artifacts

0

Benchmarks

0

Last release

Unpublished

Install & run

Setup Snapshot

git clone https://github.com/SANJAI-s0/crewai-role-based-ai-interviewer.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    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.

Evidence & Timeline

Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.

Verifiededitorial-content

Public facts

Evidence Ledger

Vendor (1)

Vendor

Sanjai S0

profilemedium
Observed May 31, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed May 31, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance

Events

Release & Crawl Timeline

Artifacts & Docs

Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.

Self-declaredGITHUB OPENCLEW

Captured outputs

Artifacts Archive

Extracted files

0

Examples

6

Snippets

0

Languages

python

Executable Examples

mermaid

flowchart TD
    A([πŸš€ User Opens App]) --> B{OPENAI_API_KEY\npresent in .env?}
    B -- Yes --> C[🟒 Live Mode\nCrewAI + GPT-4o-mini]
    B -- No  --> D[🟑 Demo Mode\nRule-based feedback]
    C --> E[Landing β€” Role Selection Cards]
    D --> E

    E --> F[User selects a role\nand clicks Start Interview]
    F --> G[Load 6 role-specific questions]

    G --> H{Questions\nremaining?}
    H -- Yes --> I[Show styled question card\nwith gradient progress bar]
    I --> J[User types answer\nLive word-count indicator]
    J --> K[Submit Answer]
    K --> L{Mode?}
    L -- Live --> M[CrewAI Feedback Coach\nAgent β†’ GPT-4o-mini]
    L -- Demo --> N[Length-aware\nrule-based feedback]
    M --> O[Render styled feedback card\nSave to session history]
    N --> O
    O --> H

    H -- No --> P[Summary Screen\n3-col metrics + full Q&A review]
    P --> Q{Try another role?}
    Q -- Yes --> E
    Q -- No  --> R([βœ… Session complete])

    style A fill:#238636,color:#fff
    style R fill:#238636,color:#fff
    style M fill:#6C63FF,color:#fff
    style N fill:#F77F00,color:#fff
    style C fill:#1a7f37,color:#fff
    style D fill:#9e6a03,color:#fff
    style P fill:#0d2137,color:#58a6ff

text

crewai-role-based-ai-interviewer/
β”‚
β”œβ”€β”€ app.py                  # All-in-one Streamlit app
β”‚                           #   Β· Role config & questions
β”‚                           #   Β· Demo / Live feedback logic
β”‚                           #   Β· Custom CSS theme
β”‚                           #   Β· Landing, Interview, Summary screens
β”‚
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ .env.example            # API key template β€” copy to .env
β”œβ”€β”€ .gitignore              # Ignores .env, __pycache__, .venv, etc.
β”œβ”€β”€ LICENSE                 # MIT License
β”œβ”€β”€ README.md               # This file
β”‚
└── Flow/
    └── workflow.mmd        # Mermaid source for the workflow diagram

bash

git clone https://github.com/SANJAI-s0/crewai-role-based-ai-interviewer.git
cd crewai-role-based-ai-interviewer

bash

python -m venv .venv

# Windows
.venv\Scripts\activate

# macOS / Linux
source .venv/bin/activate

bash

pip install -r requirements.txt

bash

cp .env.example .env

Editorial read

Docs & README

Docs source

GITHUB OPENCLEW

Editorial quality

ready

Role-specific AI mock interviewer built with CrewAI and Streamlit. Features a dark UI with interactive role cards, live word-count feedback, sidebar session stats, and a full summary screen. Runs in Demo Mode (no API key) or Live Mode (GPT-4o-mini via CrewAI) β€” auto-detected from .env. πŸŽ™οΈ CrewAI Role-Based AI Interviewer <p align="center"> <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=for-the-badge&logo=python&logoColor=white" /> <img src="https://img.shields.io/badge/CrewAI-Multi--Agent-FF6B35?style=for-the-badge&logo=robot&logoColor=white" /> <img src="https://img.shields.io/badge/Streamlit-1.35%2B-FF4B4B?style=for-the-badge&logo=streamlit&logoColor=white" /> <img src="https

Full README

πŸŽ™οΈ CrewAI Role-Based AI Interviewer

<p align="center"> <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=for-the-badge&logo=python&logoColor=white" /> <img src="https://img.shields.io/badge/CrewAI-Multi--Agent-FF6B35?style=for-the-badge&logo=robot&logoColor=white" /> <img src="https://img.shields.io/badge/Streamlit-1.35%2B-FF4B4B?style=for-the-badge&logo=streamlit&logoColor=white" /> <img src="https://img.shields.io/badge/OpenAI-GPT--4o--mini-412991?style=for-the-badge&logo=openai&logoColor=white" /> <img src="https://img.shields.io/badge/Mode-Demo%20%7C%20Live-22C55E?style=for-the-badge" /> <img src="https://img.shields.io/badge/License-MIT-16A34A?style=for-the-badge" /> </p> <p align="center"> A role-specific AI mock interview simulator built with <strong>CrewAI</strong> and <strong>Streamlit</strong>.<br/> Pick a job role, answer 6 curated questions, and get instant AI-powered feedback β€” all in a polished dark UI. </p> <p align="center"> <strong>Works fully without an API key.</strong> Add one to unlock live GPT-4o-mini feedback via CrewAI. </p>

πŸ“‹ Table of Contents


🧠 Overview

This project extends a basic CrewAI mock interviewer into a role-specific interview simulator. It supports four job roles β€” Data Scientist, Web Developer, Product Manager, and UI/UX Designer β€” each with 6 hand-crafted questions.

The app auto-detects whether an OpenAI API key is present and switches between Demo Mode (rule-based feedback, zero API calls) and Live Mode (CrewAI Feedback Coach agent powered by GPT-4o-mini). Mentors running the app with a valid key get full AI feedback automatically.


πŸ”€ Demo vs Live Mode

| | 🟑 Demo Mode | 🟒 Live Mode | |---|---|---| | API key required | No | Yes β€” OPENAI_API_KEY in .env | | Feedback engine | Length-aware rule-based logic | CrewAI agent β†’ GPT-4o-mini | | All UI features | βœ… Full | βœ… Full | | API calls made | ❌ None | βœ… Per answer | | Sidebar badge | 🟑 Demo Mode | 🟒 Live Mode |

The mode is detected at startup β€” no code changes needed to switch between them.


πŸ–₯️ UI Screens

Screen 1 β€” Landing & Role Selection

  • Centered hero title and subtitle
  • 2Γ—2 interactive role card grid β€” each card shows an icon, role name, and skill tag
  • Selected card highlights with a role-specific color glow border
  • Sidebar displays "How it works" steps and the list of available roles
  • Confirm selection and start with a single button click

Screen 2 β€” Interview

  • Role icon + name header
  • Gradient progress bar (#6C63FF β†’ #00B4D8) tracking question completion
  • Styled question card with a role-color left border accent
  • Answer textarea with a live word-count indicator β€” turns green in the ideal 30–120 word range
  • Collapsible "Previous answers" panel showing all completed Q&A with feedback
  • Sidebar updates live with role, answered count, and % progress
  • Sidebar restart button available at any point

Screen 3 β€” Summary

  • Gradient completion banner (green) with role and question count
  • 3-column metrics strip: total questions Β· average answer length Β· role
  • Full expandable session review β€” every question with your answer and a styled blue AI feedback card
  • "Try Another Role" button to restart cleanly

✨ Features

  • 🎨 Dark theme β€” custom CSS, Inter font, #0f1117 base, gradient accents throughout
  • πŸƒ Interactive role cards β€” color-coded per role with hover lift and selection glow
  • πŸ“ Live word-count guide β€” real-time feedback on answer length as you type
  • πŸ“Š Live sidebar stats β€” role, answered count, progress % update after each submission
  • πŸ’¬ Styled feedback cards β€” blue gradient panel visually separates AI feedback from answers
  • πŸ“– Collapsible history β€” previous Q&A stays accessible without cluttering the active question
  • 🏁 Summary metrics β€” question count, average word count, role displayed as st.metric cards
  • πŸ”„ Restart anywhere β€” from sidebar during interview or from the summary screen
  • 🟑/🟒 Mode badge β€” always visible in sidebar so it's clear which mode is active

πŸ’Ό Supported Roles

| Role | Icon | Color | Focus Areas | |------|------|-------|-------------| | Data Scientist | 🧠 | #6C63FF | ML Β· Statistics Β· Modelling | | Web Developer | πŸ’» | #00B4D8 | APIs Β· Frontend Β· HTTP | | Product Manager | πŸ“‹ | #F77F00 | Strategy Β· Metrics Β· Roadmap | | UI/UX Designer | 🎨 | #E63946 | Design Β· Research Β· Accessibility |


πŸ”„ Workflow

flowchart TD
    A([πŸš€ User Opens App]) --> B{OPENAI_API_KEY\npresent in .env?}
    B -- Yes --> C[🟒 Live Mode\nCrewAI + GPT-4o-mini]
    B -- No  --> D[🟑 Demo Mode\nRule-based feedback]
    C --> E[Landing β€” Role Selection Cards]
    D --> E

    E --> F[User selects a role\nand clicks Start Interview]
    F --> G[Load 6 role-specific questions]

    G --> H{Questions\nremaining?}
    H -- Yes --> I[Show styled question card\nwith gradient progress bar]
    I --> J[User types answer\nLive word-count indicator]
    J --> K[Submit Answer]
    K --> L{Mode?}
    L -- Live --> M[CrewAI Feedback Coach\nAgent β†’ GPT-4o-mini]
    L -- Demo --> N[Length-aware\nrule-based feedback]
    M --> O[Render styled feedback card\nSave to session history]
    N --> O
    O --> H

    H -- No --> P[Summary Screen\n3-col metrics + full Q&A review]
    P --> Q{Try another role?}
    Q -- Yes --> E
    Q -- No  --> R([βœ… Session complete])

    style A fill:#238636,color:#fff
    style R fill:#238636,color:#fff
    style M fill:#6C63FF,color:#fff
    style N fill:#F77F00,color:#fff
    style C fill:#1a7f37,color:#fff
    style D fill:#9e6a03,color:#fff
    style P fill:#0d2137,color:#58a6ff

Full .mmd source: Flow/workflow.mmd


πŸ“ Project Structure

crewai-role-based-ai-interviewer/
β”‚
β”œβ”€β”€ app.py                  # All-in-one Streamlit app
β”‚                           #   Β· Role config & questions
β”‚                           #   Β· Demo / Live feedback logic
β”‚                           #   Β· Custom CSS theme
β”‚                           #   Β· Landing, Interview, Summary screens
β”‚
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ .env.example            # API key template β€” copy to .env
β”œβ”€β”€ .gitignore              # Ignores .env, __pycache__, .venv, etc.
β”œβ”€β”€ LICENSE                 # MIT License
β”œβ”€β”€ README.md               # This file
β”‚
└── Flow/
    └── workflow.mmd        # Mermaid source for the workflow diagram

πŸš€ Getting Started

Prerequisites

Installation

1. Clone the repo

git clone https://github.com/SANJAI-s0/crewai-role-based-ai-interviewer.git
cd crewai-role-based-ai-interviewer

2. Create a virtual environment

python -m venv .venv

# Windows
.venv\Scripts\activate

# macOS / Linux
source .venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Set up your API key (skip this for Demo Mode)

cp .env.example .env

Edit .env:

OPENAI_API_KEY=sk-...your-key-here...

5. Run the app

streamlit run app.py

Opens at http://localhost:8501.


βš™οΈ How It Works

1. Mode detection On startup, the app reads OPENAI_API_KEY from .env. If a valid key is found, LIVE_MODE = True and a 🟒 badge appears in the sidebar. Otherwise, 🟑 Demo Mode is used β€” no API calls are ever made.

2. Role selection The landing page renders 4 role cards in a 2Γ—2 grid. Clicking a card highlights it with a role-specific color glow. The selected role and its skill tags are confirmed below before starting.

3. Interview loop Questions are shown one at a time. A gradient progress bar tracks completion. As the user types, a live word-count indicator turns green when the answer is in the ideal 30–120 word range.

4. Feedback

  • Live Mode: get_live_feedback() lazily imports CrewAI and LangChain, builds a Feedback Coach agent, runs a single-task Crew, and returns 2-3 sentences of constructive feedback.
  • Demo Mode: get_demo_feedback() checks word count and returns a contextual response from a curated pool β€” no imports, no API calls.

5. Summary After all 6 questions, a summary screen shows a completion banner, a 3-column metrics strip, and a full expandable review of every Q&A with styled feedback cards.


πŸ€– CrewAI Agent

Used only in Live Mode. Instantiated lazily β€” never created when running in Demo Mode.

Agent(
    role="Interview Feedback Coach",
    goal="Provide concise, constructive feedback on interview answers",
    backstory=(
        "You are an experienced hiring manager and interview coach. "
        "You give short, honest, and encouraging feedback. Keep it to 2-3 sentences."
    ),
    llm=ChatOpenAI(model="gpt-4o-mini", temperature=0.7),
)

Each submitted answer creates a Task for this agent and runs it through a single-agent Crew. The result is rendered in a styled blue feedback card.


πŸ› οΈ Tech Stack

| Technology | Version | Purpose | |------------|---------|---------| | Streamlit | β‰₯ 1.35 | Web UI, session state, custom CSS | | CrewAI | β‰₯ 0.28 | Multi-agent orchestration (Live Mode) | | LangChain OpenAI | β‰₯ 0.1 | LLM wrapper for GPT-4o-mini | | OpenAI | β‰₯ 1.30 | GPT-4o-mini API (Live Mode) | | python-dotenv | β‰₯ 1.0 | .env file loading |


πŸ“„ License

This project is licensed under the MIT License.

API & Reliability

Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.

MissingGITHUB OPENCLEW

Machine interfaces

Contract & API

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/trust"

Operational fit

Reliability & Benchmarks

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Machine Appendix

Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.

MissingGITHUB OPENCLEW

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_OPENCLEW",
      "generatedAt": "2026-10-08T22:21:47.079Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "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"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "label": "Vendor",
    "value": "Sanjai S0",
    "category": "vendor",
    "href": "https://github.com/SANJAI-s0/crewai-role-based-ai-interviewer",
    "sourceUrl": "https://github.com/SANJAI-s0/crewai-role-based-ai-interviewer",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-05-31T06:18:36.371Z",
    "isPublic": true,
    "metadata": {}
  },
  {
    "factKey": "protocols",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "category": "compatibility",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-05-31T06:18:36.371Z",
    "isPublic": true,
    "metadata": {}
  },
  {
    "factKey": "handshake_status",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "category": "security",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-crewai-role-based-ai-interviewer/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true,
    "metadata": {}
  }
]

Change Events JSON

[]

Sponsored

Ads related to crewai-role-based-ai-interviewer and adjacent AI workflows.