Alchemy RecipeBeginnerworkflow

Technical specification to user guide conversion pipeline

Published

Converting technical specifications into user-friendly guides is tedious and error-prone. A technical writer must read dense documentation, extract key points, then manually hand-off the content to a video narrator, who then waits for a designer to format it into a publishable guide. Each handoff introduces delays, miscommunications, and redundant work.......

This workflow is particularly painful when you're scaling documentation. A SaaS company releasing weekly API updates, or a hardware manufacturer publishing product guides, can't afford to wait three weeks per document whilst information passes through multiple people.

What if these three stages could happen simultaneously, with zero manual handoff? This pipeline combines ChatWithPDF, Hour One, and Mintlify to transform a technical specification into a narrated video guide and formatted documentation, all triggered from a single file upload.

The Automated Workflow

Architecture Overview

The workflow operates in three parallel stages after a file lands in your inbox: PDF parsing extracts specifications; video generation creates a narrated walkthrough; documentation formatting produces a polished guide. All three outputs arrive simultaneously, eliminating waiting time between team members.

Step 1: Trigger and PDF Analysis

Your orchestration tool (we'll use Zapier for this example, though n8n or Make work identically) monitors a designated folder or email inbox. When a PDF technical specification arrives, it triggers the workflow.

The ChatWithPDF API endpoint accepts the document and returns structured data about its contents:


POST https://api.copilotus.com/v1/chat-pdf/parse
Headers:
  Authorization: Bearer YOUR_API_KEY
  Content-Type: application/json

{
  "pdf_url": "https://your-storage.s3.amazonaws.com/spec-v2.3.pdf",
  "extraction_format": "structured",
  "sections": ["overview", "features", "api_endpoints", "troubleshooting"]
}

The response returns JSON with extracted sections:


{
  "document_id": "spec_2024_001",
  "extracted_content": {
    "overview": "WebSocket API for real-time data streaming...",
    "features": [
      "Bidirectional communication",
      "Rate limiting: 1000 req/min",
      "Supports OAuth 2.0"
    ],
    "api_endpoints": [
      {
        "method": "POST",
        "path": "/v1/stream/connect",
        "description": "Establishes connection"
      }
    ],
    "troubleshooting": [...]
  },
  "confidence_score": 0.94
}

Store this JSON in your workflow state. You'll need it for the next two steps.

Step 2: Video Narration Generation

Whilst the PDF is being parsed, send the extracted content to Hour One's video generation API. Hour One creates a talking-head video with the specifications narrated by an AI avatar.

Configure an HTTP request to Hour One:


POST https://api.hourone.com/v2/videos
Headers:
  Authorization: Bearer YOUR_HOUR_ONE_API_KEY
  Content-Type: application/json

{
  "avatar_id": "emma_casual",
  "script": "Welcome to the API specification for WebSocket integration. This document covers real-time data streaming capabilities. Key features include bidirectional communication with a rate limit of 1000 requests per minute. The API supports OAuth 2.0 authentication. To connect, send a POST request to slash v one slash stream slash connect...",
  "video_settings": {
    "resolution": "1080p",
    "duration_estimation": "auto",
    "background": "minimal_office"
  },
  "webhook_url": "https://your-domain.com/webhooks/video-complete"
}

Hour One accepts the script and queues the video. It will POST to your webhook URL when rendering completes, typically within 5 to 15 minutes depending on script length. The response includes a video ID you'll use to fetch the finished file later.

Step 3: Documentation Formatting with Mintlify

Simultaneously, send the extracted JSON to Mintlify's API to generate formatted documentation:


POST https://api.mintlify.com/v1/[docs](/tools/docs)/generate
Headers:
  Authorization: Bearer YOUR_MINTLIFY_API_KEY
  Content-Type: application/json

{
  "project_id": "my-api-docs",
  "content": {
    "title": "WebSocket API Specification v2.3",
    "overview": "Extracted overview from PDF",
    "sections": [
      {
        "type": "feature_list",
        "title": "Key Features",
        "items": ["Bidirectional communication", "Rate limiting", "OAuth 2.0"]
      },
      {
        "type": "endpoint_reference",
        "endpoints": [
          {
            "method": "POST",
            "path": "/v1/stream/connect",
            "description": "Establishes connection",
            "auth_required": true
          }
        ]
      }
    ]
  },
  "theme": "dark",
  "output_format": "html"
}

Mintlify generates an HTML document and stores it at a public URL, returned in the response. You can optionally configure it to publish directly to your documentation site.

Orchestration Setup in Zapier

Here's the complete workflow configuration:

  1. Trigger: Gmail or Slack receives the PDF attachment.

  2. Step 1: Call ChatWithPDF API with the PDF URL (first upload it to S3 or your storage service).

  3. Step 2: In parallel, call Hour One API with a formatted script derived from the extracted content.

  4. Step 3: In parallel, call Mintlify API with the structured data.

  5. Step 4: Wait for both Hour One and Mintlify to complete (using their webhooks).

  6. Step 5: Send a Slack notification with links to the video and documentation.

To run parallel requests in Zapier, use "Paths" functionality. Create two paths after the PDF parsing step; one handles Hour One, the other handles Mintlify. Both run simultaneously.

Set up webhook receivers to catch completion notifications:


POST https://your-domain.com/webhooks/video-complete
{
  "video_id": "vid_xyz123",
  "status": "completed",
  "output_url": "https://videos.hourone.com/vid_xyz123.mp4",
  "duration": 342
}

POST https://your-domain.com/webhooks/doc-complete
{
  "doc_id": "doc_abc456",
  "status": "published",
  "url": "https://docs.yoursite.com/websocket-api-2.3"
}

Configure your workflow to collect these webhook hits before proceeding to the notification step. Zapier's "Delay" action can add a safety margin if webhooks arrive with unpredictable timing.

Advanced: Using n8n for More Control

If you prefer open-source tooling or need finer control, n8n offers more sophisticated workflow logic:


{
  "nodes": [
    {
      "name": "Email Trigger",
      "type": "emailReadImap",
      "parameters": {
        "mailbox": "documentation@company.com",
        "filter": "has:attachment filename:*.pdf"
      }
    },
    {
      "name": "Extract PDF",
      "type": "httpRequest",
      "parameters": {
        "url": "https://api.copilotus.com/v1/chat-pdf/parse",
        "method": "POST",
        "headers": {
          "Authorization": "Bearer YOUR_API_KEY"
        },
        "body": {
          "pdf_url": "{{ $node.Email_Trigger.data.attachmentUrl }}"
        }
      }
    },
    {
      "name": "Generate Video",
      "type": "httpRequest",
      "parameters": {
        "url": "https://api.hourone.com/v2/videos",
        "method": "POST",
        "body": {
          "script": "{{ $node.Extract_PDF.data.extracted_content.overview }}"
        }
      }
    },
    {
      "name": "Generate Docs",
      "type": "httpRequest",
      "parameters": {
        "url": "https://api.mintlify.com/v1/docs/generate",
        "method": "POST",
        "body": {
          "content": "{{ $node.Extract_PDF.data.extracted_content }}"
        }
      }
    },
    {
      "name": "Wait for Completion",
      "type": "wait",
      "parameters": {
        "type": "webhook",
        "webhookUrl": "{{ $node.Extract_PDF.data.webhook_url }}"
      }
    },
    {
      "name": "Notify Team",
      "type": "slack",
      "parameters": {
        "message": "Documentation complete. Video: {{ $node.Generate_Video.data.output_url }}. Guide: {{ $node.Generate_Docs.data.url }}"
      }
    }
  ]
}

In n8n, this runs natively without external webhook services. The "Wait" node pauses execution until the webhook fires, then continues automatically.

The Manual Alternative

If your team prefers human review at each stage, split this into manual checkpoints. After ChatWithPDF extracts content, store the JSON in a shared document and ask your technical writer to review it for accuracy. Once approved, they move it to the next stage.......

This approach takes longer but catches errors early. A technical writer might notice that Hour One's script incorrectly ordered API endpoints, or that Mintlify's formatting missed a critical warning section. Manual review prevents bad documentation reaching your users.

If you choose this route, create a simple approval step in your workflow. Zapier can send the extracted content to a Google Form or Airtable, where your team approves it before proceeding to video and documentation generation. This adds 2 to 4 hours to the process but ensures quality.

For most companies, run the fully automated pipeline for routine updates (weekly API tweaks, minor feature additions) and reserve manual review for major releases or complex specifications.

Pro Tips

1. Script Quality Matters for Hour One

Hour One's output quality depends entirely on your input script. Don't just concatenate the extracted text; format it as natural speech. Remove jargon where possible, spell out technical terms on first mention, and use short sentences. ChatWithPDF returns raw content; you'll want to post-process it slightly:


Avoid: "WebSocket API utilises bidirectional communication paradigms."
Use: "The WebSocket API lets you send and receive data in real time."

Consider adding a Claude API call between extraction and video generation to rewrite the script for spoken delivery.

2. Rate Limits and Queuing

Hour One and Mintlify have rate limits. Hour One allows 10 simultaneous renders; Mintlify allows 100 API calls per minute. If your team uploads 15 specifications at once, some requests will queue. Add a delay between requests:


POST https://your-domain.com/queue-document
{
  "pdf_url": "...",
  "priority": "high",
  "delay_seconds": 30
}

Implement a simple queue service (even a spreadsheet with a timestamp suffices) to stagger requests.

3. Storage and Archiving

Video files are large (100 MB to 500 MB depending on length). Hour One provides temporary URLs that expire after 30 days. Download videos immediately and store them in S3 or your preferred bucket. Add a step to your workflow:


{
  "name": "Archive Video",
  "type": "httpRequest",
  "url": "https://api.aws.s3.amazonaws.com/bucket-name/videos/spec-v2.3.mp4",
  "method": "PUT",
  "body": "{{ $request.get($node.Generate_Video.data.output_url).body }}"
}

This prevents broken links months later.

4. Error Handling for PDFs

Not all PDFs parse cleanly. Scanned documents, images with text, or PDFs with complex layouts confuse ChatWithPDF. Set a confidence threshold. If extraction confidence is below 0.85, send the PDF to your technical writer for manual review instead of proceeding to video and documentation generation:


{
  "name": "Check Confidence",
  "type": "switch",
  "expression": "$node.Extract_PDF.data.confidence_score > 0.85",
  "cases": [
    {
      "name": "Good Confidence",
      "trigger_when": true,
      "nodes": ["Generate Video", "Generate Docs"]
    },
    {
      "name": "Low Confidence",
      "trigger_when": false,
      "nodes": ["Email Writer", "Manual Review"]
    }
  ]
}

5. Cost Optimisation

Hour One charges per minute of video generated. A 5-minute specification video costs roughly £2 to £3. Mintlify charges per API call (£0.01 to £0.05 per call). ChatWithPDF charges per page parsed (£0.005 to £0.02 per page). For a 20-page specification, total costs are roughly £3 to £5 per document end-to-end.

Batch processing helps. If you have 50 specifications to convert, run them in a staggered queue rather than all at once, spreading costs across a week and avoiding rate limit penalties.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
ChatWithPDFPay-as-you-go£20-500.01 per page; typical spec 15-30 pages
Hour OnePro (100 renders/month)£99Additional renders £3 per minute; most docs 3-7 minutes
MintlifyStarter (unlimited API calls)£49Includes hosting and domain
ZapierProfessional (multi-step zaps)£49-125Or n8n self-hosted (free)
S3 StorageStandard£5-20500 MB videos, 50 docs per month
Total£222-344Scales linearly with document volume

If you use n8n self-hosted instead of Zapier, reduce the monthly cost by £49 to £125, though you'll need a server to run it on.

What's Next?

This workflow handles the first conversion. Build on it by adding a second stage that captures user feedback on the generated guides (was the video clear? Did the documentation answer your questions?), then uses that feedback to train your prompt for better outputs next time.

Your first three specifications through this pipeline will feel slow as you troubleshoot edge cases. By the tenth, the workflow runs reliably in under 30 minutes, saving your team hours per week of manual coordination.

More Recipes