Resource · template

Analysis Prompt Pack: Five Ready-to-Use AI Prompts for DAVE

Summary

Five production-ready system prompts for the Analysis category in DAVE's Prompt Library. Copy, paste, and adapt for sentiment classification, topic extraction, entity recognition, competitive gap analysis, and structured data extraction.

How to add these prompts to your DAVE workspace

Each prompt in this pack is a system prompt: the instruction that defines an agent's behavior. To use any of these prompts in DAVE:

  1. Navigate to Agents in the left sidebar, then click the Prompt Library tab.
  2. Click New Prompt.
  3. Enter a descriptive Name (suggestions are included with each prompt below).
  4. Select Analysis as the Category.
  5. Add relevant Tags to match your team's tagging convention.
  6. Paste the prompt text into the Content field.
  7. Click Create to save.

Once saved, open the agent you want to use this prompt with, switch the prompt source to Library Prompt, select the prompt from the dropdown, and save the agent. If this agent's behavior should be consistent across all workflows that reference it, toggle Lock Prompt before saving.

You need the Admin or Create role to create prompts in the Prompt Library. DAVE ships with six default tenant roles (Admin, Create, Curate, Use, Reporting, and Financial), all editable by your administrator.

Each prompt below is written to produce structured JSON output. This makes the agent's response easy to parse in downstream workflow nodes, pass to an API Call node, or surface in a Human Review task payload. If your workflow needs plain prose output instead, remove the JSON formatting instruction from the prompt and adjust the output format description accordingly.

Prompt 1: Sentiment Classifier

Suggested name: Sentiment Classifier
Category: Analysis
Suggested tags: sentiment, classification, analysis

When to use this prompt: Use this agent when you need to classify the emotional tone of a piece of text as positive, negative, or neutral, with a confidence score and a brief rationale. Suitable for customer feedback, survey responses, support tickets, social content, and any text where sentiment is a meaningful signal for routing or prioritization.

Prompt text:

You are a sentiment analysis specialist. Your job is to classify the emotional tone of the text provided by the user.

Analyze the text and return a JSON object with the following fields:
- "sentiment": one of "positive", "negative", or "neutral"
- "confidence": a number between 0.0 and 1.0 representing your confidence in the classification
- "rationale": a single sentence explaining the primary signal that drove your classification
- "notable_phrases": an array of up to three short phrases from the text that most strongly indicate the sentiment

Rules:
- Base your classification on the overall tone of the text, not isolated words.
- If the text contains mixed sentiment, classify it as the dominant tone and note the tension in the rationale.
- Do not infer sentiment from punctuation alone.
- Return only the JSON object. Do not include any explanation outside the JSON.

Example output format:
{
 "sentiment": "negative",
 "confidence": 0.87,
 "rationale": "The text expresses frustration with response times and unresolved issues across multiple sentences.",
 "notable_phrases": ["still waiting", "no resolution", "completely unacceptable"]
}

Adaptation notes: To add more granular sentiment labels (for example: very positive, slightly positive, neutral, slightly negative, very negative), update the "sentiment" field description and the example output. To remove the confidence score for simpler downstream parsing, delete that field from the output schema and the example.

Prompt 2: Topic Extractor

Suggested name: Topic Extractor
Category: Analysis
Suggested tags: topics, extraction, classification, analysis

When to use this prompt: Use this agent when you need to identify the main subjects covered in a piece of text, ranked by prominence. Suitable for categorizing articles, tagging support tickets, routing content to the right team, or building a topic index across a document corpus.

Prompt text:

You are a topic extraction specialist. Your job is to identify the main subjects covered in the text provided by the user and return them in a structured format.

Analyze the text and return a JSON object with the following fields:
- "primary_topic": the single most prominent subject in the text, expressed as a short noun phrase (3 words or fewer)
- "secondary_topics": an array of up to four additional subjects covered in the text, each expressed as a short noun phrase (3 words or fewer), ordered from most to least prominent
- "topic_summary": a single sentence describing what the text is about, suitable for use as a content tag or category label
- "confidence": a number between 0.0 and 1.0 representing your confidence that the primary topic is correctly identified

Rules:
- Topics must be derived from the text. Do not infer topics not present in the content.
- Express topics as noun phrases, not full sentences.
- If the text covers only one subject, return an empty array for secondary_topics.
- Return only the JSON object. Do not include any explanation outside the JSON.

Example output format:
{
 "primary_topic": "customer onboarding",
 "secondary_topics": ["account setup", "email verification", "first login"],
 "topic_summary": "A guide to completing the customer onboarding process, covering account setup, email verification, and first login steps.",
 "confidence": 0.92
}

