Spaces:
Running
Running
| {\rtf1\ansi\ansicpg1252\cocoartf2822 | |
| \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\froman\fcharset0 Times-Bold;\f1\froman\fcharset0 Times-Roman;\f2\fmodern\fcharset0 Courier; | |
| \f3\froman\fcharset0 TimesNewRomanPSMT;\f4\fnil\fcharset0 AppleColorEmoji;\f5\froman\fcharset0 Times-Italic; | |
| \f6\fnil\fcharset0 Menlo-Regular;\f7\fnil\fcharset0 HelveticaNeue;} | |
| {\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue233;\red109\green109\blue109; | |
| \red109\green109\blue109;\red0\green0\blue0;} | |
| {\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\cssrgb\c0\c0\c93333;\cssrgb\c50196\c50196\c50196; | |
| \cssrgb\c50196\c50196\c50196;\cssrgb\c0\c0\c0\c84706;} | |
| {\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1} | |
| {\list\listtemplateid2\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}}{\leveltext\leveltemplateid101\'01\'00;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{circle\}}{\leveltext\leveltemplateid102\'01\uc0\u9702 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listname ;}\listid2} | |
| {\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3} | |
| {\list\listtemplateid4\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}}{\leveltext\leveltemplateid301\'01\'00;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{circle\}}{\leveltext\leveltemplateid302\'01\uc0\u9702 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{square\}}{\leveltext\leveltemplateid303\'01\uc0\u9642 ;}{\levelnumbers;}\fi-360\li2160\lin2160 }{\listname ;}\listid4} | |
| {\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid5} | |
| {\list\listtemplateid6\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}}{\leveltext\leveltemplateid501\'01\'00;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listname ;}\listid6}} | |
| {\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}} | |
| \margl1440\margr1440\vieww31340\viewh19300\viewkind0 | |
| \deftab720 | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f0\b\fs36 \cf0 \expnd0\expndtw0\kerning0 | |
| Best practices & features to include\ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \f1\b0\fs24 \cf0 From the literature + what you\'92ve built already, here are features that improve quality & usability. {\field{\*\fldinst{HYPERLINK "https://www.funraise.org/blog/grant-management-software-for-nonprofits?utm_source=chatgpt.com"}}{\fldrslt \cf3 \ul \ulc3 NetSuite+3Funraise+3Fluxx+3}}\ | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrt\brdrnil \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\qc\partightenfactor0 | |
| \f0\b \cf0 Feature\cell | |
| \pard\intbl\itap1\pardeftab720\qc\partightenfactor0 | |
| \cf0 Why it matters\cell | |
| \pard\intbl\itap1\pardeftab720\qc\partightenfactor0 | |
| \cf0 How to implement / what to watch out for\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Opportunity filters | |
| \f1\b0 (keywords, geography, type, capacity-building etc.)\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Helps users narrow to what matters, reduces overload.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 You have keyword filters already. Also include date, state, amount range, \'93open vs closed\'94 status.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Deadline alerts / reminders | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Prevents missing grants because deadlines slip.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Track | |
| \f2\fs26 deadline | |
| \f1\fs24 (if parsed), then show upcoming ones. Allow export to calendar or reminders.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Document / PDF fetching + parsing | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Many state sources have PDFs, RFPs etc. Users want details, not just summary.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Use PDF adapter + follow-links. Flag PDFs clearly in UI.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Staleness / expiration detection | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Projects with expired deadlines clutter feeds.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Tag items with \'93deadline passed\'94 or \'93pending\'94 etc. Maybe auto-hide old ones after some time.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 User feedback / manual review / save items | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Users can flag false positives, save promising ones.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Add \'93bookmark / save\'94 or \'93dismiss\'94 features. Could feed into machine learning or heuristics over time.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Dashboard / Analytics | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Helps see grant volume by type, deadlines, states, etc.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Simple charts like # grants by month, # capacity-building grants vs total, etc.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Good defaults / simple UI | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Avoid cognitive overload \'97 show only essentials, allow advanced filtering if needed.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 E.g. show title, deadline, source, eligibility; hide long descriptions by default.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Mobile-friendly / responsive | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Many will check on phones or tablets.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 If web UI, ensure collapsible fields, simple menus.\cell \row | |
| \itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrt\brdrnil \trbrdrr\brdrnil | |
| \clvertalc \clshdrawnil \clwWidth4256\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx2880 | |
| \clvertalc \clshdrawnil \clwWidth5037\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx5760 | |
| \clvertalc \clshdrawnil \clwWidth6106\clftsWidth3 \clmart10 \clmarl10 \clmarb10 \clmarr10 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadt20 \clpadl20 \clpadb20 \clpadr20 \gaph\cellx8640 | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \f0\b \cf0 Integrations | |
| \f1\b0 \cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 E.g. calendar, Slack/email alerts.\cell | |
| \pard\intbl\itap1\pardeftab720\partightenfactor0 | |
| \cf0 Helps push notifications rather than only manual checking.\cell \lastrow\row | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf4 \ | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f0\b\fs36 \cf0 What to avoid / limit to keep usability\ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \f1\b0\fs24 \cf0 These things often add data/noise or complexity, so either avoid or gate them behind \'93advanced\'94 toggles.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls1\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Over-broad scraping | |
| \f1\b0 : pulling every \'93policy\'94, \'93program info\'94, \'93newsletter\'94, etc. just because capacity keywords appear once.\ | |
| \ls1\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Too much automation without oversight | |
| \f1\b0 : e.g. hidden deadlines if PDF text parsing fails.\ | |
| \ls1\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Overwhelming metadata fields | |
| \f1\b0 : stuff like \'93agency budget history\'94, \'93application score weights\'94 etc unless users request them.\ | |
| \ls1\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Frequent UI changes or too many fields | |
| \f1\b0 \'97 keep interface consistent.\ | |
| \ls1\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Large batch of false positives | |
| \f1\b0 \'97 this ruins trust quickly.\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf4 \ | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f0\b\fs36 \cf0 What to build next in your tool\ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \f1\b0\fs24 \cf0 Here are prioritized improvements/next features for your tool to make it more powerful while preserving clarity:\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 1 }\expnd0\expndtw0\kerning0 | |
| Deadline extraction / detection | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| From Grants.gov API: likely available.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| From scraped state pages / PDFs: attempt to parse \'93deadline\'94, \'93closing date\'94. If missing, mark as \'93TBD\'94.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| UI: highlight upcoming deadlines (\'93Due in next 30 days\'94).\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 2 }\expnd0\expndtw0\kerning0 | |
| \'93Open / Active\'94 flag | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| If RFPs are active or you can detect \'93application now open\'94 in text.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| If not, mark as \'93reference / program\'94 so users know it\'92s structural info, not a live call.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 3 }\expnd0\expndtw0\kerning0 | |
| Bookmark / dismiss / feedback | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Users should be able to mark \'93this is useful\'94 or \'93not relevant\'94 to train future filtering.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Possibly store local tags (e.g. \'93my state\'94, \'93my priority\'94).\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 4 }\expnd0\expndtw0\kerning0 | |
| Improved link / PDF following | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| As suggested earlier.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Make sure link selectors are fine-tuned for each state source.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 5 }\expnd0\expndtw0\kerning0 | |
| Expired / historical items archive | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Hide automatically unless explicitly requested. Keeps main view clean.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 6 }\expnd0\expndtw0\kerning0 | |
| Search + sort + filter UI in front end | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Filters: State, source type (federal/state), capacity vs other, keyword.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Sort by deadline, date posted, amount (if available).\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 7 }\expnd0\expndtw0\kerning0 | |
| Notifications / reminders | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Let users get alerts (email / Slack / calendar) for items that match their saved filters and have upcoming deadlines.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 8 }\expnd0\expndtw0\kerning0 | |
| Confidence score or matching hint | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| For scraped items, display \'93match strength\'94 (how many capacity keywords matched, whether in title vs body). Helps users see which items are likely relevant.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 9 }\expnd0\expndtw0\kerning0 | |
| Performance / scheduling | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Check feeds regularly, avoid stale caches.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Maybe incremental ingest (only new items) rather than full crawl all the time.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls2\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext 10 }\expnd0\expndtw0\kerning0 | |
| Testing & feedback | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls2\ilvl1\cf0 \kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Ask actual users (your team) to test beta versions and tell you what\'92s too much / too little.\ | |
| \ls2\ilvl1\kerning1\expnd0\expndtw0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| Adjust based on real use.\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf4 \ | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f0\b\fs36 \cf0 Your roadmap can look like this\ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \f1\b0\fs24 \cf0 Here\'92s a potential plan for the next few sprints:\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls3\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Sprint 1 | |
| \f1\b0 (now): Add deadline extraction + \'93active\'94 flag + improved link following for state sources.\ | |
| \ls3\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Sprint 2 | |
| \f1\b0 : Bookmark/dismiss features + advanced filtering UI + sort by deadline.\ | |
| \ls3\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Sprint 3 | |
| \f1\b0 : Notifications/reminders + mobile UI polish + confidence scoring.\ | |
| \ls3\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| Sprint 4 | |
| \f1\b0 : Incorporate JS-rendered sources (Playwright) + archive/historical mode.\ | |
| \pard\tx720\pardeftab720\sa240\partightenfactor0 | |
| \cf0 \ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \cf0 \outl0\strokewidth0 \strokec2 Yes\'97exactly. We can treat the roadmap I outlined earlier as | |
| \f0\b four sprints | |
| \f1\b0 .\uc0\u8232 Here\'92s a clear | |
| \f0\b Sprint 1 plan | |
| \f1\b0 (2\'963 weeks is typical) so we can start delivering value quickly while keeping the other sprints in view.\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf5 \strokec5 \ | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f4\fs36 \cf0 \strokec2 \uc0\u55356 \u57281 | |
| \f0\b Sprint 1 \'96 \'93Actionable Deadlines & Better State Data\'94\ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \fs24 \cf0 Goal: | |
| \f1\b0 Surface | |
| \f5\i current | |
| \f1\i0 and | |
| \f5\i timely | |
| \f1\i0 grant opportunities\'97especially from PA & MD\'97without flooding users.\ | |
| \pard\pardeftab720\sa280\partightenfactor0 | |
| \f0\b\fs28 \cf0 Deliverables\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls4\ilvl0 | |
| \fs24 \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Deadline Extraction & \'93Active\'94 Flag | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls4\ilvl1\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Parse | |
| \f2\fs26 deadline | |
| \f1\fs24 / | |
| \f2\fs26 closing date | |
| \f1\fs24 text from Grants.gov (API gives it directly).\ | |
| \ls4\ilvl1\kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Add a lightweight NLP/regex extractor for state HTML/PDFs (\'93Deadline\'94, \'93Applications due\'94, etc.).\ | |
| \ls4\ilvl1\kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 In the index, add fields: | |
| \f2\fs26 deadline_date | |
| \f1\fs24 , | |
| \f2\fs26 is_active | |
| \f1\fs24 (true if deadline >= today or marked open/TBD).\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls4\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 2 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 UI Updates in the Dashboard | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls4\ilvl1\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Show deadlines and days-to-close (already in the mock).\ | |
| \ls4\ilvl1\kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Add a small | |
| \f0\b \'93Active Only\'94 | |
| \f1\b0 toggle to hide expired or guideline-only records.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls4\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 3 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Link-Following Enhancements | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls4\ilvl1\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Update YAML for | |
| \f0\b MD DHCD Press | |
| \f1\b0 , | |
| \f0\b MTA | |
| \f1\b0 , | |
| \f0\b PennDOT | |
| \f1\b0 , etc. to:\ | |
| \pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sa240\partightenfactor0 | |
| \ls4\ilvl2 | |
| \f2\fs26 \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f6 \uc0\u9642 | |
| \f2 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 parse.follow_links: true | |
| \f1\fs24 \ | |
| \ls4\ilvl2 | |
| \f2\fs26 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f6 \uc0\u9642 | |
| \f2 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 crawl.max_depth: 1 | |
| \f1\fs24 \ | |
| \ls4\ilvl2 | |
| \f2\fs26 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f6 \uc0\u9642 | |
| \f2 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 link_selectors | |
| \f1\fs24 for PDFs / NOFO pages\ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls4\ilvl1\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Ensure adapter fetches and normalizes these linked pages.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls4\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 4 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Improved Capacity Filter | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls4\ilvl1\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Add a few transportation-related capacity phrases (\'93service capacity\'94, \'93provider capacity\'94) to capture more relevant 5310-type opportunities.\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls4\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 5 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Basic Quality Checks | |
| \f1\b0 \ | |
| \pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sa240\partightenfactor0 | |
| \ls4\ilvl1\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Logging: show counts of items skipped due to expired deadlines or missing text.\ | |
| \ls4\ilvl1\kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext | |
| \f3 \uc0\u9702 | |
| \f1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Quick manual review with your team to confirm that the new records are genuinely grant opportunities.\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf5 \strokec5 \ | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f4\fs36 \cf0 \strokec2 \uc0\u55357 \u56621 | |
| \f0\b Sprint 2\'964 Preview\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls5\ilvl0 | |
| \fs24 \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Sprint 2: | |
| \f1\b0 Bookmarks & Dismiss, Advanced Filtering UI, Sorting by deadline/confidence.\ | |
| \ls5\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Sprint 3: | |
| \f1\b0 Notifications (email/Slack/ICS calendar) + mobile UI polish + confidence scoring display.\ | |
| \ls5\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Sprint 4: | |
| \f1\b0 Full | |
| \f0\b JS-rendered | |
| \f1\b0 source support (Playwright for MD OneStop etc.) and historical archive mode.\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf5 \strokec5 \ | |
| \pard\pardeftab720\sa298\partightenfactor0 | |
| \f0\b\fs36 \cf0 \strokec2 Next Steps to Kick Off Sprint 1\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls6\ilvl0 | |
| \fs24 \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 1 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Confirm dev environment | |
| \f1\b0 \'96 you already have | |
| \f2\fs26 grants-rag | |
| \f1\fs24 running locally.\ | |
| \ls6\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 2 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Create a new branch | |
| \f1\b0 :\uc0\u8232 | |
| \f2\fs26 \uc0\u8232 \u8232 \u8232 git checkout -b sprint1-deadline-active-flag\ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0 | |
| \ls6\ilvl0\cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 3 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 \uc0\u8232 \u8232 | |
| \f1\fs24 \ | |
| \pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\partightenfactor0 | |
| \ls6\ilvl0 | |
| \f0\b \cf0 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 4 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 Add extraction utilities | |
| \f1\b0 \uc0\u8232 | |
| \f5\i Regex for state HTML/PDFs | |
| \f1\i0 and update | |
| \f2\fs26 _normalize_web_record | |
| \f1\fs24 to accept | |
| \f2\fs26 deadline_date | |
| \f1\fs24 and | |
| \f2\fs26 is_active | |
| \f1\fs24 .\ | |
| \ls6\ilvl0 | |
| \f0\b \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext 5 }\expnd0\expndtw0\kerning0 | |
| \outl0\strokewidth0 \strokec2 UI | |
| \f1\b0 : enable the | |
| \f0\b Active Only | |
| \f1\b0 toggle (mock is already designed for it).\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf5 \strokec5 \ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \f0\b \cf0 \strokec2 Timeline suggestion: | |
| \f1\b0 2 weeks dev + 1 week QA / user feedback.\uc0\u8232 Once Sprint 1 is merged, we\'92ll have a tool that surfaces only | |
| \f5\i active | |
| \f1\i0 capacity-building grants with clear deadlines\'97exactly the balance of \'93rich data without overload\'94 we\'92re after.\ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf0 \ | |
| \ | |
| \ | |
| \ | |
| \ | |
| \ | |
| \ | |
| \pard\pardeftab720\sa240\partightenfactor0 | |
| \cf0 \ | |
| \pard\pardeftab720\partightenfactor0 | |
| \cf0 \ | |
| \pard\pardeftab720\qc\partightenfactor0 | |
| \f7\fs22 \cf6 \strokec6 \ | |
| \pard\pardeftab720\partightenfactor0 | |
| \f1\fs24 \cf0 \strokec2 ChatGPT can make mistakes. Check important info.\ | |
| \pard\tx720\pardeftab720\sa240\partightenfactor0 | |
| \cf0 \outl0\strokewidth0 \ | |
| } |