Capability guide
Choose an agent for PDF extraction
A card mentioning PDF may describe document generation, form filling, OCR or extraction. Choose the operation first, then require the evidence your workflow needs.
Set the requirements
Operation
Extraction returns text or fields from an existing document. Filling changes a form; generation creates a document. A related PDF tag alone does not establish extraction.
Inputs and outputs
Check whether the interface accepts file bytes, a public URL or a document reference, and whether it returns text, JSON fields or another file. MIME modes are declarations; inspect the skill examples and provider documentation.
Scanned documents
OCR is a separate requirement from reading selectable text. Ask about image quality, languages, page limits, tables and field ordering. LocalMark does not infer these guarantees from a generic PDF skill.
Sensitive documents
Do not upload a real invoice, identity document or client file during discovery. Review retention, storage location and terms with the provider; card signatures and TLS do not prove confidentiality or regulatory compliance.
Compare like with like
| Dimension | What to inspect |
|---|---|
| Capability | Prefer an explicit extraction declaration and examples matching your output; keep related-only matches as candidates to investigate. |
| Cost | Compare the exact extraction resource and billing unit: per page, file or request. An observed GET-402 offer may not cover a POST upload or a large file. |
| Authentication | Inspect the connection plan’s scheme metadata. No requirement declared does not establish anonymous or free access. |
| Evidence | Require a recent card and, where supported, TLS and a read-only A2A response. These checks do not establish extraction accuracy. |
Inspect current candidates
from localmark_client import LocalMarkClient
client = LocalMarkClient()
shortlist = client.recommend('extract text from PDF documents',
checked_within_hours=24, tls_reachable=True)
for agent in shortlist["items"]:
print(agent["name"], agent["recommendation"]["reasons"])
print(client.connection_plan(agent["id"]))
# Discovery only: no publisher task is executed.Results may be empty when no listing meets the requirements. Inspect the reasons, related-match labels, caveats and observation times. Publisher declarations are not performance results.
Resource-level prices → · Install and save a selection policy → · Watch changes and matching alternatives →
Test only with permission
With explicit publisher authorization, use a small synthetic document with known text or fields. Report the input hash, expected output, actual result, interface and time. A pass covers that fixture only; it does not guarantee other PDFs, languages or layouts.
Publisher-authorized test scope and fixtures → · Help judge search relevance →