# Federal Contract Winner Lead Scorer: New GovCon Winners (`nerolabs/federal-contract-winner-leads`) Actor

Companies that just won US federal contracts (USAspending.gov), one row per company scored 0 to 100 as a lead: award value, revenue growth, first win, small business and veteran flags, SAM.gov link. Filter by NAICS, agency, state; skip your CRM. $0.015 per company. Agent-ready: x402, MCP.

- **URL**: https://apify.com/nerolabs/federal-contract-winner-leads.md
- **Developed by:** [Adam Pearce](https://apify.com/nerolabs) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.50 / 1,000 scored company leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Federal Contract Winner Lead Scorer: New GovCon Winners

**Who just won a US federal contract, and which of them are worth calling first?** This actor reads the official [USAspending.gov](https://www.usaspending.gov) API, finds every company that signed a new federal contract in your window, and returns **one row per company**, scored 0 to 100 as a sales lead.

Companies that just won a contract are hiring, buying software, subcontracting, insuring, financing and hitting compliance deadlines. Staffing firms, IT resellers, CMMC and compliance consultants, insurers, banks and accountants use contract winners as their warmest list. Raw award dumps give you 500 rows of the same prime contractor. This gives you the companies, ranked.

### What each lead tells you

- **Lead score 0 to 100** with the reasons in plain words: newest award date (up to 25), value of the new awards (25), federal revenue growth last fiscal year (20), how new the company is to federal work (20), small business (10).
- **First federal win** and **new entrant** flags (0 or up to 3 earlier contract awards since 2008).
- **Federal revenue** in the last two full fiscal years and the **growth %**.
- **Business types**: small business, veteran owned, service-disabled veteran owned, woman owned, SBA 8(a), HUBZone, minority owned.
- **New awards in your window**: count, total value, biggest award with agency, sub-agency and description, and up to 10 awards with links.
- **Address**, city, state, ZIP, congressional district, parent company, **UEI**, **SAM.gov** and **USAspending** profile links.

### Sample output (one row)

```json
{
  "companyName": "SWINGTECH CONSULTING INC.",
  "uei": "C2FLLEGASDK3",
  "leadScore": 80,
  "leadReasons": "Newest award 2026-10-30 (5 day(s) ago): +25. 1 new award(s) worth $3.3M: +20. Federal revenue up 1140% last fiscal year: +20. 64 earlier contract award(s) since 2008: +5. Small business: +10.",
  "newAwardsTotalUsd": 3267888,
  "biggestAwardAgency": "Department of Health and Human Services",
  "federalRevenueLastFy": 8758191,
  "federalRevenuePreviousFy": 706168,
  "revenueGrowthPct": 1140,
  "firstTimeWinner": false,
  "isSmallBusiness": true,
  "isWomanOwned": true,
  "city": "GREENBELT",
  "state": "MD",
  "samGovUrl": "https://sam.gov/entity/C2FLLEGASDK3/coreData"
}
```

### How to use it

1. Add the **NAICS codes** (or PSC codes, keywords or agencies) of the contracts your buyers win, e.g. 541511 and 541512 for IT services, 236220 for commercial building.
2. Pick a window (**new awards signed in the last N days**, default 30) and optionally the winner's state, award size or set-aside.
3. Paste your **CRM export or Google Sheet** link in "Skip list" so companies you already work with are never returned or charged.
4. Run it once, or schedule it weekly with **monitor mode** on: you get only companies with an award you have not seen before.

Every filter runs on USAspending's side, so a run over thousands of awards takes a few minutes.

### Pricing

**$0.015 per scored company returned** (pay per event, cheaper on higher Apify plans). Scanning awards is free; skipped, excluded and already-seen companies are never charged. History look-ups (growth, first win, business types) are included. Set a charge limit on the run to cap spend.

Example: a weekly monitor for 4 NAICS codes in 5 states returning about 60 companies a week costs about $3.60 a month.

### Good to know

- Data is public domain US government data from USAspending.gov (US Treasury), which takes contract awards from FPDS. Civilian awards show up within days; **Department of Defense awards are published about 90 days late**, so a short window shows few DoD awards. Use 120 days or more for DoD.
- USAspending holds no contact person or email. Use the UEI or company name with a contact finder for that.
- One row per company: awards are grouped by UEI. Joint ventures appear under their own name and UEI.
- "Federal revenue" is the total obligated to that company in the fiscal year (October to September), from USAspending's recipient profile.

### For AI agents

Input fields are plain: `naicsCodes`, `keywords`, `agencies`, `recipientStates`, `awardedWithinDays`, `maxLeads`, `minLeadScore`, `monitorMode`. Output is one JSON object per company with `leadScore` and `leadReasons`. Pay per event, so it works through the Apify MCP server and x402 with no subscription.

### Related Nero Labs actors

- [EU Tenders Finder & Bid Matcher](https://apify.com/nerolabs/eu-tender-bid-matcher): open EU tenders that fit your business, with past winners.
- [Filter & Transform](https://apify.com/nerolabs/dataset-filter-transform): reshape the leads for your CRM.

Questions or a field you need? Open an issue on the Issues tab and we reply within hours.

# Actor input Schema

## `naicsCodes` (type: `array`):

NAICS industry codes of the contracts, e.g. 541511 (custom software), 541512 (IT systems design), 236220 (commercial building), 561720 (janitorial), 541330 (engineering). 2 to 6 digits; a shorter code covers the whole branch.

## `pscCodes` (type: `array`):

Product and Service Codes of the contracts, e.g. DA01 (IT application support), R499 (professional support), Z1DA (building maintenance).

## `keywords` (type: `array`):

Words searched in the award description and recipient, e.g. 'cybersecurity', 'cloud', 'HVAC'.

## `agencies` (type: `array`):

Exact top-level agency names, e.g. 'Department of Veterans Affairs', 'Department of Defense', 'Department of Homeland Security', 'General Services Administration'.

## `recipientStates` (type: `array`):

Only companies based in these US states, 2 letter codes: VA, TX, CA, FL.

## `placeOfPerformanceStates` (type: `array`):

Only contracts performed in these US states, 2 letter codes.

## `awardTypes` (type: `array`):

Which kinds of new contract awards count. Empty means all four.

## `setAsideTypes` (type: `array`):

Only awards under these set-asides, e.g. SBA (small business), 8A, 8AN, SDVOSBC (service-disabled veteran), WOSB (women owned), HZC (HUBZone).

## `smallBusinessOnly` (type: `boolean`):

Only winners registered as small businesses.

## `minAwardAmount` (type: `integer`):

Skip awards below this value, e.g. 25000 to drop micro purchases.

## `maxAwardAmount` (type: `integer`):

Skip awards above this value.

## `awardedWithinDays` (type: `integer`):

How far back to look for newly signed contracts. Use 7 for a weekly scheduled monitor. Defense awards appear about 90 days late on USAspending.

## `includeHistory` (type: `boolean`):

For each company: contract awards won before this window (since 2008), federal revenue in the last two full fiscal years and the growth, and business types (small business, veteran owned, woman owned, 8(a), HUBZone). Included in the price.

## `minLeadScore` (type: `integer`):

Only companies scoring this or more are returned and charged. Recency up to 25, new award value 25, revenue growth 20, newness to federal work 20, small business 10.

## `maxLeads` (type: `integer`):

The best scoring companies up to this number are returned (and charged), highest score first.

## `maxAwardsScanned` (type: `integer`):

How many new awards to read before grouping and scoring (newest first). Scanning is free; only returned companies are charged.

## `excludeCompanies` (type: `array`):

Company names or UEIs you already work with or sell to. Skipped and never charged.

## `excludeCompaniesUrl` (type: `string`):

Link to a CSV or a Google Sheet shared as 'Anyone with the link can view', e.g. a CRM export. UEIs anywhere in it, and names in a column called company, name, account or organization, are skipped and never charged.

## `monitorMode` (type: `boolean`):

Remembers every award already returned under this watch name and returns only companies with a new award, so a weekly schedule sends just fresh leads. Already-returned awards are never charged again.

## `watchName` (type: `string`):

Keep one watch per territory or client, e.g. 'va-it' and 'texas-construction'.

## `webhookUrl` (type: `string`):

POST a JSON summary with the top leads here when the run ends (in monitor mode only when there are new leads). Works with Slack workflows, Zapier, Make and n8n. Free.

## Actor input object example

```json
{
  "naicsCodes": [
    "541511",
    "541512"
  ],
  "smallBusinessOnly": false,
  "awardedWithinDays": 30,
  "includeHistory": true,
  "minLeadScore": 0,
  "maxLeads": 15,
  "maxAwardsScanned": 2000,
  "monitorMode": false,
  "watchName": "default"
}
```

# Actor output Schema

## `leads` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "naicsCodes": [
        "541511",
        "541512"
    ],
    "awardedWithinDays": 30,
    "maxLeads": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("nerolabs/federal-contract-winner-leads").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "naicsCodes": [
        "541511",
        "541512",
    ],
    "awardedWithinDays": 30,
    "maxLeads": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("nerolabs/federal-contract-winner-leads").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "naicsCodes": [
    "541511",
    "541512"
  ],
  "awardedWithinDays": 30,
  "maxLeads": 15
}' |
apify call nerolabs/federal-contract-winner-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nerolabs/federal-contract-winner-leads"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oprIX3yvEq9uStE62/builds/N9OU6rUaFdIzfnmtL/openapi.json
