--- id: gooseworks-ai/goose-skills/pdf-processor version: "cae6a14e" license: MIT install: manual updated: 2026-07-23 --- # pdf-processor — PDF Processor pulls text, tables, and structured information from PDF documents through a multi-step workflow. It fetches PDFs, extracts content with AI, isolates table data, and converts results to markdown for easy integration into your workflows. Publisher: gooseworks-ai · Stars: 1062 · Updated: 2026-07-23 Install (manual): `git clone https://github.com/gooseworks-ai/goose-skills` ## SKILL.md # PDF Processor - Extract Data from PDFs ## Setup Read your credentials from ~/.gooseworks/credentials.json: ```bash export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") ``` If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` Extract text, tables, and structured data from PDF documents. ## Workflow ### Step 1: Fetch PDF Content Use Linkup to fetch PDF URLs: ```bash curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"linkup","path":"/fetch","body":{"url":"https://example.com/document.pdf"}}' ``` ### Step 2: Extract with AI Use ScrapeGraph to extract specific content: ```bash curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"scrapegraph","path":"/v1/smartscraper"}' "website_url": "https://example.com/report.pdf", "user_prompt": "Extract all financial figures, tables, and key metrics from this document" }' ``` ### Step 3: Extract Tables Get structured table data: ```bash curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"riveter","path":"/v1/run"}' "input": { "urls": ["https://example.com/report.pdf"] }, "output": { "tables": {"prompt": "Extract all tables with titles, headers, and rows", "contexts": ["urls"]} } }' ``` ### Step 4: Convert to Markdown Get readable markdown output: ```bash curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"scrapegraph","path":"/v1/markdownify","body":{"website_url":"https://example.com/document.pdf"}}' ``` ## Example Usage ```bash # Extract data from financial report curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"scrapegraph","path":"/v1/smartscraper"}' "website_url": "https://example.com/annual-report.pdf", "user_prompt": "Extract revenue, profit, and key business metrics with their values" }' # Extract invoice data curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"riveter","path":"/v1/run"}' "input": {"urls": ["https://example.com/invoice.pdf"]}, "output": { "vendor": {"prompt": "Vendor name", "contexts": ["urls"]}, "amount": {"prompt": "Total amount", "contexts": ["urls"]}, "date": {"prompt": "Invoice date", "contexts": ["urls"]} } }' ``` ## Tips - Specify exact data you need for better extraction - Use schemas for consistent structured output - Handle multi-page documents in chunks - Verify extracted numbers against source ## Discover More List all endpoints, or add a path for parameter details: ```bash curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"linkup API endpoints"}' api show riveter curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"scrapegraph API endpoints"}' Example: `curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"olostep","path":"/v1/scrapes`"}' for endpoint parameters. [View on SkillFed](https://skillfed.io/gooseworks-ai/goose-skills/pdf-processor) · [View on GitHub](https://github.com/gooseworks-ai/goose-skills)