# n8n Extract from File: Read PDF Text (and Fix 'No Binary')

> Read PDF text in n8n with Extract from File, set Input Binary Field correctly and fix "expects a binary file 'data', but none was found".

Source: https://learn.ynteractive.com/content/blog/n8n-extract-from-file-pdf · Updated 2026-10-20 · Free from Stepthrough (https://learn.ynteractive.com)

Quick answer

n8n reads a PDF with the **Extract from File** node and its **Extract from PDF** operation, which outputs the document's text as a field called `text`. The one setting that trips people up is **Input Binary Field**: it starts as `data`, but it must be the name the file actually has, such as `Resume` from a form upload. The free [AI Resume Screener](https://learn.ynteractive.com/content/ai-resume-screener-n8n-fairness) lesson sets it up for a job application form.

Last updated October 20, 2026

[Take the free module →](https://learn.ynteractive.com/courses/ai-for-recruiting-and-hr/9)Module 9 of the free [AI for Recruiting & HR](https://learn.ynteractive.com/courses/ai-for-recruiting-and-hr) course, about 14 minutes. No account needed.

By [Robert Breen](https://learn.ynteractive.com/content/about) · Published October 20, 2026 · Updated October 20, 2026 · 3 min read

n8n · PDF · Troubleshooting

## How do I extract text from a PDF in n8n?

1. Click the **+** after the node that brings the file (a form, a [Gmail trigger](https://learn.ynteractive.com/content/glossary/gmail-trigger), Google Drive).
2. Search for **extract** and click **Extract from File**.
3. Choose **Extract from PDF**.
4. Set **Input Binary Field** to the file's name.
5. Close the node. It hands the PDF's text on as `text`.

The next node uses `{{ $json.text }}`. Both the resume screener and the [invoice approval lesson](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n) send that text to an [Information Extractor](https://learn.ynteractive.com/content/glossary/information-extractor-node).

## What is the Input Binary Field?

Files in n8n travel as [binary data](https://learn.ynteractive.com/content/glossary/binary-data) with a name. **Input Binary Field** tells Extract from File which file on the item to read.

| Source | Typical binary field name |
| --- | --- |
| n8n Form with a field labelled Resume | `Resume` (the form names the file after its label) |
| Gmail Trigger with attachments downloaded | `attachment_0` |
| Google Drive: Download file | `data` |
| HTTP Request with a file response | `data` |

To check, run the node before it and open its OUTPUT in **Binary** view; the name is shown above each file.

## "This operation expects the node's input data to contain a binary file 'data', but none was found"

Extract from File is looking for a file called `data`, and the item's file has another name (or there's no file).

Fix:

- Replace `data` in **Input Binary Field** with the real name, like `Resume` or `attachment_0`.
- For Gmail, turn on the trigger's option to download attachments, or there is no file at all.
- If only some emails have PDFs, put an If or Filter before the extract step.

## The text comes out empty

The PDF is a scanned image, not real text. Extract from PDF reads text that's in the file; it doesn't read pixels. Use an OCR step or a document AI service for scans, or ask senders for a digital PDF. A [searchable PDF](https://learn.ynteractive.com/content/glossary/searchable-pdf) is one that has a text layer.

## The text is jumbled

Columns and tables in PDFs often come out in reading order that isn't the visual order. That's usually fine for an AI step: in the lessons, the Information Extractor finds vendor, invoice number and total even when the layout text is messy. Tell it to "copy what is printed, don't calculate or guess".

## Try it free, step by step

**An AI Resume Screener, with a Fairness Step (Recruiting & HR)**. Have n8n read each applicant’s PDF resume, score it against the job’s must-haves with the evidence quoted, and rank it in Google Sheets, while a person makes every hiring call. You do every step yourself in a practice copy of n8n, it checks your work as you go, and “Do it for me” finishes any step you get stuck on. Free, and nothing touches your real accounts.

[Start the free lesson](https://learn.ynteractive.com/modules/recruiting-resume-screener)

[Or read the full step-by-step guide](https://learn.ynteractive.com/content/ai-resume-screener-n8n-fairness)

## How do I test without uploading every time?

Run the trigger once with a sample file and pin its output. In the resume screener, the form was tested once with a sample application and that test is pinned; **Execute previous nodes** then runs the sample through Extract from PDF and the extractor. See [n8n Pinned and Mock Data](https://learn.ynteractive.com/content/blog/n8n-pinned-mock-data).

## Privacy reminder

Resumes and invoices hold personal and financial data. Only send what the next step needs, and in hiring, keep fairness rules in the AI step: the resume screener ignores names, addresses, graduation years and family details. Screen Resumes with AI Fairly has more.

## Key takeaways

- Extract from File > Extract from PDF turns a PDF into a text field.
- Input Binary Field must match the file's real name, like Resume or attachment_0.
- "Expects a binary file 'data'" means the name is wrong or no file arrived.
- Scanned PDFs have no text layer; they need OCR.

## Frequently asked questions

**How do I read a PDF in n8n?**

Add Extract from File, choose Extract from PDF and set Input Binary Field to the file's binary name. The text comes out as text.

**Why does n8n say no binary file was found?**

The node is looking for the wrong binary field name, or the item has no file. Check the previous node's Binary output for the real name.

**Can n8n read scanned PDFs?**

Not with Extract from PDF alone, because scans have no text. Add an OCR step first.

**Which courses use this?**

[AI for Recruiting & HR](https://learn.ynteractive.com/courses/ai-for-recruiting-and-hr) and [AI for Finance Teams](https://learn.ynteractive.com/courses/ai-for-finance).

## Free lessons in this post

- [An AI Resume Screener, with a Fairness Step (Recruiting & HR)](https://learn.ynteractive.com/content/ai-resume-screener-n8n-fairness): Have n8n read each applicant’s PDF resume, score it against the job’s must-haves with the evidence quoted, and rank it in Google Sheets, while a person makes every…
- [Invoices from Your Inbox to Google Sheets, with Approval](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n): Build an n8n workflow that reads each vendor invoice PDF from Gmail with AI, logs the vendor, invoice number and total in Google Sheets, and emails the owner an Approve…

## Watch it in a free lesson: An AI Resume Screener, with a Fairness Step (Recruiting & HR)

### An AI Resume Screener, with a Fairness Step: video walkthrough

Full walkthrough · 3:36 · with captions

Have n8n read each applicant’s PDF resume, score it against the job’s must-haves with the evidence quoted, and rank it in Google Sheets, while a person makes every hiring call. The whole lesson narrated step by step, recorded in Stepthrough’s simulated practice environment.

[Watch it with chapters and the full transcript](https://learn.ynteractive.com/content/ai-resume-screener-n8n-fairness#watch)

From the free lesson [An AI Resume Screener, with a Fairness Step (Recruiting & HR)](https://learn.ynteractive.com/content/ai-resume-screener-n8n-fairness)

## Related terms

Plain-English definitions, each with an example from a free lesson.

[Gmail Trigger](https://learn.ynteractive.com/content/glossary/gmail-trigger) · [Information Extractor (n8n)](https://learn.ynteractive.com/content/glossary/information-extractor-node) · [Binary data (files in n8n)](https://learn.ynteractive.com/content/glossary/binary-data) · [AI data entry](https://learn.ynteractive.com/content/glossary/ai-data-entry) · [AP aging report](https://learn.ynteractive.com/content/glossary/ap-aging-report) · [Applicant tracking system](https://learn.ynteractive.com/content/glossary/applicant-tracking-system) · [Approval threshold](https://learn.ynteractive.com/content/glossary/approval-threshold) · [ETL (extract, transform, load)](https://learn.ynteractive.com/content/glossary/etl)

[The full AI glossary](https://learn.ynteractive.com/content/glossary)

## Related prompts

- [Invoice approval request email prompt](https://learn.ynteractive.com/content/prompts/invoice-approval-request-email-prompt): A copy-ready prompt that writes a clear approval request for a large invoice, so the owner can say yes or no in one reply with…

[All free prompt templates](https://learn.ynteractive.com/content/prompts)

## Keep reading

- [n8n Information Extractor Examples: 3 Schemas That Work](https://learn.ynteractive.com/content/blog/n8n-information-extractor-examples): n8n Information Extractor examples for leads, invoices and resumes: the Text prompt, JSON example schemas, the model and mapping the output.
- [n8n Pinned and Mock Data: Test Without Real Triggers](https://learn.ynteractive.com/content/blog/n8n-pinned-mock-data): Test n8n workflows without new emails or forms: set mock data on a manual trigger, pin a real test run, use Execute previous nodes, unpin to publish.
- [n8n If Node Number Comparisons: Totals, Scores, Wrong Type](https://learn.ynteractive.com/content/blog/n8n-if-node-number-comparison): Compare numbers in the n8n If node, type value2 without $ or commas, and fix "Wrong type: is a string but was expecting a number".

[All blog posts](https://learn.ynteractive.com/content/blog) · [All free tutorials](https://learn.ynteractive.com/content)
