'Execute Glean primary workflow: search, chat, and AI-powered answers
Scanned 9/2/2026
Install to Claude Code
npx -y skills add jeremylongshore/tons-of-skills-marketplace --skill glean-core-workflow-a --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Glean Core Workflow A?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jeremylongshore-glean-core-workflow-a-tons-of-skills-marketplace)More formats (shields.io, HTML) on the badges page.
---
name: glean-core-workflow-a
description: 'Execute Glean primary workflow: search, chat, and AI-powered answers
across enterprise data.
Use when building search integrations, implementing Glean chat, or creating AI assistants.
Trigger: "glean search API", "glean chat", "glean AI answers", "enterprise search".
'
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep
version: 1.8.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- enterprise-search
- glean
compatibility: Designed for Claude Code
---
# Glean Core Workflow A: Search & Chat
## Overview
Build search and chat experiences using the Glean Client API. Covers full-text search with filters, AI-powered chat answers, and autocomplete suggestions.
## Prerequisites
- A scoped search identity, approved datasource filter, and synthetic terms that cannot retrieve company-sensitive material.
- User-consent and retention policy for any analytics, chat history, or feedback capture.
- A rollback path that disables the client or filter without changing source documents or connector ACLs.
## Instructions
### Step 1: Search with Filters and Facets
```typescript
const results = await fetch(`${GLEAN}/client/v1/search`, {
method: 'POST', headers: searchHeaders,
body: JSON.stringify({
query: 'kubernetes deployment best practices',
pageSize: 20,
requestOptions: {
datasourceFilter: 'confluence,github',
facetFilters: [{ fieldName: 'author', values: ['engineering-team'] }],
},
}),
}).then(r => r.json());
results.results?.forEach((r: any) => {
console.log(`[${r.datasource}] ${r.title}`);
console.log(` ${r.snippets?.[0]?.snippet ?? ''}`);
});
```
### Step 2: AI Chat (Glean Assistant)
```typescript
const chatResponse = await fetch(`${GLEAN}/client/v1/chat`, {
method: 'POST', headers: searchHeaders,
body: JSON.stringify({
messages: [{ role: 'USER', content: 'What is our deployment process for production?' }],
applicationId: 'my-app',
}),
}).then(r => r.json());
console.log('Answer:', chatResponse.messages?.[0]?.content);
console.log('Sources:', chatResponse.citations?.map((c: any) => c.title).join(', '));
```
### Step 3: Autocomplete / Suggestions
```typescript
const suggestions = await fetch(`${GLEAN}/client/v1/autocomplete`, {
method: 'POST', headers: searchHeaders,
body: JSON.stringify({ query: 'deploy', datasourceFilter: 'confluence' }),
}).then(r => r.json());
suggestions.results?.forEach((s: any) => console.log(` ${s.text}`));
```
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| Empty results | Query too specific or datasource not indexed | Broaden query, check datasource status |
| Chat returns no citations | Content not indexed for chat | Verify documents have body text |
| 403 on search | User permissions | Ensure token has search scope |
## Output
Return a redacted workflow receipt containing datasource scope, correlation ID, result-count band, allow/deny outcomes, and fallback used. Never record query text, titles, snippets, transcripts, or credentials.
## Examples
Run a fictional query against `sandbox-handbook`, verify one authorized identity sees the sample while a denied identity sees none, and record `scope=sandbox-handbook; allow=1; deny=0; fallback=none`.
## Resources
- [Search API](https://developers.glean.com/api/client-api/search/search)
- [Chat API](https://developers.glean.com/api/client-api/search/overview)
## Next Steps
For bulk indexing workflow, see `glean-core-workflow-b`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!