Why Use This
This skill provides specialized capabilities for jeremylongshore's codebase.
Use Cases
- Developing new features in the jeremylongshore repository
- Refactoring existing code to follow jeremylongshore standards
- Understanding and working with jeremylongshore's codebase structure
Install Guide
2 steps - 1
- 2
Install inside Ananke
Click Install Skill, paste the link below, then press Install.
https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/main/plugins/saas-packs/juicebox-pack/skills/juicebox-core-workflow-a
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Updated At May 30, 2026, 01:51 AM
Skill Stats
SKILL.md 85 Lines
Total Files 1
Total Size 2.0 KB
License MIT
---
name: juicebox-core-workflow-a
description: 'Execute Juicebox people search with power filters and ATS export.
Trigger: "find candidates", "people search", "juicebox search".
'
allowed-tools: Read, Write, Edit, Bash(npm:*), Grep
version: 1.0.0
license: MIT
author: Jeremy Longshore <[email protected]>
tags:
- saas
- recruiting
- juicebox
compatibility: Designed for Claude Code
---
# Juicebox People Search Workflow
## Overview
Complete candidate sourcing: natural language search with power filters, scoring, and export to 41+ ATS systems.
## Instructions
### Step 1: Power Filter Search
```typescript
const results = await client.search({
query: 'backend engineer distributed systems',
filters: {
location: ['San Francisco', 'Seattle', 'Remote'],
experience_years: { min: 3, max: 10 },
skills: ['Go', 'Kubernetes', 'distributed systems'],
company_size: '100-1000',
exclude_companies: ['CurrentEmployer']
},
sort: 'relevance', limit: 50
});
```
### Step 2: Score Candidates
```typescript
function scoreCandidate(profile, targetSkills: string[]) {
let score = 0;
const matched = profile.skills.filter(s =>
targetSkills.some(t => s.toLowerCase().includes(t.toLowerCase()))
);
score += matched.length * 20;
if (profile.experience_years >= 5) score += 30;
return { profile, score, matchedSkills: matched };
}
const ranked = results.profiles
.map(p => scoreCandidate(p, ['Go', 'Kubernetes']))
.sort((a, b) => b.score - a.score);
```
### Step 3: Export to ATS
```typescript
await client.export({
profiles: ranked.slice(0, 20).map(r => r.profile.id),
destination: 'greenhouse', // lever, ashby, recruiterflow, etc.
job_id: 'job_abc123'
});
```
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| Low results | Filters too strict | Relax experience or location |
| Duplicates | Overlapping searches | Deduplicate by LinkedIn URL |
## Resources
- Search Filters
- [ATS Integrations](https://juicebox.ai/integrations)
## Next Steps
For enrichment, see `juicebox-core-workflow-b`.