Inferensys

Prompt

Missing Signature Block Detection Prompt

A practical prompt playbook for using Missing Signature Block Detection Prompt in production AI workflows to verify execution status of agreements and flag unsigned required signatories.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Determine when to deploy the Missing Signature Block Detection Prompt in a document automation pipeline and when to choose a different approach.

This prompt is designed for document automation engineers who need to programmatically verify whether agreements have been fully executed. It detects signature blocks within a document, determines the execution status of each block (signed, unsigned, or missing entirely), and cross-references found signatures against a list of required signatories. The prompt distinguishes between wet-ink signatures, digital signature placeholders, typed names that may or may not constitute valid e-signatures, and completely absent blocks. Use this when your ingestion pipeline must route incomplete documents for human review before downstream processing, or when you need an audit trail of execution completeness. This prompt belongs in the document validation layer, after text extraction but before contract data is committed to a system of record.

Deploy this prompt when you have a known list of required signatories and need structured output that downstream systems can act on—such as a JSON payload with status fields per signatory (signed, unsigned, missing_block, ambiguous), page references, and confidence scores. It is appropriate for post-OCR text, native digital PDFs, and mixed document sets where execution completeness determines routing. The prompt expects pre-extracted document text and a signatory list as inputs. Do not use this prompt for handwriting analysis on raw image files without OCR, for documents where the list of required signatories is unknown or must be inferred, or for wet-ink verification that requires forensic image comparison. Those tasks require specialized vision models or human review.

Before wiring this into production, define your tolerance for false negatives on missing signatures. A missed unsigned block that proceeds to downstream systems can create legal exposure, while an overly aggressive flagging strategy floods the human review queue. Start by running the prompt against a golden dataset of 50–100 documents with known execution statuses, and measure precision and recall per signatory. Pay particular attention to documents where signature blocks appear on different pages than expected, where signatory names have minor variations from the required list, or where digital signature widgets are present but not yet applied. These edge cases are the most common failure modes. If your document set includes contracts with complex multi-party execution blocks, schedules signed separately, or counterparty signature pages that arrive as separate files, you will need to compose this prompt with a multi-document assembly step before execution checking.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Missing Signature Block Detection Prompt works, where it fails, and what you must provide before deploying it into a document pipeline.

01

Good Fit: Executed Agreements

Use when: processing finalized PDFs of contracts, NDAs, or service agreements that contain wet-ink or digital signature blocks. The prompt reliably distinguishes signed from unsigned blocks and identifies missing required signatories. Guardrail: always pair with a document classification step to confirm the input is an executed agreement before running this prompt.

02

Bad Fit: Draft Documents

Avoid when: processing draft agreements, templates, or negotiation versions where signature blocks are placeholder text or intentionally empty. The prompt will flag missing signatures as failures, generating false positives that waste review cycles. Guardrail: route documents through a version-status classifier first; only run signature detection on documents tagged as 'executed' or 'final.'

03

Required Inputs

Must provide: a PDF or high-resolution image of the signature page, a list of expected signatories with their roles, and a schema defining required vs. optional signers. Guardrail: if the signatory list is incomplete or roles are ambiguous, the prompt cannot reliably determine execution completeness. Validate the signatory manifest before invoking the prompt.

04

Operational Risk: Digital Signature Confusion

Risk: typed names, '/s/' markers, and digital certificate signatures can be misclassified as unsigned if the prompt lacks explicit handling for electronic signature formats. Guardrail: include few-shot examples covering typed names, DocuSign stamps, and Adobe digital signatures. Add a post-extraction validator that checks for known digital signature patterns before flagging a block as unsigned.

05

Operational Risk: Multi-Page Signature Blocks

Risk: signature blocks split across pages or appended as separate signature pages may be missed entirely, producing false 'missing' flags. Guardrail: preprocess documents to detect signature page continuations and concatenate related pages before extraction. Include a completeness check that verifies all expected signatories were searched across the full document.

06

Operational Risk: Illegible or Scanned Signatures

