File size: 72,708 Bytes
3d16fe6
896453f
 
1f7780e
896453f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcf298e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-for-developers" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.0"><title data-rh=true>For Developers & Technical Users | Open Navigator</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true name=twitter:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true property=og:url content=https://www.communityone.com/docs/for-developers /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=keywords content="civic engagement, policy tracking, meeting minutes, nonprofit tracking, municipal government, advocacy, open data, local government"/><meta data-rh=true property=og:type content=website /><meta data-rh=true property=og:site_name content="Open Navigator"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=docusaurus_version content=current /><meta data-rh=true name=docusaurus_tag content=docs-default-current /><meta data-rh=true name=docsearch:version content=current /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current /><meta data-rh=true property=og:title content="For Developers & Technical Users | Open Navigator"/><meta data-rh=true name=description content="Welcome! This section contains technical documentation for developers, data scientists, and system administrators working with Open Navigator."/><meta data-rh=true property=og:description content="Welcome! This section contains technical documentation for developers, data scientists, and system administrators working with Open Navigator."/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://www.communityone.com/docs/for-developers /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/for-developers hreflang=en /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/for-developers hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://www.communityone.com/docs/for-developers","name":"For Developers & Technical Users","position":1}]}</script><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Open Navigator RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Open Navigator Atom Feed"><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-5EQV815915"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-5EQV815915",{anonymize_ip:!0})</script><link rel=stylesheet href=/assets/css/styles.c89d6b2d.css /><script src=/assets/js/runtime~main.c8fa085e.js defer></script><script src=/assets/js/main.6e24e536.js defer></script></head><body><svg style="display: none;"><defs>
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme-7e9")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/img/communityone_logo.svg /><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","address":{"@type":"PostalAddress","addressCountry":"US","addressLocality":"Tuscaloosa","addressRegion":"AL","postalCode":"35406","streetAddress":"5617 Lakeridge Court"},"contactPoint":{"@type":"ContactPoint","availableLanguage":["English"],"contactType":"Customer Service","email":"johnbowyer@communityone.com"},"description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI. The open path to everything local.","email":"johnbowyer@communityone.com","legalName":"CommunityOne","logo":"https://www.communityone.com/img/communityone_logo.svg","name":"CommunityOne","sameAs":["https://www.facebook.com/communityone","https://www.instagram.com/communityone","https://twitter.com/communityone","https://www.linkedin.com/company/communityone","https://www.youtube.com/@communityone","https://discord.gg/communityone","https://github.com/getcommunityone/open-navigator"],"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"WebSite","alternateName":"CommunityOne Open Navigator","description":"AI-powered civic engagement platform tracking jurisdictions, nonprofits, and government meetings","name":"Open Navigator","potentialAction":{"@type":"SearchAction","query-input":"required name=search_term_string","target":{"@type":"EntryPoint","urlTemplate":"https://www.communityone.com/search?q={search_term_string}"}},"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"SoftwareApplication","aggregateRating":{"@type":"AggregateRating","ratingCount":"1","ratingValue":"5"},"applicationCategory":"BusinessApplication","description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI","featureList":["Track 90,000+ jurisdictions","Monitor 1.8M nonprofits","Analyze meeting minutes","Legislative bill tracking","Campaign finance data"],"name":"Open Navigator","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"operatingSystem":"Web","screenshot":"https://www.communityone.com/img/docusaurus-social-card.jpg","softwareVersion":"1.0.0"}</script><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a href=https://www.communityone.com target=_self rel="noopener noreferrer" class=navbar__brand><div class=navbar__logo><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate">Open Navigator Home</b></a><a class="navbar__item navbar__link" href=/docs/intro>Getting Started</a><a class="navbar__item navbar__link" href=/docs/for-families>Families & Individuals</a><a class="navbar__item navbar__link" href=/docs/for-advocates>Policy Makers</a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/docs/for-developers>Developers</a><a class="navbar__item navbar__link" href=/docs/data-sources/citations>Data and Terms</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true href=/docs/for-developers><span title="Developers & Technical Users" class=categoryLinkLabel_W154>Developers & Technical Users</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/for-developers><span title="For Developers & Technical Users" class=linkLabel_WmDU>For Developers & Technical Users</span></a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/quickstart><span title="Setup & Installation" class=categoryLinkLabel_W154>Setup & Installation</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/data-sources/citations><span title="Data Sources (Technical)" class=categoryLinkLabel_W154>Data Sources (Technical)</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/guides/jurisdiction-setup><span title="How-To Guides" class=categoryLinkLabel_W154>How-To Guides</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/integrations/mcp-server><span title=Integrations class=categoryLinkLabel_W154>Integrations</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/deployment/databricks-apps><span title=Deployment class=categoryLinkLabel_W154>Deployment</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/development/database-setup><span title=Development class=categoryLinkLabel_W154>Development</span></a></div></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><span class=breadcrumbs__link>Developers & Technical Users</span><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>For Developers & Technical Users</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>For Developers & Technical Users</h1></header>
<p>Welcome! This section contains <strong>technical documentation</strong> for developers, data scientists, and system administrators working with Open Navigator.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=platform-scale--data-volume>Platform Scale & Data Volume<a href=#platform-scale--data-volume class=hash-link aria-label="Direct link to Platform Scale & Data Volume" title="Direct link to Platform Scale & Data Volume" translate=no>​</a></h2>
<p>Open Navigator processes data at scale across the United States:</p>
<table><thead><tr><th>Category<th>Count<th>Source<tbody><tr><td><strong>Total Jurisdictions</strong><td>90,000+<td>Census Bureau Gazetteer 2024<tr><td><strong>Counties</strong><td>3,144<td>All U.S. counties (FIPS coded)<tr><td><strong>Municipalities</strong><td>19,500+<td>Cities, towns, villages, boroughs<tr><td><strong>Townships</strong><td>36,000+<td>County subdivisions, census divisions<tr><td><strong>School Districts</strong><td>13,000+<td>NCES Common Core of Data<tr><td><strong>Nonprofit Organizations</strong><td>3,000,000+<td>IRS TEOS + ProPublica Nonprofit Explorer<tr><td><strong>State Legislatures</strong><td>50<td>All U.S. states<tr><td><strong>Video Channels</strong><td>50+<td>YouTube state legislature channels<tr><td><strong>Meeting Datasets</strong><td>1,000+<td>MeetingBank, LocalView, City Scrapers<tr><td><strong>.gov Domains</strong><td>15,000+<td>CISA validated government websites</table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=storage--processing-requirements>Storage & Processing Requirements<a href=#storage--processing-requirements class=hash-link aria-label="Direct link to Storage & Processing Requirements" title="Direct link to Storage & Processing Requirements" translate=no>​</a></h3>
<p><strong>Estimated Data Volumes:</strong></p>
<ul>
<li class=""><strong>Meeting Minutes</strong>: 10-100 MB per municipality Γ— 1,000+ cities = 10-100 GB</li>
<li class=""><strong>Financial Documents</strong>: 5-50 MB per jurisdiction Γ— 90,000 = 450 GB - 4.5 TB</li>
<li class=""><strong>Nonprofit 990s</strong>: 1-5 MB per org Γ— 3M = 3-15 TB</li>
<li class=""><strong>Video Content</strong>: Variable (streaming recommended over storage)</li>
</ul>
<p><strong>Medallion Architecture (Delta Lake):</strong></p>
<ul>
<li class=""><strong>Bronze Layer</strong>: Raw scraped data (largest storage footprint)</li>
<li class=""><strong>Silver Layer</strong>: Cleaned/standardized (50-70% compression)</li>
<li class=""><strong>Gold Layer</strong>: Analyzed/aggregated (90%+ compression)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=api-rate-limits--quotas>API Rate Limits & Quotas<a href=#api-rate-limits--quotas class=hash-link aria-label="Direct link to API Rate Limits & Quotas" title="Direct link to API Rate Limits & Quotas" translate=no>​</a></h3>
<p><strong>Free Tier (No Cost):</strong></p>
<ul>
<li class="">Census Bureau: Unlimited downloads</li>
<li class="">NCES: Unlimited bulk downloads</li>
<li class="">ProPublica API: Respectful use (~1 req/sec suggested)</li>
<li class="">IRS TEOS: Bulk data downloads (monthly updates)</li>
<li class="">CISA .gov Domains: GitHub dataset (updated daily)</li>
</ul>
<p><strong>Paid/Limited:</strong></p>
<ul>
<li class="">OpenAI API: Pay per token (required for LLM features)</li>
<li class="">Harvard Dataverse: API key recommended (free registration)</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>Complete Technical Citations & Standards</div><div class=admonitionContent_BuS1><p>For full citations, licenses, API documentation, and technical specifications:<p><strong><a class="" href=/docs/data-sources/citations>Citations & Data Sources</a></strong><p>Includes:<ul>
<li class=""><strong>Academic Research</strong>: MeetingBank (ACL 2023), LocalView (Harvard), Council Data Project, City Scrapers</li>
<li class=""><strong>Government APIs</strong>: U.S. Census, NCES, IRS, Open States</li>
<li class=""><strong>Standards</strong>: OCD-ID (OCDEP 2), Popolo Project, Schema.org, CEDS, OMOP CDM (OHDSI), IATI v2.03</li>
<li class=""><strong>Data Models</strong>: Microsoft CDM for Nonprofits, OMOP vocabulary system</li>
<li class=""><strong>Fact-Checking</strong>: N/A (not currently integrated)</li>
<li class=""><strong>Nonprofit Data</strong>: IRS BMF (43,726 orgs from 5 states)</li>
<li class=""><strong>Churches & Faith-Based</strong>: 4,372 congregations from IRS data</li>
<li class=""><strong>Enterprise Tech</strong>: Microsoft (Nonprofit CDM), Google (Data Commons), AWS (Open Data), Databricks (Unity Catalog, MLflow), Snowflake, Salesforce (NPSP)</li>
<li class=""><strong>BibTeX citations</strong> for academic papers and research use</li>
</ul></div></div>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=what-youll-find-here>What You'll Find Here<a href=#what-youll-find-here class=hash-link aria-label="Direct link to What You'll Find Here" title="Direct link to What You'll Find Here" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=-setup--installation>πŸš€ Setup & Installation<a href=#-setup--installation class=hash-link aria-label="Direct link to πŸš€ Setup & Installation" title="Direct link to πŸš€ Setup & Installation" translate=no>​</a></h3>
<p>Get the platform running:</p>
<ul>
<li class=""><strong><a class="" href=/docs/quickstart>Quick Start</a></strong> - Detailed installation instructions</li>
<li class=""><strong><a class="" href=/docs/quick-reference>Quick Reference</a></strong> - CLI commands cheat sheet</li>
<li class=""><strong><a class="" href=/docs/architecture>Architecture</a></strong> - System design and components</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=-data-sources-technical>πŸ“Š Data Sources (Technical)<a href=#-data-sources-technical class=hash-link aria-label="Direct link to πŸ“Š Data Sources (Technical)" title="Direct link to πŸ“Š Data Sources (Technical)" translate=no>​</a></h3>
<p>Technical details on data ingestion:</p>
<ul>
<li class=""><strong><a class="" href=/docs/data-sources/jurisdiction-discovery>Jurisdiction Discovery</a></strong> - Finding 90,000+ government websites</li>
<li class=""><strong><a class="" href=/docs/data-sources/census-data>Census Data</a></strong> - Ingesting Census Bureau datasets</li>
<li class=""><strong><a class="" href=/docs/data-sources/huggingface-datasets>HuggingFace Datasets</a></strong> - Pre-built meeting collections</li>
<li class=""><strong><a class="" href=/docs/data-sources/youtube-discovery>YouTube Discovery</a></strong> - Video channel scraping</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=️-how-to-guides>πŸ› οΈ How-To Guides<a href=#️-how-to-guides class=hash-link aria-label="Direct link to πŸ› οΈ How-To Guides" title="Direct link to πŸ› οΈ How-To Guides" translate=no>​</a></h3>
<p>Step-by-step technical guides:</p>
<ul>
<li class=""><strong><a class="" href=/docs/guides/jurisdiction-setup>Jurisdiction Setup</a></strong> - Configure discovery for your area</li>
<li class=""><strong><a class="" href=/docs/guides/huggingface-publishing>HuggingFace Publishing</a></strong> - Publish datasets to HuggingFace Hub</li>
<li class=""><strong><a class="" href=/docs/guides/handling-formats>Handling Formats</a></strong> - Process different document types</li>
<li class=""><strong><a class="" href=/docs/guides/scraper-improvements>Scraper Improvements</a></strong> - Enhance scraping capabilities</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=-integrations>πŸ”Œ Integrations<a href=#-integrations class=hash-link aria-label="Direct link to πŸ”Œ Integrations" title="Direct link to πŸ”Œ Integrations" translate=no>​</a></h3>
<p>Connect external services:</p>
<ul>
<li class=""><strong><a class="" href=/docs/integrations/dataverse>Dataverse Integration</a></strong> - Harvard Dataverse API</li>
<li class=""><strong><a class="" href=/docs/integrations/frontend>Frontend Integration</a></strong> - React application setup</li>
<li class=""><strong><a class="" href=/docs/integrations/localview>LocalView</a></strong> - LocalView dataset ingestion</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=-deployment>πŸš€ Deployment<a href=#-deployment class=hash-link aria-label="Direct link to πŸš€ Deployment" title="Direct link to πŸš€ Deployment" translate=no>​</a></h3>
<p>Production deployment:</p>
<ul>
<li class=""><strong><a class="" href=/docs/deployment/databricks-apps>Databricks Apps</a></strong> - Deploy to Databricks</li>
<li class=""><strong><a class="" href=/docs/deployment/scale>Scale Deployment</a></strong> - Handle large datasets</li>
<li class=""><strong><a class="" href=/docs/deployment/costs>Cost Management</a></strong> - Optimize expenses</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=-development>πŸ’» Development<a href=#-development class=hash-link aria-label="Direct link to πŸ’» Development" title="Direct link to πŸ’» Development" translate=no>​</a></h3>
<p>Contributing and development:</p>
<ul>
<li class=""><strong><a class="" href=/docs/development/changelog>Changelog</a></strong> - Version history</li>
<li class=""><strong><a class="" href=/docs/development/migration-v2>Migration Guides</a></strong> - Upgrading between versions</li>
<li class=""><strong><a class="" href=/docs/development/refactoring-summary>Refactoring Summary</a></strong> - Recent changes</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=quick-start-tldr>Quick Start (TL;DR)<a href=#quick-start-tldr class=hash-link aria-label="Direct link to Quick Start (TL;DR)" title="Direct link to Quick Start (TL;DR)" translate=no>​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Clone and install</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">git clone https://github.com/getcommunityone/open-navigator-for-engagement.git</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd oral-health-policy-pulse</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./install.sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Install frontend and docs</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd frontend && npm install && cd ..</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd website && npm install && cd ..</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Start all services</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./start-all.sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Visit:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># - Main App:  http://localhost:5173</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># - API Docs:  http://localhost:8000/docs</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># - This Site: http://localhost:3000</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=architecture-overview>Architecture Overview<a href=#architecture-overview class=hash-link aria-label="Direct link to Architecture Overview" title="Direct link to Architecture Overview" translate=no>​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚         Open Navigator Platform         β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚                                         β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  React App   β”‚   β”‚  FastAPI     β”‚  β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  (Frontend)  │──▢│  (Backend)   β”‚  β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  Port 5173   β”‚   β”‚  Port 8000   β”‚  β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚                             β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚      Delta Lake (Data Storage)   β”‚ β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β€’ Bronze: Raw data              β”‚ β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β€’ Silver: Cleaned data          β”‚ β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β€’ Gold: Analyzed data           β”‚ β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=common-tasks>Common Tasks<a href=#common-tasks class=hash-link aria-label="Direct link to Common Tasks" title="Direct link to Common Tasks" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=run-jurisdiction-discovery>Run Jurisdiction Discovery<a href=#run-jurisdiction-discovery class=hash-link aria-label="Direct link to Run Jurisdiction Discovery" title="Direct link to Run Jurisdiction Discovery" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">source .venv/bin/activate</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Test run (100 jurisdictions)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py discover-jurisdictions --limit 100</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Single state</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py discover-jurisdictions --state CA</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Full discovery (~30k jurisdictions)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py discover-jurisdictions</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=ingest-reference-data>Ingest Reference Data<a href=#ingest-reference-data class=hash-link aria-label="Direct link to Ingest Reference Data" title="Direct link to Ingest Reference Data" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Census jurisdictions (90,000+ entities)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python -m discovery.census_ingestion</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># NCES school districts (13,000+)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python -m discovery.nces_ingestion</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Pre-built datasets</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python discovery/meetingbank_ingestion.py</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python discovery/city_scrapers_urls.py</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python discovery/openstates_sources.py</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=scrape-meeting-minutes>Scrape Meeting Minutes<a href=#scrape-meeting-minutes class=hash-link aria-label="Direct link to Scrape Meeting Minutes" title="Direct link to Scrape Meeting Minutes" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Batch scraping from discovered sites</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py scrape-batch --source discovered --limit 50</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Single jurisdiction</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py scrape --url "https://chicago.legistar.com" \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">                      --state "IL" \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">                      --municipality "Chicago"</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=publish-to-huggingface>Publish to HuggingFace<a href=#publish-to-huggingface class=hash-link aria-label="Direct link to Publish to HuggingFace" title="Direct link to Publish to HuggingFace" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Requires HUGGINGFACE_TOKEN in .env</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py publish-to-hf --dataset all</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py publish-to-hf --dataset discovered-urls</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py publish-to-hf --dataset census --sample</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=technology-stack>Technology Stack<a href=#technology-stack class=hash-link aria-label="Direct link to Technology Stack" title="Direct link to Technology Stack" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=backend>Backend<a href=#backend class=hash-link aria-label="Direct link to Backend" title="Direct link to Backend" translate=no>​</a></h3>
<ul>
<li class=""><strong>Python 3.11+</strong> - Core language</li>
<li class=""><strong>FastAPI</strong> - REST API framework</li>
<li class=""><strong>Delta Lake</strong> - Data lakehouse storage</li>
<li class=""><strong>Databricks</strong> - Production data platform</li>
<li class=""><strong>OpenAI API</strong> - LLM capabilities</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=frontend>Frontend<a href=#frontend class=hash-link aria-label="Direct link to Frontend" title="Direct link to Frontend" translate=no>​</a></h3>
<ul>
<li class=""><strong>React 18</strong> - UI framework</li>
<li class=""><strong>Vite</strong> - Build tool</li>
<li class=""><strong>TypeScript</strong> - Type safety</li>
<li class=""><strong>Leaflet</strong> - Interactive maps</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=data-processing>Data Processing<a href=#data-processing class=hash-link aria-label="Direct link to Data Processing" title="Direct link to Data Processing" translate=no>​</a></h3>
<ul>
<li class=""><strong>Pandas</strong> - Data manipulation</li>
<li class=""><strong>BeautifulSoup</strong> - HTML parsing</li>
<li class=""><strong>PyPDF2</strong> - PDF extraction</li>
<li class=""><strong>Tesseract OCR</strong> - Image to text</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=deployment>Deployment<a href=#deployment class=hash-link aria-label="Direct link to Deployment" title="Direct link to Deployment" translate=no>​</a></h3>
<ul>
<li class=""><strong>Docker</strong> - Containerization</li>
<li class=""><strong>tmux</strong> - Session management</li>
<li class=""><strong>Databricks Apps</strong> - Production hosting</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=api-reference>API Reference<a href=#api-reference class=hash-link aria-label="Direct link to API Reference" title="Direct link to API Reference" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=start-api-server>Start API Server<a href=#start-api-server class=hash-link aria-label="Direct link to Start API Server" title="Direct link to Start API Server" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">python main.py serve --host 0.0.0.0 --port 8000</span><br/></div></code></pre></div></div>
<p>Visit <a href=http://localhost:8000/docs target=_blank rel="noopener noreferrer" class="">http://localhost:8000/docs</a> for interactive API documentation.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=example-start-workflow>Example: Start Workflow<a href=#example-start-workflow class=hash-link aria-label="Direct link to Example: Start Workflow" title="Direct link to Example: Start Workflow" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">curl -X POST "http://localhost:8000/workflow/start" \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">     -H "Content-Type: application/json" \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">     -d '{</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">       "scrape_targets": [</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">         {</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">           "url": "https://chicago.legistar.com",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">           "municipality": "Chicago",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">           "state": "IL",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">           "platform": "legistar"</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">         }</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">       ]</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">     }'</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=example-query-opportunities>Example: Query Opportunities<a href=#example-query-opportunities class=hash-link aria-label="Direct link to Example: Query Opportunities" title="Direct link to Example: Query Opportunities" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">curl "http://localhost:8000/opportunities?state=CA&urgency=critical"</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=development-workflow>Development Workflow<a href=#development-workflow class=hash-link aria-label="Direct link to Development Workflow" title="Direct link to Development Workflow" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-local-development>1. Local Development<a href=#1-local-development class=hash-link aria-label="Direct link to 1. Local Development" title="Direct link to 1. Local Development" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Terminal 1: API (with hot reload)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">source .venv/bin/activate</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py serve --reload</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Terminal 2: Frontend (with hot reload)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd frontend</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">npm run dev</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Terminal 3: Documentation</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd website</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">npm start</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-testing>2. Testing<a href=#2-testing class=hash-link aria-label="Direct link to 2. Testing" title="Direct link to 2. Testing" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Run all tests</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pytest</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># With coverage</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pytest --cov=agents --cov=pipeline --cov=visualization</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Specific test file</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pytest tests/test_agents.py</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-deployment>3. Deployment<a href=#3-deployment class=hash-link aria-label="Direct link to 3. Deployment" title="Direct link to 3. Deployment" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Deploy to Databricks</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export DATABRICKS_HOST=https://your-workspace.cloud.databricks.com</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export DATABRICKS_TOKEN=dapi...</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./scripts/deploy-databricks-app.sh</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=data-pipeline>Data Pipeline<a href=#data-pipeline class=hash-link aria-label="Direct link to Data Pipeline" title="Direct link to Data Pipeline" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=medallion-architecture>Medallion Architecture<a href=#medallion-architecture class=hash-link aria-label="Direct link to Medallion Architecture" title="Direct link to Medallion Architecture" translate=no>​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">Bronze (Raw)          Silver (Cleaned)       Gold (Analyzed)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">────────────────────────────────────────────────────────────</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Scraped PDFs     β†’    Extracted text    β†’    Classifications</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Meeting videos   β†’    Transcripts       β†’    Sentiment scores</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Budget docs      β†’    Line items        β†’    Budget analysis</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Form 990s        β†’    Financial data    β†’    Spending patterns</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=file-locations>File Locations<a href=#file-locations class=hash-link aria-label="Direct link to File Locations" title="Direct link to File Locations" translate=no>​</a></h3>
<ul>
<li class=""><strong>Bronze</strong>: <code>data/bronze/</code> - Raw downloaded files</li>
<li class=""><strong>Silver</strong>: <code>data/silver/</code> - Cleaned and standardized</li>
<li class=""><strong>Gold</strong>: <code>data/gold/</code> - Enriched with analysis</li>
<li class=""><strong>Cache</strong>: <code>cache/</code> - Temporary processing files</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=configuration>Configuration<a href=#configuration class=hash-link aria-label="Direct link to Configuration" title="Direct link to Configuration" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=environment-variables>Environment Variables<a href=#environment-variables class=hash-link aria-label="Direct link to Environment Variables" title="Direct link to Environment Variables" translate=no>​</a></h3>
<p>Create <code>.env</code> file:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Required</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">OPENAI_API_KEY=sk-...</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Optional (for production)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">DATABRICKS_HOST=https://your-workspace.cloud.databricks.com</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">DATABRICKS_TOKEN=dapi...</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Optional (for publishing)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">HUGGINGFACE_TOKEN=hf_...</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Optional (for Harvard Dataverse)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">DATAVERSE_API_KEY=...</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=settings-file>Settings File<a href=#settings-file class=hash-link aria-label="Direct link to Settings File" title="Direct link to Settings File" translate=no>​</a></h3>
<p>Edit <code>config/settings.py</code> for:</p>
<ul>
<li class="">Delta Lake paths</li>
<li class="">Scraping rate limits</li>
<li class="">Batch sizes</li>
<li class="">Model configurations</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=contributing>Contributing<a href=#contributing class=hash-link aria-label="Direct link to Contributing" title="Direct link to Contributing" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-fork--clone>1. Fork & Clone<a href=#1-fork--clone class=hash-link aria-label="Direct link to 1. Fork & Clone" title="Direct link to 1. Fork & Clone" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">git clone https://github.com/YOUR-USERNAME/oral-health-policy-pulse.git</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd oral-health-policy-pulse</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">git remote add upstream https://github.com/getcommunityone/open-navigator-for-engagement.git</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-create-branch>2. Create Branch<a href=#2-create-branch class=hash-link aria-label="Direct link to 2. Create Branch" title="Direct link to 2. Create Branch" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">git checkout -b feature/your-feature-name</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-make-changes>3. Make Changes<a href=#3-make-changes class=hash-link aria-label="Direct link to 3. Make Changes" title="Direct link to 3. Make Changes" translate=no>​</a></h3>
<ul>
<li class="">Add tests for new features</li>
<li class="">Update documentation</li>
<li class="">Follow existing code style</li>
<li class="">Keep commits focused and atomic</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=4-submit-pr>4. Submit PR<a href=#4-submit-pr class=hash-link aria-label="Direct link to 4. Submit PR" title="Direct link to 4. Submit PR" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">git push origin feature/your-feature-name</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Then create PR on GitHub</span><br/></div></code></pre></div></div>
<p>See <a href=https://github.com/getcommunityone/open-navigator-for-engagement/blob/main/CONTRIBUTING.md target=_blank rel="noopener noreferrer" class="">CONTRIBUTING.md</a> for details.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=troubleshooting>Troubleshooting<a href=#troubleshooting class=hash-link aria-label="Direct link to Troubleshooting" title="Direct link to Troubleshooting" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=port-already-in-use>Port Already in Use<a href=#port-already-in-use class=hash-link aria-label="Direct link to Port Already in Use" title="Direct link to Port Already in Use" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Find process using port</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lsof -i :8000</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lsof -i :5173</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lsof -i :3000</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Kill process</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">kill -9 &lt;PID></span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=dependencies-not-installing>Dependencies Not Installing<a href=#dependencies-not-installing class=hash-link aria-label="Direct link to Dependencies Not Installing" title="Direct link to Dependencies Not Installing" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Clear cache and reinstall</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">rm -rf .venv</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python3 -m venv .venv</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">source .venv/bin/activate</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pip install --upgrade pip</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pip install -r requirements.txt</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=scraping-failures>Scraping Failures<a href=#scraping-failures class=hash-link aria-label="Direct link to Scraping Failures" title="Direct link to Scraping Failures" translate=no>​</a></h3>
<p>Check logs:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">tail -f logs/scraper.log</span><br/></div></code></pre></div></div>
<p>Adjust rate limits in <code>config/settings.py</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=next-steps>Next Steps<a href=#next-steps class=hash-link aria-label="Direct link to Next Steps" title="Direct link to Next Steps" translate=no>​</a></h2>
<ol>
<li class=""><strong>Read Architecture</strong> β†’ <a class="" href=/docs/architecture>System Design</a></li>
<li class=""><strong>Set Up Environment</strong> β†’ <a class="" href=/docs/quickstart>Quick Start</a></li>
<li class=""><strong>Run Discovery</strong> β†’ <a class="" href=/docs/guides/jurisdiction-setup>Jurisdiction Setup</a></li>
<li class=""><strong>Deploy to Production</strong> β†’ <a class="" href=/docs/deployment/databricks-apps>Databricks Apps</a></li>
<li class=""><strong>Contribute</strong> β†’ <a href=https://github.com/getcommunityone/open-navigator-for-engagement/issues target=_blank rel="noopener noreferrer" class="">GitHub Issues</a></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=support>Support<a href=#support class=hash-link aria-label="Direct link to Support" title="Direct link to Support" translate=no>​</a></h2>
<ul>
<li class=""><strong>GitHub Issues</strong>: <a href=https://github.com/getcommunityone/open-navigator-for-engagement/issues target=_blank rel="noopener noreferrer" class="">Report bugs or request features</a></li>
<li class=""><strong>Documentation</strong>: Browse the sidebar</li>
<li class=""><strong>API Docs</strong>: <a href=http://localhost:8000/docs target=_blank rel="noopener noreferrer" class="">http://localhost:8000/docs</a></li>
<li class=""><strong>Email</strong>: <a href=mailto:johnbowyer@communityone.com target=_blank rel="noopener noreferrer" class="">johnbowyer@communityone.com</a></li>
</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/getcommunityone/open-navigator-for-engagement/tree/main/website/docs/for-developers.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href=/docs/quickstart><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Quick Start Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#platform-scale--data-volume class="table-of-contents__link toc-highlight">Platform Scale & Data Volume</a><ul><li><a href=#storage--processing-requirements class="table-of-contents__link toc-highlight">Storage & Processing Requirements</a><li><a href=#api-rate-limits--quotas class="table-of-contents__link toc-highlight">API Rate Limits & Quotas</a></ul><li><a href=#what-youll-find-here class="table-of-contents__link toc-highlight">What You'll Find Here</a><ul><li><a href=#-setup--installation class="table-of-contents__link toc-highlight">πŸš€ Setup & Installation</a><li><a href=#-data-sources-technical class="table-of-contents__link toc-highlight">πŸ“Š Data Sources (Technical)</a><li><a href=#️-how-to-guides class="table-of-contents__link toc-highlight">πŸ› οΈ How-To Guides</a><li><a href=#-integrations class="table-of-contents__link toc-highlight">πŸ”Œ Integrations</a><li><a href=#-deployment class="table-of-contents__link toc-highlight">πŸš€ Deployment</a><li><a href=#-development class="table-of-contents__link toc-highlight">πŸ’» Development</a></ul><li><a href=#quick-start-tldr class="table-of-contents__link toc-highlight">Quick Start (TL;DR)</a><li><a href=#architecture-overview class="table-of-contents__link toc-highlight">Architecture Overview</a><li><a href=#common-tasks class="table-of-contents__link toc-highlight">Common Tasks</a><ul><li><a href=#run-jurisdiction-discovery class="table-of-contents__link toc-highlight">Run Jurisdiction Discovery</a><li><a href=#ingest-reference-data class="table-of-contents__link toc-highlight">Ingest Reference Data</a><li><a href=#scrape-meeting-minutes class="table-of-contents__link toc-highlight">Scrape Meeting Minutes</a><li><a href=#publish-to-huggingface class="table-of-contents__link toc-highlight">Publish to HuggingFace</a></ul><li><a href=#technology-stack class="table-of-contents__link toc-highlight">Technology Stack</a><ul><li><a href=#backend class="table-of-contents__link toc-highlight">Backend</a><li><a href=#frontend class="table-of-contents__link toc-highlight">Frontend</a><li><a href=#data-processing class="table-of-contents__link toc-highlight">Data Processing</a><li><a href=#deployment class="table-of-contents__link toc-highlight">Deployment</a></ul><li><a href=#api-reference class="table-of-contents__link toc-highlight">API Reference</a><ul><li><a href=#start-api-server class="table-of-contents__link toc-highlight">Start API Server</a><li><a href=#example-start-workflow class="table-of-contents__link toc-highlight">Example: Start Workflow</a><li><a href=#example-query-opportunities class="table-of-contents__link toc-highlight">Example: Query Opportunities</a></ul><li><a href=#development-workflow class="table-of-contents__link toc-highlight">Development Workflow</a><ul><li><a href=#1-local-development class="table-of-contents__link toc-highlight">1. Local Development</a><li><a href=#2-testing class="table-of-contents__link toc-highlight">2. Testing</a><li><a href=#3-deployment class="table-of-contents__link toc-highlight">3. Deployment</a></ul><li><a href=#data-pipeline class="table-of-contents__link toc-highlight">Data Pipeline</a><ul><li><a href=#medallion-architecture class="table-of-contents__link toc-highlight">Medallion Architecture</a><li><a href=#file-locations class="table-of-contents__link toc-highlight">File Locations</a></ul><li><a href=#configuration class="table-of-contents__link toc-highlight">Configuration</a><ul><li><a href=#environment-variables class="table-of-contents__link toc-highlight">Environment Variables</a><li><a href=#settings-file class="table-of-contents__link toc-highlight">Settings File</a></ul><li><a href=#contributing class="table-of-contents__link toc-highlight">Contributing</a><ul><li><a href=#1-fork--clone class="table-of-contents__link toc-highlight">1. Fork & Clone</a><li><a href=#2-create-branch class="table-of-contents__link toc-highlight">2. Create Branch</a><li><a href=#3-make-changes class="table-of-contents__link toc-highlight">3. Make Changes</a><li><a href=#4-submit-pr class="table-of-contents__link toc-highlight">4. Submit PR</a></ul><li><a href=#troubleshooting class="table-of-contents__link toc-highlight">Troubleshooting</a><ul><li><a href=#port-already-in-use class="table-of-contents__link toc-highlight">Port Already in Use</a><li><a href=#dependencies-not-installing class="table-of-contents__link toc-highlight">Dependencies Not Installing</a><li><a href=#scraping-failures class="table-of-contents__link toc-highlight">Scraping Failures</a></ul><li><a href=#next-steps class="table-of-contents__link toc-highlight">Next Steps</a><li><a href=#support class="table-of-contents__link toc-highlight">Support</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Documentation</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/intro>Getting Started</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/citations>Citations & Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/overview>Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/for-developers>For Developers</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Resources</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.communityone.com target=_blank rel="noopener noreferrer" class=footer__link-item>Launch Open Navigator<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.groundvue.org/ target=_blank rel="noopener noreferrer" class=footer__link-item>GroundVue (Partner)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.instagram.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>Instagram<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.facebook.com/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>Facebook<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://x.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>X (Twitter)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.linkedin.com/company/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.youtube.com/@getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>YouTube<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://discord.gg/uH6Dytek target=_blank rel="noopener noreferrer" class=footer__link-item>Discord<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Legal</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/legal/privacy-policy>Privacy Policy</a><li class=footer__item><a class=footer__link-item href=/docs/legal/terms-of-service>Terms of Service</a><li class=footer__item><a class=footer__link-item href=/docs/legal/data-provider-terms>Data Provider Terms</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/blog>Blog</a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement/blob/main/LICENSE target=_blank rel="noopener noreferrer" class=footer__link-item>License (MIT)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright Β© 2026 Community One. Built with Docusaurus.</div></div></div></footer></div></body>