Concepts
The matching pipeline (overview)
Ingest → profile → match → convert: how data flows end-to-end.
Updated 5/27/2026
The matching pipeline turns two streams of data — funding opportunities and faculty profiles — into ranked, explainable matches. Here's the end-to-end flow.
1. Ingest
- Opportunities are pulled from sources such as Grants.gov (apply07 REST API) on a nightly schedule, with incremental updates throughout the day.
- Faculty come in through institutional rosters and Clubhouse staging, where they can be reviewed before promotion to live data.
2. Enrich profiles
- ORCID is the highest-trust source for publications and is preferred when present.
- Uploaded CVs are parsed by AI to extract expertise terms and prior funding.
- Manual edits by the faculty member are protected — re-enrichment never overwrites them.
3. Match
The matching engine scores each (faculty, opportunity) pair using a weighted blend of topical overlap, publication and funding history, and eligibility signals. The score is shown on every match as a single fit value — see How fit scores are calculated for what feeds it and how to read it.
Each match also carries qualitative reasons — short, icon-mapped tags that explain what aligned (topic, eligibility, prior work) and what didn't.
Heuristic, not prediction
A fit score estimates alignment, not the probability of being funded. That's why the UI never uses the word "Confidence."
4. Distribute
- Faculty see matches in Fairway, sorted by fit score by default.
- RD staff see signaled interest and help requests in Signal.
- Leadership sees aggregate engagement and pipeline metrics in Drive.
5. Convert and learn
When a faculty member signals interest, marks Not a Fit, or communicates with RD, the system records the disposition. Those signals feed back into algorithm tuning: weights are reviewed periodically, and faculty corrections take precedence over future re-enrichment of their own profile.
Refresh cadence
- Opportunity ingestion: nightly with incremental updates.
- Profile enrichment: triggered by upload, on-demand, and on a periodic schedule.
- Match recomputation: after either side changes; UI invalidates and re-renders without a manual reload.