Azure AI Search Custom Skills Samples (AI enrichment skillsets)

July 23, 2026 · View on GitHub

python C#

Important


As of November 15, 2023, Azure Cognitive Search has been renamed to Azure AI Search.

Azure AI Search Custom Skills Samples (AI enrichment skillsets)

A collection of sample implementations for custom skill functionality in Azure AI Search.

Previously known as: Azure Search Power Skills
This repository may still be referenced by its former name in older documentation, links, and conversations.

Terminology clarification
In this repository, “skills” refers to Azure AI Search skillset enrichment skills (including Custom Web API skills used during indexing), not agent/copilot skills.

Why this repository exists

Azure AI Search includes many built-in enrichment skills.
This repository provides examples for scenarios where you need custom logic that built-in skills don’t provide directly, such as:

  • Custom transformations and enrichment output shaping
  • Integration with external services or proprietary systems
  • Deterministic pre/post-processing in indexing pipelines

What you’ll find

This repo contains reusable samples and patterns for:

  • Building and hosting Custom Web API skills
  • Implementing custom enrichment components in C# and Python
  • Testing and iterating on enrichment logic
  • Integrating custom outputs into Azure AI Search skillsets

Language composition of this repository:

  • C# (~70%)
  • Jupyter Notebook (~17%)
  • Python (~11%)

When to use built-in skills vs custom skills

Use built-in skills when:

  • The required enrichment already exists in Azure AI Search
  • You can achieve the needed output with standard configuration

Use custom skills when:

  • You need enrichment behavior not available out-of-the-box
  • You need strict control over transformation/business logic
  • You must call external APIs, private models, or internal systems

Core Azure AI Search documentation

Start here for official guidance:

How to use these samples

  1. Identify the enrichment gap in your indexing pipeline.
  2. Select the closest sample in this repository.
  3. Adapt the custom logic for your data/contracts.
  4. Host the skill endpoint (for Web API-based skills).
  5. Add/update your skillset to call the custom skill.
  6. Run and validate indexer execution and output.

Scope note

This repository is specifically for Azure AI Search skillset custom enrichment samples and related implementation patterns.

Skills

This project provides the following custom skills:

SkillDescriptionTypeLanguageEnvironmentDeployment
Chat completion Custom SkillDemonstrates how to use chat-completion inference capabilities of language models (including Azure OpenAI models) deployed in Azure AI Foundry in a custom web API skillset in Azure AI Search.TextpythonAzure FunctionsDeploy to Azure
GeoPointFromNameRetrieves coordinates from place names and addresses.GeographyC#Azure FunctionsDeploy to Azure
DistinctDe-duplicates a list of terms.TextC#Azure Functions
TextAnalyticsForHealthA wrapper for the Text Analytics for Health API.TextC#Azure FunctionsDeploy to Azure
TextQualityWatchdogUses a pretrained language model to detect low-quality text extracted during document cracking.TextpythonAzure Function and Azure Open AI endpoint
DecryptBlobFileDownloads, decrypts, and returns a file previously encrypted and stored in Azure Blob Storage.UtilityC#Azure Functions
GetFileExtensionReturns the filename and extension as separate values to allow filtering on document type.UtilityC#Azure Functions
HelloWorldA minimal skill that can be used as a starting point or template for your own skills.TemplateC#Azure FunctionsDeploy to Azure
PythonFastAPIA production web server and API scaffold for a Python power skill.TemplatepythonAzure Functions
VideoIndexerExtracts insights from video content for indexing workflows.VisionC#Azure Functions

Getting Started

Prerequisites

In order to use the functions in this project, you'll need an active Azure subscription. Most of the functions can be used on their own for quick evaluation and experimentation, but they are meant for integration in Azure AI Search enrichment pipelines.
Each function may also add its own specific requirements, such as API keys for services they leverage.

Visual Studio is recommended, but not required. You need a recent version of the C# compiler.

Installation and deployment

If using Visual Studio with the Azure workload installed, no installation is required, and the functions can just be run locally using F5.

Deployment of a function to Azure can be done through Visual Studio, the Deploy to Azure button, or continuous deployment from source control.

Some functions may require setting environment variables or configuration entries. Please refer to the readme file in the function's directory.

Quickstart

  1. Clone the repository
  2. Open the PowerSkills solution in Visual Studio
  3. Set the project for the function to test as the startup project
  4. Hit F5
  5. Experiment with calling the function using your preferred HTTP client or test harness

You can also create your own skills using our Hello World template skill as a starting point or if you are using python our FastAPI template skill.

Up for grabs

Here are a few suggestions of simple contributions to get you started:

  • Improve documentation: sample code, better documentation are great ways to improve your understanding of existing code and to help others do the same.
  • Configuration: some skills can be configured through application settings and environment variables. You can use existing skills in this repo (for example, Azure Function-based samples under Text/, Utils/, Template/) as references for clearer setup guidance and consistent config naming.
  • For skills that rely on external Azure resources or APIs (for example, skills under Video/VideoIndexer or Text/TextAnalyticsForHealth), consider adding deployment templates and setup instructions to simplify onboarding and reproducibility.

Resources