Hey there, fellow developer! Ready to dive into the world of UKG Pro Recruiting API integration? You're in for a treat. This guide will walk you through the process of building a robust integration using Python. We'll cover everything from authentication to advanced features, so buckle up and let's get coding!
Before we jump in, make sure you've got these basics covered:
requests
library (pip install requests
)First things first, let's get you authenticated:
import requests def get_access_token(client_id, client_secret): url = "https://api.ultipro.com/oauth/token" payload = { "grant_type": "client_credentials", "client_id": client_id, "client_secret": client_secret } response = requests.post(url, data=payload) return response.json()["access_token"] access_token = get_access_token("your_client_id", "your_client_secret")
Pro tip: Implement token caching and refresh to avoid unnecessary auth calls!
Now that we're authenticated, let's make some requests:
def make_api_request(endpoint, access_token): headers = {"Authorization": f"Bearer {access_token}"} response = requests.get(f"https://api.ultipro.com/{endpoint}", headers=headers) response.raise_for_status() return response.json() # Example: Get all job postings job_postings = make_api_request("recruiting/v1/job-postings", access_token)
Don't forget to handle pagination for large result sets!
CRUD operations are a breeze with the UKG Pro Recruiting API. Here's a quick example of creating a new candidate:
def create_candidate(access_token, candidate_data): headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } response = requests.post("https://api.ultipro.com/recruiting/v1/candidates", headers=headers, json=candidate_data) response.raise_for_status() return response.json() new_candidate = create_candidate(access_token, { "firstName": "John", "lastName": "Doe", "email": "[email protected]" })
Similar patterns apply for updating (PUT/PATCH) and deleting (DELETE) records.
Want to up your game? Try out these advanced features:
# Filtering and searching filtered_jobs = make_api_request("recruiting/v1/job-postings?$filter=jobTitle eq 'Software Engineer'", access_token) # Sorting results sorted_candidates = make_api_request("recruiting/v1/candidates?$orderby=lastName asc", access_token)
Don't forget to process and normalize your data:
def normalize_candidate(candidate): return { "full_name": f"{candidate['firstName']} {candidate['lastName']}", "email": candidate['email'].lower(), "applied_date": candidate['applicationDate'][:10] # YYYY-MM-DD } normalized_candidates = [normalize_candidate(c) for c in candidates]
Here's a quick example of submitting a job application:
def submit_application(access_token, job_id, candidate_id): payload = { "jobPostingId": job_id, "candidateId": candidate_id } return requests.post("https://api.ultipro.com/recruiting/v1/applications", headers={"Authorization": f"Bearer {access_token}"}, json=payload) submit_application(access_token, "JOB-123", "CAND-456")
Remember these golden rules:
And there you have it! You're now equipped to build a killer UKG Pro Recruiting API integration. Remember, practice makes perfect, so don't be afraid to experiment and push the boundaries of what you can do with this powerful API.
Now go forth and code something awesome! 🚀