evernote-cost-tuning
Techniques for managing Evernote API usage, storage limits, and file resource costs effectively.
Install
mkdir -p .claude/skills/evernote-cost-tuning && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3093" && unzip -o skill.zip -d .claude/skills/evernote-cost-tuning && rm skill.zipInstalls to .claude/skills/evernote-cost-tuning
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Optimize Evernote integration costs and resource usage.Key capabilities
- →Monitor monthly upload quota status, including used, remaining, and reset date.
- →Compress images by resizing and converting formats before attaching to notes.
- →Estimate note size to check against remaining quota before creation.
- →Identify and clean up large notes to reclaim storage space.
- →Set up threshold-based alerts for upload usage.
How it works
This skill queries Evernote user accounting data to track upload quotas and provides methods to optimize resource usage by compressing images and estimating note sizes before upload. It also supports identifying large notes for cleanup and setting up alerts.
Inputs & outputs
When to use evernote-cost-tuning
- →Monitoring monthly upload quotas
- →Compressing images before note attachment
- →Resizing large assets to save space
- →Implementing quota-aware logic for app features
About this skill
Evernote Cost Tuning
Overview
Optimize resource usage and manage costs in Evernote integrations, focusing on monthly upload quotas, storage efficiency, image compression, and account limit monitoring.
Prerequisites
- Understanding of Evernote account tiers (Basic: 60MB/mo, Premium: 10GB/mo, Business: 20GB/mo)
- Access to user quota information via
user.accounting - Monitoring infrastructure for alerts
Instructions
Step 1: Quota Monitoring
Query userStore.getUser() to access user.accounting which contains uploadLimit, uploaded, and uploadLimitEnd. Calculate remaining quota and percentage used.
async function getQuotaStatus(userStore) {
const user = await userStore.getUser();
const { uploadLimit, uploaded, uploadLimitEnd } = user.accounting;
return {
totalMB: Math.round(uploadLimit / 1024 / 1024),
usedMB: Math.round(uploaded / 1024 / 1024),
remainingMB: Math.round((uploadLimit - uploaded) / 1024 / 1024),
percentUsed: Math.round((uploaded / uploadLimit) * 100),
resetsAt: new Date(uploadLimitEnd)
};
}
Step 2: Resource Optimization
Compress images before attaching to notes. Resize large images to a maximum dimension (e.g., 1920px). Convert PNG screenshots to JPEG for smaller file sizes. Skip attaching files that exceed the single-note size limit (25MB for Basic, 200MB for Premium).
function estimateNoteSize(content, resources = []) {
const contentBytes = Buffer.byteLength(content, 'utf8');
const resourceBytes = resources.reduce((sum, r) => sum + r.data.size, 0);
return contentBytes + resourceBytes;
}
function canUpload(noteSize, remainingQuota) {
return noteSize < remainingQuota;
}
Step 3: Efficient Note Creation
Check quota before creating notes with large attachments. Use findNotesMetadata() for read operations (zero upload cost). Batch small notes into single notes where appropriate.
Step 4: Storage Cleanup
Find large notes consuming quota. List notes sorted by content length to identify optimization candidates. Remove unused resources and delete notes in trash to reclaim space.
Step 5: Quota Alerts
Send alerts when upload usage exceeds thresholds (e.g., 75%, 90%, 95%). Log quota status after each upload operation for trend analysis.
For the complete quota monitor, image optimizer, cleanup utilities, and alert system, see Implementation Guide.
Account Limits Reference
| Limit | Basic | Premium | Business |
|---|---|---|---|
| Monthly upload | 60 MB | 10 GB | 20 GB/user |
| Single note size | 25 MB | 200 MB | 200 MB |
| Notebooks | 250 | 250 | 10,000 |
| Tags | 100,000 | 100,000 | 100,000 |
| Notes | 100,000 | 100,000 | 500,000 |
Output
- Quota monitoring service with percentage tracking
- Image compression pipeline for resource optimization
- Pre-upload quota check with size estimation
- Storage cleanup utilities for large notes
- Threshold-based alert system for quota usage
Error Handling
| Error | Cause | Solution |
|---|---|---|
QUOTA_REACHED | Monthly upload limit exceeded | Wait for quota reset at uploadLimitEnd |
LIMIT_REACHED | Too many notebooks or tags | Delete unused notebooks, merge duplicate tags |
DATA_REQUIRED | Empty note after optimization | Ensure note still has content after compression |
BAD_DATA_FORMAT | Attachment hash mismatch | Recompute MD5 hash after image compression |
Resources
Next Steps
For architecture patterns, see evernote-reference-architecture.
Examples
Quota dashboard: Build a dashboard showing current upload usage (MB used / total), days until reset, largest notes by size, and projected usage based on recent trends.
Image pipeline: Before attaching images, resize to max 1920px width, convert PNG to JPEG at 80% quality, check resulting size against remaining quota, and skip if insufficient.
When not to use it
- →When the monthly upload limit has been exceeded.
- →When the number of notebooks or tags exceeds account limits.
- →When an optimized note becomes empty after compression.
Prerequisites
Limitations
- →Subject to Evernote account tiers and their respective monthly upload limits.
- →Subject to single note size limits (25MB for Basic, 200MB for Premium).
- →Requires recomputing MD5 hash after image compression to avoid `BAD_DATA_FORMAT` errors.
How it compares
This skill automates the process of monitoring and optimizing Evernote resource usage, providing proactive management of quotas and storage, unlike manual checks and adjustments.
Compared to similar skills
evernote-cost-tuning side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| evernote-cost-tuning (this skill) | 1 | 27d | No flags | Intermediate |
| fastapi-templates | 520 | 2mo | No flags | Intermediate |
| android-kotlin-development | 268 | 5mo | Review | Advanced |
| mcp-builder | 136 | 3mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
android-kotlin-development
aj-geddes
Develop native Android apps with Kotlin. Covers MVVM with Jetpack, Compose for modern UI, Retrofit for API calls, Room for local storage, and navigation architecture.
mcp-builder
anthropics
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
fastapi-pro
sickn33
Build high-performance async APIs with FastAPI, SQLAlchemy 2.0, and Pydantic V2. Master microservices, WebSockets, and modern Python async patterns. Use PROACTIVELY for FastAPI development, async optimization, or API architecture.
api-design-principles
wshobson
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.