Skip to main content
Glama
pandadad0214

Panda Federation Tools

Panda Federation Tools

M8ven Score CI CodeQL MCP Registry Apify Store Python 3.11+ License: MIT

An open-source MCP server and tool index for 18 research and public-data tools on Apify. Check citations for fake or retracted papers, find real literature, build grant, contract and lead lists, and audit domains and websites, from Claude, Cursor, VS Code or any MCP client, or straight from the Apify API.

  • Official, free data sources only: Crossref, OpenAlex, PubMed, Unpaywall, Grants.gov, NIH, NSF, USAspending, NPI Registry, FMCSA, public DNS, Apple Podcasts, OpenStreetMap, Wikimedia, public job-board feeds and companies' own websites. No logins, no paywalls, no LinkedIn scraping.

  • Pay per result, capped: a few tenths of a cent per result; runs that find nothing are not charged per result; every MCP call has a hard USD spending cap.

  • Agent-friendly output: JSON with a one-line summary or agentSummary per row and OK / CHECK / FIX status where it applies.

  • Your token stays yours: the server runs on your machine and sends your APIFY_TOKEN only to api.apify.com, in a header. It is never logged or returned.

Contents

Related MCP server: Lyra's Expanded Research MCP

Quick start

  1. Get a free Apify account and copy your API token from Console → Settings → API & Integrations. The free plan includes $5 of monthly credit.

  2. Install uv (one command; it brings its own Python).

  3. Check that the server starts:

uvx --from git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1 panda-federation-tools --version

Then add it to your MCP client below. The server speaks MCP over stdio.

Client setup

Replace apify_api_YOUR_TOKEN with your own token. Do not commit config files that contain it.

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "panda-federation-tools": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1", "panda-federation-tools"],
      "env": { "APIFY_TOKEN": "apify_api_YOUR_TOKEN" }
    }
  }
}

Claude Code

claude mcp add panda-federation-tools --env APIFY_TOKEN=apify_api_YOUR_TOKEN -- \
  uvx --from git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1 panda-federation-tools

Cursor

Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{
  "mcpServers": {
    "panda-federation-tools": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1", "panda-federation-tools"],
      "env": { "APIFY_TOKEN": "apify_api_YOUR_TOKEN" }
    }
  }
}

VS Code (GitHub Copilot agent mode)

Add to .vscode/mcp.json. VS Code prompts for the token and stores it securely:

{
  "inputs": [
    { "type": "promptString", "id": "apify-token", "description": "Apify API token", "password": true }
  ],
  "servers": {
    "panda-federation-tools": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1", "panda-federation-tools"],
      "env": { "APIFY_TOKEN": "${input:apify-token}" }
    }
  }
}

Windsurf, Cline, Zed, Goose and other MCP clients

Use the same stdio command in that client's MCP settings:

  • Command: uvx

  • Args: --from git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1 panda-federation-tools

  • Env: APIFY_TOKEN=apify_api_YOUR_TOKEN

  • Cline: also set "timeout": 60 (seconds). Starting with uvx from GitHub can take longer than Cline's 10-second default. Step-by-step setup is in llms-install.md.

Prefer pip? pip install "git+https://github.com/pandadad0214/panda-federation-tools@v1.1.1", then run panda-federation-tools as the command.

Prefer Docker? Build the image from this repo and run it over stdio:

docker build -t panda-federation-tools https://github.com/pandadad0214/panda-federation-tools.git#v1.1.1
docker run -i --rm -e APIFY_TOKEN panda-federation-tools

Tools

Each MCP tool runs one public Apify Actor and returns its results. Input fields, limits and defaults come from the Actor's own input schema and are validated before anything runs, so a bad input never costs money.

MCP tool

Apify Actor

What it does

Price (Apify free plan)

reference_checker

reference-checker

Finds fake, AI-hallucinated, mismatched and retracted citations

$0.01 / reference

citation_formatter

citation-formatter

DOI, PMID, arXiv, ISBN or messy text → APA, MLA, Chicago, Harvard, IEEE, Vancouver, BibTeX, RIS

$0.003 / citation

literature_search

literature-search

Real papers from 250M+ OpenAlex works, with citations, free PDFs and BibTeX

$0.003 / paper

pubmed_evidence_table

pubmed-evidence-table

PubMed → evidence table (study design, sample size, retractions, PRISMA counts)

$0.004 / article

grants_finder

grants-finder

Grants.gov opportunities plus NIH and NSF awards in one table

$0.003 / grant

researcher_expert_finder

researcher-expert-finder

Ranked academic experts and KOLs for a topic, with ORCID and h-index

$0.0025 / expert

pdf_table_extractor

pdf-table-extractor

Every table in a PDF → rows, Excel and CSV, with OCR for scanned pages

$0.001 / page; $0.003 / table; $0.02 / OCR page

npi_provider_lists

npi-provider-lists

De-duplicated US healthcare provider lists from the official NPI Registry

$0.0015 / provider

federal_contract_finder

federal-contract-finder

USAspending contract awards, incumbents and recompete leads

$0.002 / contract

email_domain_security_checker

email-domain-security-checker

SPF, DKIM, DMARC, MTA-STS and BIMI audit with an A–F grade and fix list

$0.002 / domain

ai_search_seo_audit

ai-search-seo-audit

SEO and AI-search (GEO) readiness per page, AI crawler access, llms.txt draft

$0.004 / page

podcast_leads_finder

podcast-leads-finder

Active podcasts by topic with host, published contact email and guest flag

$0.004 / podcast

local_business_leads

local-business-leads

Local businesses by category and city from OpenStreetMap (Google Maps alternative)

$0.001 / business

company_hiring_signals

company-hiring-signals

Open and new jobs, leadership roles and a hiring score from public ATS boards

$0.003 / company

company_website_enricher

company-website-enricher

Domains → name, description, published contacts, socials, tech stack, mail provider

$0.003 / domain

topic_trends_tracker

topic-trends-tracker

Wikipedia pageview trends with 30-day and YoY change (Google Trends alternative)

$0.002 / topic

company_team_finder

company-team-finder

Leaders and decision makers from companies' own team pages (no LinkedIn scraping)

$0.002 / person

trucking_company_leads

trucking-company-leads

New and existing US carriers and brokers from official FMCSA data

$0.002 / carrier

Every tool also accepts three optional run controls: run_max_items (results to return, default 50), run_max_charge_usd (spending cap for the call, default $0.50) and run_timeout_secs (default 120, max 300). While a run is in progress the server sends MCP progress notifications every few seconds, so clients that support them do not time out. Most tools answer in 5–15 seconds for a few inputs; local_business_leads and big crawls can take a minute or more, so give them run_timeout_secs: 300.

Also on Apify: the hosted Academic Research MCP Server ($0.01–$0.02 per call) and Website Change Monitor (publishing soon; it joins this server once it is public).

Example prompts

  • "Check these 12 references for fake or retracted papers and tell me which to fix."

  • "Find 20 recent peer-reviewed papers on GLP-1 and heart failure with free PDFs, then format them in APA."

  • "Which of these 30 SaaS companies are hiring sales leaders right now? Then find their VP-level contacts."

  • "Audit the email security of acme.com and its three competitors, and list the fixes."

  • "List dentists in Phoenix, AZ with a website and phone number."

Typical workflows

  • Writing a paper: literature_search → citation_formatter → reference_checker before you submit.

  • Systematic review: pubmed_evidence_table (evidence table + PRISMA counts) → reference_checker.

  • Funding: grants_finder → literature_search on the topic.

  • Federal contracting: federal_contract_finder (recompete radar + top incumbents) → grants_finder.

  • Account prioritization: company_hiring_signals → company_website_enricher → email_domain_security_checker.

  • Outbound to decision makers: company_hiring_signals → company_team_finder (names, titles, email pattern).

  • Local prospecting: local_business_leads → ai_search_seo_audit on their websites.

  • Trucking and logistics sales: trucking_company_leads → company_website_enricher.

  • Market research: topic_trends_tracker → literature_search or podcast_leads_finder on rising topics.

Pricing

  • You pay Apify per result, at the prices above, from your own Apify account. Apify Bronze, Silver and Gold plans get 10–30% off.

  • Empty runs cost nothing per result. Apify adds a tiny platform start fee (about $0.00005 per run).

  • run_max_items (default 50) also sets the Actor's own result limit on 15 of the 18 tools, so you only pay for the results you asked for. On grants_finder, pdf_table_extractor and company_team_finder (whose limits count sources, pages or companies), set those fields directly; the charge cap still applies.

  • Every MCP call is capped by run_max_charge_usd (default $0.50, set your own default with PANDA_MAX_CHARGE_USD). Apify stops the run when the cap is reached.

  • The MCP server itself is free and open source (MIT).

Configuration

Variable

Required

Default

Meaning

APIFY_TOKEN

yes

none

Your Apify API token. Tools list without it; calls need it.

PANDA_MAX_CHARGE_USD

no

0.50

Default spending cap per call (0.01–25).

PANDA_MAX_ITEMS

no

50

Default max results per call (1–1000).

PANDA_TIMEOUT_SECS

no

120

Default seconds to wait per call (10–300).