Risk: low-quality scans, faint ink, or overlapping stamps can cause the model to miss a valid signature or misclassify an artifact as a signature. Guardrail: route documents through an illegible-region detector before signature extraction. If OCR confidence on the signature block falls below threshold, escalate for human review rather than returning a low-confidence automated determination.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt for detecting signature blocks, determining execution status, and flagging unsigned required signatories in executed agreements.

This template is designed to be copied directly into your prompt management system or application code. It uses square-bracket placeholders for all document-specific values, allowing you to swap in the target agreement text, expected signatory list, and output format requirements without rewriting the core instruction logic. The prompt is structured to produce a machine-readable JSON output that your downstream validation and routing systems can consume directly.

text
You are a document analysis engine specialized in detecting and evaluating signature blocks in executed agreements.

## INPUT
Document text extracted from [DOCUMENT_TYPE]:

[DOCUMENT_TEXT]

code

## EXPECTED SIGNATORIES
[EXPECTED_SIGNATORIES_LIST]

## OUTPUT_SCHEMA
Return a valid JSON object with this exact structure:
{
  "document_id": "[DOCUMENT_ID]",
  "signature_blocks_detected": [
    {
      "block_id": "string",
      "page_number": number or null,
      "signatory_name": "string or null",
      "signatory_title": "string or null",
      "organization": "string or null",
      "signature_type": "wet_ink | digital | typed_name | stamp | initials | illegible | absent",
      "execution_status": "signed | unsigned | unclear",
      "date_signed": "string or null",
      "block_text_excerpt": "string",
      "confidence": number (0.0 to 1.0)
    }
  ],
  "missing_required_signatories": [
    {
      "expected_name": "string",
      "expected_role": "string",
      "detection_status": "not_found | found_but_unsigned | found_but_unclear",
      "notes": "string"
    }
  ],
  "overall_execution_status": "fully_executed | partially_executed | not_executed | unclear",
  "flags": ["string"],
  "processing_notes": "string"
}

## CONSTRAINTS
1. Distinguish digital signatures (cryptographic, certificate-based) from typed names (plain text that looks like a name in a signature block). Digital signatures should have signature_type "digital". Typed names without cryptographic evidence should have signature_type "typed_name".
2. A signature block exists even if unsigned. Mark execution_status as "unsigned" when a block is present but no signature, mark, or date is visible.
3. If a signatory from EXPECTED_SIGNATORIES is not found in any detected block, include them in missing_required_signatories with detection_status "not_found".
4. If a signatory is found but their block shows execution_status "unsigned" or "unclear", include them in missing_required_signatories with the appropriate detection_status.
5. Set confidence based on text clarity, OCR quality, and ambiguity. Use confidence below 0.7 when the text is partially illegible or the signature type is ambiguous.
6. Include the raw text excerpt from the document that contains the signature block in block_text_excerpt for auditability.
7. If no signature blocks are found at all, return an empty signature_blocks_detected array, list all expected signatories in missing_required_signatories, and set overall_execution_status to "not_executed".
8. Do not infer signatory names from document headers, footers, or body text outside the signature block area.

## RISK_LEVEL
[HIGH] - False negatives (missing an unsigned required signatory) can cause legal and compliance exposure. When uncertain, flag for human review rather than marking as signed.

To adapt this template, replace each square-bracket placeholder with your document-specific values. [DOCUMENT_TYPE] should describe the agreement type (e.g., "Master Services Agreement", "Employment Contract") to help the model apply domain-appropriate expectations. [EXPECTED_SIGNATORIES_LIST] should be a structured list of names and roles that must sign for the document to be considered fully executed. If you don't have an expected signatory list, replace the entire EXPECTED SIGNATORIES section with an instruction to detect all signatories present and skip the missing_required_signatories check. [DOCUMENT_ID] should be a unique identifier from your document management system for traceability in logs and audit trails.

