π€ AI-Powered RFP Analyzer: An Azure-Based Multi-Agent Accelerator for RFP & Proposal Evaluation Using Semantic Kernel
A turnkey, multi-agent solution accelerator for automating the evaluation of RFPs/RFTs and Vendor/Supplier Proposals. This accelerator helps procurement teams reduce manual effort, ensure compliance, analyze vendor capabilities, and generate strategic negotiation recommendationsβdelivered as a structured, final evaluation report ; all deployed in your Azure tenant in under an hour.
- β¨ Features
- π Architecture
- βοΈ Tech Stack
- βοΈ Provisioned Azure Services
- π§ Environment Variables
- π Step-by-Step Deployment
- π€ Contributing
- π License
The AI-Powered RFP Analyzer combines modular AI agents, LLM orchestration with Semantic Kernel Agent Framework, and vector-based reasoning to deliver a complete procurement intelligence system. Each feature corresponds to a specialized agent that independently analyzes vendor/supplier proposals and contributes to a unified evaluation.
Evaluate how well a Vendor or Supplier Proposal aligns with the original RFP/RFT document:
- Extracts and compares proposal content against mandatory RFP requirements.
- Identifies key gaps or misalignments in scope, deliverables, or terms.
- Assigns a compliance score (1β10) based on completeness and relevance.
- Highlights critical missing elements that may disqualify the vendor.
Ensure the proposal meets internal policies and external regulatory standards:
- Cross-references legal clauses using an Azure-hosted vector index of procurement laws and policies.
- Flags missing or non-compliant sections such as liability, dispute resolution, or contract termination terms.
- Outputs a risk level: Low, Medium, or High, with a structured explanation.
- Helps legal and procurement teams pre-empt contractual risks.
Assess the historical performance, financial stability, and credibility of vendors:
- Reviews past projects, industries served, customer satisfaction, and compliance history.
- Integrates with sample vendor vector indexes (or real data) for factual reputation signals.
- Produces a reputation score (1β10) reflecting reliability, experience, and maturity.
- Avoids speculative or price-driven assessmentsβfocuses purely on track record and signals.
Incorporate contextual industry insights to inform strategic decision-making:
- Simulates or integrates with APIs to gather market conditions.
- Benchmarks the vendor against competitors, highlighting differentiators or red flags.
- Evaluates macro risks such as economic conditions, supply chain volatility, or regulatory trends.
- Outputs a market risk rating (Low, Medium, High) with supporting narrative.
Craft actionable negotiation strategies tailored to each vendor:
- Synthesizes insights from compliance, legal, vendor, and market agents.
- Identifies leverage points (e.g. gaps, dependencies, differentiators).
- Recommends a strategy type: Defensive, Balanced, or Aggressive.
- Provides structured suggestions for mitigation, incentives, and fallback positions.
Consolidate all agent outputs into a clear, concise, and decision-ready report:
- Aggregates findings into a unified assessment with supporting justifications.
- Assigns a final vendor score (1β10) indicating overall suitability and risk level.
- Includes highlights, concerns, and strategic recommendations.
- Outputs a Markdown or PDF document for stakeholder circulation.
Together, these features allow procurement teams to move faster, reduce subjectivity, ensure compliance, and drive stronger vendor outcomes with confidence.
- User Interaction: End users interact via a web browser to upload documents and trigger evaluations.
- Azure Container Apps Environment: Hosts the core containerized Python application.
- Worker Container App: Runs the multi-agent logic for evaluation and reporting.
- Connected Azure Services:
- Azure OpenAI β Powers the intelligent agents using GPT-based models.
- Azure AI Search β Enables semantic and vector-based retrieval of indexed data.
- Azure Document Intelligence β Extracts structured data from RFPs and proposals.
- Azure Storage Account β Stores document inputs and intermediate outputs.
- Azure Container Registry (ACR) β Hosts the applicationβs Docker image.
- Azure Storage Account β Stores uploaded documents and temporary data.
-
π€ Upload
Users upload RFPs and Vendor/Supplier Proposals via the web interface or API. -
π Document Parsing & Summarization
The system extracts and summarizes content from both documents using Azure Document Intelligence. -
π€ Multi-Agent Evaluation
TheSemantic Kernel Orchestratorinitiates an agent group chat with specialized agents:- RFP Compliance Agent: Compares the proposal against RFP requirements.
- Legal Compliance Agent: Identifies legal and regulatory risks.
- Vendor Evaluation Agent: Assesses vendor reputation, stability, and performance.
- Market Intelligence Agent: Evaluates market trends and competitive risks.
- Negotiation Strategy Agent: Recommends negotiation approaches based on findings.
-
π Report Generation
TheEvaluation Report Generator Agentconsolidates all agent assessments into a final, structured Vendor Proposal Evaluation Report, including scores, risks, and recommendations.
- Language: Python 3.12.10
- Containerization: Docker
- Infrastructure-as-Code: Bicep (located in
/infrafolder) - Deployment Target: Azure Container Apps
- Source Code: Located in
/srcfolder - Image Registry: Azure Container Registry
- Multi-Agent Orchestration: Semantic Kernel
- LLM Integration: Azure OpenAI
- Document Parsing: Azure Document Intelligence
- Search/Indexing: Azure AI Search (Vector + Semantic)
The Bicep templates provision the following Azure resources:
- Azure Container Apps β Hosts the containerized multi-agent Python app.
- Azure Container Apps Environment β Provides isolated execution for the app.
- Azure Container Registry (ACR) β Stores and serves the app container image.
- Azure Document Intelligence β Extracts structured data from RFP documents.
- Azure OpenAI β Powers intelligent agents using GPT-based models.
- Azure AI Search β Enables semantic and vector-based search across processed content.
- Azure Storage Account β Stores uploaded documents and temporary data.
Environment variables are used to configure service connections and runtime behavior. These are typically managed by AZD and include:
AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEYAZURE_SEARCH_SERVICE_NAMEAZURE_STORAGE_ACCOUNTAZURE_FORM_RECOGNIZER_ENDPOINT
You can set or review these in .env or via the azd env commands.
Follow these steps to deploy the solution using AZD:
- Azure Developer CLI (AZD)
- Docker Desktop
- Azure CLI
- The accelerator expects two vector-indexes created on Azure AI Search to facilitate the run of Legal Compliance Agent and Vendor Evaluation Agent, named legal-policy-index and supplier-insights-index respectively. Please customize and create them per your use-case data or use the sample documents available under src/documents/sample-docs/index-creation.
Follow the instructions below to deploy the AI-Powered RFP Analyzer into your Azure environment using Azure Developer CLI (AZD). This guide ensures a clean and repeatable deployment flow.
Start by cloning the repository to your local machine:
git clone https://github.com/aadrikasingh/AI-Powered-RFP-Analyzer.git
cd AI-Powered-RFP-Analyzer
Ensure you're authenticated with your Azure account via the Azure CLI:
az login
This will open a browser window prompting you to sign in with your Azure credentials.
β¨ Note: If the browser does not open automatically, copy the provided URL and paste it into your browser manually. Then enter the one-time code shown in your terminal.
Once authenticated, your terminal will confirm your login and list the available subscriptions.
Before deploying, configure the required environment variables.
π Sample file location:src/.env.sample
π
Create your working .env file:
- you will find .env.sample in src/ directory
- copy it inside src/src/ and rename it to .env
- you can edit .env you created with your specific needed values as shown below.
| Variable Name | Description |
|---|---|
AZURE_AI_SEARCH_ENDPOINT |
The endpoint URL of your Azure AI Search instance |
AZURE_AI_SEARCH_API_KEY |
Admin or query key for your Azure AI Search instance |
LEGAL_POLICY_INDEX |
Name of the index containing legal/policy documents (e.g., legal-policy-index) |
SUPPLIER_INDEX |
Name of the supplier insights index (e.g., supplier-insights-index) |
π‘ You can use the provided default values in
.env.sampleif you have matching indexes already created in your Azure AI Search resource.
Use the Azure Developer CLI to initialize and deploy your solution.
azd init
You will be prompted to enter an environment name. This name will be used as a prefix for all provisioned Azure resources.
π Example:> If you enter
dev, your container app name might look likeca-dev-hlukwx2gjy4lo, where:
ca= Container Appdev= Environment namehlukwx2gjy4lo= Random string for uniqueness
azd up
You will be prompted to:
- Select an Azure Subscription to use for deployment.
- Select a deployment region.
π Recommended Region: Use a region that supports all required services, such as Sweden Central.
Once confirmed, AZD will begin provisioning the infrastructure using Bicep templates. This includes:
- Azure Container Apps
- Azure OpenAI (OpenAI will provision two models: text-embedding-ada-002 and gpt-4o. Both models will have 10,000 TPM. If you want to change this value, go to the OpenAI Bicep module and decrease the capacity number in the model's SKU configuration)
- Azure AI Search (if you are using an exisiting Ai search service then you can remove the Ai search provioned thourgh bicep template)
- Azure Document Intelligence
- Azure Container Registry (ACR)
- Monitoring (Log Analytics & Application Insights)
β±οΈ Provisioning typically takes 5β10 minutes, depending on your region and resource availability.
β Once the AZD template deployment completes, a URL will be displayed in your terminal output. You can use this URL to launch and explore the AI-Powered RFP Analyzer web application in your browser.
Run azd down to remove the Infra and app provioned throgh this template.
azd down
We welcome contributions to enhance and evolve the AI-Powered RFP Analyzer accelerator. To get started:
- Fork the repo
- Create a feature branch
- Make your changes
- Push and open a PR
This project is licensed under the MIT License.
β οΈ Note: This solution is intended for internal Microsoft use as an accelerator for proofs of concept (POCs) and demo environments. It is not a production-ready offering. Use at your own discretion.

