Execute Juicebox production checklist. Trigger: "juicebox production", "deploy juicebox".
Juicebox provides AI-powered people search and analysis, enabling dataset creation, candidate discovery, and structured analysis across professional profiles. A production integration queries datasets, retrieves analysis results, and powers talent intelligence workflows. Failures mean missed candidates, stale analysis data, or quota exhaustion that blocks time-sensitive searches.
JUICEBOX_API_KEY stored in secrets manager (not config files)https://api.juicebox.ai/v1)async function checkJuiceboxReadiness(): Promise<void> {
const checks: { name: string; pass: boolean; detail: string }[] = [];
// API connectivity
try {
const res = await fetch('https://api.juicebox.ai/v1/search', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.JUICEBOX_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: 'test', limit: 1 }),
});
checks.push({ name: 'Juicebox API', pass: res.ok, detail: res.ok ? 'Connected' : `HTTP ${res.status}` });
} catch (e: any) { checks.push({ name: 'Juicebox API', pass: false, detail: e.message }); }
// Credentials present
checks.push({ name: 'API Key Set', pass: !!process.env.JUICEBOX_API_KEY, detail: process.env.JUICEBOX_API_KEY ? 'Present' : 'MISSING' });
// Quota check
try {
const res = await fetch('https://api.juicebox.ai/v1/usage', {
headers: { Authorization: `Bearer ${process.env.JUICEBOX_API_KEY}` },
});
const data = await res.json();
const pct = data?.usagePercent || 0;
checks.push({ name: 'Quota Headroom', pass: pct < 80, detail: `${pct}% used` });
} catch (e: any) { checks.push({ name: 'Quota Headroom', pass: false, detail: e.message }); }
for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`);
}
checkJuiceboxReadiness();| Check | Risk if Skipped | Priority |
|---|---|---|
| API key rotation | Expired key blocks all searches | P1 |
| GDPR/CCPA retention | Regulatory violation on candidate data | P1 |
| Quota monitoring | Exhaustion blocks time-sensitive searches | P2 |
| Rate limit handling | Bulk analysis requests rejected | P2 |
| Data encryption at rest | Candidate PII exposure risk | P3 |
Create a readiness receipt with revision, synthetic canary, source/destination checks, suppression result, aggregate assertions, approvals, outcome, retention, and rollback reference. Exclude identities, contact details, enrichment values, and secrets.
revision=r44; canary=synthetic-prospects; source=approved; destination=approved; suppression=pass; contacts_exported=0; outcome=hold-for-owner; rollback=r43 is a complete canary decision.
See juicebox-security-basics for candidate data protection and compliance.
88dcf65
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.