glean-cost-tuning
Optimize Glean costs by managing indexed content volume, datasource efficiency, and connector resource usage. Trigger: "glean costs", "glean optimization", "reduce glean indexing".
What this skill does
# Glean Cost Tuning
## Overview
Glean pricing scales with indexed content volume and per-seat user count, making document indexing volume and search query frequency the primary cost drivers. Enterprise deployments typically connect dozens of datasources, each pushing thousands of documents into the index. Without active content governance, stale drafts, archived pages, and near-empty documents inflate the index by 30-50%, driving up costs with zero search value. Pruning irrelevant content and using incremental indexing are the highest-leverage optimizations.
## Cost Breakdown
| Component | Cost Driver | Optimization |
|-----------|------------|--------------|
| Document indexing | Volume of indexed content across all sources | Filter drafts, templates, and archived content pre-index |
| User seats | Per-seat licensing | Audit active users quarterly; deprovision inactive accounts |
| Search queries | Query volume across the organization | Cache frequent queries; use search analytics to identify redundant patterns |
| Datasource connectors | Number of active connectors to maintain | Consolidate overlapping sources; remove unused connectors |
| Content storage | Size of indexed documents | Truncate body to 50KB; skip attachments over 10MB |
## API Call Reduction
```typescript
class GleanIndexFilter {
private staleThreshold = 365 * 24 * 60 * 60 * 1000; // 12 months
shouldIndex(doc: { status: string; updatedAt: number; title: string; content: string }): boolean {
if (doc.status === 'draft' || doc.status === 'archived') return false;
if (Date.now() - doc.updatedAt > this.staleThreshold) return false;
if (doc.title.startsWith('[Template]')) return false;
if (doc.content.length < 50) return false;
return true;
}
async incrementalIndex(docs: any[], lastSyncTimestamp: number): Promise<any[]> {
// Only process documents modified since last sync — reduces indexing calls by 80-90%
const modified = docs.filter(d => d.updatedAt > lastSyncTimestamp);
const eligible = modified.filter(d => this.shouldIndex(d));
return eligible.map(d => ({
...d,
content: d.content.slice(0, 50_000) // Truncate to 50KB
}));
}
}
```
## Usage Monitoring
```typescript
class GleanCostMonitor {
private indexedDocs = 0;
private queriesThisHour = 0;
private budgetDocs = 100_000;
recordIndexed(count: number): void {
this.indexedDocs += count;
const utilization = (this.indexedDocs / this.budgetDocs) * 100;
if (utilization > 80) {
console.warn(`Glean index at ${utilization.toFixed(0)}% capacity: ${this.indexedDocs}/${this.budgetDocs} docs`);
}
}
getUtilization(): string {
return `${((this.indexedDocs / this.budgetDocs) * 100).toFixed(1)}% index capacity used`;
}
}
```
## Cost Optimization Checklist
- [ ] Filter drafts, templates, and archived documents before indexing
- [ ] Prune documents not updated in 12+ months
- [ ] Use incremental indexing — only process changed documents
- [ ] Truncate document bodies to 50KB maximum
- [ ] Consolidate overlapping datasource connectors
- [ ] Audit user seats quarterly and deprovision inactive accounts
- [ ] Skip attachments larger than 10MB
- [ ] Monitor index utilization with 80% threshold alerts
## Error Handling
| Issue | Cause | Fix |
|-------|-------|-----|
| Index bloat exceeding budget | No content filtering on connectors | Apply shouldIndex filter to all datasource pipelines |
| Stale search results | Deleted docs still in index | Run nightly reconciliation to remove orphaned entries |
| Connector timeouts | Source system rate limiting | Implement backoff and schedule syncs during off-peak |
| Duplicate documents indexed | Same content in multiple datasources | Deduplicate by content hash before indexing |
| Query costs spiking | Bot or automated search traffic | Rate-limit API search consumers; whitelist known clients |
## Resources
- [Glean Developer Portal](https://developers.glean.com/)
- [Glean Pricing](https://www.glean.com/pricing)
## Next Steps
See `glean-performance-tuning`.
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.