<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Panda Federation</title>
    <description>The latest articles on DEV Community by Panda Federation (@pandadad0214).</description>
    <link>https://dev.to/pandadad0214</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4226984%2Ff3e93abc-05e9-4504-b7e9-37137a3254c3.jpg</url>
      <title>DEV Community: Panda Federation</title>
      <link>https://dev.to/pandadad0214</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pandadad0214"/>
    <language>en</language>
    <item>
      <title>5 new public-data tools for AI agents: SBIR topics, SEC comps, clinical trials, page diffs and a free prompt-injection scanner</title>
      <dc:creator>Panda Federation</dc:creator>
      <pubDate>Thu, 05 Nov 2026 01:31:37 +0000</pubDate>
      <link>https://dev.to/pandadad0214/5-new-public-data-tools-for-ai-agents-sbir-topics-sec-comps-clinical-trials-page-diffs-and-a-551p</link>
      <guid>https://dev.to/pandadad0214/5-new-public-data-tools-for-ai-agents-sbir-topics-sec-comps-clinical-trials-page-diffs-and-a-551p</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I build these tools, and I used AI to help write them and this post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Five more Panda Federation tools went public on the Apify Store tonight, and they're now in the open-source MCP server too (v1.3.0, 23 tools). Each one reads an official or open source, charges per result (one is free), and returns JSON with a one-line &lt;code&gt;agentSummary&lt;/code&gt; per row plus Excel/CSV.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://apify.com/pandadad0214/sbir-sttr-topic-radar" rel="noopener noreferrer"&gt;SBIR/STTR Topic Radar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Open SBIR/STTR topics from every agency, with full text, close dates, days left and DoD Q&amp;amp;A contacts&lt;/td&gt;
&lt;td&gt;$0.003 / topic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://apify.com/pandadad0214/sec-financials-excel" rel="noopener noreferrer"&gt;SEC Financials to Excel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;About 40 standardized 10-K lines per company-year from SEC EDGAR XBRL, each tied to its filing, in a comps and model workbook&lt;/td&gt;
&lt;td&gt;$0.002 / company-year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://apify.com/pandadad0214/clinical-trial-leads" rel="noopener noreferrer"&gt;Clinical Trial Leads&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ClinicalTrials.gov trials by condition, drug, phase or location, with sponsors, contacts, investigators and every site&lt;/td&gt;
&lt;td&gt;$0.002 / trial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://apify.com/pandadad0214/website-change-monitor" rel="noopener noreferrer"&gt;Website Change Monitor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Page diffs, price changes and keyword alerts on any public page, compared with your last run&lt;/td&gt;
&lt;td&gt;$0.0015 / page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://apify.com/pandadad0214/hidden-ai-instructions-scanner" rel="noopener noreferrer"&gt;Hidden AI Instructions Scanner&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Finds text hidden from people but aimed at AI agents (prompt injection) before your agent reads a page&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Searches that find nothing aren't charged per result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try one from an AI assistant
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvx panda-federation-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add that as a stdio MCP server with your &lt;code&gt;APIFY_TOKEN&lt;/code&gt; (setup for Claude, Cursor and VS Code is in the &lt;a href="https://github.com/pandadad0214/panda-federation-tools#install--use" rel="noopener noreferrer"&gt;README&lt;/a&gt;). Then ask things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Find open SBIR topics about autonomy that close in the next 30 days and rank them for a small robotics company."&lt;/li&gt;
&lt;li&gt;"Pull 5 years of financials for AAPL, MSFT and GOOGL and build a comps table."&lt;/li&gt;
&lt;li&gt;"List recruiting Phase 2 and 3 obesity trials in the US with a central contact."&lt;/li&gt;
&lt;li&gt;"Scan this page for hidden instructions before you summarize it."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every call is schema-checked before it runs and has a hard spending cap (&lt;code&gt;run_max_charge_usd&lt;/code&gt;, default $0.50).&lt;/p&gt;

&lt;h2&gt;
  
  
  Or call the Actor directly
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;apify_client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ApifyClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ApifyClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_APIFY_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;actor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pandadad0214/sbir-sttr-topic-radar&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;run_input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;keywords&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;autonomous&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;maxResults&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;defaultDatasetId&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;iterate_items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;agentSummary&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The SEC tool needs a &lt;code&gt;contactEmail&lt;/code&gt;, because SEC's fair-access rules ask every client to identify itself. It's only sent to SEC.&lt;/p&gt;