Security and permissions

  • Runs locally over stdio. It opens no ports and calls only https://api.apify.com.

  • Token handling: read from the environment, sent only as an Authorization: Bearer header (never in a URL), redacted from every error message, and never logged or returned to the model.

  • Least privilege: the token needs permission to run Actors. Apify supports scoped API tokens; a token limited to running these Actors is enough.

  • Read-only tools: every tool only reads public data; none writes to your systems. Tools are marked readOnlyHint: true.

  • Validated inputs: every call is checked against the Actor's JSON Schema (types, ranges, enums, no unknown fields) before it runs. Secret Actor inputs (such as optional third-party API keys) are deliberately not exposed to the model.

  • Bounded cost and time: per-call spending cap, item cap and timeout. The server retries once only when Apify never started a run (rate limit or failed connection), so a retry can never charge you twice.

  • Context-safe output: large results are trimmed to whole items (still valid JSON) for the model, with every item kept in structuredContent.

  • Supply chain: pinned dependencies with a committed uv.lock, pip-audit and CodeQL in CI, Dependabot updates, and GitHub Actions pinned to commit SHAs.

  • Found a vulnerability? See SECURITY.md.

Hosted options (no install)

  • Academic Research MCP Server (Streamable HTTP): https://pandadad0214--panda-research-mcp.apify.actor/mcp with header Authorization: Bearer <your Apify token>. Four research tools (check_references, format_citations, search_literature, pubmed_evidence_table). This is the server listed in the official MCP Registry as io.github.pandadad0214/panda-research-mcp (server.json).

  • Apify's MCP server: https://mcp.apify.com can call any of these Actors as pandadad0214/<slug>.

  • Plain HTTP API:

curl -X POST "https://api.apify.com/v2/acts/pandadad0214~reference-checker/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"dois": ["10.1038/nature14539"]}'

For AI agents and LLMs

  • llms.txt: short index of every tool and when to use it (llms.txt convention).

  • llms-full.txt: each tool's inputs, outputs and prices in one file.

  • llms-install.md: step-by-step setup for AI coding agents such as Cline.

  • Every result has a one-line summary field (summary on the citation, literature, PubMed, PDF, NPI and expert tools; agentSummary on the others), and every run saves a SUMMARY record with a takeaway and the suggested next tool.

  • Start small (one or two inputs), read the summary line, then widen.

Development

git clone https://github.com/pandadad0214/panda-federation-tools && cd panda-federation-tools
uv sync                 # installs pinned dependencies from uv.lock
uv run pytest           # offline tests, no token or network needed
uv run ruff check . && uv run mypy
python scripts/build_catalog.py   # refresh tool schemas and prices from the Apify Store

Layout: src/panda_federation_tools/ (server, Apify client, bundled catalog.json), tests/, scripts/build_catalog.py, Dockerfile. See CONTRIBUTING.md and CHANGELOG.md.

Hire a human (Fiverr)

Prefer a person to run the tools and hand you finished files? Panda Federation also sells these as Fiverr gigs (seller pandafederation). Professional use only, not for coursework.

Gig

Use when

Price

Reference verification

You want a person to check a whole reference list for fake, mismatched or retracted citations and get a color-coded PDF/Excel report.

from $15, 2-3 days

Reference list formatting

You want a finished reference list formatted or converted to APA, MLA, Chicago, Harvard, IEEE or Vancouver, delivered as Word and PDF.

from $20, 2-3 days

Web data to CSV/Excel

You want public business data from a website collected and cleaned into CSV or Excel (no logins, paywalls or personal contact data).

from $30, 3-5 days

Scholarly source lists

You want a screened list of scholarly sources on a topic, with retraction flags and Excel, BibTeX and RIS files (PubMed study table available as an add-on).

from $25, 2-5 days

Issues and requests

Open an issue here or on any tool's Apify Issues tab. We answer within a day.

Built by Panda Federation with AI assistance. MIT licensed.

Available Tools

18 tools
ai_search_seo_auditAI Search & SEO Audit: GEO, llms.txt & Schema CheckerA
Read-only

Use this to audit web pages for SEO and AI search (ChatGPT, Perplexity, Claude, AI Overviews) readiness. Input: URLs. Output: SEO and AI scores, blocked AI crawlers, schema, FAQ, author/date, llms.txt and prioritized fixes, plus Excel.

Runs the Apify Actor pandadad0214/ai-search-seo-audit (https://apify.com/pandadad0214/ai-search-seo-audit) on your own Apify account. Price: $0.004 per page audited. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
urlsNoPage URLs. Pages to audit, one per line. https:// is added if missing (example.com/pricing works). Leave empty for a 2-page demo.
maxPagesNoMaximum pages. You pay per audited page, so this also caps the cost. Whole number, 1 to 2,000; default 50.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
generateLlmsTxtNoDraft an llms.txt for sites without one. On by default: for each site with no /llms.txt, writes a ready-to-edit draft (from the audited pages and homepage links) into the LLMS_TXT_DRAFTS record and the Sites sheet. No extra charge.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
crawlInternalLinksNoAlso audit internal pages (per URL). 0 = audit only the URLs above. 1 to 100 = also audit up to this many same-site pages linked from each URL (good for a quick whole-site check from the homepage).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnly/openWorld/non-idempotent/non-destructive) by disclosing that the run executes on the caller's own Apify account, costs $0.004 per audited page, that empty runs are not charged per result, and that spend is hard-capped by run_max_charge_usd. These are exactly the billing and account facts an agent needs before invoking a paid, open-world tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose sentence, then an Input/Output line, then a compact paragraph on actor, price, and spend cap. No filler or marketing padding; the only slight redundancy is re-mentioning the charge cap that the schema already explains.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns and does so concretely (SEO/AI scores, blocked crawlers, schema, FAQ, author/date, llms.txt, prioritized fixes, Excel). Combined with the pricing, account, and timeout context, an agent has everything needed to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented with defaults, ranges, and behavior (e.g. crawlInternalLinks, generateLlmsTxt, maxPages cost capping). The description only restates 'Input: URLs' and echoes the run_max_charge_usd cap, adding no format or interaction detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: audit web pages for SEO and AI search (ChatGPT, Perplexity, Claude, AI Overviews) readiness. It also names the concrete outputs (scores, blocked crawlers, schema, FAQ, author/date, llms.txt, prioritized fixes, Excel), so an agent can distinguish it from every sibling tool in the list, none of which is an SEO/GEO auditor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit 'Use this to...' trigger naming the exact task, which gives clear context for selection. It does not state when NOT to use it or name an alternative, but no sibling tool overlaps in function, so the absence of exclusions is a minor gap rather than a real ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

citation_formatterCitation Generator API: DOI to APA, MLA, Chicago & BibTeXA
Read-only

Use this to turn DOIs, ISBNs, PMIDs, arXiv IDs, titles or messy references into citations. Input: a reference list or pasted .bib/.ris text. Output: APA 7, MLA 9, Chicago, Harvard, IEEE, Vancouver, BibTeX and RIS per reference, checked against Crossref.

Runs the Apify Actor pandadad0214/citation-formatter (https://apify.com/pandadad0214/citation-formatter) on your own Apify account. Price: $0.003 per citation formatted. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
textNoPaste a reference list or file contents. Optional. Paste a whole bibliography (numbered, one per line, or blank-line separated), or the contents of a .bib (BibTeX) or .ris file. BibTeX/RIS entries are converted directly without a lookup.
stylesNoCitation styles. Styles to output. All six are included in the price, so pick as many as you like.
includeRisNoRIS export. Add an RIS entry per reference and a combined .ris file (Zotero, Mendeley, EndNote, Rayyan). Default: on.
referencesNoReferences (one per line). DOIs, DOI links, ISBNs, arXiv IDs, PMIDs ("PMID: 123"), paper titles, or messy reference strings in any style. Each one is looked up and formatted.
contactEmailNoContact email for Crossref (optional). Optional. Sent to Crossref and NCBI as the contact so requests use their faster 'polite' pools. Never shared elsewhere.
includeBibtexNoBibTeX export. Add a BibTeX entry per reference and a combined .bib file (LaTeX, Overleaf, JabRef). Default: on.
maxReferencesNoMax references per run. Safety cap. Only formatted citations are billed. Whole number, 1 to 20,000 references; default 1,000.
minMatchScoreNoMinimum match score for text lookups (50-100). How closely a search result must match a free-text reference (title, authors, year) to be used. DOIs and ISBNs are exact lookups and are not affected. Whole number, 50 to 100; default 80.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
fixAllCapsTitlesNoFix ALL-CAPS titles. Some registry records store titles in capitals. Convert them to sentence case. Default: on.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).
sentenceCaseTitlesNoSentence-case article and book titles. APA, Harvard, IEEE and Vancouver use sentence case ("Deep residual learning for image recognition"). Registries often store Title Case, so we convert it; acronyms like CVPR, mRNA and COVID-19 are kept. MLA and Chicago re-capitalise automatically. Check proper nouns (names, places) in converted titles. Default: on.
listUnresolvedInFilesNoList unresolved references in the bibliography files. Append references we could not find to the end of each bibliography file, marked [UNRESOLVED - check manually], so nothing silently disappears. They are never charged. Default: on.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, openWorld, non-idempotent, non-destructive) it discloses the execution model, per-citation pricing of $0.003, that unresolved references are not charged, and that spending is hard-capped per call by run_max_charge_usd. This is exactly the billing and side-effect context an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability and input/output contract before the operational boilerplate, and each sentence carries information. There is mild redundancy from the 'Input:'/'Output:' labels restating what the schema already enumerates, but nothing is wasted at length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with no output schema, the description covers the return shape (per-reference APA/MLA/Chicago/Harvard/IEEE/Vancouver plus BibTeX and RIS), resolution source (Crossref), billing, and caps. Remaining gaps are minor, such as the structure of run results beyond the bibliography files.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 14 parameters is already documented in the schema, including enum and range details. The description adds only framing (which identifier types are accepted, that all six styles are included in the price) rather than new per-parameter semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('turn DOIs, ISBNs, PMIDs, arXiv IDs, titles or messy references into citations'), enumerates both accepted input forms and the eight output formats, and is clearly distinguishable from siblings such as reference_checker or literature_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use: paste a bibliography or .bib/.ris contents, or pass individual references, and it explains that BibTeX/RIS entries are converted without a lookup while other identifiers are resolved. It never explicitly excludes cases or names a sibling alternative (e.g., when to prefer reference_checker), so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_hiring_signalsCompany Hiring Signals: Job Openings & Hiring Intent by CompanyA
Read-only

