← Back to work
Case study · AI-powered skills framework

Building a skills framework with AI

I built a Rails workflow that uses two AI assistants to help customers define their company’s roles, skills, and proficiency levels. Customers review the suggestions before exporting the framework for import.

Focus
AI-assisted customer setup
Platform
Ruby on Rails · OpenAI Assistants API
Processing
Sidekiq · Function calling · CSV export
01 / Role Amplifier Roles and associated skills

Gather company context and check existing roles.

Suggest job domains, roles, and associated skills.

02 / Skill Amplifier Descriptions, categories, and levels

Complete descriptions and organize skills into categories.

Define proficiency levels with clear expectations.

Customer review at each step

Review suggestions before continuing

Customers shape the framework before moving to the next step.

Company context

Function calling retrieves existing roles, skills, categories, and proficiency labels.

Rails & Sidekiq

Conversation threads, asynchronous runs, tool execution, and timeout cancellation.

Structured output

The application converts structured data into downloadable CSV files for import.

Conceptual workflow · Two specialized assistants connected to company-specific data
01 The context

The setup customers were skipping

The employee learning platform helps organizations connect people with relevant lessons, videos, and training. Useful recommendations depend on understanding each customer’s business.

Each customer needs a structured framework of job roles, skills, categories, and proficiency levels. Managers had to define those roles and skills before mapping employees to them—a substantial manual setup task.

Some customers skipped this setup, limiting the platform’s ability to recommend relevant learning content. The goal was to guide customers through building that foundation with AI assistance.

The challenge combined complex business requirements with token and context-window constraints, while connecting the conversation to each company’s existing data.

02 The approach

Splitting the work between assistants

01 / Discover

Role Amplifier

I implemented a specialized assistant that gathers company context, checks existing roles, and suggests relevant job domains, roles, and associated skills. This gives customers a starting point tailored to their organization.

02 / Develop

Skill Amplifier

A second assistant helps complete skill descriptions, organize skills into categories, and define proficiency levels with clear expectations for each skill.

03 / Refine

Reviewing the suggestions

Customers review and refine the suggestions before moving to the next step. The resulting framework is shaped by their business knowledge throughout the conversation.

03 The integration

Connecting the assistants to Rails

Function calling and company data

I built the backend integration in Ruby on Rails using OpenAI’s Assistants API. Through function calling, the assistants can retrieve existing roles, skills, categories, and proficiency labels to support company-specific conversations.

Background jobs and run status

The architecture uses Sidekiq to handle asynchronous processing and manages conversation threads, API run status, and tool execution. It also handles timeout cancellation and interaction logging.

Exporting CSV files

The assistants can produce structured data that the application converts into downloadable CSV files for import, connecting the guided workflow to the platform’s framework setup.

04 The outcome

What the workflow provides

Customers can work through their roles and skills in a conversation, review the suggestions, and download the resulting data for import.

The two assistants cover the different parts of the setup, using existing company data where it is available.

It is designed to reduce setup effort and help customers build the foundation for more relevant learning recommendations.

05 Technology & architecture

Technologies used

Backend
Ruby, Ruby on Rails
AI integration
OpenAI Assistants API, function calling
Background processing
Sidekiq, asynchronous processing
Conversation lifecycle
Threads, API run status, tool execution, timeout cancellation
Data integration
Company-specific roles, skills, categories, proficiency labels
Output & observability
Structured data, downloadable CSV files, interaction logging
← Back to work