Implement Juicebox data privacy and handling.
Use when managing personal data, implementing GDPR compliance,
or handling sensitive candidate information.
Trigger with phrases like "juicebox data privacy", "juicebox GDPR",
"juicebox PII handling", "juicebox data compliance".
Juicebox AI processes people datasets for talent intelligence and analysis workflows. Data types include people search results, enriched profile records (employment history, skills, social links), analysis exports, and outreach logs. Profile data often contains personal information governed by GDPR, CCPA, and recruitment privacy regulations. All enrichment results must be handled with consent tracking, purpose limitation, and right-to-deletion support. Contact data requires field-level encryption and strict access controls to prevent unauthorized disclosure.
Data Classification
Data Type
Sensitivity
Retention
Encryption
Search results
Low
Session only (ephemeral)
TLS in transit
Enriched profiles
High (PII)
Per data policy, max 1 year
AES-256 at rest
Contact data (email/phone)
High (PII)
Until candidate objects or deletion
Field-level encryption
Analysis exports
Medium
90 days
AES-256 at rest
Outreach logs
Medium
6 months
AES-256 at rest
Data Import
interface JuiceboxProfile {
id: string; name: string; email?: string; phone?: string;
company: string; title: string; skills: string[];
source: string; enrichedAt: string;
}
async function importPeopleDataset(query: string, maxResults = 100): Promise<JuiceboxProfile[]> {
const profiles: JuiceboxProfile[] = [];
let offset = 0;
do {
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, limit: 50, offset }),
});
const data = await res.json();
if (!data.results?.length) break;
for (const p of data.results) {
if (!p.id || !p.name) throw new Error(`Invalid profile: missing required fields`);
profiles.push(p);
}
offset += 50;
} while (profiles.length < maxResults);
return profiles;
}