Use this to see which companies are hiring and for what. Give company domains, names or job-board links; get one row per company with open jobs, new jobs in 7/30 days, teams hiring, leadership roles and a hiring score. Greenhouse, Lever, Ashby and more.

Runs the Apify Actor pandadad0214/company-hiring-signals (https://apify.com/pandadad0214/company-hiring-signals) on your own Apify account. Price: $0.003 per company analyzed. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
companiesNoCompanies. One per line: a company domain (stripe.com), a company name (Notion) or a job-board link (https://jobs.lever.co/spotify, https://boards.greenhouse.io/airbnb, https://jobs.ashbyhq.com/ramp). Leave empty for a 3-company demo.
minOpenJobsNoOnly return companies with at least this many open jobs. Companies below this are listed in the run summary but not returned and not charged. 0 returns every company with a job board.
checkWebsiteNoLook for the job board on the company website. When you give a domain, read the home and careers pages (robots.txt respected) to find the exact job-board link. Off = match the board by company name only (faster, less exact).
maxCompaniesNoMaximum companies. You pay per company returned, so this also caps the cost. 1 to 5,000; default 500.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
titleKeywordsNoKeywords to count in job titles. Optional. Count open roles whose title (or board department) contains these words, e.g. a tool you sell into (Salesforce, HubSpot, Snowflake) or a role you care about (SDR, Account Executive, DevOps).
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), and the description adds substantial behavioral context on top: the underlying Actor and that it runs on the caller's own Apify account, the $0.003 per-company price, the fact that zero-result runs are not charged, and a per-call spending cap. It also discloses ATS coverage (Greenhouse, Lever, Ashby and more), which tells the agent what the signal is derived from.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs, front-loaded with the use case before the operational details, and almost no filler. The second paragraph blends a few topics (Actor, price, billing, cap) and the cost message is repeated from the schema, but the overall size is proportionate to an eight-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With eight optional parameters, no output schema, and an open-world web-scraping behavior, the definition covers everything an agent needs: accepted input forms, output columns, cost per company, no-charge conditions, a spending cap, and the existence of timeout/item defaults via environment variables. The output shape is described in prose precisely because no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter carries its own prose explanation, so the schema does the heavy lifting and the baseline is 3. The description reinforces the primary input shape ('company domains, names or job-board links') and echoes the cost model, but it adds no parameter-level semantics beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'see which companies are hiring and for what', and then names the concrete output — one row per company with open jobs, new jobs in 7/30 days, teams hiring, leadership roles, and a hiring score. That is far more specific than a restated title. It never explicitly distinguishes itself from nearby siblings such as company_team_finder or company_website_enricher, which an agent could plausibly confuse with a hiring-intent tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to see which companies are hiring' plus the accepted input forms (domain, name, or job-board link) gives a clear triggering context. The 'leave empty for a 3-company demo' note further helps an agent decide how to call it. There are no exclusions or named alternatives telling the agent when to pick a different tool instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_team_finderCompany Team & Decision-Maker Finder: Names, Titles, EmailsA
Read-only

Use this to find the people behind a company from its own website: names, job titles, seniority, department, published emails, LinkedIn links and the email pattern, from team, leadership and staff pages. No LinkedIn scraping. Excel and CSV.

Runs the Apify Actor pandadad0214/company-team-finder (https://apify.com/pandadad0214/company-team-finder) on your own Apify account. Price: $0.002 per person found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
companiesNoCompany websites. One per line: a domain (acme.com), a website URL, or a work email (the domain is used). Paste the exact team page URL when you know it. Leave empty for a 2-company demo.
departmentsNoDepartments. Optional. Keep only these departments (guessed from the title).
maxCompaniesNoMaximum companies. You pay per person found; companies with nobody found are free.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
titleKeywordsNoTitle contains (any of). Optional. Keep people whose title contains one of these words.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
decisionMakersOnlyNoDecision makers only. Keep only C-level, founders/owners, presidents, partners, VPs and directors/heads. Everyone else is skipped and not charged.
maxPagesPerCompanyNoMax pages per company. Home page plus team, leadership, about and staff pages. Default 6.
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).
maxPeoplePerCompanyNoMax people per company. Most senior people first. Caps cost on companies with huge staff pages.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld and non-destructive, but the description adds material behavior the annotations cannot convey: the tool runs a specific Apify Actor on the caller's own account, costs $0.002 per person found, does not charge for runs that find nobody, and is capped per call by run_max_charge_usd. It also discloses the return formats (Excel and CSV), which is essential for an agent that later needs to consume output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The output fields and source constraint are front-loaded in the first sentence, with operational and pricing details in the second paragraph. Two short paragraphs with no filler. Slightly dense packing of output fields into one sentence keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a ten-parameter, zero-required tool with no output schema, the description supplies exactly what is missing: the shape of the results (person attributes plus email pattern and file formats), the sourcing rule, and the billing model. Combined with the fully documented schema and readOnly annotations, an agent has enough to call it correctly and predict the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the ten parameters is already documented in the schema, including defaults, ranges and the PANDA_* environment fallbacks. The description only reinforces the cost semantics of run_max_charge_usd, which the schema already states. Baseline 3 applies because the description adds little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: find the people behind a company, sourced from its own team, leadership and staff pages, returning names, titles, seniority, department, emails, LinkedIn links and the email pattern. It also rules out a competing source ('No LinkedIn scraping'), which separates it from LinkedIn-based people search. It never names a sibling tool such as company_website_enricher or local_business_leads, so the differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening 'Use this to find...' establishes the primary use case, and 'No LinkedIn scraping' plus 'from its own website' imply a source constraint. However, there is no when-not guidance, no prerequisites (other than the pricing/account note), and no named alternative for the case where a company has no team page or the agent needs LinkedIn-sourced contacts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_website_enricherCompany Website Enricher: Tech Stack, Emails & SocialsA
Read-only

Use this to enrich a list of company domains in one run: company name, description, public emails and phones, LinkedIn and social links, tech stack (CMS, analytics, CRM, ads, chat), mail provider, SaaS tools seen in DNS and domain age. Excel and CSV.

Runs the Apify Actor pandadad0214/company-website-enricher (https://apify.com/pandadad0214/company-website-enricher) on your own Apify account. Price: $0.003 per domain enriched. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
domainsNoCompany domains, websites or emails. One per line: example.com, https://www.example.com/page or name@example.com all work (the domain is extracted, duplicates dropped). Leave empty for a 3-domain demo.
extraPagesNoExtra pages per site. Besides the home page, read up to this many contact / about / team pages to find emails, phones and the address. 0 to 4; default 2.
maxDomainsNoMaximum domains. You pay per domain returned, so this also caps the cost. 1 to 10,000; default 1,000.
onlyWithTechNoOnly return sites using any of these technologies. Optional. Keep only domains where at least one of these shows up in the tech stack, email tools or DNS-verified services, e.g. Shopify, HubSpot, Klaviyo, WordPress, Salesforce, Microsoft 365. Others are not returned and not charged.
onlyWithEmailNoOnly return domains with a public email. Domains without an email on their website are not returned and not charged.
onlyWithPhoneNoOnly return domains with a phone number. Domains without a phone link on their website are not returned and not charged.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations by disclosing the economic profile that annotations cannot express: it runs the named Apify Actor on the caller's own account, costs $0.003 per enriched domain, non-matching/filtered domains are not charged, and spending is capped by run_max_charge_usd. That charge-on-read behavior is exactly the kind of hidden trait an agent needs before calling a readOnlyHint tool at scale.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight paragraphs: capability and output fields first, then execution/cost mechanics. Every sentence carries information an agent needs, and the Actor URL plus pricing are compact rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, no-output-schema tool this covers the essentials: what comes back, what it costs, how spend and runtime are bounded, and how domains may be filtered without charge. The only gap is no indication of result shape or delivery mode (sync vs. dataset/Excel download), which matters since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including ranges and defaults. The description adds only the cost linkage for maxDomains and the caps for run_max_charge_usd, both of which are also present in the schema text, so no meaningful meaning is added beyond structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('enrich a list of company domains') and enumerates the exact output fields: name, description, emails, phones, socials, tech stack, mail provider, DNS-verified SaaS, domain age. This is clearly distinguishable from the lead-gen siblings (trucking_company_leads, local_business_leads, company_team_finder) which target different entity sets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear activation context ('in one run' over a list of domains), the input forms accepted, and a sensible default behavior when the list is empty (3-domain demo). It does not explicitly state when to prefer a sibling tool instead, and does not warn about which domains will be skipped, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

email_domain_security_checkerSPF, DKIM & DMARC Checker: Bulk Email Domain Security AuditA
Read-only

Use this to check SPF, DKIM, DMARC, MX provider, BIMI and MTA-STS for a list of domains or emails. Output: one row per domain with an A-F grade, spoofing risk, mail provider, senders and plain-English fixes, plus Excel and CSV.

Runs the Apify Actor pandadad0214/email-domain-security-checker (https://apify.com/pandadad0214/email-domain-security-checker) on your own Apify account. Price: $0.002 per domain checked. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
domainsNoDomains, emails or URLs. One per line: example.com, name@example.com or https://www.example.com/page all work (the domain is extracted, www. removed, duplicates dropped). Leave empty for a 3-domain demo.
maxDomainsNoMaximum domains. You pay per checked domain, so this also caps the cost. Whole number, 1 to 10,000; default 1,000.
dkimSelectorsNoExtra DKIM selectors. Optional. About 40 common selectors (google, selector1, selector2, k1, s1, s2, default…) are always tried. Add your own if you sign with a custom one, e.g. 20230601 or mailo.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing that it runs the Apify Actor pandadad0214/email-domain-security-checker on the caller's own Apify account, the per-domain price ($0.002), that empty runs are not charged per result, and that spend is capped by run_max_charge_usd. That billing/account context is exactly the costly, non-obvious behavior an agent needs before calling an openWorld tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and output are front-loaded in the first sentence, then cost/execution detail, which is a sensible ordering. It is dense but slightly redundant, since the pricing and cap are stated again in the run_max_charge_usd schema entry.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description summarizes the return shape (per-domain rows, letter grade, risk, provider, senders, fixes, Excel/CSV), and it covers execution model, cost, and timeout behavior. For a zero-required-parameter bulk audit tool, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in structured form, which sets the baseline at 3. The description adds little parameter-level meaning beyond restating the spend cap that already exists in run_max_charge_usd's schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: check SPF, DKIM, DMARC, MX provider, BIMI and MTA-STS for a list of domains or emails. It also describes the shape of the result (one row per domain with an A-F grade, spoofing risk, provider, senders, fixes), so the agent knows exactly what it gets back. None of the listed siblings overlap, so no explicit differentiation is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this to check ... for a list of domains or emails" gives a clear triggering context, and the empty-input behavior (3-domain demo) tells the agent it can call without arguments. There is no explicit when-not guidance or named alternative, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

federal_contract_finderUSAspending Scraper: Federal Contract Awards & Recompete FinderA
Read-only

Use this to find US federal contract awards and contracts ending soon (recompete leads) from USAspending.gov. Input: keywords, NAICS, PSC, agency, state or set-aside. Output: one row per contract with incumbent, UEI, amount, agency, end date and link, plus top competitors.

Runs the Apify Actor pandadad0214/federal-contract-finder (https://apify.com/pandadad0214/federal-contract-finder) on your own Apify account. Price: $0.002 per contract found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
modeNoMode. Contract awards = awards that match your filters, sorted as you choose. Recompete radar = only contracts whose period of performance ends between today and the number of months below (incumbent contracts likely to be re-solicited), soonest first. Choices: awards = Contract awards; recompete = Recompete radar (contracts ending soon).awards
dateToNoActivity to date. Optional. 2026, 2026-09 or 2026-09-30. Default: today.
sortByNoSort (contract awards mode). Largest awards first, newest start date first, latest end date first, or most recently modified first. Recompete radar always sorts by end date, soonest first. Choices: amount = Largest amount; newest = Newest start date; endingSoon = Latest end date; recentlyModified = Recently modified.amount
agenciesNoAwarding agencies. Optional. Department or sub-agency by name or abbreviation, e.g. DOD, VA, GSA, DHS, Department of the Army, Missile Defense Agency, Forest Service.
dateFromNoActivity from date. Optional. 2024, 2024-06 or 2024-06-30. Awards with a contract action (signed or modified) on or after this date. Default: 24 months ago (36 months in recompete mode). Earliest 2007-10-01.
keywordsNoKeywords. Words to find in the award description, recipient or codes, e.g. cybersecurity, janitorial, drone. Each keyword at least 3 characters; rows matching any keyword are returned. At least one filter (keywords, NAICS, PSC, agency, recipient, state or set-aside) is required.
pscCodesNoPSC codes. Optional. Product and Service Codes (what was bought), e.g. D399 other IT, R425 engineering support, S201 custodial.
maxAmountNoMaximum award amount (USD). Optional. Whole number, 0 or more USD.
minAmountNoMinimum award amount (USD). Optional. Whole number, 0 or more USD.
setAsidesNoSet-aside types. Optional. Only awards made under these small-business set-asides.
maxResultsNoMaximum results. You pay per returned contract, so this also caps the cost. Whole number, 1 to 5,000; default 100.
naicsCodesNoNAICS codes. Optional. 2 to 6 digit NAICS industry codes; a prefix covers all codes under it (5415 = computer systems design). Examples: 541512 IT services, 561720 janitorial, 236220 commercial construction.
contractTypesNoContract types. Optional. Default: all four prime contract types.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
recipientNamesNoRecipient (company) names. Optional. Company names or UEIs to look up a competitor's or partner's contracts, e.g. Booz Allen.
recompeteMonthsNoRecompete window (months). Recompete radar only: keep contracts that end within this many months from today. Whole number, 1 to 36; default 12.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
performanceStatesNoPlace of performance (states). Optional. 2-letter US state codes where the work is done, e.g. AZ, TX, DC.
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, openWorldHint, non-idempotent and non-destructive, so the safety profile is largely covered. The description adds genuinely useful context annotations cannot carry: it runs on the caller's own Apify account, costs $0.002 per contract found, empty runs aren't charged, and spend is capped by run_max_charge_usd. However, it doesn't disclose runtime behavior, pagination/truncation of the result set, or failure modes when no filter matches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs: the first front-loads what the tool does and what goes in and out, the second covers execution, cost and caps. Nearly every sentence earns its place; the pricing sentence is dense but necessary given the per-result billing model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 19-parameter tool with no output schema, the description does what's needed: it summarizes the result row shape (incumbent, UEI, amount, agency, end date, link, top competitors) and explains the billing and spend-cap model. An agent can decide whether to call this and predict the response without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 19 parameters in detail, including enums, examples, defaults and ranges. The description's 'Input: keywords, NAICS, PSC, agency, state or set-aside' largely restates what the schema provides and adds no syntax or format guidance beyond it. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — 'find US federal contract awards and contracts ending soon (recompete leads) from USAspending.gov' — and names the two operational modes (awards vs. recompete radar). An agent can tell this apart from adjacent lead-generation tools without opening the schema, since the sourcing domain and entity type are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the use case (award discovery and recompete lead generation) and the mode descriptions inside the schema clarify which mode serves which intent. It also notes the at-least-one-filter constraint. What's missing is an explicit 'use X instead when…' against the closest sibling, grants_finder, which targets a different but easily confused funding type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grants_finderGrants.gov Scraper: Federal Grants, NIH & NSF Awards APIA
Read-only

Use this to find US federal funding: open and forecasted Grants.gov opportunities plus funded NIH and NSF awards (Grants.gov scraper). Input: keywords plus agency, date and amount filters. Output: one row per grant with agency, dates, amount (USD), eligibility and link.

Runs the Apify Actor pandadad0214/grants-finder (https://apify.com/pandadad0214/grants-finder) on your own Apify account. Price: $0.003 per grant found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
dateToNoTo date. Optional. 2026, 2026-12 or 2026-12-31.
sortByNoSort. Relevance (default) or newest first (by posted / start date). Choices: relevance = Relevance; newest = Newest first.relevance
sourcesNoSources. Grants.gov = open and upcoming funding opportunities you can apply to. NIH RePORTER and NSF = awards already made (who got funded, how much, by which program).
agenciesNoAgencies. Optional. Grants.gov agency codes or names (HHS-NIH11, NSF, DOE, USDA, ED, Geological Survey; a code prefix like HHS matches all HHS sub-agencies). NIH institutes (NCI, NIAID, NIMH… or NIH for all). NSF directorates (CSE, BIO, GEO, MPS, SBE, EDU, ENG, TIP, or NSF for all). A source is skipped when none of its agencies are listed.
dateFromNoFrom date. Optional. 2025, 2025-06 or 2025-06-30. Applies to the Grants.gov posted date, the NIH project start date and the NSF award date.
keywordsYesKeywords. What the funding is for, e.g. artificial intelligence, rural broadband, opioid prevention. Use quotes for exact phrases ("machine learning"). NIH also understands AND / OR / NOT.artificial intelligence
maxAmountNoMaximum amount (USD). Optional. Whole number, 0 or more USD.
minAmountNoMinimum amount (USD). Optional. Grants.gov award ceiling, NIH fiscal-year award or NSF estimated total. When set, rows whose source publishes no amount are left out (and counted in the summary). Whole number, 0 or more USD.
nihActiveOnlyNoNIH: active projects only. Only return NIH projects that are currently active. Default: off.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
nihFiscalYearsNoNIH fiscal years. Optional, e.g. 2025, 2026. Each NIH project appears once (its latest matching year).
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
grantsGovStatusesNoGrants.gov opportunity status. Default: forecasted and posted (still open or coming soon).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).
maxResultsPerSourceNoMaximum results per source. You pay per returned result, so this also caps the cost. Up to 1,000 per source. Whole number, 1 to 1,000 results per source; default 50.
includeGrantsGovDetailsNoGrants.gov details (amount, eligibility, summary). Fetch each opportunity's detail page for award ceiling, eligibility and summary. Turn off for a faster title-and-deadline list. Default: on.
grantsGovFundingCategoriesNoGrants.gov funding categories. Optional Grants.gov category codes, e.g. ST (science and technology), HL (health), ED (education), AG (agriculture), ENV (environment), CD (community development).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false. The description adds valuable non-schema behavior: it runs a specific Apify Actor on the caller's own account, costs $0.003 per grant found, uncharged runs when nothing is found, and that spending is capped by run_max_charge_usd. It omits async/timeout failure behavior, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short paragraphs: purpose and I/O first, then execution/pricing/cap context. Front-loaded and free of filler, though the parenthetical '(Grants.gov scraper)' and repeated pricing framing add a little redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter scraper with no output schema, the description supplies the output shape (one row per grant with agency, dates, amount, eligibility, link), cost model, and spending cap. Cost, dispatch and pagination subtleties across sources are mostly covered; only runtime/timeout and failure behavior are left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 17 parameters thoroughly. The description adds only the broad filter categories (agency, date, amount) and the output row fields; it doesn't explain any parameter in more depth than the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource set ('find US federal funding: open and forecasted Grants.gov opportunities plus funded NIH and NSF awards') and distinguishes the three sources' semantics (opportunities to apply to vs. awards already made). That differentiation from sibling tools like federal_contract_finder is explicit within the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to use it ('Use this to find US federal funding') and gives the required input (keywords) plus optional filters, with source semantics explaining Grants.gov vs. NIH/NSF selection. It doesn't explicitly name a sibling alternative such as federal_contract_finder for contracts, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

local_business_leadsLocal Business Leads: Google Maps Alternative (OpenStreetMap)A
Read-only

Use this to list local businesses by category and city, e.g. dentists in Tempe AZ. Output: one row per business with address, phone, email, website, opening hours and socials from OpenStreetMap (open license), plus Excel and CSV.

Runs the Apify Actor pandadad0214/local-business-leads (https://apify.com/pandadad0214/local-business-leads) on your own Apify account. Price: $0.001 per business found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
sortByNoSort by. Most complete = businesses with phone, email, website, address and hours first. Name = A to Z. Choices: mostComplete = Most complete contact details first; name = Name (A-Z).mostComplete
latitudeNoLatitude. Optional. Instead of a location name: center latitude, e.g. 33.4255 (used with longitude and radius; radius defaults to 5 km).
locationNoLocation. City, county, state, ZIP or neighborhood, e.g. "Tempe, Arizona", "Austin, TX", "London", "90210". Smaller areas are faster; whole US states or countries may time out (use a radius or a city).
radiusKmNoRadius (km). Optional. Search a circle of this many km around the location's center instead of its official boundary. 1 to 100.
longitudeNoLongitude. Optional. Center longitude, e.g. -111.9400.
categoriesNoBusiness categories. Plain words, one per line: dentist, plumber, restaurant, coffee shop, lawyer, hair salon, gym, real estate, car repair… (about 150 built in). Other words are matched against OpenStreetMap tags and names. Power users can enter a tag like shop=florist or craft=hvac.
maxResultsNoMaximum businesses. You pay per returned business, so this also caps the cost. Whole number, 1 to 10,000; default 200.
requireEmailNoOnly businesses with an email. Keep only businesses that list an email address (fewer results: most businesses publish phone and website, fewer publish email).
requirePhoneNoOnly businesses with a phone number. Keep only businesses that list a phone number.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
requireWebsiteNoOnly businesses with a website. Keep only businesses that list a website on OpenStreetMap.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/openWorld annotations by disclosing the billing model ($0.001 per business found), that empty runs are not charged per result, the per-call spending cap via run_max_charge_usd, and that it executes a named Apify Actor on the user's own account. That is exactly the cost/auth/execution context an agent cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what it does and what it returns, followed by a compact execution/pricing paragraph; every sentence carries information. The pricing and charge-cap sentence slightly overlaps the run_max_charge_usd schema text, which is the only redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, no-required-input tool with no output schema, the description supplies both the invocation gist and the return shape (one row per business with address, phone, email, website, hours, socials, plus Excel/CSV). Combined with annotations covering safety and open-world behavior, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in detail (including enums, ranges, and defaults), which sets the baseline at 3. The description only lightly reinforces cost control through run_max_charge_usd and adds no meaning about parameters the schema does not already cover.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('list local businesses by category and city') with a concrete example ('dentists in Tempe AZ'), and names the data source (OpenStreetMap) so an agent can tell it apart from vertical lead tools like trucking_company_leads or podcast_leads_finder without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to list local businesses by category and city' gives a clear use case with an example query shape. It lacks any explicit exclusion or routing statement (e.g. when to prefer a sibling lead-finder over this one), so it stops short of the 5 bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

npi_provider_listsNPI Registry Scraper: US Doctors & Healthcare Provider LeadsA
Read-only

Use this to build lists of US healthcare providers from the official NPI Registry (NPI registry scraper). Input: specialties in plain words plus states, cities or ZIP codes. Output: one de-duplicated row per provider with NPI, name, specialty, address and phone, plus Excel.

Runs the Apify Actor pandadad0214/npi-provider-lists (https://apify.com/pandadad0214/npi-provider-lists) on your own Apify account. Price: $0.0015 per provider in list. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
citiesNoCities. Optional. Write "Austin, TX". Saint/St, Fort/Ft and Mount/Mt spellings are searched together. When cities are given, the list is limited to those cities (states only fill in a missing state).
statesNoStates. 2-letter codes, e.g. VT, TX. Big states are split automatically by ZIP code, so you are not stuck at the registry's 1,200-result ceiling. If you also list cities without a state, these states are used for them.
lastNameNoLast name. Optional, individuals only. A trailing * is a wildcard after at least 2 letters (Sm*).
zipCodesNoZIP codes. Optional. 5-digit ZIPs (05401) or prefixes of 2-4 digits (941 = San Francisco area, 05 = Vermont/New Hampshire). Added to the territory on top of states or cities.
firstNameNoFirst name. Optional, individuals only. Wildcards as above.
maxResultsNoMaximum providers. You pay per provider in the list, so this also caps the cost. Up to 50,000. With several specialties or areas the limit is shared fairly between them. Whole number, 1 to 50,000 results; default 500.
specialtiesNoSpecialties. Plain names work: dentist, orthodontist, family doctor, pediatrician, cardiologist, dermatologist, psychiatrist, chiropractor, physical therapist, nurse practitioner, psychologist, mental health counselor, social worker, pharmacy, home health, hospice, nursing home, urgent care, hospital, FQHC and more (full list in the README). Any NPPES taxonomy description also works, e.g. "Family Medicine" or "Nurse Practitioner, Pediatrics".
providerTypeNoProvider type. Individuals (NPI-1: doctors, nurses, therapists) or organizations (NPI-2: practices, clinics, pharmacies, agencies). Choices: all = Both; individual = Individuals only; organization = Organizations only.all
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
organizationNameNoOrganization name. Optional, organizations only, e.g. "Kaiser*" or "Walgreen*".
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).
primarySpecialtyOnlyNoPrimary specialty only. On: keep only providers whose primary taxonomy is the specialty you asked for. Off (default): keep anyone who lists it among their taxonomies.
includeSecondaryLocationsNoInclude providers with an additional practice location in the territory. On (default): a provider whose main office is elsewhere but who also practices in your territory is included, and the in-territory address is shown. Off: primary practice address only.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-destructive, and the description adds material context beyond them: it runs on the caller's own Apify account, costs $0.0015 per provider, empty runs are not charged per result, and spend is hard-capped via run_max_charge_usd. It stops short of describing runtime behavior (timeout defaults, long-running/async semantics for large states), which matters for a scraping tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short blocks ordered purpose → inputs/outputs → execution and pricing, with zero filler and the value proposition front-loaded. Minor redundancy ("NPI Registry" repeated, SEO-style parenthetical) keeps it from being maximally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with no output schema, the description usefully states the returned columns and the billing model, and 0/14 required parameters is partially mitigated by naming the intended input trio. It never clarifies what happens if all geographic filters are omitted, which is the main open question for a call with no required fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains every one of the 14 parameters in detail (wildcards, ZIP prefixes, city/state interaction, primary-specialty toggle). The description adds only a high-level hint ("specialties in plain words plus states, cities or ZIP codes") and repeats the cost cap already in the schema, so it neither adds nor loses meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete verb+resource+source (build provider lists from the official NPI Registry) and immediately specifies the input shape (specialties plus states/cities/ZIPs) and output shape (one de-duplicated row per provider with NPI, name, specialty, address, phone). This is unmistakably a healthcare-provider lead builder, distinct from domain-adjacent siblings such as local_business_leads or trucking_company_leads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this to build lists of US healthcare providers" plus the Input line gives a clear trigger condition and the minimum viable call shape. It does not, however, name any alternative tool or state when not to use it (e.g. versus local_business_leads for non-clinical businesses), so the routing guidance stops short of explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_table_extractorPDF Table Extractor: PDF to Excel & CSV Converter with OCRA
Read-only

Use this to extract every table from PDF files into Excel and CSV (PDF to Excel converter, OCR for scans). Input: PDF URLs or uploads plus optional page ranges. Output: one row per table with pages, header, row and column counts and cell data, plus Excel and CSV files.

Runs the Apify Actor pandadad0214/pdf-table-extractor (https://apify.com/pandadad0214/pdf-table-extractor) on your own Apify account. Price: $0.001 per page analysed; $0.003 per table extracted; $0.02 per scanned page ocr. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
pagesNoPages. Optional. Only these pages, e.g. 1-5, 8, 12-end. Leave empty for all pages (up to the page limit below).
pdfUrlsNoPDF URLs. Direct links to PDF files. Google Drive and Dropbox share links are converted to direct downloads automatically. Up to 150 MB per file.
pdfStoreNoKey-value store with PDFs. Optional. Pick a key-value store in your account that holds PDFs. The Actor gets read access to this store only.
detectionNoTable detection. Auto tries ruled-grid detection first and switches to whitespace (column alignment) detection when that recovers more of the table. Pick one mode if you know your PDF's style. Choices: auto = Auto (recommended); lattice = Ruled tables only (cell borders); stream = Whitespace tables only (no borders).auto
pdfStoreKeysNoRecord keys in that store. Optional. Keys of the PDFs to process (e.g. REPORT.pdf). Leave empty to process every PDF record in the store (up to 50).
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
maxPagesPerPdfNoMaximum pages per PDF. Caps cost and run time on very long documents. You pay per page analysed. Whole number, 1 to 2,000 pages; default 100.
headerDetectionNoHeader row. Auto finds header rows above the first data row (multi-line headers are joined). First row = always use row 1. None = generic Column 1, Column 2… names. Choices: auto = Auto-detect; firstRow = Always the first row; none = No header.auto
ocrScannedPagesNoOCR scanned pages (beta). Pages with no text layer (scans, photos) are always detected. Off (default): they are skipped, listed in SUMMARY and on the Index sheet, and cost nothing. On: they are read with Tesseract OCR (English) and their tables are marked 'verify'. OCR is slow (about a minute per page) and can misread digits and dot leaders, so use it for clean scans and check the numbers.
mergeAcrossPagesNoJoin tables that continue on the next page. When a table carries on over a page break with the same columns, output it as one table with a page range. Default: on.
mergeWrappedRowsNoMerge wrapped rows. Join labels that wrap onto a second line back into one row, so numbers stay on the right line. Default: on.
numbersAsNumbersNoNumbers as numbers in Excel. Write 1,234 / (56) / 4.2% as real Excel numbers (parentheses = negative) so you can sum and chart them. CSV and dataset keep the text exactly as printed. Default: on.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
maxOcrPagesPerPdfNoMaximum OCR pages per PDF. OCR has its own cap because it is slow and priced per page. Extra scanned pages are flagged, not charged. Whole number, 0 to 100 pages; default 10.
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/openWorld annotations: it discloses the per-page, per-table and per-OCR-page pricing, that empty runs are not charged per result, and that spend is hard-capped by run_max_charge_usd. It also names the underlying Actor and states it runs on the caller's own Apify account — key operational context for a paid, external run.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and input/output shape in one tight sentence, followed by a separate paragraph on Actor, pricing and caps. Both paragraphs earn their place, though the pricing sentence is dense and packs several distinct facts (per page, per table, per OCR page, minimum-charge exclusion) into one run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters and no output schema, the description does the necessary work by describing the return shape (one row per table with pages, header, row/column counts, cell data, plus Excel and CSV files). Combined with the schema's own cost-control parameters, an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 15 parameters is already documented in the schema, including the enum meanings for detection and headerDetection. The description only restates 'PDF URLs or uploads plus optional page ranges', adding no syntax or trade-off detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('extract every table from PDF files into Excel and CSV') plus the OCR dimension for scans. No sibling tool touches PDFs, so the agent can identify this as the table-extraction tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to extract every table from PDF files...' gives clear context for when to reach for it, and the input line clarifies accepted sources (PDF URLs or uploads plus page ranges). It stops short of explicit exclusions (e.g. text-only PDFs or extraction of figures/non-tabular content), but with unrelated siblings that gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

podcast_leads_finderPodcast Leads Finder: Podcast Host Emails & Guest Booking ListA
Read-only

Use this to find podcasts to pitch by topic. Input: keywords and country. Output: one row per active show with host, contact email published in its RSS feed, website, socials, episodes, last episode date and a has-guests signal, plus Excel and CSV.

Runs the Apify Actor pandadad0214/podcast-leads-finder (https://apify.com/pandadad0214/podcast-leads-finder) on your own Apify account. Price: $0.004 per podcast found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
sortByNoSort by. Relevance = Apple's search order. Newest episode = most recently active first. Most episodes = biggest back catalogs first. Choices: relevance = Relevance; newestEpisode = Newest episode; mostEpisodes = Most episodes.relevance
countryNoApple Podcasts country. 2-letter store country to search, e.g. US, GB, CA, AU, IN. Default US.US
keywordsNoTopics / keywords. Podcast topics to search on Apple Podcasts, one per line, e.g. real estate investing, SaaS marketing, women in business. Each keyword returns up to about 600 shows before filters. Leave empty for a 20-podcast demo.
languageNoLanguage. Optional. Keep shows whose feed language starts with this code, e.g. en, es, de.
deepSearchNoDeep search. On by default: also searches show descriptions and keywords, not just titles, for up to 3x more shows per keyword.
maxResultsNoMaximum podcasts. You pay per returned podcast, so this also caps the cost. Whole number, 1 to 3,000; default 100.
minEpisodesNoMinimum episodes. Optional. Skip shows with fewer episodes (e.g. 20 to skip brand-new shows). Default 0.
onlyWithEmailNoOnly podcasts with a contact email. Keep only shows that publish a contact email in their RSS feed (itunes:owner, managingEditor or the show description).
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
activeWithinDaysNoActive within (days). Keep only shows that published an episode in the last N days. 0 = include inactive shows. Default 90.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
guestFriendlyOnlyNoOnly podcasts that feature guests. Keep only shows where at least 30% of the last 20 episodes look like interviews (guest names, 'with', 'feat.', or podcast:person guest tags).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, non-idempotent, non-destructive, so the safety profile is covered. The description adds real value beyond that: per-result pricing of $0.004, no charge for empty runs, a per-call spending cap, and the requirement that it runs on the caller's own Apify account with a named Actor. It does not disclose runtime behavior such as typical latency or failure modes, so a 3 rather than higher.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short paragraphs, front-loaded with purpose, then output shape, then execution and pricing. Every sentence carries distinct information, and the repeated Actor URL is the only minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 optional parameters and no output schema, the description compensates well by enumerating the returned fields (host, RSS email, website, socials, episodes, last episode date, has-guests signal) and the Excel/CSV formats. The remaining gap is that it does not clarify how the safety or cost profile changes if run_max_items and maxResults conflict.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters are already documented, which sets the baseline at 3. The description adds only marginal parameter meaning, tying cost to returned results and noting that run_max_charge_usd caps spend per call, but it does not explain the interaction between maxResults, run_max_items, and the charge cap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource plus the intent: "find podcasts to pitch by topic," then immediately names the inputs (keywords, country) and the per-show output. No sibling tool in the list covers podcast discovery, so the purpose is unambiguous without cross-referencing anything.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is clear: pitch prospecting by topic and country, with the note that an empty keywords list returns a 20-podcast demo, which tells the agent how to probe cheaply. It stops short of explicit when-not-to-use guidance or named alternatives, so it is clear context rather than full routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pubmed_evidence_tablePubMed Scraper: Articles, Abstracts & Evidence Table to ExcelA
Read-only

Use this to search PubMed and get a screening-ready evidence table. Input: PubMed query strings plus optional date and study-design filters. Output: one row per article with PMID, journal, study design, sample size and retraction status, plus PRISMA counts and Excel.

Runs the Apify Actor pandadad0214/pubmed-evidence-table (https://apify.com/pandadad0214/pubmed-evidence-table) on your own Apify account. Price: $0.004 per article found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
dateToNoPublished to. Optional. 2025, 2025-12 or 2025-12-31.
sortByNoOrder. Order of the table. PubMed best match or most recent first. Choices: relevance = Best match (PubMed relevance); newest = Most recent.relevance
queriesYesPubMed search strings. One or more PubMed queries, written exactly as you would in PubMed (field tags like [tiab], [mh], [pt] and AND / OR / NOT work). Records found by more than one query are counted once and reported as duplicates.
dateFromNoPublished from. Optional. 2020, 2020-06 or 2020-06-30 (publication date).
languagesNoLanguages. Optional, e.g. english, spanish. Leave empty for all.
maxResultsNoMaximum articles. You pay per returned article ($0.004 each), so this also caps the cost. Counts for everything not included are still reported. Whole number, 1 to 10,000 results; default 200.
hasAbstractNoOnly records with an abstract. Removes records without an abstract (often letters, editorials and older records). Default: off.
contactEmailNoContact email for NCBI / Crossref (optional). Sent to NCBI and Crossref as the contact for this tool. Leave empty to use ours.
studyDesignsNoStudy designs. Keep only these designs (PubMed publication types / MeSH). Leave empty for all.
citationStyleNoCitation style. Style for the citation column and the CITATIONS file. Formatted by citeproc-js with the official CSL style. Choices: vancouver = Vancouver (NLM); apa = APA 7th edition; ieee = IEEE; harvard = Harvard (Cite Them Right); chicago = Chicago author-date; mla = MLA 9th edition.vancouver
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
excludePreprintsNoExclude preprints. Removes records with the Preprint publication type. Default: off.
freeFullTextOnlyNoFree full text only. Keep only records PubMed links to a free full text. Default: off.
includeAbstractsNoInclude abstracts. Include the abstract in the table and import files (recommended for screening). Default: on.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
excludeAnimalOnlyNoExclude animal-only studies. Removes records indexed with Animals but not Humans. Records not yet indexed are kept. Default: off.
retractedArticlesNoRetracted articles. Flag keeps them in the table, marked FIX (charged as returned articles). Exclude removes them before they are returned (not charged) and counts them in PRISMA. Choices: flag = Flag them (FIX); exclude = Exclude them.flag
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, openWorldHint, destructiveHint=false), and the description still adds genuinely new operational facts: it runs a named Apify Actor on the caller's own account, charges $0.004 per article found, gives free runs that find nothing, and enforces a per-call spend cap via run_max_charge_usd. The cost and billing model is the key thing an agent could not infer from annotations. It does not explain how the Excel artifact is delivered back, which stays opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight paragraphs with an explicit Input/Output structure, front-loading the purpose before the billing details. The Actor URL is arguably filler for an agent, but otherwise every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter, no-output-schema tool, the description does the important work: it names the output columns, mentions PRISMA counts and the Excel deliverable, and explains the cost model. The remaining gap is how the returned Excel file is accessed, which an agent needs in order to complete the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented, and the description only summarizes them at a high level ('query strings plus optional date and study-design filters'). The one linkage it surfaces, that spending is capped per call by run_max_charge_usd, is also stated in the schema for maxResults and run_max_charge_usd. Baseline 3 is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('search PubMed and get a screening-ready evidence table') and enumerates the return columns (PMID, journal, study design, sample size, retraction status, PRISMA counts, Excel). This is far more than a restatement of the title. It never names the overlapping siblings literature_search or citation_formatter, so an agent must infer which one to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to search PubMed and get a screening-ready evidence table' implies the use case (systematic review screening) but gives no explicit when-not or routing to alternatives. With siblings like literature_search and citation_formatter in the same family, the absence of differentiation is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reference_checkerReference Checker: Fake, AI-Hallucinated & Retracted CitationsA
Read-only

Use this to check a bibliography, DOIs or paper titles for fake (AI-hallucinated), miscited or retracted references. Input: reference text, DOIs or titles. Output: one row per reference with OK/CHECK/FIX status, matched DOI, mismatches and retraction status.

Runs the Apify Actor pandadad0214/reference-checker (https://apify.com/pandadad0214/reference-checker) on your own Apify account. Price: $0.01 per reference checked. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
doisNoDOIs. DOIs to check (bare 10.xxxx/..., doi: prefix or https://doi.org/ URLs).
modeNoMode. 'check' = the normal one-off check. 'monitor' = re-check the DOIs (and/or ORCID works) and compare with the previous run's saved state. Choices: check = Check references (one-off); monitor = Monitor DOIs / ORCID for new retractions (schedule it).check
orcidNoORCID iD (monitor mode). Optional. Monitor every DOI on this researcher's public ORCID record (plus Crossref works tagged with it), e.g. 0000-0002-1825-0097. Combined with the DOIs list.
titlesNoPaper titles. Article titles to look up when you have no full reference.
monitorNameNoMonitor name (monitor mode). Optional. Name of the key-value store in your account that keeps state between runs (letters, digits, hyphens). Use a different name for each list you monitor. Default: refcheck-monitor-, or refcheck-monitor.
bibliographyNoBibliography / reference list. Paste a reference list in any common style (APA, MLA, Chicago, Vancouver, IEEE, Harvard). One reference per line, numbered ([1], 1.), or separated by blank lines.
contactEmailNoContact email for Crossref (optional). Optional. Sent to Crossref as the mailto contact so requests use its faster 'polite' pool. Never shared elsewhere.
maxReferencesNoMax references per run. Safety cap on references checked (each is billed). Whole number, 1 to 20,000 references; default 1,000.
minMatchScoreNoMinimum match score (0-100). How close a Crossref record must be (title, authors, year) to count as found. Lower finds more but risks false matches. Whole number, 50 to 100; default 80.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
checkOpenAccessNoFind open-access links. Look up free legal full-text links via OpenAlex. Default: on.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
includeCandidatesNoInclude candidate matches. Also output the top Crossref candidates and their scores for each reference (useful for auditing). Default: off.
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, destructiveHint=false, openWorldHint=true), the description discloses the cost model ($0.01 per reference, no charge for runs that find nothing), the spending cap mechanism, and that the run executes on the caller's own Apify account. It also previews the result shape (one row per reference with OK/CHECK/FIX status), which the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight paragraphs: use case and input/output up front, then operational facts (Actor, price, billing, cap). Every sentence carries information, though the Actor URL is slightly noisy and the second paragraph could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 14 optional parameters and no output schema, the description does the necessary extra work by summarizing the return shape and the billing/pricing behavior. Mode semantics (check vs monitor) are left to the schema rather than the description, but they are well covered there, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 14 parameters is already documented in structured form, including modes, caps and defaults. The description adds only a high-level mapping of the three input types and the run_max_charge_usd cap, which is marginal beyond the schema — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (check) and resources (bibliography, DOIs, paper titles) and states the exact failure classes it detects: fake/AI-hallucinated, miscited, and retracted references. That framing cleanly separates it from sibling tools like citation_formatter or literature_search, which an agent can rule out from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear when-to-use statement and enumerates the three accepted input forms, so an agent knows how to invoke it. It stops short of explicit exclusions or naming the alternative tools (e.g. citation_formatter) for adjacent tasks, so it lands at 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

researcher_expert_finderGoogle Scholar Author Alternative: Find Experts & KOLs by TopicA
Read-only

Use this to find the academic experts and key opinion leaders on a research topic (Google Scholar author search alternative). Input: a topic plus country, institution and year filters. Output: ranked experts with ORCID, affiliation, h-index and topic papers.

Runs the Apify Actor pandadad0214/researcher-expert-finder (https://apify.com/pandadad0214/researcher-expert-finder) on your own Apify account. Price: $0.0025 per expert found. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
topicYesResearch topic. What the experts work on, e.g. perovskite solar cells, antimicrobial resistance, large language models in healthcare. Matched against paper titles and abstracts. Use quotes for exact phrases ("machine learning") and AND / OR / NOT for Boolean searches.perovskite solar cells
sortByNoSort. Expert score (default) blends matching papers, their citations and h-index. Or sort by a single number. Choices: expertScore = Expert score; topicWorks = Matching papers; topicCitations = Citations of top matching papers; citations = Total citations; hIndex = h-index.expertScore
yearToNoPapers to year. Optional. Only count matching papers published up to this year. Whole number, 1900 or more.
minWorksNoMinimum total works. Optional. Total works on the person's OpenAlex profile. Whole number, 0 or more works.
yearFromNoPapers from year. Optional. Only count matching papers published in or after this year, e.g. 2020 for people active in the field recently. Whole number, 1900 or more.
countriesNoCountries. Optional 2-letter ISO country codes (US, GB, DE, IN, AU…). Keeps experts whose current institution is in one of these countries, and counts only papers with an author in them.
minHIndexNoMinimum h-index. Optional. Whole number, 0 or more.
maxResultsNoMaximum experts. You pay per expert returned, so this also caps the cost. Up to 200 (the ranked pool is the 200 authors with the most matching papers). Whole number, 1 to 200 results; default 25.
activeSinceNoActive since (year). Optional. Only keep people who published anything in or after this year (uses OpenAlex yearly counts for the last ~10 years). Whole number, 1900 or more.
institutionNoInstitution. Optional. University, hospital, lab or company name (e.g. Stanford University), a ROR ID or an OpenAlex institution ID (I…). Sub-units count too: a university includes its schools and hospitals. The matched institution is shown in the search log.
includeOrcidNoAdd ORCID details. For experts with an ORCID iD, add current employment and role, keywords, websites and a short biography from the public ORCID record. Default: on.
minCitationsNoMinimum total citations. Optional. Whole number, 0 or more citations.
minTopicWorksNoMinimum matching papers. Each expert must have at least this many papers on your topic. Whole number, 1 or more papers; default 2.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
papersPerExpertNoRecent papers per expert. How many of each expert's newest matching papers to list (title, year, DOI, citations). 0 to skip. Whole number, 0 to 10 papers; default 3.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
maxAuthorsPerPaperNoIgnore papers with more authors than. Large collaboration papers (hundreds of authors) would make everyone on them look like an expert. Papers with more authors than this are not counted. Whole number, 1 or more authors; default 50.
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the pricing model ($0.0025 per expert), the no-charge-for-empty-runs policy, that the call runs on the user's own Apify account, and that spend is hard-capped via run_max_charge_usd. These are exactly the operational facts an agent needs before triggering a paid, open-world call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then input, then output, then operational/cost details — a readable order with no filler. The second paragraph is dense but each sentence (actor, price, billing exception, cap) carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter paid tool with no output schema, the description supplies the missing return-value shape (ranked experts with ORCID, affiliation, h-index, topic papers) plus cost and timeout behavior. Minor gap: it doesn't mention the ranked-pool size limit (200 authors) or latency expectations in prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already well documented; the description only summarizes the input as "a topic plus country, institution and year filters." That summary adds almost nothing beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — finding academic experts and KOLs on a research topic — and positions itself against an external reference ("Google Scholar author search alternative"), which makes it clearly distinct from siblings like literature_search or pubmed_evidence_table.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening "Use this to find..." gives a clear usage context and the Google Scholar framing implies when an agent would pick it over a paper-search tool. It does not, however, explicitly name a sibling tool or state when-not to use it, so routing still requires inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trucking_company_leadsTrucking Company Leads: New FMCSA Carriers, Email & PhoneA
Read-only

Use this to get fresh trucking company leads from official FMCSA data: new USDOT carriers, brokers and freight forwarders with phone, email, officers, fleet size, drivers, cargo and authority. Filter by state, date, fleet and cargo. Excel and CSV.

Runs the Apify Actor pandadad0214/trucking-company-leads (https://apify.com/pandadad0214/trucking-company-leads) on your own Apify account. Price: $0.002 per carrier returned. Runs that find nothing are not charged per result. Spending is capped per call by run_max_charge_usd.

NameRequiredDescriptionDefault
modeNoWhat to find. New carriers = fresh USDOT registrations (the classic trucking-leads list for insurance, factoring, ELD, dispatch and fuel cards). Search = any carrier matching your filters. Lookup = details for a list of USDOT numbers. Choices: new = New carriers (registered in the last N days); search = Search all carriers by filters; lookup = Look up USDOT numbers.new
cargoNoCargo hauled (any of). Optional. Keep carriers that haul at least one of these, e.g. refrigerated food, building materials, livestock.
citiesNoCities. Optional. Exact city names, e.g. Houston, Laredo.
statesNoStates / provinces. 2-letter codes of the physical address (TX, CA, FL, ON…). Empty = all states.
daysBackNoRegistered in the last (days). New-carriers mode: how far back to look. 7 = this week's new entrants.
operationNoOperation. Interstate carriers cross state lines and usually need MC authority. Choices: any = Any; A = Interstate; B = Intrastate hazmat; C = Intrastate non-hazmat.any
activeOnlyNoActive USDOT status only. On by default. Off includes inactive and pending registrations (search mode).
dotNumbersNoUSDOT numbers (lookup mode). Lookup mode: one USDOT number per line (up to 1,000).
entityTypeNoEntity type. Find brokers instead of carriers, for example. Choices: any = Any; C = Carrier; B = Broker; F = Freight forwarder; S = Shipper; I = Intermodal equipment provider.any
hazmatOnlyNoHazmat carriers only. Only carriers flagged as hazardous materials carriers.
maxDriversNoMax drivers. Optional.
maxResultsNoMaximum carriers. You pay per carrier returned, so this also caps the cost. Newest registrations first.
minDriversNoMin drivers. Optional.
zipPrefixesNoZIP code prefixes. Optional. ZIP codes or prefixes, e.g. 850 for Phoenix, 770 for Houston.
carrierClassNoCarrier class. For-hire carriers haul other people's freight (best for brokers, factoring and dispatch). Choices: any = Any; forHire = For-hire (authorized for hire); private = Private (hauls own goods); exempt = Exempt for-hire; passenger = Passenger.any
nameContainsNoName contains. Optional. Word in the legal or DBA name, e.g. logistics, express, transport.
requireEmailNoOnly carriers with an email. Skip records with no published email.
requirePhoneNoOnly carriers with a phone. Skip records with no published phone.
maxPowerUnitsNoMax power units. Optional. 1 = owner-operators only.
minPowerUnitsNoMin power units (trucks/tractors). Optional. 1 = owner-operators and up; 5 = small fleets and up.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
updatedWithinDaysNoFiled an update (MCS-150) in the last (days). Optional. Carriers that updated their FMCSA registration recently (active, reachable companies).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, non-destructive, open-world, non-idempotent, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: it runs a named third-party Apify Actor on the caller's own Apify account, charges $0.002 per carrier returned, does not charge per result for empty runs, and enforces a per-call spend cap via run_max_charge_usd. Latency expectations (run_timeout_secs) are left to the schema, which keeps this just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight paragraphs: the first front-loads the value proposition and data fields, the second covers execution, pricing, and the spend cap. Every sentence carries weight, though the field list in sentence one is somewhat dense and could be trimmed for scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 24-parameter tool with no output schema, the description does the necessary work: it lists the returned data fields and the export formats so the agent knows what comes back. The main remaining gap is that mode selection — the single most important parameter — is explained only in the schema, not the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already explains every filter. The description's 'filter by state, date, fleet and cargo' merely summarizes a subset of the 24 parameters and adds no syntax, defaults, or interaction rules (e.g. how daysBack behaves differently per mode). It does add that output is available as Excel and CSV, which is return-format information rather than parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('get fresh trucking company leads from official FMCSA data') and enumerates exactly what a lead contains: USDOT carriers, brokers, freight forwarders, phone, email, officers, fleet size, drivers, cargo, authority. The FMCSA/trucking domain cleanly separates it from siblings like local_business_leads and podcast_leads_finder without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening 'Use this to get fresh trucking company leads' plus the filter list implies the lead-generation use case, but the description never states when to prefer this over a sibling lead tool, nor any exclusion. The three operational modes (new/search/lookup) that really drive selection are documented only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updatesv1.1.1
    • First observedai_search_seo_audit
    • First observedcitation_formatter
    • First observedcompany_hiring_signals
    • First observedcompany_team_finder
    • First observedcompany_website_enricher
    • First observedemail_domain_security_checker
    • First observedfederal_contract_finder
    • First observedgrants_finder
    • First observedliterature_search
    • First observedlocal_business_leads
    • First observednpi_provider_lists
    • First observedpdf_table_extractor
    • First observedpodcast_leads_finder
    • First observedpubmed_evidence_table
    • First observedreference_checker
    • First observedresearcher_expert_finder
    • First observedtopic_trends_tracker
    • First observedtrucking_company_leads

TDQS

A3.9/5.0

Scored across 18 tools

Disambiguation4/5

Most tools have clearly distinct targets: reference checking, citation formatting, literature search, PubMed evidence tables, grant finding, PDF extraction, and various lead/enrichment sources. A few pairs could be confused at first glance (literature_search vs pubmed_evidence_table; company_team_finder vs company_website_enricher), but their descriptions make the boundaries clear.

Naming Consistency5/5

All 18 tools use consistent snake_case noun-phrase naming, with no camelCase or stylistic mixing. Suffixes like _finder, _checker, _enricher, and _tracker form a predictable and readable convention across the set.

Tool Count3/5

Eighteen tools is on the heavy side for a single server, especially because the set spans unrelated domains such as academic research, federal contracting, local lead generation, SEO, and email security. Each tool is individually justified, but the overall count feels closer to a marketplace bundle than a tightly scoped toolkit.

Completeness3/5

Coverage is broad but shallow across multiple domains: academic research has search, checking, formatting, and PubMed extraction, yet lacks full-text retrieval or citation-network tools; lead generation has many finders and enrichers but no verification, CRM, or update/delete operations. Agents can work around these gaps, but the surface is not complete for any one workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Search official US government data from any MCP client: building permits from 10 city open-data portals, federal contract opportunities from SAM.gov with contracting-officer contacts, and the CMS NPI healthcare-provider registry. Open-source TypeScript server; data delivered via Apify's pay-per-result actors using your own Apify token.
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Unified MCP server for scientific literature search and extraction, integrating databases like Scopus, OpenAlex, Semantic Scholar, and Unpaywall to enable AI agents to discover papers, track citations, and analyze content.
    27
    MIT