fireflies-core-workflow-b
Execute Fireflies.ai secondary workflow: Core Workflow B. Use when implementing secondary use case, or complementing primary workflow. Trigger with phrases like "fireflies secondary workflow", "secondary task with fireflies".
Install
mkdir -p .claude/skills/fireflies-core-workflow-b && curl -L -o skill.zip "https://mcp.directory/api/skills/download/5322" && unzip -o skill.zip -d .claude/skills/fireflies-core-workflow-b && rm skill.zipInstalls to .claude/skills/fireflies-core-workflow-b
About this skill
Fireflies.ai Core Workflow B -- Search, AskFred & Analytics
Overview
Secondary workflow: search across transcripts with keyword and date filters, use AskFred AI for natural language Q&A over meetings, and aggregate meeting analytics for reporting.
Prerequisites
- Completed
fireflies-install-authsetup - Familiarity with
fireflies-core-workflow-a - AI credits for AskFred queries (check Fireflies dashboard)
Instructions
Step 1: Search Transcripts by Keyword
const SEARCH_TRANSCRIPTS = `
query SearchMeetings(
$keyword: String,
$fromDate: DateTime,
$toDate: DateTime,
$participants: [String],
$limit: Int
) {
transcripts(
keyword: $keyword
fromDate: $fromDate
toDate: $toDate
participants: $participants
limit: $limit
) {
id title date duration
organizer_email
participants
summary { overview action_items keywords }
}
}
`;
// Search for "quarterly review" in the last 30 days
const results = await firefliesQuery(SEARCH_TRANSCRIPTS, {
keyword: "quarterly review",
fromDate: new Date(Date.now() - 30 * 86400000).toISOString(),
limit: 20,
});
console.log(`Found ${results.transcripts.length} matching meetings`);
for (const t of results.transcripts) {
console.log(` ${t.title} (${t.date}) - ${t.duration}min`);
}
Step 2: AskFred -- AI Q&A Over a Single Meeting
// Create a new AskFred thread tied to a transcript
const CREATE_THREAD = `
mutation CreateThread($input: CreateAskFredThreadInput!) {
createAskFredThread(input: $input) {
id
title
messages {
id
answer
suggested_queries
}
}
}
`;
const thread = await firefliesQuery(CREATE_THREAD, {
input: {
query: "What were the key decisions made in this meeting?",
transcript_id: "your-transcript-id",
},
});
console.log("Fred says:", thread.createAskFredThread.messages[0].answer);
console.log("Suggested follow-ups:", thread.createAskFredThread.messages[0].suggested_queries);
Step 3: AskFred -- Continue a Conversation
const CONTINUE_THREAD = `
mutation ContinueThread($thread_id: String!, $query: String!) {
continueAskFredThread(thread_id: $thread_id, query: $query) {
id
answer
suggested_queries
}
}
`;
const followUp = await firefliesQuery(CONTINUE_THREAD, {
thread_id: thread.createAskFredThread.id,
query: "Who is responsible for the action items?",
});
console.log("Follow-up:", followUp.continueAskFredThread.answer);
Step 4: AskFred -- Cross-Meeting Analysis
// Query across multiple meetings (no transcript_id = searches all)
const crossMeeting = await firefliesQuery(CREATE_THREAD, {
input: {
query: "What topics came up repeatedly across our sprint planning meetings?",
// filters can narrow scope without tying to a single transcript
},
});
Step 5: Meeting Analytics Aggregation
async function meetingAnalytics(days: number = 30) {
const since = new Date(Date.now() - days * 86400000).toISOString();
const data = await firefliesQuery(`
query Analytics($fromDate: DateTime) {
transcripts(fromDate: $fromDate, limit: 100) {
id title date duration
organizer_email participants
summary { action_items keywords }
analytics {
speakers { name duration word_count questions }
sentiments { positive_pct negative_pct }
}
}
}
`, { fromDate: since });
const meetings = data.transcripts;
const totalMinutes = meetings.reduce((s: number, m: any) => s + (m.duration || 0), 0);
const totalActions = meetings.reduce(
(s: number, m: any) => s + (m.summary?.action_items?.length || 0), 0
);
// Top keywords across all meetings
const keywordCounts: Record<string, number> = {};
for (const m of meetings) {
for (const kw of m.summary?.keywords || []) {
keywordCounts[kw] = (keywordCounts[kw] || 0) + 1;
}
}
const topKeywords = Object.entries(keywordCounts)
.sort((a, b) => b[1] - a[1])
.slice(0, 10);
return {
period: `${days} days`,
totalMeetings: meetings.length,
totalHours: (totalMinutes / 60).toFixed(1),
totalActionItems: totalActions,
avgDuration: Math.round(totalMinutes / meetings.length),
topKeywords,
};
}
Step 6: List and Manage AskFred Threads
// List all threads
const threads = await firefliesQuery(`{
askfred_threads {
id title transcript_id created_at
}
}`);
// Delete a thread (cleanup)
await firefliesQuery(`
mutation DeleteThread($id: String!) {
deleteAskFredThread(thread_id: $id)
}
`, { id: "thread-id-to-delete" });
AskFred Credits
AskFred API calls consume AI credits. If you receive require_ai_credits, visit the Upgrade section in your Fireflies dashboard to add credits. Budget accordingly for production use.
Error Handling
| Error | Cause | Solution |
|---|---|---|
require_ai_credits | No AI credits remaining | Purchase credits in Fireflies dashboard |
| Empty search results | No matching transcripts | Broaden keyword or date range |
| Thread not found | Invalid thread ID | List threads first to get valid IDs |
| Rate limit 429 | Too many requests | Implement backoff per fireflies-rate-limits |
Output
- Keyword search results across transcript history
- AskFred AI-powered Q&A threads with suggested follow-ups
- Cross-meeting analytics report with keyword trends
Resources
Next Steps
For common errors, see fireflies-common-errors.
More by jeremylongshore
View all skills by jeremylongshore →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
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.
Related MCP Servers
Browse all serversConnect Blender to Claude AI for seamless 3D modeling. Use AI 3D model generator tools for faster, intuitive, interactiv
AIPo Labs — dynamic search and execute any tools available on ACI.dev for fast, flexible AI-powered workflows.
TaskManager streamlines project tracking and time management with efficient task queues, ideal for managing projects sof
Access mac keyboard shortcuts for screen capture and automate workflows with Siri Shortcuts. Streamline hotkey screensho
Integrate with Salesforce CRM to manage records, execute queries, and automate workflows using natural language interact
Easily interact with MySQL databases: execute queries, manage connections, and streamline your data workflow using MySQL
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.