Before deploying this prompt to production, validate the output against your schema using a JSON schema validator. Run the prompt against a golden dataset of at least 20 documents with known signature statuses, including edge cases: documents with digital signatures, documents with typed names only, documents with illegible signature blocks, documents with no signature blocks, and documents where signatories signed in non-standard locations. Measure false negative rate on unsigned required signatories as your primary success metric. If the false negative rate exceeds your risk tolerance, add few-shot examples to the prompt showing ambiguous cases and the correct determination, or implement a human review step for all documents where overall_execution_status is not "fully_executed".

IMPLEMENTATION TABLE

Prompt Variables

Each placeholder must be populated before the prompt is sent to the model. Missing or incorrect variables are the most common cause of silent failures in signature block detection.

PlaceholderPurposeExampleValidation Notes

[DOCUMENT_TEXT]

Full extracted text of the agreement to analyze for signature blocks

IN WITNESS WHEREOF... /s/ Jane Doe

Must be non-empty string. Reject if only whitespace or under 50 characters. OCR output acceptable but flag if confidence below 0.85.

[SIGNATORY_LIST]

Expected signatories with roles and required status per party

[{"party": "Buyer", "name": "Acme Corp", "required_signers": 1}]

Must be valid JSON array. Each entry requires party, name, and required_signers fields. Empty array means no prior expectations; model must infer from document.

[EXECUTION_DATE]

Expected execution date or date range for the agreement

2024-03-15

ISO 8601 format string or null. When null, model must extract date from document if present. Invalid date formats must be rejected before prompt assembly.

[DOCUMENT_TYPE]

Type of agreement to inform signature block expectations

Master Services Agreement

Must match known document type enum. Controls expected signature block conventions. Reject unknown types; use "General Agreement" as fallback.

[JURISDICTION]

Governing jurisdiction for signature formality requirements

Delaware, USA

ISO 3166-2 or common law jurisdiction name. Controls expectations for notary, witness, corporate seal requirements. Null allowed for jurisdiction-agnostic detection.

[CONFIDENCE_THRESHOLD]

Minimum confidence score for positive signature detection

0.80

Float between 0.0 and 1.0. Below this threshold, model must flag as UNCERTAIN rather than SIGNED or UNSIGNED. Default 0.80 if not specified.

[OUTPUT_SCHEMA]

JSON schema the model must conform to for each detected signature block

{"signatures": [{"name": "string", "status": "enum", "page": "int"}]}

Must be valid JSON Schema draft. Validate schema parse before prompt assembly. Status enum must include SIGNED, UNSIGNED, MISSING, UNCERTAIN, ILLEGIBLE.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Missing Signature Block Detection Prompt into a document processing pipeline with validation, retries, and human review.

The Missing Signature Block Detection Prompt is designed to operate as a post-extraction validation step in a document processing pipeline. It should run after layout-aware text extraction and form field detection have already identified candidate signature regions on the page. The prompt expects structured input describing each candidate block's visual position, text content, and any detected annotations or stamps. Do not feed raw page images or unstructured OCR output directly to this prompt—pre-process the document to isolate signature-relevant regions first. The prompt's job is to classify execution status, not to perform layout analysis or OCR.

Wire this prompt into your pipeline as a gated validation stage. After the model returns its classification for each signature block, apply a post-processing validator that checks: (1) every required signatory from the document's expected signatory list has a corresponding block in the output, (2) no block is classified as signed without an explicit signature indicator (wet ink trace, digital certificate metadata, or /Sig PDF annotation), and (3) typed names without cryptographic evidence are never classified as signed. If the validator catches a mismatch, log the discrepancy with the document ID, page number, block coordinates, model classification, and validator rejection reason. For high-stakes agreements, route any unsigned or missing classification for a required signatory to a human review queue before the document proceeds downstream. Use a structured logging format (JSON) so your observability stack can track false-positive and false-negative rates over time.

For model choice, prefer a model with strong instruction-following and structured output capabilities. The prompt's output schema is strict, so enable structured output mode (JSON mode or function calling with a typed response schema) rather than relying on free-text parsing. Set temperature=0 to minimize classification variance. Implement a retry policy with up to two retries if the output fails schema validation; if validation still fails, escalate the entire document for human review rather than silently accepting a malformed classification. For documents with digital signature fields (e.g., DocuSign, Adobe Sign), integrate a pre-check that reads the PDF's digital signature dictionary before invoking the prompt—cryptographically verified signatures can bypass the model entirely, reserving the prompt for wet-ink and image-based signature detection where visual judgment is required.

