Back to Alchemy
Alchemy RecipeIntermediateautomation

Grant proposal generation from research project outline

24 March 2026

Introduction

Grant writing consumes hundreds of hours across research institutions every year. A principal investigator spends weeks distilling months of work into a compelling narrative, grant administrators chase down supporting documents, and writing teams labour through multiple rounds of revision. Most of this time is spent on mechanical tasks: extracting key findings from research papers, reorganising information into funder-specific formats, and rewriting the same concepts for different sections.

The bottleneck isn't creative thinking; it's busy work. You already have the research outline. You already know what makes your project fundable. What you need is a system that converts your raw project documentation into a polished, funder-ready proposal without you manually copying between documents and rewriting sections.

This is where automation becomes genuinely useful. By connecting three AI tools through an orchestration platform, you can build a workflow that takes a research project outline, extracts relevant content from supporting PDFs, generates persuasive copy tailored to grant requirements, and produces a formatted proposal document. No copy-paste. No switching between browsers. Just input your materials and collect the output.

The Automated Workflow

Why This Combination Works

Chat-with-PDF-by-Copilotus excels at extracting structured information from unstructured documents. Copy-AI generates marketing-style persuasive copy quickly, which translates well to grant abstracts and impact statements. Wordsmith-AI handles more formal, technical writing and can restructure content across multiple sections. Together, they cover the full spectrum from information extraction to final polish.

The orchestration layer coordinates everything. Zapier offers the easiest entry point, n8n gives you more control, and Make (Integromat) sits somewhere in between. For this workflow, we'll focus on n8n because it handles file processing well and integrates cleanly with all three tools via their REST APIs.

High-Level Architecture

The workflow operates in four stages:

  1. Receive the research outline and supporting PDFs as input
  2. Extract key information from PDFs using Chat-with-PDF
  3. Generate persuasive sections using Copy-AI
  4. Structure and refine the proposal using Wordsmith-AI

Data flows forward; each stage produces outputs that feed into the next. This is critical: you're not asking the same tool to do everything, which means each tool works within its strengths.

Stage 1:

Trigger and Input Collection

Everything starts with a form submission or webhook. In n8n, create a webhook node that accepts:


{
  "projectTitle": "string",
  "researchOutline": "string",
  "pdfUrls": ["string"],
  "grantFunder": "string",
  "targetBudget": "number"
}

This payload becomes your starting point. The research outline is the human-written summary of your project in plain text (300-500 words usually). The PDF URLs point to supporting documents: lab reports, literature reviews, preliminary findings, team CVs, anything relevant.

Stage 2:

Extract from PDFs Using Chat-with-PDF

Chat-with-PDF-by-Copilotus provides a REST API for document analysis. For each PDF, you'll send a request asking for specific information relevant to grant writing. The API endpoint is:


https://api.copilotus.ai/v1/chat

In n8n, create an HTTP request node for each PDF. Here's what a typical request looks like:

{
  "method": "POST",
  "url": "https://api.copilotus.ai/v1/chat",
  "headers": {
    "Authorization": "Bearer YOUR_COPILOTUS_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "documentUrl": "{{ $node.Webhook.json.pdfUrls[0] }}",
    "query": "Extract the key research findings, methodologies, and measurable outcomes from this document. Format as a JSON object with keys: findings, methodology, outcomes.",
    "responseFormat": "json"
  }
}

You'll want to loop through each PDF. In n8n, use a Loop node set to iterate over the pdfUrls array. For each iteration, send the HTTP request above.

The API returns structured data:

{
  "findings": "The study demonstrates a 34% reduction in latency when...",
  "methodology": "We employed a randomised controlled trial with 120 participants...",
  "outcomes": "Primary outcome: reduced system load. Secondary outcomes: improved user satisfaction..."
}

Store these results in an object. If you're processing three PDFs, you'll have three sets of findings that you can reference later.

Stage 3:

Generate Persuasive Copy with Copy-AI

With extracted information in hand, Copy-AI generates persuasive abstracts and impact statements. The Copy-AI API endpoint is:


https://api.copy.ai/v1/generate

Here's a sample request node in n8n:

{
  "method": "POST",
  "url": "https://api.copy.ai/v1/generate",
  "headers": {
    "Authorization": "Bearer YOUR_COPYAI_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "prompt": "Write a compelling grant proposal abstract (200 words) for a {{ $node.Webhook.json.grantFunder }} grant. Project title: {{ $node.Webhook.json.projectTitle }}. Key findings: {{ $node.PDFExtraction.json.findings }}. Research significance: explain why this work matters to society and the field.",
    "model": "gpt-4",
    "maxTokens": 500,
    "temperature": 0.7
  }
}

The temperature setting is important here. At 0.7, the model is creative enough to sound persuasive but disciplined enough to stay factual. If you set it too high (0.9+), you risk flowery language that doesn't match your data. Too low (0.3), and it becomes robotic.

Copy-AI returns:

{
  "generatedText": "This research addresses a critical gap in distributed systems performance. By leveraging novel approaches to latency reduction, our team will deliver a 40% improvement in real-world throughput, directly benefiting 50,000 daily users across multiple platforms...",
  "usage": {
    "promptTokens": 145,
    "completionTokens": 87
  }
}

Create separate Copy-AI nodes for different sections: abstract, significance statement, innovation statement, and expected outcomes. Each one uses the same pattern but with slightly different prompts.

Stage 4:

Structure with Wordsmith-AI