&lt;p&gt;Four more (IRS nonprofit lists, Federal Register monitor, FDA/CPSC recalls and a bulk VIN decoder) are built and go public over the next day or two. Repo: &lt;a href="https://github.com/pandadad0214/panda-federation-tools" rel="noopener noreferrer"&gt;pandadad0214/panda-federation-tools&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>opendata</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Build a B2B account list from public data (no LinkedIn scraping)</title>
      <dc:creator>Panda Federation</dc:creator>
      <pubDate>Thu, 05 Nov 2026 00:03:02 +0000</pubDate>
      <link>https://dev.to/pandadad0214/build-a-b2b-account-list-from-public-data-no-linkedin-scraping-4lnm</link>
      <guid>https://dev.to/pandadad0214/build-a-b2b-account-list-from-public-data-no-linkedin-scraping-4lnm</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I build these tools, and I used AI to help write them and this post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most "lead list" tools start by scraping LinkedIn. That breaks the terms of service, gets accounts banned, and the data goes stale fast. A lot of the same signal is sitting in public places that are fine to read: companies' own job boards, their websites, their DNS records, and official government registries.&lt;/p&gt;

&lt;p&gt;Here's a small pipeline that turns a list of company domains into a short, prioritized account list using only that public data. Each step is one Apify Actor, priced per result, so a 20-company test costs a few cents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Who is hiring, and for what?
&lt;/h2&gt;

&lt;p&gt;Hiring is the clearest buying signal there is. &lt;a href="https://apify.com/pandadad0214/company-hiring-signals" rel="noopener noreferrer"&gt;Company Hiring Signals&lt;/a&gt; reads public Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee boards and returns one row per company: open jobs, new jobs in the last 7 and 30 days, which teams are hiring, leadership roles and a 0-100 hiring score. It costs $0.003 per company.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;apify_client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ApifyClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ApifyClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_APIFY_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;actor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pandadad0214/company-hiring-signals&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;run_input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;companies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stripe.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Notion&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://jobs.ashbyhq.com/ramp&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;titleKeywords&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Account Executive&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SDR&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;RevOps&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;maxCompanies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# you pay per company, so this caps the cost
&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;hiring&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;defaultDatasetId&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;iterate_items&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="n"&gt;hot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;hiring&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hiringScore&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the field names against the Actor's output tab before you rely on them; each row also has an &lt;code&gt;agentSummary&lt;/code&gt; sentence you can show as-is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: What do they run, and how do you reach them?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://apify.com/pandadad0214/company-website-enricher" rel="noopener noreferrer"&gt;Company Website Enricher&lt;/a&gt; reads the home page plus a few contact and about pages. It returns the company name and description, published emails and phones, LinkedIn and social links, the tech stack (CMS, analytics, CRM, ads, chat), the mail provider, SaaS tools visible in DNS, and the domain age. It costs $0.003 per domain, and &lt;code&gt;onlyWithTech&lt;/code&gt; lets you keep only, say, Shopify or HubSpot sites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Who decides?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://apify.com/pandadad0214/company-team-finder" rel="noopener noreferrer"&gt;Company Team &amp;amp; Decision-Maker Finder&lt;/a&gt; reads a company's own team, leadership and staff pages. You get names, titles, seniority, department, any published email and the company's email pattern. Set &lt;code&gt;decisionMakersOnly&lt;/code&gt; to keep founders, C-level, VPs and directors. It costs $0.002 per person found, and companies where nobody is found are free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 (optional): Will your email land?
&lt;/h2&gt;

