Embloy SDKs
Libraries and tools for interacting with your Embloy integration.
If you are an ATS provider integrating Embloy, you will have to set mode
as your ATS name (e.g., "Lever") and job_slug
as your respective job posting ID (e.g., "250d8f03-...").
To see examples and detailed information on how to use the SDKs, please take a look at our tutorials, guides for your use case or the "How to integrate Quicklink" page.
Server-side SDKs
Embloy's server-side helper libraries (also known as server-side SDKs) reduce the amount of work required to use Embloy’s REST APIs, starting with reducing the boilerplate code you have to write. Below are the installation instructions for these libraries in a variety of popular server-side programming languages.
- Ruby
- Go
- Python
- PHP
- Java
- Node
# Available as a gem
sudo gem install embloy
# If you use bundler, you can add this line to your Gemfile
gem 'embloy'
# Replace 'YOUR_CLIENT_TOKEN' with your actual client token
session = {
mode: "job",
job_slug: "your_job_slug",
success_url: "your_success_url",
cancel_url: "your_cancel_url"
}
client = Embloy::Client.new('YOUR_CLIENT_TOKEN', session)
redirect_url = client.make_request
redirect_to redirect_url
# Make sure your project is using Go Modules
go mod init
# Install embloy-go
go get -u github.com/embloy/embloy-go/embloy
// Then import the package
import (
"github.com/embloy/embloy-go/embloy"
)
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
"github.com/embloy/embloy-go/embloy"
)
func yourExampleEndpoint(c *gin.Context) {
// Call Embloy-Go SDK to get a request_token
sessionData := embloy.SessionData{
Mode: "job",
SuccessURL: "your-success-url",
CancelURL: "your-cancel-url",
JobSlug: jobSlug,
}
client := embloy.NewEmbloyClient("your-client-token", sessionData)
redirectURL, err := client.MakeRequest()
if err != nil {
fmt.Println("Error:", err)
return
}
// Redirect to the Embloy application portal
c.Redirect(http.StatusFound, redirectURL)
}
# Install through pip
pip3 install --upgrade embloy_sdk
# Or find the Embloy package on https://pypi.org/project/embloy-sdk/
# Find the version you want to pin:
# https://pypi.org/project/embloy-sdk/#history
# Specify that version in your requirements.txt file
embloy_sdk>=0.3.24
from embloy_sdk import EmbloyClient
# Replace with your actual values
client_token = 'your_client_token'
options = SessionOptions('your_success_url', 'your_cancel_url') # SessionOptions are optional and can be left out
session = EmbloySession('your-mode', 'your_job_slug', options)
# Create an instance of the EmbloyClient
embloy_client = EmbloyClient(client_token, session)
# Make a request to the Embloy API
redirect_url = embloy_client.make_request()
Currently, the PHP SDK may encounter 403 Errors due to CORS issues. Efforts are underway to resolve this problem.
# Install the PHP library with Composer
composer require embloy/embloy-php:dev-main
# Or download the source directly: https://github.com/embloy/embloy-php/releases
// Create an instance of EmbloySession
$session = new EmbloySession('job', $jobSlug, [
'success_url' => 'success_url', // Add your success URL here
'cancel_url' => 'cancel_url', // Add your cancel URL here
]);
// Create an instance of EmbloyClient
$client = new EmbloyClient($clientToken, $session);
try {
// Make a request to generate the URL
$url = $client->makeRequest();
return response()->json(['url' => $url], 302);
} catch (\Exception $e) {
// Handle any errors
return response()->json(['error' => $e->getMessage()], 500);
}
/*
For Gradle, add the following dependency to your build.gradle and replace with
the version number you want to use from:
- https://mvnrepository.com/artifact/com.embloy/sdk or
- https://github.com/embloy/embloy-java/releases/latest
*/
implementation "com.embloy:sdk:0.1.14"
/*
For Gradle with Kotlin, add the following dependency to your build.gradle.kts and replace with
the version number you want to use from:
- https://mvnrepository.com/artifact/com.embloy/sdk or
- https://github.com/embloy/embloy-java/releases/latest
*/
implementation("com.embloy:sdk:0.1.14")
<!--
For Maven, add the following dependency to your POM and replace with the
version number you want to use from:
- https://mvnrepository.com/artifact/com.embloy/sdk or
- https://github.com/embloy/embloy-java/releases/latest
-->
<dependency>
<groupId>com.embloy</groupId>
<artifactId>sdk</artifactId>
<version>0.1.14</version>
</dependency>
import embloy.EmbloyClient;
import embloy.EmbloySession;
public class ExampleClass {
public static void exampleEndpoint() {
// Example of using a preset value directly from EmbloyRequestMode enum (e.g., JOB_MODE, ASHBY_MODE, LEVER_MODE, etc.)
// These presets correspond to different Applicant Tracking Systems (ATS) supported by Embloy.
EmbloyRequestMode modePreset = EmbloyRequestMode.JOB_MODE;
// Alternatively, you can dynamically determine the mode by passing a string value to fromValue method.
// This is useful when the mode is not known at compile time or is configured externally.
// Throws IllegalArgumentException if the value does not match any supported mode.
EmbloyRequestMode customMode = EmbloyRequestMode.fromValue("your-custom-ats");
// Replace these values with your actual client token and session data
// Choose between modePreset or customMode based on your use case
EmbloySession session = new EmbloySession(modePreset, "your-job-slug", "your-success-url", "your-cancel-url");
EmbloyClient embloyClient = new EmbloyClient("your-client-token", session);
try {
String redirectURL = embloyClient.makeRequest(); // looks like: `https://embloy.com/en-US/sdk/apply?request_token=...`
// Redirect user to redirectURL
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
# Install with npm
npm install embloy
import { EmbloyClient, EmbloySession } from 'embloy';
const session = new EmbloySession({
mode: "job",
job_slug: "your-job-slug",
success_url: "your-success-url",
cancel_url: "your-cancel-url",
});
const embloy = new EmbloyClient("your-client-token", session);
embloy.makeRequest()
.then(result => window.location.href = result)
.catch(error => console.error(error.message));
Please note that all SDKs are currently in the beta phase. While they have been thoroughly tested, we recommend using them with care. The Ruby, Java, Go, Python and Node SDKs, in particular, have undergone extensive field testing and are expected to perform reliably.
You can access certain Embloy products and features in the beta stage with beta SDKs. The versions of these beta SDKs have the beta or b suffix, for example, 0.3.23b0 in Python and 0.1.0-beta.3 in other language SDKs. Try these beta SDKs and share feedback with us before the features reach the stable phase. To learn more about how to use the beta SDKs, read the README file in the GitHub repository of the individual language SDKs.
Web SDKs
Embloy provides the following web client SDKs to enable integrations with Embloy Elements, our prebuilt UI components, to create an application form that lets you process an application without getting your hands dirty.
Mobile device SDKs
Our mobile device helper libraries (also known as Mobile device SDKs) help you create native applications for Apple’s and Android’s devices and platforms. The React Native SDK helps you integrate Embloy into iOS and Android applications built with React Native.
Embloy OpenAPI Specification
Embloy’s OpenAPI specification empowers you with a broad set of developer tooling, starting with Postman collections:
Check out our Postman Workspace.