Build your eval harness before deploying. Create a golden dataset of at least 50 signature blocks spanning: wet-ink signatures, digital signatures with visible stamps, typed names without signatures, blank signature lines, and cropped or partially visible blocks. Measure precision and recall per class (signed, unsigned, missing), with special attention to false signed classifications—these are the highest-risk errors because they can cause unsigned contracts to proceed as if executed. Run the eval suite on every prompt or model version change. If your pipeline processes scanned documents with degraded quality, include low-resolution and noisy samples in your eval set to catch regression on real-world inputs.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, types, and validation rules for the JSON response from the Missing Signature Block Detection Prompt. Use this contract to build a parser and validator before integrating the prompt into a production pipeline.

Field or ElementType or FormatRequiredValidation Rule

signature_blocks

Array of objects

Must be a JSON array. If no signature blocks are detected, return an empty array, not null.

signature_blocks[].page_number

Integer or null

Must be a positive integer if the block is located on a specific page. Use null if the page cannot be determined from the provided context.

signature_blocks[].block_type

Enum string

Must be one of: 'handwritten_signature', 'digital_signature_placeholder', 'typed_name_block', 'stamp_or_seal', 'initial_block', or 'other'. Schema check must reject any other value.

signature_blocks[].execution_status

Enum string

Must be one of: 'signed', 'unsigned', 'partially_signed', or 'unable_to_determine'. A 'signed' status requires visible evidence of a mark, image, or cryptographic seal.

signature_blocks[].signatory_name

String or null

If extracted from the document, provide the exact string. Use null if no name is associated with the block. An empty string is not allowed; use null instead.

signature_blocks[].is_required_signatory

Boolean or null

Must be true if the document context indicates this signatory is required, false if optional, and null if the requirement cannot be determined. Schema check must reject string values like 'yes'.

missing_required_signatures

Array of strings

A list of required signatory names or roles (e.g., 'Buyer', 'Witness 1') for which no signed block was found. Must be an empty array if all required parties have signed. Null is not allowed.

overall_document_status

Enum string

Must be one of: 'fully_executed', 'partially_executed', 'unsigned', or 'review_required'. This is a computed summary based on the presence and status of all detected blocks.

confidence_notes

Array of objects or null

If present, each object must contain a 'field' string referencing a top-level key and a 'note' string explaining ambiguity. Use this to flag low-confidence determinations, such as distinguishing a digital signature from typed text.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when detecting missing signature blocks in production and how to guard against it.

01

Typed Name Misclassified as Signature

What to watch: The model treats a typed name block (e.g., /s/ John Doe) as a wet-ink or digital signature, producing a false positive for execution status. This is the most common failure in signature detection pipelines. Guardrail: Add explicit output schema distinction between signature_type values (wet_ink, digital_certificate, typed_name, stamp) and require a signature_confidence field. Test against a golden set containing typed-name-only documents.

02

Multi-Page Signature Block Fragmentation

What to watch: A signature block split across a page break—name on one page, signature on the next—causes the model to report the block as missing or incomplete. Guardrail: Instruct the model to treat contiguous signature blocks across page boundaries as a single entity. Include multi-page test fixtures in your eval set and validate that page-spanning blocks are not double-counted or missed.

03

Unsigned Required Signatory Silently Omitted

What to watch: The prompt successfully detects present signature blocks but fails to flag that a required signatory (e.g., second party in a bilateral agreement) is entirely absent from the document. Guardrail: Provide the expected signatory list as an input parameter [REQUIRED_SIGNATORIES] and require the output to include an unsigned_required array with explicit status: missing entries for each absent party. Validate that the array length matches the input list.

04

Digital Signature Metadata Confusion

