The Stepstone Group has become one of the first companies worldwide to release a ChatGPT plugin

Michal Urbanski
the-stepstone-group-tech-blog
6 min readJun 22, 2023

The concept of plugins isn’t new. Alexa Skills or Google Assistant Actions, for example, are comparable to GPT-4 plugins. They extend the main functionality, enabling interaction with various external services and performance of specific tasks. A plugin could enable Google Assistant to order a pizza from a specific restaurant or play a favorite song from a playlist. Similarly, GPT-4 plugins enhance the model’s abilities, allowing it to interact with specific services and perform particular tasks.

Our new division at The Stepstone Group, “Jobs via Natural Language”, is dedicated to creating innovative solutions based on large language models (LLMs). We aim to incorporate the latest technological innovations quickly, and one area we are currently exploring is job search functionalities. Like our website, our goal is to make it easier for users to find jobs but through a completely new channel.

We dug through the pretty well described documentation (it has been further developed since the beginning of the work). After a few tries and setting up a local test application, we had a working connection for testing. OpenAI provides, in the development version of the plugin, a direct connection to the localhost service.

Going into details

The plugin’s construction is based on two files — the manifest and API definition. These are utilized when invoking the plugin and must always be available:

ai-plugin.json — this file contains basic information about the plugin. The model uses this information to properly direct the request when initiating a conversation. It also includes fields for the human and model names, authorization type, service API schema file URL, plugin logo URL, and more.

openapi.yaml — this file should contain all information about the API service and any endpoints we want our plugin to interact with — swagger documentation file

Then, we use invocation: “I’m looking for a job as UX designer in Berlin” we are calling local service, and now we start our fun 😉

We decided to simplify the task by searching for job offers based on basic parameters. By providing only the desired position and location, we can quickly obtain the initial job listings. However, to better tailor the search to the candidate’s needs, we can also add specify additional criteria such as contract type or expected earnings.

In our initial search, we present three matching offers. It is crucial to limit the conveyed information to the essential minimum, reducing the time between the service and API. Along with the obvious details like title, company name, and location, we include salary ranges (if available) and logos for improved brand recognition. The summary section provides the number of offers that meet the specified criteria. The most critical aspect of the search is the well-connected call-to-action link, which allows users to enter their details directly on the website.

One surprising aspect of our solution is the presentation of results. Initially, the presentation view was inconsistent, but through testing and implementing appropriate prompts, we achieved the desired effect. During the response, you can utilize additional features such as OpenGraph markup support or automatic markdown rendering to enhance the user experience and don’t be afraid to use it 😉

However, the most important aspect of our solution, which is not visible, is the data transfer via the API. Alongside data preparation, security is a paramount concern. In line with recommendations, we have implemented an authorization process that occurs directly between the services, without exposing the keys to external users. This ensures the utmost security, allowing us to rest easy.

Review process

Many times we have carefully read the documentation of the acceptance process, unfortunately this process is changing in practice. At the start of our development process, there were only 11 plugins available, and we were thrilled at the prospect of creating something unique. We built our solution swiftly, combining the efforts of various competencies into one stream for a common purpose. Despite seeing the plugin’s popularity grow daily, it took about two weeks for our application to be accepted. 😊

… and now The Stepstone Group is proud to be one of the first companies worldwide to release a ChatGPT plugin for job search 😎🎉

Hints

Good practice is to think about how we want to deploy the service on our domains at the beginning, is taking into account that in the future there may be an opportunity to develop another one — e.g. “Stepstone apply” plugin. OpenAI requires the above manifests to be in the root directory of the domain like “domain.com/.well-known/ai-plugin.json”, so that we recommend to use subdomains for each plugin to prevent conflicts between them.

Make sure that your websites are properly configured to accept external traffic. Secure communication by adding authorization keys in accordance with the OpenAI documentation.

Remember that you’re in an environment where your control over data presentation is limited. For instance, you can’t modify the background of images or the entire page. While ChatGPT determines how the information is displayed, you can influence its presentation through your application’s response.

Don’t forget to add important thing — tracking! In our solution, we found several places where we are able to collect such statistics. We can observe the traffic from this channel and properly prepare the user’s path to achieve the assumed goals and, of course, improve the solution itself.

Response speed has a different connotation here. The interface mimics typing words character by character, so if the results are lengthy, users will have to wait for the information to be presented.

Summary

In conclusion, plugins are a powerful feature of GPT-4 that extend its capabilities, making it more versatile and useful. Their popularity is skyrocketing, and in the future, they might offer an additional value and distribution channel, not only for GPT chat users. 😉

Building our The Stepstone Group Job Search plugin was a collaborative effort. We extend our gratitude to everyone involved in this project, including our dedicated team of Developers, Architects, Data Analysts, and Product Owners. Their hard work and innovative thinking made this plugin possible, demonstrating the potential of GPT-4 plugins to revolutionize the way we interact with AI.

Team with “DaVinci pose”
Michał Urbański

--

--