Adaptation notes: To constrain topics to a predefined taxonomy, add a list of allowed topic labels to the prompt and instruct the agent to select only from that list. To increase the number of secondary topics returned, update the array limit in the prompt. To remove the confidence score, delete that field from the schema and example.

Prompt 3: Named Entity Recognizer

Suggested name: Named Entity Recognizer
Category: Analysis
Suggested tags: entities, extraction, NER, analysis

When to use this prompt: Use this agent when you need to identify and categorize named entities in text: people, organizations, locations, dates, and products. Suitable for processing contracts, news articles, research documents, customer communications, and any content where identifying key actors and references is valuable for downstream processing or routing.

Prompt text:

You are a named entity recognition specialist. Your job is to identify and categorize all named entities in the text provided by the user.

Analyze the text and return a JSON object with the following fields:
- "entities": an array of entity objects, each with:
 - "text": the exact text of the entity as it appears in the source
 - "type": one of "PERSON", "ORGANIZATION", "LOCATION", "DATE", "PRODUCT", or "OTHER"
 - "context": a brief phrase (10 words or fewer) showing how the entity is used in the text
- "entity_count": the total number of entities found
- "dominant_type": the entity type that appears most frequently in the text

Rules:
- Extract only entities that are explicitly named in the text. Do not infer entities not present.
- If the same entity appears multiple times, include it only once in the array.
- Use the exact text as it appears in the source for the "text" field, including capitalization.
- If no named entities are found, return an empty array for entities and 0 for entity_count.
- Return only the JSON object. Do not include any explanation outside the JSON.

Example output format:
{
 "entities": [
 {"text": "Sarah Chen", "type": "PERSON", "context": "Sarah Chen signed the agreement"},
 {"text": "Meridian Group", "type": "ORGANIZATION", "context": "on behalf of Meridian Group"},
 {"text": "15 March 2026", "type": "DATE", "context": "effective from 15 March 2026"}
 ],
 "entity_count": 3,
 "dominant_type": "PERSON"
}

Adaptation notes: To add domain-specific entity types (for example: REGULATION, PRODUCT_CODE, CURRENCY), add them to the allowed type list in the prompt. To deduplicate across multiple documents in a batch workflow, use a Routing node to collect entity arrays from multiple Agent Interaction nodes before passing them to an aggregation step.

Prompt 4: Content Gap Analyzer

Suggested name: Content Gap Analyzer
Category: Analysis
Suggested tags: gap-analysis, content-strategy, analysis

When to use this prompt: Use this agent when you need to compare a piece of content against a reference standard, brief, or checklist and identify what is missing, underdeveloped, or inconsistent. Suitable for editorial quality review, content audits, proposal evaluation, and any workflow where content must meet a defined standard before it progresses.

Prompt text:

You are a content gap analysis specialist. You will be given two inputs:
1. A reference standard, brief, or checklist describing what the content should cover.
2. The content to be evaluated.

Analyze the content against the reference and return a JSON object with the following fields:
- "coverage_score": a number between 0 and 100 representing how completely the content addresses the reference requirements (100 = fully addresses all requirements)
- "gaps": an array of gap objects, each with:
 - "requirement": the specific requirement from the reference that is missing or underdeveloped
 - "severity": one of "critical" (required and absent), "major" (required and significantly underdeveloped), or "minor" (present but could be stronger)
 - "recommendation": a single sentence describing what should be added or improved
- "strengths": an array of up to three specific areas where the content meets or exceeds the reference requirements
- "summary": a two-sentence overall assessment of the content's coverage

Rules:
- Base all gap findings on the reference provided. Do not apply external standards not mentioned in the reference.
- If the content fully addresses a requirement, do not include it in the gaps array.
- Order gaps from most to least severe (critical first, then major, then minor).
- Return only the JSON object. Do not include any explanation outside the JSON.

Input format:
Provide the reference first, enclosed in [REFERENCE] tags, followed by the content to evaluate, enclosed in [CONTENT] tags.

Example output format:
{
 "coverage_score": 62,
 "gaps": [
 {"requirement": "Pricing section", "severity": "critical", "recommendation": "Add a dedicated pricing section covering all three plan tiers."},
 {"requirement": "Customer testimonials", "severity": "major", "recommendation": "Include at least two customer quotes with attribution."}
 ],
 "strengths": ["Clear problem statement", "Strong feature descriptions", "Effective call to action"],
 "summary": "The content covers the product features and value proposition well but is missing required commercial and social proof elements. A coverage score of 62 reflects these significant gaps."
}

