Execute Juicebox people search workflow. Use when building candidate sourcing pipelines, searching for professionals, or implementing talent discovery features. Trigger with phrases like "juicebox people search", "find candidates juicebox", "juicebox talent search", "search professionals juicebox".
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
name: juicebox-core-workflow-a description: | Execute Juicebox people search workflow. Use when building candidate sourcing pipelines, searching for professionals, or implementing talent discovery features. Trigger with phrases like "juicebox people search", "find candidates juicebox", "juicebox talent search", "search professionals juicebox". allowed-tools: Read, Write, Edit, Bash(npm:), Bash(pip:), Grep version: 1.0.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io
Juicebox People Search Workflow
Overview
Implement a complete people search workflow using Juicebox AI for candidate sourcing and talent discovery.
Prerequisites
- Juicebox SDK configured
- Understanding of search query syntax
- Knowledge of result filtering
Instructions
Step 1: Define Search Parameters
// types/search.ts
export interface CandidateSearch {
role: string;
skills: string[];
location?: string;
experienceYears?: { min?: number; max?: number };
companies?: string[];
education?: string[];
}
export function buildSearchQuery(params: CandidateSearch): string {
const parts = [params.role];
if (params.skills.length > 0) {
parts.push(`skills:(${params.skills.join(' OR ')})`);
}
if (params.location) {
parts.push(`location:"${params.location}"`);
}
return parts.join(' AND ');
}
Step 2: Implement Search Pipeline
// workflows/candidate-search.ts
import { JuiceboxService } from '../lib/juicebox-client';
export class CandidateSearchPipeline {
constructor(private juicebox: JuiceboxService) {}
async searchCandidates(criteria: CandidateSearch) {
const query = buildSearchQuery(criteria);
// Initial broad search
const results = await this.juicebox.searchPeople(query, {
limit: 100,
fields: ['name', 'title', 'company', 'location', 'skills', 'experience']
});
// Score and rank candidates
const scored = results.profiles.map(profile => ({
...profile,
score: this.calculateFitScore(profile, criteria)
}));
// Sort by fit score
return scored.sort((a, b) => b.score - a.score);
}
private calculateFitScore(profile: Profile, criteria: CandidateSearch): number {
let score = 0;
// Skills match
const matchedSkills = profile.skills.filter(s =>
criteria.skills.includes(s.toLowerCase())
);
score += matchedSkills.length * 10;
// Experience match
if (criteria.experienceYears) {
const years = profile.experienceYears || 0;
if (years >= (criteria.experienceYears.min || 0)) {
score += 20;
}
}
return score;
}
}
Step 3: Handle Pagination
async function* searchAllCandidates(
juicebox: JuiceboxService,
query: string
): AsyncGenerator<Profile> {
let cursor: string | undefined;
do {
const results = await juicebox.searchPeople(query, {
limit: 50,
cursor
});
for (const profile of results.profiles) {
yield profile;
}
cursor = results.nextCursor;
} while (cursor);
}
Output
- Search query builder
- Candidate scoring system
- Paginated result handling
- Ranked candidate list
Error Handling
| Error | Cause | Solution |
|---|---|---|
| No Results | Query too restrictive | Broaden criteria |
| Slow Response | Large dataset | Use pagination |
| Score Issues | Missing data | Handle null values |
Examples
Full Pipeline Usage
const pipeline = new CandidateSearchPipeline(juiceboxService);
const candidates = await pipeline.searchCandidates({
role: 'Senior Software Engineer',
skills: ['typescript', 'react', 'node.js'],
location: 'San Francisco Bay Area',
experienceYears: { min: 5 }
});
console.log(`Found ${candidates.length} matching candidates`);
candidates.slice(0, 10).forEach(c => {
console.log(`${c.name} (Score: ${c.score}) - ${c.title} at ${c.company}`);
});
Resources
Next Steps
After implementing search, explore juicebox-core-workflow-b for candidate enrichment.
More by jeremylongshore
View allRabbitmq Queue Setup - Auto-activating skill for Backend Development. Triggers on: rabbitmq queue setup, rabbitmq queue setup Part of the Backend Development skill category.
evaluating-machine-learning-models: This skill allows Claude to evaluate machine learning models using a comprehensive suite of metrics. It should be used when the user requests model performance analysis, validation, or testing. Claude can use this skill to assess model accuracy, precision, recall, F1-score, and other relevant metrics. Trigger this skill when the user mentions "evaluate model", "model performance", "testing metrics", "validation results", or requests a comprehensive "model evaluation".
building-neural-networks: This skill allows Claude to construct and configure neural network architectures using the neural-network-builder plugin. It should be used when the user requests the creation of a new neural network, modification of an existing one, or assistance with defining the layers, parameters, and training process. The skill is triggered by requests involving terms like "build a neural network," "define network architecture," "configure layers," or specific mentions of neural network types (e.g., "CNN," "RNN," "transformer").
Oauth Callback Handler - Auto-activating skill for API Integration. Triggers on: oauth callback handler, oauth callback handler Part of the API Integration skill category.
