juicebox-sdk-patterns

Featured

Apply production Juicebox SDK patterns. Trigger: "juicebox patterns", "juicebox best practices".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Juicebox SDK Patterns ## Overview Production-ready patterns for the Juicebox AI-powered people search API. Juicebox provides REST endpoints for searching professional profiles and enriching candidate data. The API authenticates via `JUICEBOX_API_KEY` and returns structured profile objects with LinkedIn URLs as natural dedup keys. A singleton client centralizes rate-limit handling across search and enrich endpoints. ## Singleton Client ```typescript const JUICEBOX_BASE = 'https://api.juicebox.work/v1'; let _client: JuiceboxClient | null = null; export function getClient(): JuiceboxClient { if (!_client) { const apiKey = process.env.JUICEBOX_API_KEY; if (!apiKey) throw new Error('JUICEBOX_API_KEY must be set — get it from juicebox.work/settings'); _client = new JuiceboxClient(apiKey); } return _client; } class JuiceboxClient { private headers: Record<string, string>; constructor(apiKey: string) { this.headers = { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' }; } async search(query: string, limit = 20): Promise<SearchResponse> { const res = await fetch(`${JUICEBOX_BASE}/search`, { method: 'POST', headers: this.headers, body: JSON.stringify({ query, limit }) }); if (!res.ok) throw new JuiceboxError(res.status, await res.text()); return res.json(); } async enrich(linkedinUrl: string): Promise<Profile> { const res = await fetch(`${JUICEBOX_BASE}/enrich`, { method: 'POST', headers: this.headers, body:...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category