Introduction
Academic research can drown you in information. You find a promising paper, download the PDF, and then you face the real work: reading through 15 pages, identifying the key arguments, extracting citations, and organising everything for your literature review. Multiply this by 50 papers and you've lost weeks to manual note-taking.
The problem gets worse when you're working across multiple papers simultaneously. You need summaries that actually capture the nuance of each study, not just keyword extraction. You need citations in a usable format. You need this done consistently, without spending your evening copying and pasting from PDFs into spreadsheets.
This workflow automates the entire process. You upload a research paper, and within seconds, you get a structured summary and a clean list of citations ready to import into your reference manager. No manual handoff. No copying between tools. Just data flowing from PDF to summary to citation extraction in one continuous chain.
The Automated Workflow
We'll build this using three complementary AI tools, orchestrated together so that the output of one becomes the input of the next. The workflow is beginner-friendly because each tool handles a single job well, and the orchestration layer just connects them.
Why these three tools?
Chat with PDF by Copilotus extracts text and context from your PDF with enough fidelity to feed downstream tools. ExplainPaper generates coherent summaries that preserve the paper's argument structure. Resoomer AI specifically handles citation extraction and can output structured data. Together, they give you both human-readable summaries and machine-readable citations.
Choosing your orchestration tool
For this workflow, we recommend starting with Zapier or Make (Integromat). Both have pre-built integrations with these tools and require zero coding. If you want more control over the data transformations between steps, n8n gives you that flexibility with a bit more setup. Claude Code is overkill for this particular flow but useful if you need custom logic later.
We'll show examples using Make, but the logic translates directly to Zapier.
The workflow architecture
Here's the data flow:
- User uploads PDF to a cloud storage trigger (Google Drive, Dropbox)
- Orchestration tool detects the new file
- Chat with PDF extracts the paper's text and main concepts
- The extracted text feeds into ExplainPaper for summarisation
- The original text also feeds into Resoomer AI for citation extraction
- Both outputs (summary and citations) combine into a structured record
- The record is saved to a Google Sheet or sent to your reference manager API
Step-by-step setup in Make
First, create a new scenario in Make and add a trigger module. Use the Google Drive trigger set to "Watch Files" or "Watch Folders".
Trigger: Google Drive - Watch Files
Folder: /Research Papers (or your chosen folder)
File Type: PDF
Polling interval: 5 minutes
Next, add a Chat with PDF module. You'll need to authenticate with Copilotus first. The module takes the file ID from Google Drive and extracts text.
Module: Chat with PDF by Copilotus
Input: File ID from trigger
Action: Extract text and summary
Output: JSON with full_text, key_concepts, abstract
Chat with PDF returns structured data. You'll get something like this in the output:
{
"full_text": "The study examined neural mechanisms...",
"key_concepts": ["neural plasticity", "learning", "memory"],
"abstract": "This paper investigates..."
}
Now, split the workflow into two parallel paths. Both need the extracted text, but they're independent processes. In Make, use a "Router" module to duplicate the flow.
Path A: Summarisation via ExplainPaper
Add an HTTP module to call ExplainPaper's API. You'll need an API key from ExplainPaper's developer portal.
Module: HTTP
Method: POST
URL: https://api.explaincam.com/api/v1/summarize
Headers:
Authorization: Bearer YOUR_EXPLAINCAM_API_KEY
Content-Type: application/json
Body:
{
"text": "{{1.full_text}}",
"length": "medium",
"focus": "academic"
}
ExplainPaper returns a summary object:
{
"summary": "This paper presents findings on neural mechanisms...",
"key_points": [
"Finding 1: ...",
"Finding 2: ..."
],
"difficulty_score": 6.8
}
Store this output in a variable so you can use it later. In Make, use a "Set Variable" module after the HTTP call.
Path B: Citation Extraction via Resoomer AI
On the second path, add another HTTP module for Resoomer. Resoomer specialises in extracting bibliographic data from academic text.
Module: HTTP
Method: POST
URL: https://api.resoomer.com/extract/citations
Headers:
Authorization: Bearer YOUR_RESOOMER_API_KEY
Content-Type: application/json
Body:
{
"text": "{{1.full_text}}",
"format": "bibtex",
"include_metadata": true
}
Resoomer returns citations in structured format:
{
"citations": [
{
"authors": ["Smith, J.", "Johnson, K."],
"year": 2021,
"title": "Neural plasticity and learning",
"journal": "Nature Neuroscience",
"volume": 24,
"pages": "123-135",
"doi": "10.1038/s41593-021-00001-1",
"bibtex": "@article{Smith2021,..."
}
],
"citation_count": 42
}
Store this output in a separate variable.
Merging and saving the results
After both paths complete (Make handles this automatically with parallel processing), add an aggregator module or a final HTTP call to save everything together. The simplest option is to write to Google Sheets.
Module: Google Sheets
Action: Add a row
Spreadsheet: Your Research Papers Database
Values:
Paper Title: {{1.filename}}
Date Added: {{now}}
Summary: {{Path_A_summary}}
Key Points: {{Path_A_key_points}}
Citations (BibTeX): {{Path_B_citations.bibtex}}
Citation Count: {{Path_B_citation_count}}
Extracted Text: {{1.full_text}}
Alternatively, if you use Zotero or Mendeley, you can write directly to their APIs:
Module: HTTP
Method: POST
URL: https://api.zotero.org/users/USER_ID/items
Headers:
Authorization: Bearer YOUR_ZOTERO_API_KEY
Content-Type: application/json
Body:
{
"itemType": "journalArticle",
"title": "{{1.filename}}",
"creators": {{Path_B_citations.authors}},
"publicationTitle": {{Path_B_citations.journal}},
"date": {{Path_B_citations.year}},
"pages": {{Path_B_citations.pages}},
"DOI": {{Path_B_citations.doi}},
"tags": [
{
"tag": "automated_import"
}
]
}
That's the entire workflow. Once you've tested it with one paper, you can run it on your entire research folder in batch mode. Most orchestration tools support bulk triggers.
The Manual Alternative
If you prefer to stay in control of each step, you can run these tools sequentially without orchestration:
- Open your PDF in Chat with PDF manually via their web interface
- Request a full extraction by asking "Summarise this paper in detail"
- Copy the extracted text
- Paste it into ExplainPaper's text input box and request a summary
- Paste the text into Resoomer's citation extractor
- Copy both outputs into your reference management system
This takes about 3–5 minutes per paper depending on length. It's perfectly reasonable if you only process 2–3 papers per week. The automation only becomes worth the setup time if you're processing more than 5–10 papers weekly.
The manual approach also gives you the chance to review each summary for accuracy and correct any misidentified citations before they go into your database. Some researchers prefer this quality gate despite the time cost.
Pro Tips
Error handling and retries
API calls fail sometimes. Make and n8n both support automatic retries. Set your Chat with PDF module to retry twice with a 30-second delay if it times out. ExplainPaper occasionally returns incomplete summaries for very long papers; add a condition that checks if the summary length is reasonable (more than 100 characters) before proceeding.
In Make, use an error handler:
If error occurs:
- Wait 30 seconds
- Retry HTTP request
- If still fails after 2 retries, send error notification to email
This prevents your workflow from stalling silently.
Rate limiting and API quotas
Chat with PDF charges per API call (typically $0.10 per document). Resoomer has a monthly quota on free plans. ExplainPaper limits requests per minute. Before you run batch operations on 100 papers, check your current usage and plan accordingly.
Add a delay module between calls if you're processing many papers at once. A 2-second delay between requests costs nothing but prevents you from hitting rate limits:
Module: Delay
Duration: 2 seconds
If you're doing this regularly, premium plans usually include higher quotas and work out cheaper long-term than paying per-request fees.
Handling PDF upload failures
Some PDFs have unusual formatting, scanned images instead of text, or unusual encoding. Chat with PDF handles most of these gracefully, but occasionally you'll get garbage output. Add a quality check: if the extracted text is shorter than 500 characters, flag it as potentially problematic and alert yourself.
If full_text.length < 500:
Send notification: "PDF extraction may have failed for [filename]"
Tag in Google Sheets as "MANUAL_REVIEW_NEEDED"
This prevents bad data from polluting your research database.
Cost optimisation
If you're a student on a budget, use the free or trial tiers while you verify the workflow actually saves you time. Most of these tools offer reasonable free limits (Chat with PDF: 5 documents/month, ExplainPaper: 10 summaries/month, Resoomer: 20 extractions/month).
Run your first 20 papers manually while testing to ensure the summaries and citations meet your standards. Once you're confident, commit to a paid plan.
Consider also whether you really need all three tools. If you only need summaries, ExplainPaper alone might suffice. If you only need citations, Resoomer covers that. The combination is most valuable when you want both outputs in one automated process.
Customising output format
Modify the Google Sheets output to match your workflow. Some researchers prefer summaries split into sections (objectives, methods, findings, limitations). Others want the summary as a single paragraph. ExplainPaper's API accepts a "style" parameter you can adjust:
{
"text": "{{full_text}}",
"style": "bullet_points", // or "paragraph" or "structured"
"length": "short" // or "medium" or "long"
}
Experiment with these parameters on a few test papers before locking in your workflow.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| Chat with PDF by Copilotus | Pay-as-you-go | $1–10 | $0.10 per document; 100 papers = $10 |
| ExplainPaper | Free tier or Pro | $0–20 | Free: 10 summaries/month; Pro: unlimited summaries |
| Resoomer AI | Free tier or Premium | $0–15 | Free: 20 extractions/month; Premium: unlimited |
| Make (Integromat) | Free tier or Standard | $0–19 | Free: 1,000 operations/month; Standard: 10,000 ops for $19 |
| Zapier | Free tier or Professional | $0–50 | Free: 100 tasks/month; Professional: 750 tasks for $50 |
| n8n | Self-hosted or cloud | $0–40 | Self-hosted: free; cloud tier: $40/month for priority support |
| Google Sheets API | Included with Google account | $0 | No separate cost if you already use Google Workspace |
Total cost estimate for typical use:
Processing 30 papers per month: approximately $15–30 per month if you use paid tiers, or entirely free if you stay within free tier limits.
Processing 100 papers per month: approximately $40–60 per month.
The break-even point is roughly when you'd spend more than 5 hours per month on manual summarisation and citation extraction. At that threshold, automation becomes financially sensible even accounting for setup time.