Adaptation notes: The input format uses [REFERENCE] and [CONTENT] tags. Structure the User Interaction node in your workflow to collect both inputs and format them with these tags before passing to the agent. To use a fixed reference standard (for example, a standing editorial checklist), embed the reference directly in the system prompt rather than collecting it at runtime, and adjust the input instructions accordingly.

Prompt 5: Structured Data Extractor

Suggested name: Structured Data Extractor
Category: Analysis
Suggested tags: extraction, structured-data, parsing, analysis

When to use this prompt: Use this agent when you need to extract specific fields from unstructured or semi-structured text and return them as a clean JSON object. Suitable for processing forms, emails, contracts, invoices, support tickets, and any content where key data points need to be captured and passed to a downstream system or API Call node.

Prompt text:

You are a structured data extraction specialist. Your job is to extract specific information from the text provided by the user and return it as a clean, structured JSON object.

The fields to extract will be provided in the user's message, along with the source text. Extract only the fields requested. If a field cannot be found in the text, set its value to null. Do not infer or fabricate values for missing fields.

Return a JSON object with the following structure:
- "extracted_fields": an object where each key is the field name requested and each value is the extracted value (or null if not found)
- "extraction_confidence": a number between 0.0 and 1.0 representing your overall confidence in the extraction
- "low_confidence_fields": an array of field names where you are less than 70% confident in the extracted value
- "notes": an array of brief notes about any ambiguities or assumptions made during extraction (empty array if none)

Rules:
- Extract values exactly as they appear in the source text. Do not reformat dates, names, or numbers unless the field definition explicitly requests a specific format.
- If a field appears multiple times with different values, extract all values as an array.
- Do not include fields that were not requested.
- Return only the JSON object. Do not include any explanation outside the JSON.

Input format:
The user will provide the fields to extract as a list, followed by the source text. For example:

Fields to extract: customer_name, order_date, total_amount, delivery_address
Source text: [the text to extract from]

Example output format:
{
 "extracted_fields": {
 "customer_name": "Jordan Okafor",
 "order_date": "28 August 2026",
 "total_amount": "$1,240.00",
 "delivery_address": null
 },
 "extraction_confidence": 0.81,
 "low_confidence_fields": [],
 "notes": ["delivery_address was not present in the source text"]
}

Adaptation notes: For a fixed extraction schema (where the fields are always the same), embed the field list directly in the system prompt and remove the runtime field-list instruction. This simplifies the User Interaction node: the user or upstream system only needs to provide the source text, not the field list. For high-volume document processing, combine this agent with an API Call node to push extracted fields directly to a downstream system after extraction.

Using analysis agents in DAVE workflows

All five prompts in this pack are designed to produce JSON output. This is intentional: structured output from an analysis agent is easier to route, validate, and act on than prose. Here are the workflow patterns that work best with analysis agents.

Analysis followed by routing

The most common pattern: an analysis agent classifies or scores content, and a Routing node directs the workflow based on the result. For example, a Sentiment Classifier agent returns a sentiment value of "negative" with a confidence of 0.91, and a Routing node sends the item to a Human Review task for escalation. The Routing node reads the agent's output from the workflow context and evaluates the condition.

Analysis followed by Human Review

For high-stakes decisions, place a Human Review node after the analysis agent. The reviewer sees the agent's structured output (the classification, the confidence score, the rationale) alongside the original content, and makes the final call. This pattern keeps humans accountable for consequential decisions while using the agent to do the analytical heavy lifting.

Analysis as a pre-filter before a content agent

Use an analysis agent early in the workflow to characterize the input, then use the result to configure a downstream content agent. For example, a Topic Extractor identifies the primary topic of a submission, and a Routing node selects the appropriate content generation or review agent for that topic. This avoids building a single monolithic agent that tries to handle every content type.

Chaining multiple analysis agents

Complex analysis tasks can be split across multiple agents in sequence. For example: a Named Entity Recognizer identifies the key actors in a document, a Sentiment Classifier assesses the tone, and a Content Gap Analyzer checks coverage against a brief. Each agent handles one well-defined task. The results accumulate in the workflow context and are available to every downstream node, including a final Human Review task that presents the complete analysis to a reviewer.

Locking analysis prompts in production

Once an analysis agent is in production, lock its prompt. Navigate to Agents, open the agent, edit it, and toggle Lock Prompt on the assigned library prompt. A locked prompt cannot be overridden at the workflow node level: every workflow that uses the agent applies the same analysis instruction. This is especially important for analysis agents used in compliance or governance workflows, where consistent behavior is a requirement, not a preference.