public/SKILLS/Data & Analysis/recommendations/SKILL.md
TasteRay API integration for personalized recommendations across verticals (movies, restaurants, products, travel, jobs). Use when you need to: (1) recommend movies, restaurants, products, travel, or jobs, (2) answer "what would I like" questions, (3) provide personalized recommendations based on preferences, (4) rank or score items for a user, (5) explain why something matches a user's taste, (6) build recommendation context from conversation, (7) integrate psychological profiles with recommendation systems.
npx skillsauth add eric861129/skills_all-in-one recommendationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Personalized recommendations through the TasteRay API.
When making recommendations or reviewing recommendation-related code—whether API integrations, context building, or presentation logic—your goal is to achieve a 10/10 score.
Score all work on a 0-10 scale based on adherence to the principles and techniques in this skill. Provide your assessment as X/10 with specific feedback on what's working and what needs improvement to reach 10/10.
A 10/10 means the work:
Iterate until you reach 10/10.
Understanding precedes recommendation.
Great recommendations come from deep understanding of the person—their preferences, constraints, history, and context. Never call the API without first building meaningful context from the conversation.
Key insight: A recommendation is only as good as the context that informed it.
The TasteRay Recommendation API provides personalized recommendations across multiple verticals.
https://api.tasteray.com
All requests require an API key in the header:
X-API-Key: your-api-key
| Endpoint | Method | Description |
|----------|--------|-------------|
| /v1/recommend | POST | Get personalized recommendations |
| /v1/explain | POST | Get detailed explanation for a single item |
| /v1/usage | GET | Check quota and usage statistics |
See: API Reference
Every recommendation follows this pattern:
1. Build context from conversation
↓
2. Call POST /v1/recommend
↓
3. Interpret confidence scores
↓
4. Present with personalized explanations
↓
5. Iterate based on feedback
Extract from the conversation:
POST /v1/recommend
{
"vertical": "movies",
"context": {
"preferences": ["dark comedies", "complex characters"],
"profile": "Values authenticity and depth. Drawn to stories about outsiders...",
"constraints": {"max_length_minutes": 120},
"history": [
{"item": "Parasite", "rating": 5},
{"item": "The Lobster", "rating": 4}
]
},
"count": 5
}
| Score | Meaning | Action | |-------|---------|--------| | 0.9+ | Strong match | Lead with this recommendation | | 0.7-0.9 | Good match | Present with confidence | | 0.5-0.7 | Moderate match | Include caveats, explain why it might not fit | | <0.5 | Weak match | Omit or explain significant uncertainty |
Don't just list items. Personalize the explanation:
Bad:
"Based on your preferences, I recommend Parasite."
Good:
"Given your appreciation for dark comedies with complex characters, Parasite would be a strong match. It has that same outsider perspective you responded to in The Lobster, but with sharper social commentary."
Use feedback to refine:
/v1/explainThe quality of recommendations depends entirely on context quality.
Explicit taste statements extracted from conversation:
"preferences": [
"dark comedies",
"complex anti-heroes",
"slow-burn narratives",
"dislikes: jump scares",
"dislikes: predictable endings"
]
Extraction patterns:
Free-form psychological profile. If using the elicitation skill, summarize findings:
"profile": "Values authenticity over polish. Drawn to outsider narratives
and stories about people who don't fit in. Appreciates moral ambiguity
and complex characters who aren't clearly good or bad. Responds strongly
to themes of class and social hierarchy. Prefers films that trust the
audience's intelligence."
Hard requirements that filter recommendations:
| Vertical | Common Constraints |
|----------|-------------------|
| Movies | max_length_minutes, release_year_min, exclude_genres |
| Restaurants | cuisine, price_range, location, dietary |
| Products | max_price, category, brand_exclude |
| Travel | budget, dates, accessibility, interests |
| Jobs | location, salary_min, remote, experience_level |
Past items with ratings (1-5 scale):
"history": [
{"item": "The Grand Budapest Hotel", "rating": 5},
{"item": "Transformers", "rating": 1},
{"item": "Moonlight", "rating": 4}
]
Guidelines:
See: Context Patterns Reference
Key context signals:
Constraint examples:
{
"max_length_minutes": 120,
"release_year_min": 2010,
"exclude_genres": ["horror", "musical"],
"languages": ["en", "fr"],
"streaming_services": ["netflix", "hulu"]
}
Key context signals:
Constraint examples:
{
"location": {"lat": 37.7749, "lng": -122.4194, "radius_miles": 5},
"price_range": [2, 3],
"dietary": ["vegetarian-options"],
"open_now": true
}
Key context signals:
Constraint examples:
{
"max_price": 500,
"category": "headphones",
"brand_exclude": ["beats"],
"features_required": ["noise-cancelling", "wireless"]
}
Key context signals:
Constraint examples:
{
"budget_per_day": 200,
"dates": {"start": "2024-06-01", "end": "2024-06-14"},
"accessibility": ["wheelchair-accessible"],
"climate": "warm",
"visa_free_for": "US"
}
Key context signals:
Constraint examples:
{
"location": "San Francisco",
"remote": "hybrid",
"salary_min": 150000,
"experience_level": "senior",
"company_size": ["startup", "mid"]
}
How you present recommendations matters as much as what you recommend.
High confidence (0.9+):
"This is a strong match for you. [Item] aligns well with your preference for [specific trait]."
Good confidence (0.7-0.9):
"[Item] should work well. It has [positive trait], though it's [caveat] which might not be exactly what you're looking for."
Moderate confidence (0.5-0.7):
"This one's a bit of a stretch, but [Item] might surprise you. It's [trait], which you haven't explicitly mentioned, but based on [pattern] you might appreciate it."
Low confidence (<0.5):
Generally omit, or: "If you're feeling adventurous, [Item] is quite different from your usual preferences, but [reason for including]."
For each recommendation, explain:
"Tell me more" → Use /v1/explain endpoint:
POST /v1/explain
{
"vertical": "movies",
"item": "Parasite",
"context": { /* same context */ }
}
"Not quite right" → Ask clarifying questions:
"What about that recommendation missed the mark? Too [X]? Not enough [Y]?"
"Something completely different" → Adjust approach:
"Let me try a different angle. If we set aside [previous focus], what are you actually in the mood for?"
See: Presentation Patterns Reference
The elicitation skill builds psychological profiles. Use these for richer recommendations.
Self-defining memories reveal:
Values elicitation reveals:
Schema detection reveals:
After elicitation, construct a profile string:
"profile": "Core value: authenticity. Drawn to narratives about
self-reinvention (redemption themes in life story). Responds to
understated emotion over melodrama. Achievement-oriented but values
creative expression over status markers. Formative memory involves
finding belonging through shared creative work—look for collaborative
or community themes."
The API returns 429 Too Many Requests when limits are exceeded.
| Tier | Requests/min | Requests/day | |------|--------------|--------------| | Free | 10 | 100 | | Pro | 60 | 5,000 | | Enterprise | 300 | Unlimited |
Handling:
Retry-After header for wait time401 Unauthorized - Invalid or missing API key.
Handling:
500+ - Server-side issues.
Handling:
See: API Reference for complete error codes.
What NOT to do:
Calling the API without building context first.
Instead: Always gather preferences, constraints, and history before requesting recommendations.
Presenting API response directly without personalization.
Instead: Interpret confidence scores and craft explanations that connect to the person's stated preferences.
Presenting weak matches (confidence < 0.5) with the same confidence as strong ones.
Instead: Either omit low-confidence recommendations or clearly caveat them.
Missing or misremembering stated constraints (budget, dietary, etc.).
Instead: Capture constraints explicitly and verify before each API call.
Not maintaining context across conversation turns.
Instead: Accumulate preferences, history, and constraints throughout the conversation.
Recommending without explaining why.
Instead: Every recommendation should include a personalized explanation connecting to stated preferences.
Not using negative feedback to improve subsequent recommendations.
Instead: When something misses, ask what went wrong and adjust context accordingly.
Detailed guides:
POST /v1/recommend
Headers: X-API-Key: your-key
{
"vertical": "movies",
"context": {
"preferences": ["at least one preference"]
},
"count": 5
}
POST /v1/recommend
{
"vertical": "movies",
"context": {
"preferences": ["dark comedies", "complex characters"],
"profile": "Values authenticity. Drawn to outsider narratives...",
"constraints": {
"max_length_minutes": 120,
"release_year_min": 2010
},
"history": [
{"item": "Parasite", "rating": 5, "id": "tt6751668"},
{"item": "The Lobster", "rating": 4, "id": "tt3464902"}
]
},
"count": 5,
"explain": true
}
| Score | Action | |-------|--------| | ≥0.9 | Lead recommendation, strong match | | 0.7-0.9 | Include confidently | | 0.5-0.7 | Include with caveats | | <0.5 | Omit or heavily caveat |
development
Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like "what if...", "what would happen if...", "what are the possibilities", "explore scenarios", "scenario analysis", "possibility space", "what could go wrong", "best case / worst case", "risk analysis", "contingency planning", "strategic options", or any question about uncertain futures. Also trigger when the user faces a fork-in-the-road decision, wants to stress-test an idea, or needs to think through consequences before committing.
development
Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
development
Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.
tools
Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), for research papers and journal submissions.