What to watch: The model cannot distinguish between a valid digital certificate signature and a scanned image of a signature that happens to include certificate metadata text. This produces unreliable signature_type classifications. Guardrail: Add a constraint that signature_type: digital_certificate must only be returned when the document contains verifiable certificate metadata, not when certificate text appears as part of a scanned image. Include eval cases with certificate-text-in-image false positives.

05

Signature Page Detached from Executed Agreement

What to watch: A standalone signature page is submitted without the preceding agreement body, and the model reports signatures as present without flagging the missing document context. Guardrail: Require the prompt to check for document completeness signals—title page, recitals, operative provisions—before confirming execution status. Output a document_completeness field with values complete, signature_page_only, body_only. Route signature_page_only results for human review.

06

Date Field Absence Masked by Signature Presence

What to watch: The model correctly identifies a signature but fails to flag that the associated date field is blank, producing an incomplete execution record. Guardrail: Require the output schema to include a signature_date field with explicit null handling (null for absent, illegible for unreadable, ISO date string when present). Add a date_present boolean and test against documents with deliberately blank date lines.

IMPLEMENTATION TABLE

Evaluation Rubric

Run these checks against a golden dataset of at least 20 documents with known execution status. Each criterion targets a specific failure mode observed in signature block detection.

CriterionPass StandardFailure SignalTest Method

Signed Document Detection

All documents with wet-ink or digital signatures are classified as 'signed'

Signed document classified as 'unsigned' or 'missing'

Compare [EXECUTION_STATUS] against ground-truth label for 10 signed docs

Unsigned Document Detection

All documents with visible signature blocks but no signature are classified as 'unsigned'

Unsigned document classified as 'signed' or 'missing'

Compare [EXECUTION_STATUS] against ground-truth label for 5 unsigned docs

Missing Block Detection

All documents with no signature block present are classified as 'missing'

Document with no signature block classified as 'signed' or 'unsigned'

Compare [EXECUTION_STATUS] against ground-truth label for 5 docs with no signature block

Digital vs Typed Name Discrimination

Digital signatures (cryptographic or image-based) are marked as 'signed'; typed names without signature are marked as 'unsigned'

Typed name in /s/ or plain text format classified as 'signed'

Spot-check 5 docs with typed-only names against [SIGNATURE_TYPE] field

Signatory Count Accuracy

[SIGNATORY_COUNT] matches the number of distinct signatories in the document

Count off by more than 0 for any document in the golden set

Compare [SIGNATORY_COUNT] integer against manual count for all 20 docs

Required Signatory Flagging

All signatories marked as required in ground truth appear in [MISSING_REQUIRED_SIGNATORIES] when absent

Required signatory absent from document but not listed in [MISSING_REQUIRED_SIGNATORIES]

Cross-reference [MISSING_REQUIRED_SIGNATORIES] list against known required signatories for 5 multi-party docs

Page Location Precision

[SIGNATURE_PAGE] matches the actual page number where the signature block appears

Page number off by more than 1 or null when block is present

Compare [SIGNATURE_PAGE] integer against ground-truth page for 15 docs with blocks

Null Handling for Missing Blocks

[SIGNATURE_PAGE] and [SIGNATURE_TYPE] are null when [EXECUTION_STATUS] is 'missing'

Non-null values in signature detail fields when no block exists

Assert null on detail fields for all docs with [EXECUTION_STATUS] = 'missing'

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base prompt and a small set of known PDFs (5-10 agreements). Use a frontier model (GPT-4o, Claude 3.5 Sonnet) with the default temperature. Focus on getting the JSON schema right before adding complex validation.

Simplify the output schema to three fields per signatory: name, status (signed | unsigned | missing), and evidence (a short quote from the document). Skip digital signature verification logic initially.

code
For each expected signatory in [SIGNATORY_LIST], determine:
- status: signed | unsigned | missing
- evidence: short quote from document
- confidence: high | medium | low

Watch for

  • Typed names being misclassified as wet-ink signatures
  • Signature pages with no signatory name printed nearby
  • Multi-page signature blocks where the name and signature are on different pages
  • Model hallucinating signatories not present in the document
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.