Agent skill

Juicebox SDK Patterns

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Apply production Juicebox SDK patterns. An agent skill from jeremylongshore/tons-of-skills-marketplace.

MITAuto-check passed

Install Juicebox SDK Patterns

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill juicebox-sdk-patterns -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace juicebox-sdk-patterns --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/juicebox-sdk-patterns .claude/skills/juicebox-sdk-patterns && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
juicebox-sdk-patterns
GitHub stars
2.8k
Token cost
~1.5k tokens
SKILL.md length
244 words
Files
3 (incl. references)
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Apply production Juicebox SDK patterns. An agent skill from jeremylongshore/tons-of-skills-marketplace.

  • Works in 4 steps: Construct clients from scoped… → Centralize source-authority,… → Model partial/denied responses… → …
  • SKILL.md covers Overview, Singleton Client, Error Wrapper and Request Builder, plus 9 more sections
  • Reaches api.juicebox.work and linkedin.com; needs JUICEBOX_API_KEY

What it does

Juicebox SDK Patterns is an agent skill from jeremylongshore/tons-of-skills-marketplace. Apply production Juicebox SDK patterns. Trigger: "juicebox patterns", "juicebox best practices".

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/advanced-patterns.md` and `references/implementation-guide.md`). Compatibility notes: Designed for Claude Code

It works with LinkedIn. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

Example prompts

  • “juicebox patterns”
  • “juicebox best practices”
  • “/juicebox-sdk-patterns”

Requirements

  • A credential in JUICEBOX_API_KEY
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Construct clients from scoped environment configuration and reject unknown workspace, source, or destination before a request is sent.
  2. Centralize source-authority, suppression, schema, redaction, and idempotency checks in the client boundary.
  3. Model partial/denied responses explicitly; never turn a denied or unverified enrichment into a success or export fallback.
  4. Test malformed data, rate limits, source/suppression rejection, and rollback using synthetic fixtures only.

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.juicebox.work
    • linkedin.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • JUICEBOX_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Juicebox SDK Patterns loads about 1.5k tokens when it runs, and up to ~4.2k if it reads all its reference files. Until then it costs about 30 tokens; SKILL.md has 244 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 244 words, ~1,520 tokens.

Download SKILL.mdSave it as .claude/skills/juicebox-sdk-patterns/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
juicebox-sdk-patterns
description
Apply production Juicebox SDK patterns. Trigger: "juicebox patterns", "juicebox best practices".
allowed-tools
Read, Write, Edit
compatibility
Designed for Claude Code
version
1.16.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, recruiting, juicebox

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: JSON.stringify({ linkedin_url: linkedinUrl }) });
    if (!res.ok) throw new JuiceboxError(res.status, await res.text()); return res.json();
  }
}

Error Wrapper

typescript
export class JuiceboxError extends Error {
  constructor(public status: number, message: string) { super(message); this.name = 'JuiceboxError'; }
}
export async function safeCall<T>(operation: string, fn: () => Promise<T>): Promise<T> {
  try { return await fn(); }
  catch (err: any) {
    if (err instanceof JuiceboxError && err.status === 429) { await new Promise(r => setTimeout(r, 5000)); return fn(); }
    if (err instanceof JuiceboxError && err.status === 401) throw new JuiceboxError(401, 'Invalid JUICEBOX_API_KEY');
    throw new JuiceboxError(err.status ?? 0, `${operation} failed: ${err.message}`);
  }
}

Request Builder

typescript
class JuiceboxSearchBuilder {
  private body: Record<string, any> = {};
  query(q: string) { this.body.query = q; return this; }
  limit(n: number) { this.body.limit = Math.min(n, 100); return this; }
  location(loc: string) { this.body.location = loc; return this; }
  title(t: string) { this.body.title_filter = t; return this; }
  company(c: string) { this.body.company_filter = c; return this; }
  yearsExp(min: number, max: number) { this.body.years_experience = { min, max }; return this; }
  build() { return this.body; }
}
// Usage: new JuiceboxSearchBuilder().query('ML engineer').location('San Francisco').yearsExp(3, 8).build();

Response Types

typescript
interface Profile {
  id: string; name: string; title: string; company: string;
  linkedin_url: string; location: string; skills: string[]; experience_years: number;
}
interface SearchResponse {
  profiles: Profile[]; total: number; has_more: boolean; cursor?: string;
}
interface EnrichResult {
  profile: Profile; education: Array<{ school: string; degree: string; year: number }>;
  experience: Array<{ company: string; title: string; start: string; end: string | null }>;
}

Testing Utilities

typescript
export function mockProfile(overrides: Partial<Profile> = {}): Profile {
  return { id: 'prof-001', name: 'Jane Smith', title: 'Senior ML Engineer',
    company: 'Acme Corp', linkedin_url: 'https://linkedin.com/in/janesmith',
    location: 'San Francisco, CA', skills: ['Python', 'PyTorch', 'MLOps'],
    experience_years: 6, ...overrides };
}
export function mockSearchResponse(count = 3): SearchResponse {
  return { profiles: Array.from({ length: count }, (_, i) => mockProfile({ id: `prof-${i}` })),
    total: count, has_more: false };
}

Error Handling

PatternWhen to UseExample
safeCall wrapperAll Juicebox API callsStructured error with operation context
Retry on 429Batch search pipelines5s backoff before retry
LinkedIn dedupMulti-query searchSet<string> on linkedin_url prevents duplicates
Cursor paginationSearch results > 100Pass cursor from previous response

Prerequisites

  • A typed client boundary, secret-manager reference, sandbox workspace, approved source/destination allowlist, and synthetic prospect fixture.

Instructions

  1. Construct clients from scoped environment configuration and reject unknown workspace, source, or destination before a request is sent.
  2. Centralize source-authority, suppression, schema, redaction, and idempotency checks in the client boundary.
  3. Model partial/denied responses explicitly; never turn a denied or unverified enrichment into a success or export fallback.
  4. Test malformed data, rate limits, source/suppression rejection, and rollback using synthetic fixtures only.

Output

Produce a client-contract receipt with SDK revision, environment, source/destination policy revisions, fixture result, error classification, aggregate counts, export-count assertion, and rollback behavior. Exclude contacts, enrichment data, and credentials.

Examples

sdk=v3; env=sandbox; source=synthetic; destination=approved; suppression=pass; malformed=blocked; contacts_exported=0; telemetry=aggregate-only is a safe SDK result.

Resources

  • Juicebox API Docs

Next Steps

Apply patterns in juicebox-core-workflow-a.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/.curated/juicebox-sdk-patterns of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • references/advanced-patterns.md
  • references/implementation-guide.md

Open the folder on GitHubat commit cfae287

Compare with similar skills

Juicebox SDK Patterns next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Juicebox SDK Patterns compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Juicebox SDK Patterns this skilljeremylongshore/tons-of-skills-marketplace2.8k—~1.5kAutomated safety check: PassMIT
Socialcoreyhaines31/marketingskills54k4 repos~4.5kAutomated safety check: PassMIT
Banner Design Systemnextlevelbuilder/ui-ux-pro-max-skill135k1 repos~1.8kAutomated safety check: PassMIT
Agent ReachPanniantong/Agent-Reach95k—~1.4kAutomated safety check: PassMIT
Ad CreativeLeoYeAI/openclaw-marketing-skills1k8 repos~3.4kAutomated safety check: PassCustom licence
Social Contentfreekmurze/dotfiles1k23 repos~2.1kAutomated safety check: PassNone

Similar skills

  • Social

    coreyhaines31/marketingskills

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.

    54k GitHub starsUsed in 4 repos~4.5k tokens
    Writing & ContentAuto-check passed
  • Banner Design System

    nextlevelbuilder/ui-ux-pro-max-skill

    Walks through designing a banner for social media, ads, a website hero or print, from gathering requirements to building 2 or 3 art-direction options in HTML and CSS.

    135k GitHub starsUsed in 1 repo~1.8k tokens
    Frontend & DesignAuto-check passed
  • Agent Reach

    Panniantong/Agent-Reach

    Routes web research and platform lookups across 16 sites, including Twitter, Reddit, YouTube, Bilibili, Xiaohongshu and GitHub, through one command-line tool.

    95k GitHub stars~1.4k tokensUpdated 3 days ago
    Productivity & AutomationAuto-check passed
  • Ad Creative

    LeoYeAI/openclaw-marketing-skills

    When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform.

    1k GitHub starsUsed in 8 repos~3.4k tokens
    Marketing & SEOAuto-check passed
  • Social Content

    freekmurze/dotfiles

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms.

    1k GitHub starsUsed in 23 repos~2.1k tokens
    Writing & ContentAuto-check passed
  • Linkedin Marketing

    sergebulaev/linkedin-skills

    Plan, draft, audit, and publish LinkedIn posts and comments.

    4.4k GitHub starsUsed in 1 repo~3.2k tokens
    Writing & ContentAuto-check: notes

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Questions about Juicebox SDK Patterns

What does Juicebox SDK Patterns do?

Apply production Juicebox SDK patterns. An agent skill from jeremylongshore/tons-of-skills-marketplace. Juicebox SDK Patterns is an agent skill from jeremylongshore/tons-of-skills-marketplace. Apply production Juicebox SDK patterns.

How do I install Juicebox SDK Patterns in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill juicebox-sdk-patterns -a claude-code`. Or copy the skill folder (skills/.curated/juicebox-sdk-patterns in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/juicebox-sdk-patterns in your project. Claude Code loads it when a task matches its description.

How do I install Juicebox SDK Patterns in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill juicebox-sdk-patterns -a codex`. Or copy the skill folder (skills/.curated/juicebox-sdk-patterns in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/juicebox-sdk-patterns in your project. Codex loads it when a task matches its description.

Can I use Juicebox SDK Patterns in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill juicebox-sdk-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/juicebox-sdk-patterns, .gemini/skills/juicebox-sdk-patterns, .github/skills/juicebox-sdk-patterns and .opencode/skills/juicebox-sdk-patterns in your project.

What does Juicebox SDK Patterns need to run?

Going by SKILL.md and its folder, Juicebox SDK Patterns needs credentials named JUICEBOX_API_KEY. Our summary lists: A credential in JUICEBOX_API_KEY. Its frontmatter pre-approves these tools: Read, Write, Edit. Compatibility (from SKILL.md): Designed for Claude Code.

Does Juicebox SDK Patterns access the network?

SKILL.md names 2 domains. In commands or code: api.juicebox.work and linkedin.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Juicebox SDK Patterns safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Juicebox SDK Patterns use?

Juicebox SDK Patterns is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Juicebox SDK Patterns use?

About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Juicebox SDK Patterns?

Skills that share tags, products or a category with Juicebox SDK Patterns: Social (coreyhaines31/marketingskills, 54k stars), Banner Design System (nextlevelbuilder/ui-ux-pro-max-skill, 135k stars), Agent Reach (Panniantong/Agent-Reach, 95k stars) and Ad Creative (LeoYeAI/openclaw-marketing-skills, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Juicebox SDK Patterns?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.