&lt;p&gt;Before you send anything, &lt;a href="https://apify.com/pandadad0214/email-domain-security-checker" rel="noopener noreferrer"&gt;Email Domain Security Checker&lt;/a&gt; grades SPF, DKIM, DMARC, MTA-STS and BIMI for your sending domain (or your prospects'). You get an A-F grade and plain-English fixes for $0.002 per domain.&lt;/p&gt;

&lt;h2&gt;
  
  
  A niche example: trucking
&lt;/h2&gt;

&lt;p&gt;If you sell to carriers (factoring, insurance, ELDs, dispatch), &lt;a href="https://apify.com/pandadad0214/trucking-company-leads" rel="noopener noreferrer"&gt;Trucking Company Leads&lt;/a&gt; pulls new USDOT registrations straight from FMCSA open data. Each carrier comes with phone, email, officers, fleet size, drivers and cargo, filtered by state and fleet size. It costs $0.002 per carrier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;actor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pandadad0214/trucking-company-leads&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;run_input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mode&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;daysBack&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;states&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TX&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;maxResults&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use it from an AI assistant instead
&lt;/h2&gt;

&lt;p&gt;All of these (plus research tools like a fake-citation checker and Grants.gov search) are wrapped in one open-source MCP server. In Claude, Cursor or VS Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvx panda-federation-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setup for each client, with a one-click Cursor button and a Claude Desktop file, is in the &lt;a href="https://github.com/pandadad0214/panda-federation-tools#install--use" rel="noopener noreferrer"&gt;README&lt;/a&gt;. Every call is validated against the Actor's input schema before it runs and has a hard spending cap (default $0.50).&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits, honestly
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Public data only means gaps. Small companies often don't publish a team page or a job board, so they come back as "not found". That's a free row, not proof they aren't hiring.&lt;/li&gt;
&lt;li&gt;Published emails are whatever the company put on its own site. Respect opt-outs and your local email laws.&lt;/li&gt;
&lt;li&gt;A hiring score is a signal for where to look first. It isn't a forecast.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More coming soon: clinical trial sponsors, IRS nonprofit lists, Federal Register comment deadlines, product recalls and bulk VIN decoding are built and going public on the &lt;a href="https://apify.com/pandadad0214" rel="noopener noreferrer"&gt;Apify Store&lt;/a&gt; over the next few days.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>python</category>
      <category>sales</category>
    </item>
    <item>
      <title>Catching fake citations with an AI agent (and a 2-minute manual check)</title>
      <dc:creator>Panda Federation</dc:creator>
      <pubDate>Wed, 04 Nov 2026 18:25:41 +0000</pubDate>
      <link>https://dev.to/pandadad0214/catching-fake-citations-with-an-ai-agent-and-a-2-minute-manual-check-hme</link>
      <guid>https://dev.to/pandadad0214/catching-fake-citations-with-an-ai-agent-and-a-2-minute-manual-check-hme</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I build these tools, and I used AI to help write them and this post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;ChatGPT, Claude and friends are great research assistants with one bad habit: they invent references. The fake ones look perfect: real-sounding authors, a real journal, sometimes a DOI that points to a different paper. Real papers also get retracted, and nobody re-checks a reference list after it's written.&lt;/p&gt;

&lt;p&gt;Here's a quick way to check any reference list against Crossref, OpenAlex and Retraction Watch data, either in the browser or with one API call.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. In the browser (no code)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://apify.com/pandadad0214/reference-checker" rel="noopener noreferrer"&gt;Reference Checker on Apify&lt;/a&gt; and sign up free; the free plan credit covers testing.&lt;/li&gt;
&lt;li&gt;Paste your bibliography (any style: APA, MLA, numbered, DOIs only).&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Start&lt;/strong&gt;. Each reference comes back as:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OK&lt;/strong&gt;: matches a real record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CHECK&lt;/strong&gt;: real, but the details differ, or it has a correction or expression of concern.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FIX&lt;/strong&gt;: not found, a different paper, or retracted.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.apify.com%2Fv2%2Fkey-value-stores%2F0eeXxTD8eJjgE6yTA%2Frecords%2Fshot-reference-checker" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.apify.com%2Fv2%2Fkey-value-stores%2F0eeXxTD8eJjgE6yTA%2Frecords%2Fshot-reference-checker" alt="Reference Checker output" width="1346" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the example above, a famous retracted paper (Wakefield 1998) and a made-up "Neural lattice" paper both come back as &lt;strong&gt;FIX&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. With Python
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="n"&gt;refs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;LeCun, Y., Bengio, Y., &amp;amp; Hinton, G. (2015). Deep learning. Nature, 521, 436-444.
Johnson, M., &amp;amp; Patel, R. (2021). Neural lattice priors for protein folding. Nature, 590, 112-118.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.apify.com/v2/acts/pandadad0214~reference-checker/run-sync-get-dataset-items&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;APIFY_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bibliography&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;refs&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;verdict&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;|&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;input&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][:&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Let your AI agent check itself
&lt;/h2&gt;

&lt;p&gt;Add the &lt;a href="https://apify.com/pandadad0214/panda-research-mcp" rel="noopener noreferrer"&gt;Academic Research MCP Server&lt;/a&gt; to Claude Desktop, Claude Code or Cursor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"panda-research"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://pandadad0214--panda-research-mcp.apify.actor/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer YOUR_APIFY_TOKEN"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask: &lt;em&gt;"Find 5 recent papers on CRISPR off-target effects and verify every citation before answering."&lt;/em&gt; The agent calls &lt;code&gt;search_literature&lt;/code&gt; and &lt;code&gt;check_references&lt;/code&gt; on its own.&lt;/p&gt;

&lt;p&gt;Prefer local? The open-source MCP server runs with uvx: &lt;a href="https://github.com/pandadad0214/panda-federation-tools" rel="noopener noreferrer"&gt;https://github.com/pandadad0214/panda-federation-tools&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus workflow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Need sources? &lt;a href="https://apify.com/pandadad0214/literature-search" rel="noopener noreferrer"&gt;Literature Search&lt;/a&gt; (OpenAlex, a Google Scholar alternative) or &lt;a href="https://apify.com/pandadad0214/pubmed-evidence-table" rel="noopener noreferrer"&gt;PubMed Scraper&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Need formatting? &lt;a href="https://apify.com/pandadad0214/citation-formatter" rel="noopener noreferrer"&gt;Citation Generator API&lt;/a&gt; turns DOIs into APA/MLA/Chicago/BibTeX.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All data comes from free, official scholarly sources. Questions or feature requests are welcome in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>research</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
