· 4 min read
From grants.gov to a Ranked Shortlist: the rfp.rrecktek.com Grant-Discovery Workflow
How a nightly ingest, a four-NAICS organization profile, and a scored SQL matcher reduce 122,230 federal opportunities to 22 actionable grants for one Tennessee nonprofit — with the numbers, the rubric, and what bidding actually requires.
Federal funding data is public, machine-readable, and refreshed daily. Most organizations still discover opportunities by word of mouth. This post documents the pipeline behind rfp.rrecktek.com and walks one real case end to end: isolating grant opportunities for Back2Basics, a Tennessee community nonprofit, and what it takes to bid on them. Every figure below is read from the running system, snapshot 2026-07-10.
The workflow
Three federal sources feed one Postgres table. A profile — four NAICS codes describing what the organization does — turns the firehose into a shortlist.

Mermaid source for this diagram
flowchart LR
A[grants.gov Search API] -->|nightly 17:45 UTC, ~1,900 fetched| D[(opportunities table, Postgres — 122,230 rows)]
B[SAM.gov full CSV] -->|daily 17:35 UTC| D
C[USASpending.gov] -->|weekly| D
D --> E[rfp.rrecktek.com FastAPI + React]
E --> F[Organization profile — NAICS quick-select]
F --> G[Scored matcher — SQL keyword rubric]
G --> H[Tiered shortlist — 22 actionable]
D -.->|run telemetry| I[(pmem knowledge base)]1. Ingest. A cron job on the production host calls the grants.gov Search API every night at 17:45 UTC, pages through all posted and forecasted opportunities (1,847 on the most recent run), and upserts them into the opportunities table keyed on notice id. SAM.gov contract opportunities and USASpending awards land in the same table on their own schedules, tagged with a source column. Every run writes a structured result record to a persistent knowledge base, so a missed day of telemetry is a visible incident rather than a silent gap — that exact signal surfaced a replication fault this week.
2. Profile. The frontend defines organization profiles as NAICS code sets. Back2Basics TN is 813110 (religious organizations), 621330 (mental-health practitioners), 624190 (individual and family services), and 813410 (civic and social organizations). One click filters the contract feeds to those codes.
3. Match. Grants rarely carry NAICS codes, so the profile is translated into a scoring rubric that runs as a single SQL query over title and description:
| Signal | Where | Points |
|---|---|---|
| Addiction / recovery / behavioral-health terms | title | +6 |
| Same terms | description | +3 |
| Reentry / youth / mentoring / family-services terms | title | +4 |
| Same terms | description | +2 |
| Faith-based / community-organization eligibility language | description | +2 |
| Funder affinity (SAMHSA, HRSA, ACF, OJP, CDC) | agency | +2 |
Threshold ≥ 6, future or open deadlines only. Sixty of 2,695 grants qualify.
4. Triage. Scoring finds relevance; it does not establish eligibility. The 60 matches divide on two questions — can this organization legally apply, and is the opportunity open?
- Tier 1 — 22 opportunities. Open synopses from SAMHSA, HRSA, and ACF where community nonprofits are eligible applicants and the mission fit is direct: youth treatment and recovery services, medication-assisted treatment, drug-court capacity, mobile crisis teams, CCBHC planning grants. The top scorer: SAMHSA’s Behavioral Health Partnerships for Early Diversion of Adults and Youth, deadline July 15, 2026.
- Tier 2 — 5. Eligible but mission-adjacent (infant mental health, law-enforcement wellness); candidates for partnering rather than leading.
- Tier 3 — 30. Seventeen forecasts with no deadline yet, plus NIH research mechanisms where a service nonprofit joins as a community partner site, not as principal investigator.
- Excluded — 3. Tribal set-aside programs. The scoring matched the subject matter; the organization is not an eligible entity. This is why triage is a separate step from matching.
5. Deadlines drive everything.
Twenty-seven of the 43 dated deadlines fall in July 2026. A small organization cannot write ten federal applications in three weeks; the practical output of this pipeline is one or two Tier-1 targets now, with boilerplate prepared for the seventeen forecasts as they open.
What bidding actually requires
The mechanics are the same for every opportunity on the shortlist:
- SAM.gov entity registration — free, and it yields the Unique Entity ID (UEI) every federal application requires. Processing takes two to six weeks, so it starts before any proposal writing.
- Grants.gov registration — the organization account is tied to the UEI; the E-Business point of contact from SAM.gov authorizes who may submit.
- Read the NOFO — the Notice of Funding Opportunity is the contract for the proposal. Eligibility first, then award ceiling, cost-sharing, and the scored evaluation criteria. Reviewers score against those criteria verbatim; the proposal outline should mirror them.
- Submit through Grants.gov Workspace — the SF-424 form family plus program attachments. SAMHSA programs add a page-limited project narrative, a budget justification, and participant-protection documentation.
- Deadlines are enforced mechanically — typically 11:59 PM Eastern. A late submission is rejected by the system, not by a person.
Reproducibility
The matcher is one SQL file run against the same table the website serves; the shortlist, the figures, and this post derive from the 2026-07-10 snapshot. Swap the four NAICS codes and the rubric keywords and the identical pipeline serves any organization — the profiles for rrecktek LLC, AABAI, and Connect Our Kids already sit beside Back2Basics in the same quick-select list.