Wordsmith-AI handles the formal restructuring and tone-matching. The API endpoint is:


https://api.wordsmith.ai/v1/document

This tool takes the outputs from Copy-AI and integrates them into a proposal structure. Here's how:

{
  "method": "POST",
  "url": "https://api.wordsmith.ai/v1/document",
  "headers": {
    "Authorization": "Bearer YOUR_WORDSMITH_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "documentType": "grant_proposal",
    "sections": [
      {
        "title": "Project Summary",
        "content": "{{ $node.CopyAI_Abstract.json.generatedText }}",
        "wordLimit": 250
      },
      {
        "title": "Research Significance",
        "content": "{{ $node.CopyAI_Significance.json.generatedText }}",
        "wordLimit": 500
      },
      {
        "title": "Innovation and Approach",
        "content": "{{ $node.CopyAI_Innovation.json.generatedText }}",
        "wordLimit": 400
      },
      {
        "title": "Expected Outcomes",
        "content": "{{ $node.PDFExtraction.json.outcomes }}",
        "wordLimit": 300
      }
    ],
    "tone": "academic",
    "funderName": "{{ $node.Webhook.json.grantFunder }}",
    "format": "pdf"
  }
}

Wordsmith-AI returns a formatted document:

{
  "documentId": "doc_abc123xyz",
  "downloadUrl": "https://wordsmith.ai/documents/doc_abc123xyz.pdf",
  "wordCount": 1450,
  "status": "ready"
}

Connecting Everything in n8n

Here's the structure of your workflow nodes in order:

  1. Webhook – receives initial input
  2. Set Data – initialises an empty results object
  3. Loop – iterates through pdfUrls
  4. HTTP Request (Chat-with-PDF) – extracts from each PDF
  5. Merge Data – combines all PDF extractions
  6. HTTP Request (Copy-AI Abstract) – generates abstract
  7. HTTP Request (Copy-AI Significance) – generates significance
  8. HTTP Request (Copy-AI Innovation) – generates innovation section
  9. HTTP Request (Copy-AI Outcomes) – generates outcomes
  10. HTTP Request (Wordsmith-AI) – structures final document
  11. Webhook Response – returns the download URL to the user

Between the Copy-AI nodes and Wordsmith-AI, add a Wait node set to 2 seconds. This prevents rate-limiting issues when Copy-AI receives multiple simultaneous requests.

Error Handling and Fallbacks

Real workflows fail. PDFs might be corrupted. APIs might timeout. Add error handling at each major step:

{
  "nodeType": "IF",
  "condition": "{{ $node.ChatPDF.status === 'error' }}",
  "trueOutput": {
    "action": "Use fallback text from research outline"
  },
  "falseOutput": {
    "action": "Continue with extracted data"
  }
}

For timeout resilience, configure the HTTP request nodes with retry logic: retry up to 3 times with exponential backoff (2 seconds, then 4, then 8). This handles temporary API hiccups without requiring manual intervention.

The Manual Alternative

If you prefer more control over the process, you can run each stage independently without n8n:

Start by uploading your PDFs to Chat-with-PDF's web interface and manually asking for key findings. Copy the output into a document. Then visit Copy-AI, paste your findings, and generate different copy variations. Select your favourite versions. Finally, compile everything in Wordsmith-AI's editor, adjust tone and formatting by hand, and export.

This approach takes 4-5 hours instead of 5-10 minutes, but you have complete visibility and can make judgement calls that the automated workflow might miss. For grant writing where reputation matters, many teams prefer this hybrid approach: run the automation to generate drafts, then have the principal investigator review and refine before submission.

Pro Tips

Rate Limiting and Costs: Chat-with-PDF charges per document processed, Copy-AI charges per token generated, and Wordsmith-AI charges per document created. Monitor your n8n logs for token usage. If you're generating 10 proposals per month, you might hit rate limits on Copy-AI. Set the flow to process one proposal at a time rather than in parallel.

Handling Large PDFs: Chat-with-PDF works best with documents under 20 MB. If you have massive reports, split them into chapters. Create separate PDF URLs for each chunk and process them sequentially, then merge the extracted information.

Prompt Tuning for Different Funders: Grant requirements vary wildly. A Leverhulme Trust proposal looks nothing like a BBSRC application. Instead of one Copy-AI prompt, create different prompt templates for each funder. Store these as n8n variables. When the webhook receives the funder name, the workflow selects the right prompt set.

Testing Before Full Deployment: Create a test flow with dummy PDFs first. Run it once, verify that the output quality meets your standards, and check the cost per proposal. Only then should you connect it to your real proposal intake process.

Tracking and Auditing: Add a final step that logs the proposal ID, timestamp, funder, extracted findings, and generated sections to a Google Sheet or database. This gives you an audit trail and lets you spot patterns in which funder types generate the longest proposals, which sections need the most revision, and so on.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Chat-with-PDF-by-CopilotusPay-as-you-go£0.10 per PDF processed10 proposals × 3 PDFs each = £3/month at scale
Copy-AIStarter£29Covers 50,000 API calls; typical proposal uses 800-1200 tokens
Wordsmith-AIProfessional£49Includes 50 document generations; covers 10+ proposals
n8nCloud Pro£20Includes 200,000 API calls; plenty of headroom
Total£98/monthGenerates 10-15 grant proposals per month

If you're writing 50+ proposals yearly, consider Copy-AI's Pro plan at £99/month instead. You'll save money and get faster response times. For a single proposal, costs are under £15.