<?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: CleanDataDev</title>
    <description>The latest articles on DEV Community by CleanDataDev (@cleandatadev).</description>
    <link>https://dev.to/cleandatadev</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3865035%2Fff71ba42-adf6-465c-858d-32aceffd57fd.jpg</url>
      <title>DEV Community: CleanDataDev</title>
      <link>https://dev.to/cleandatadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cleandatadev"/>
    <language>en</language>
    <item>
      <title>How I Built a Federal Contract Search API with Win Rate Prediction (and You Can Too)</title>
      <dc:creator>CleanDataDev</dc:creator>
      <pubDate>Tue, 07 Apr 2026 08:09:03 +0000</pubDate>
      <link>https://dev.to/cleandatadev/how-i-built-a-federal-contract-search-api-with-win-rate-prediction-and-you-can-too-2e8i</link>
      <guid>https://dev.to/cleandatadev/how-i-built-a-federal-contract-search-api-with-win-rate-prediction-and-you-can-too-2e8i</guid>
      <description>&lt;p&gt;If you've ever tried to do business with the US federal government, you know the data situation is... complicated.&lt;br&gt;
Every year, the US government awards over $700 billion in contracts. Every single one is public record — but actually using that data? That's another story.&lt;/p&gt;

&lt;h1&gt;
  
  
  Search Federal Contracts and Predict Win Rates with GovMatch API
&lt;/h1&gt;

&lt;p&gt;I built a free API that lets you search US federal contract awards by company name and get a win‑rate prediction based on historical data. No signup, no credit card – just plain JSON.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://govmatch-frontend.onrender.com" rel="noopener noreferrer"&gt;https://govmatch-frontend.onrender.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;API docs (Swagger):&lt;/strong&gt; &lt;a href="https://govmatch-api.onrender.com/docs" rel="noopener noreferrer"&gt;https://govmatch-api.onrender.com/docs&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Example: Search for “SAFEWARE INC”
&lt;/h2&gt;

&lt;p&gt;Enter a company name, and the tool shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contract history&lt;/strong&gt; – award ID, amount, start date&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Win‑rate score&lt;/strong&gt; – how competitive the company is&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence level&lt;/strong&gt; – based on the number of contracts found&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a real search result for &lt;code&gt;SAFEWARE INC&lt;/code&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Win‑rate prediction panel
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total Contracts&lt;/td&gt;
&lt;td&gt;0*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total Amount&lt;/td&gt;
&lt;td&gt;$0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Avg Amount&lt;/td&gt;
&lt;td&gt;$0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recent Activity&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Win Rate Score&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Confidence&lt;/td&gt;
&lt;td&gt;Low (no data)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;*The prediction panel shows 0 because the sample size is very small (only 2 contracts in the test set). The win‑rate algorithm works best with 5+ contracts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  📋 Contracts found
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Award ID&lt;/th&gt;
&lt;th&gt;Recipient Name&lt;/th&gt;
&lt;th&gt;Amount ($)&lt;/th&gt;
&lt;th&gt;Start Date&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;15DDHQ26F00000181&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SAFEWARE INC&lt;/td&gt;
&lt;td&gt;94,794.82&lt;/td&gt;
&lt;td&gt;2027-03-31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;15DDHQ26F00000342&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SAFEWARE INC&lt;/td&gt;
&lt;td&gt;5,784.58&lt;/td&gt;
&lt;td&gt;2027-03-31&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ⚙️ How it works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data source&lt;/strong&gt; – &lt;a href="https://www.usaspending.gov" rel="noopener noreferrer"&gt;USAspending.gov&lt;/a&gt; official API.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt; – FastAPI + PostgreSQL, deployed on Render.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Win‑rate logic&lt;/strong&gt; – counts recent contracts, groups by agency, normalises by lookback days, and returns a score from 0–100.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The entire stack is open source. You can clone it, modify it, or just use the hosted API.&lt;/p&gt;

&lt;p&gt;📦 &lt;strong&gt;GitHub repo:&lt;/strong&gt; &lt;a href="https://github.com/xdz199110-lang/Govmatch" rel="noopener noreferrer"&gt;https://github.com/xdz199110-lang/Govmatch&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Try it now
&lt;/h2&gt;

&lt;p&gt;No installation, no API key – just paste this into your browser:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
curl "https://govmatch-api.onrender.com/contracts/search?recipient_name=SAFEWARE&amp;amp;limit=5"

Or visit the interactive Swagger docs to play with the parameters.

If you find a bug, want a new feature, or just like the project – let me know in the comments or open an issue on GitHub.

Happy contracting!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>api</category>
      <category>machinelearning</category>
      <category>showdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
