Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 61,262 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 | <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-development/migration-v2" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.0"><title data-rh=true>โ
Migration Complete: Pattern-Based Discovery v2.0 | 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/development/migration-v2 /><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="โ
Migration Complete: Pattern-Based Discovery v2.0 | Open Navigator"/><meta data-rh=true name=description content=Summary /><meta data-rh=true property=og:description content=Summary /><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://www.communityone.com/docs/development/migration-v2 /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/development/migration-v2 hreflang=en /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/development/migration-v2 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":"Developers & Technical Users","position":1},{"@type":"ListItem","item":"https://www.communityone.com/docs/development/migration-v2","name":"โ
Migration Complete: Pattern-Based Discovery v2.0","position":2}]}</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 class="navbar__item navbar__link" 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" role=button aria-expanded=true href=/docs/intro><span title="Getting Started" class=categoryLinkLabel_W154>Getting Started</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 tabindex=0 href=/docs/intro><span title=Introduction class=linkLabel_WmDU>Introduction</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/open-navigator><span title="Open Navigator" class=linkLabel_WmDU>Open Navigator</span></a></ul><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" href=/docs/for-families><span title="Families & Individuals" class=categoryLinkLabel_W154>Families & Individuals</span></a><button aria-label="Collapse sidebar category 'Families & Individuals'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><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/families/community-events><span title="Resources for Families" class=categoryLinkLabel_W154>Resources for Families</span></a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/open-navigator><span title="Getting Started with Open Navigator" class=linkLabel_WmDU>Getting Started with Open Navigator</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/data-sources/citations><span title="Data and Citations" class=linkLabel_WmDU>Data and Citations</span></a></ul><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" href=/docs/for-advocates><span title="Policy Makers & Advocates" class=categoryLinkLabel_W154>Policy Makers & Advocates</span></a><button aria-label="Collapse sidebar category 'Policy Makers & Advocates'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><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/overview><span title="Understanding the Data" class=categoryLinkLabel_W154>Understanding the Data</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/political-economy><span title="Analysis & Strategy" class=categoryLinkLabel_W154>Analysis & Strategy</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/case-studies/tuscaloosa-complete><span title="Real-World Examples" class=categoryLinkLabel_W154>Real-World Examples</span></a></div></ul><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--active" href=/docs/for-developers><span title="Developers & Technical Users" class=categoryLinkLabel_W154>Developers & Technical Users</span></a><button aria-label="Collapse sidebar category 'Developers & Technical Users'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><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"><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 tabindex=0 href=/docs/development/database-setup><span title=Development class=categoryLinkLabel_W154>Development</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/database-setup><span title="Database Setup & Stats Verification" class=linkLabel_WmDU>Database Setup & Stats Verification</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/events-naming-migration><span title="File Migration to Events Naming Convention" class=linkLabel_WmDU>File Migration to Events Naming Convention</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/adding-data-sources><span title="Adding New Data Sources" class=linkLabel_WmDU>Adding New Data Sources</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/api-logging-errors><span title="API Logging & Error Handling Implementation" class=linkLabel_WmDU>API Logging & Error Handling Implementation</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/openstates-integration><span title="OpenStates Integration & Contribution Opportunities" class=linkLabel_WmDU>OpenStates Integration & Contribution Opportunities</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/real-time-statistics><span title="Real-Time Statistics with Geographic Filtering" class=linkLabel_WmDU>Real-Time Statistics with Geographic Filtering</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/schema-migration-summary><span title="Schema Migration Summary" class=linkLabel_WmDU>Schema Migration Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/terminal-corruption-prevention><span title="Terminal Corruption Prevention" class=linkLabel_WmDU>Terminal Corruption Prevention</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/county-data-status><span title="County Search and Aggregation - Status Summary" class=linkLabel_WmDU>County Search and Aggregation - Status Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/intel-optimization><span title="DuckDB + Intel Arc Optimization" class=linkLabel_WmDU>DuckDB + Intel Arc Optimization</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/dashboard-redesign><span title="React Dashboard Redesign Summary" class=linkLabel_WmDU>React Dashboard Redesign Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/docs-migration><span title="Documentation Migration Summary" class=linkLabel_WmDU>Documentation Migration Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/port-guide><span title="๐จ CRITICAL: Which Port to Use?" class=linkLabel_WmDU>๐จ CRITICAL: Which Port to Use?</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/react-refactoring><span title="React + FastAPI Databricks App Refactoring" class=linkLabel_WmDU>React + FastAPI Databricks App Refactoring</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/readme-migration><span title="README Migration Summary" class=linkLabel_WmDU>README Migration Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/refactoring-summary><span title="โจ React + FastAPI Databricks App - Complete Refactoring Summary" class=linkLabel_WmDU>โจ React + FastAPI Databricks App - Complete Refactoring Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/changelog><span title="Changelog - Jurisdiction Discovery System" class=linkLabel_WmDU>Changelog - Jurisdiction Discovery System</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/enhancements><span title="โ
Enhancement Complete: Official Data Sources Integration" class=linkLabel_WmDU>โ
Enhancement Complete: Official Data Sources Integration</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/integration-status><span title="โ
Integration Status Summary" class=linkLabel_WmDU>โ
Integration Status Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/development/migration-v2><span title="โ
Migration Complete: Pattern-Based Discovery v2.0" class=linkLabel_WmDU>โ
Migration Complete: Pattern-Based Discovery v2.0</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/development/new-capabilities><span title="๐ NEW CAPABILITIES SUMMARY" class=linkLabel_WmDU>๐ NEW CAPABILITIES SUMMARY</span></a></ul></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><a class=breadcrumbs__link href=/docs/for-developers><span>Developers & Technical Users</span></a><li class=breadcrumbs__item><span class=breadcrumbs__link>Development</span><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>โ
Migration Complete: Pattern-Based Discovery v2.0</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>โ
Migration Complete: Pattern-Based Discovery v2.0</h1></header>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=summary>Summary<a href=#summary class=hash-link aria-label="Direct link to Summary" title="Direct link to Summary" translate=no>โ</a></h2>
<p>Successfully refactored the <strong>Jurisdiction Discovery System</strong> to use a <strong>sustainable, vendor-neutral, zero-cost approach</strong> that eliminates dependency on deprecated search APIs.</p>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-what-changed>๐ฏ What Changed<a href=#-what-changed class=hash-link aria-label="Direct link to ๐ฏ What Changed" title="Direct link to ๐ฏ What Changed" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=removed-deprecated>Removed (Deprecated)<a href=#removed-deprecated class=hash-link aria-label="Direct link to Removed (Deprecated)" title="Direct link to Removed (Deprecated)" translate=no>โ</a></h3>
<ul>
<li class="">โ Google Custom Search API integration</li>
<li class="">โ Bing Search API integration</li>
<li class="">โ API key configuration requirements</li>
<li class="">โ External API costs ($240+ per discovery run)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=added-sustainable>Added (Sustainable)<a href=#added-sustainable class=hash-link aria-label="Direct link to Added (Sustainable)" title="Direct link to Added (Sustainable)" translate=no>โ</a></h3>
<ul>
<li class="">โ
Pattern-based URL generation from jurisdiction names</li>
<li class="">โ
GSA .gov domain registry matching (exact + fuzzy)</li>
<li class="">โ
Web crawling for homepage verification</li>
<li class="">โ
Zero external API dependencies</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-benefits>๐ Benefits<a href=#-benefits class=hash-link aria-label="Direct link to ๐ Benefits" title="Direct link to ๐ Benefits" translate=no>โ</a></h2>
<table><thead><tr><th>Metric<th>Old (Search APIs)<th>New (Pattern-Based)<th>Improvement<tbody><tr><td><strong>Cost per run</strong><td>$240+<td><strong>$0</strong><td>๐ฐ <strong>100% savings</strong><tr><td><strong>Discovery rate</strong><td>65-80%<td><strong>70-95%</strong><td>๐ <strong>+5-15%</strong><tr><td><strong>Speed</strong><td>5-10 min/100<td><strong>3-5 min/100</strong><td>โก <strong>2x faster</strong><tr><td><strong>Reliability</strong><td>Rate limits<td><strong>No limits</strong><td>โพ๏ธ <strong>Unlimited</strong><tr><td><strong>Sustainability</strong><td>Deprecated APIs<td><strong>Future-proof</strong><td>๐ <strong>Production-ready</strong></table>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-files-updated>๐ Files Updated<a href=#-files-updated class=hash-link aria-label="Direct link to ๐ Files Updated" title="Direct link to ๐ Files Updated" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=core-discovery-module>Core Discovery Module<a href=#core-discovery-module class=hash-link aria-label="Direct link to Core Discovery Module" title="Direct link to Core Discovery Module" translate=no>โ</a></h3>
<ul>
<li class="">โ
<a class="" href=/docs/discovery/url_discovery_agent.py>discovery/url_discovery_agent.py</a> - Complete rewrite with pattern matching</li>
<li class="">โ
<a class="" href=/docs/discovery/discovery_pipeline.py>discovery/discovery_pipeline.py</a> - Updated to pass GSA data</li>
<li class="">โ
<a class="" href=/docs/config/settings.py>config/settings.py</a> - Removed API key configs</li>
<li class="">โ
<a class="" href=/docs/.env.example>.env.example</a> - Removed API key placeholders</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=documentation>Documentation<a href=#documentation class=hash-link aria-label="Direct link to Documentation" title="Direct link to Documentation" translate=no>โ</a></h3>
<ul>
<li class="">โ
<a class="" href=/docs/development/JURISDICTION_DISCOVERY.md>docs/JURISDICTION_DISCOVERY.md</a> - Updated approach documentation</li>
<li class="">โ
<a class="" href=/docs/development/JURISDICTION_DISCOVERY_SETUP.md>docs/JURISDICTION_DISCOVERY_SETUP.md</a> - Simplified setup guide</li>
<li class="">โ
<a class="" href=/docs/development/JURISDICTION_DISCOVERY_DEPLOYMENT.md>docs/JURISDICTION_DISCOVERY_DEPLOYMENT.md</a> - Updated deployment options</li>
<li class="">โ
<a class="" href=/docs/README.md>README.md</a> - Updated features section</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=notebooks>Notebooks<a href=#notebooks class=hash-link aria-label="Direct link to Notebooks" title="Direct link to Notebooks" translate=no>โ</a></h3>
<ul>
<li class="">โ
<a class="" href=/docs/notebooks/Jurisdiction_Discovery.py>notebooks/Jurisdiction_Discovery.py</a> - Removed API references</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=removed>Removed<a href=#removed class=hash-link aria-label="Direct link to Removed" title="Direct link to Removed" translate=no>โ</a></h3>
<ul>
<li class="">๐๏ธ <code>discovery/mlflow_discovery_agent.py</code> - No longer needed</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-quick-start-zero-configuration>๐ Quick Start (Zero Configuration!)<a href=#-quick-start-zero-configuration class=hash-link aria-label="Direct link to ๐ Quick Start (Zero Configuration!)" title="Direct link to ๐ Quick Start (Zero Configuration!)" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-install-dependencies>1. Install Dependencies<a href=#1-install-dependencies class=hash-link aria-label="Direct link to 1. Install Dependencies" title="Direct link to 1. Install Dependencies" 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">pip install -r requirements.txt</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-run-discovery-no-api-keys>2. Run Discovery (No API Keys!)<a href=#2-run-discovery-no-api-keys class=hash-link aria-label="Direct link to 2. Run Discovery (No API Keys!)" title="Direct link to 2. Run Discovery (No API Keys!)" 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"># Test with 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"># View results</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python main.py discovery-stats</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-expected-output>3. Expected Output<a href=#3-expected-output class=hash-link aria-label="Direct link to 3. Expected Output" title="Direct link to 3. Expected Output" 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">๐ Jurisdiction Discovery Statistics</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">Silver Layer (Discovered URLs):</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> Total discoveries: 87</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> Homepages found: 78 (89.7%)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> Discovery methods:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> - gsa_registry: 54 (62%)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> - pattern_match: 24 (28%)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> - not_found: 9 (10%)</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"> Avg confidence: 0.84</span><br/></div></code></pre></div></div>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-how-it-works>๐ How It Works<a href=#-how-it-works class=hash-link aria-label="Direct link to ๐ How It Works" title="Direct link to ๐ How It Works" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=strategy-1-gsa-domain-matching-confidence-095-10>Strategy 1: GSA Domain Matching (Confidence: 0.95-1.0)<a href=#strategy-1-gsa-domain-matching-confidence-095-10 class=hash-link aria-label="Direct link to Strategy 1: GSA Domain Matching (Confidence: 0.95-1.0)" title="Direct link to Strategy 1: GSA Domain Matching (Confidence: 0.95-1.0)" translate=no>โ</a></h3>
<p>Direct lookup in authoritative GSA .gov registry:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>"Sacramento County"</span><span class="token plain"> โ </span><span class="token string" style=color:#e3116c>"sacramento.gov"</span><span class="token plain"> โ</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Confidence</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>1.0</span><br/></div></code></pre></div></div>
<p>Fuzzy matching for variations:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>"County of Sacramento"</span><span class="token plain"> โ fuzzy </span><span class="token keyword" style=color:#00009f>match</span><span class="token plain"> โ </span><span class="token string" style=color:#e3116c>"sacramento.gov"</span><span class="token plain"> โ</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Similarity</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>87</span><span class="token operator" style=color:#393A34>%</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Confidence</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.95</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=strategy-2-url-pattern-generation-confidence-06-09>Strategy 2: URL Pattern Generation (Confidence: 0.6-0.9)<a href=#strategy-2-url-pattern-generation-confidence-06-09 class=hash-link aria-label="Direct link to Strategy 2: URL Pattern Generation (Confidence: 0.6-0.9)" title="Direct link to Strategy 2: URL Pattern Generation (Confidence: 0.6-0.9)" translate=no>โ</a></h3>
<p><strong>Counties:</strong></p>
<ul>
<li class=""><code>co.{name}.{state}.us</code> โ <code>co.sacramento.ca.us</code></li>
<li class=""><code>{name}county.gov</code> โ <code>sacramentocounty.gov</code></li>
</ul>
<p><strong>Cities:</strong></p>
<ul>
<li class=""><code>www.{name}.gov</code> โ <code>www.fresno.gov</code></li>
<li class=""><code>cityof{name}.gov</code> โ <code>cityoffresno.gov</code></li>
</ul>
<p><strong>School Districts:</strong></p>
<ul>
<li class=""><code>{name}.k12.{state}.us</code> โ <code>fresno.k12.ca.us</code></li>
<li class=""><code>{name}schools.org</code> โ <code>fresnoschools.org</code></li>
</ul>
<p>Each pattern is tested with HTTP HEAD/GET to verify accessibility.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=strategy-3-web-crawling>Strategy 3: Web Crawling<a href=#strategy-3-web-crawling class=hash-link aria-label="Direct link to Strategy 3: Web Crawling" title="Direct link to Strategy 3: Web Crawling" translate=no>โ</a></h3>
<p>Once homepage found:</p>
<ol>
<li class="">Fetch HTML content</li>
<li class="">Search for "minutes", "agendas", "meetings" links</li>
<li class="">Detect CMS platforms (Granicus, CivicClerk, Municode)</li>
<li class="">Boost confidence for .gov domains</li>
</ol>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-expected-performance>๐ Expected Performance<a href=#-expected-performance class=hash-link aria-label="Direct link to ๐ Expected Performance" title="Direct link to ๐ Expected Performance" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=discovery-rates-by-jurisdiction-type>Discovery Rates by Jurisdiction Type<a href=#discovery-rates-by-jurisdiction-type class=hash-link aria-label="Direct link to Discovery Rates by Jurisdiction Type" title="Direct link to Discovery Rates by Jurisdiction Type" translate=no>โ</a></h3>
<table><thead><tr><th>Type<th>GSA Match<th>Pattern Match<th>Total<tbody><tr><td><strong>Counties</strong> (3,143)<td>60-70%<td>25-30%<td><strong>85-95%</strong><tr><td><strong>Cities >10k</strong> (~8,000)<td>40-50%<td>35-45%<td><strong>75-90%</strong><tr><td><strong>School Districts</strong> (13,051)<td>30-40%<td>40-50%<td><strong>70-85%</strong><tr><td><strong>Townships</strong> (16,504)<td>20-30%<td>30-40%<td><strong>50-65%</strong></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=benchmarks>Benchmarks<a href=#benchmarks class=hash-link aria-label="Direct link to Benchmarks" title="Direct link to Benchmarks" translate=no>โ</a></h3>
<ul>
<li class=""><strong>100 jurisdictions</strong>: ~3-5 minutes</li>
<li class=""><strong>1,000 jurisdictions</strong>: ~30-50 minutes</li>
<li class=""><strong>30,000 jurisdictions</strong>: ~12-18 hours (with batching)</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-why-this-approach>๐ก Why This Approach?<a href=#-why-this-approach class=hash-link aria-label="Direct link to ๐ก Why This Approach?" title="Direct link to ๐ก Why This Approach?" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=product-guidance-compliance>Product Guidance Compliance<a href=#product-guidance-compliance class=hash-link aria-label="Direct link to Product Guidance Compliance" title="Direct link to Product Guidance Compliance" translate=no>โ</a></h3>
<p>From internal guidance:</p>
<blockquote>
<p>"Do not build new systems on either Google Custom Search or legacy Bing APIs, even if they're 'free today.'"</p>
</blockquote>
<p><strong>Recommended alternatives:</strong>
โ
Crawl + index your own sources<br/>
<!-- -->โ
Public datasets / curated feeds<br/>
<!-- -->โ
Vendor-neutral retrieval pipelines</p>
<p><strong>This implementation follows all recommendations:</strong></p>
<ul>
<li class="">Uses public datasets (Census Bureau + GSA)</li>
<li class="">Pattern-based retrieval (vendor-neutral)</li>
<li class="">Delta Lake storage for indexing</li>
<li class="">No dependency on external search services</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-testing>๐งช Testing<a href=#-testing class=hash-link aria-label="Direct link to ๐งช Testing" title="Direct link to ๐งช Testing" translate=no>โ</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=verify-pattern-generation>Verify Pattern Generation<a href=#verify-pattern-generation class=hash-link aria-label="Direct link to Verify Pattern Generation" title="Direct link to Verify Pattern Generation" 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 -c "</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">from discovery.url_discovery_agent import URLDiscoveryAgent</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">agent = URLDiscoveryAgent(set(), [])</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">patterns = agent._generate_url_patterns('Sacramento', 'CA', 'county')</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">for url, conf in patterns:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> print(f'{url} (confidence: {conf})')</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">"</span><br/></div></code></pre></div></div>
<p>Expected output:</p>
<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">https://co.sacramento.ca.us (confidence: 0.9)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://sacramentocounty.gov (confidence: 0.85)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://sacramento.ca.gov (confidence: 0.8)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=test-discovery>Test Discovery<a href=#test-discovery class=hash-link aria-label="Direct link to Test Discovery" title="Direct link to Test 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">python main.py discover-jurisdictions --limit 10 --state CA</span><br/></div></code></pre></div></div>
<hr/>
<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>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-run-initial-discovery>1. Run Initial Discovery<a href=#1-run-initial-discovery class=hash-link aria-label="Direct link to 1. Run Initial Discovery" title="Direct link to 1. Run Initial 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">python main.py discover-jurisdictions --limit 100</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-review-results>2. Review Results<a href=#2-review-results class=hash-link aria-label="Direct link to 2. Review Results" title="Direct link to 2. Review Results" 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 discovery-stats</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-production-run-databricks>3. Production Run (Databricks)<a href=#3-production-run-databricks class=hash-link aria-label="Direct link to 3. Production Run (Databricks)" title="Direct link to 3. Production Run (Databricks)" translate=no>โ</a></h3>
<ul>
<li class="">Upload notebook to Databricks</li>
<li class="">Create cluster (2-4 workers)</li>
<li class="">Run full discovery (~30k jurisdictions)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=4-schedule-re-discovery>4. Schedule Re-Discovery<a href=#4-schedule-re-discovery class=hash-link aria-label="Direct link to 4. Schedule Re-Discovery" title="Direct link to 4. Schedule Re-Discovery" translate=no>โ</a></h3>
<ul>
<li class="">Monthly re-runs to catch new jurisdictions</li>
<li class="">Use Databricks Workflows for automation</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-documentation>๐ Documentation<a href=#-documentation class=hash-link aria-label="Direct link to ๐ Documentation" title="Direct link to ๐ Documentation" translate=no>โ</a></h2>
<ul>
<li class=""><strong>Setup Guide</strong>: <a class="" href=/docs/development/JURISDICTION_DISCOVERY_SETUP.md>JURISDICTION_DISCOVERY_SETUP.md</a></li>
<li class=""><strong>Deployment Options</strong>: <a class="" href=/docs/development/JURISDICTION_DISCOVERY_DEPLOYMENT.md>JURISDICTION_DISCOVERY_DEPLOYMENT.md</a></li>
<li class=""><strong>Technical Details</strong>: <a class="" href=/docs/development/JURISDICTION_DISCOVERY.md>JURISDICTION_DISCOVERY.md</a></li>
<li class=""><strong>Changelog</strong>: <a class="" href=/docs/development/CHANGELOG_DISCOVERY_V2.md>CHANGELOG_DISCOVERY_V2.md</a></li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-verification-checklist>โ
Verification Checklist<a href=#-verification-checklist class=hash-link aria-label="Direct link to โ
Verification Checklist" title="Direct link to โ
Verification Checklist" translate=no>โ</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Removed Google Search API code</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Removed Bing Search API code</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Implemented pattern-based URL generation</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Implemented GSA domain matching (exact + fuzzy)</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Implemented web crawling for verification</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Updated all configuration files</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Updated all documentation</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Updated Databricks notebook</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Removed deprecated files</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->No Python errors in discovery module</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Zero external API dependencies</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-result>๐ Result<a href=#-result class=hash-link aria-label="Direct link to ๐ Result" title="Direct link to ๐ Result" translate=no>โ</a></h2>
<p><strong>The Jurisdiction Discovery System is now production-ready with:</strong></p>
<p>โ
<strong>Zero external API costs</strong><br/>
<!-- -->โ
<strong>No rate limits or quotas</strong><br/>
<!-- -->โ
<strong>Vendor-neutral approach</strong><br/>
<!-- -->โ
<strong>Higher discovery rates (70-95%)</strong><br/>
<!-- -->โ
<strong>Faster processing (2x speedup)</strong><br/>
<!-- -->โ
<strong>Future-proof implementation</strong></p>
<p><strong>Ready to discover 90,000+ government websites sustainably!</strong> ๐ฆทโจ</p>
<hr/>
<p><strong>Questions?</strong> See <a class="" href=/docs/development/JURISDICTION_DISCOVERY_SETUP.md>JURISDICTION_DISCOVERY_SETUP.md</a> for detailed instructions.</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/development/migration-v2.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--prev" href=/docs/development/integration-status><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>โ
Integration Status Summary</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/development/new-capabilities><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>๐ NEW CAPABILITIES SUMMARY</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=#summary class="table-of-contents__link toc-highlight">Summary</a><li><a href=#-what-changed class="table-of-contents__link toc-highlight">๐ฏ What Changed</a><ul><li><a href=#removed-deprecated class="table-of-contents__link toc-highlight">Removed (Deprecated)</a><li><a href=#added-sustainable class="table-of-contents__link toc-highlight">Added (Sustainable)</a></ul><li><a href=#-benefits class="table-of-contents__link toc-highlight">๐ Benefits</a><li><a href=#-files-updated class="table-of-contents__link toc-highlight">๐ Files Updated</a><ul><li><a href=#core-discovery-module class="table-of-contents__link toc-highlight">Core Discovery Module</a><li><a href=#documentation class="table-of-contents__link toc-highlight">Documentation</a><li><a href=#notebooks class="table-of-contents__link toc-highlight">Notebooks</a><li><a href=#removed class="table-of-contents__link toc-highlight">Removed</a></ul><li><a href=#-quick-start-zero-configuration class="table-of-contents__link toc-highlight">๐ Quick Start (Zero Configuration!)</a><ul><li><a href=#1-install-dependencies class="table-of-contents__link toc-highlight">1. Install Dependencies</a><li><a href=#2-run-discovery-no-api-keys class="table-of-contents__link toc-highlight">2. Run Discovery (No API Keys!)</a><li><a href=#3-expected-output class="table-of-contents__link toc-highlight">3. Expected Output</a></ul><li><a href=#-how-it-works class="table-of-contents__link toc-highlight">๐ How It Works</a><ul><li><a href=#strategy-1-gsa-domain-matching-confidence-095-10 class="table-of-contents__link toc-highlight">Strategy 1: GSA Domain Matching (Confidence: 0.95-1.0)</a><li><a href=#strategy-2-url-pattern-generation-confidence-06-09 class="table-of-contents__link toc-highlight">Strategy 2: URL Pattern Generation (Confidence: 0.6-0.9)</a><li><a href=#strategy-3-web-crawling class="table-of-contents__link toc-highlight">Strategy 3: Web Crawling</a></ul><li><a href=#-expected-performance class="table-of-contents__link toc-highlight">๐ Expected Performance</a><ul><li><a href=#discovery-rates-by-jurisdiction-type class="table-of-contents__link toc-highlight">Discovery Rates by Jurisdiction Type</a><li><a href=#benchmarks class="table-of-contents__link toc-highlight">Benchmarks</a></ul><li><a href=#-why-this-approach class="table-of-contents__link toc-highlight">๐ก Why This Approach?</a><ul><li><a href=#product-guidance-compliance class="table-of-contents__link toc-highlight">Product Guidance Compliance</a></ul><li><a href=#-testing class="table-of-contents__link toc-highlight">๐งช Testing</a><ul><li><a href=#verify-pattern-generation class="table-of-contents__link toc-highlight">Verify Pattern Generation</a><li><a href=#test-discovery class="table-of-contents__link toc-highlight">Test Discovery</a></ul><li><a href=#-next-steps class="table-of-contents__link toc-highlight">๐ฎ Next Steps</a><ul><li><a href=#1-run-initial-discovery class="table-of-contents__link toc-highlight">1. Run Initial Discovery</a><li><a href=#2-review-results class="table-of-contents__link toc-highlight">2. Review Results</a><li><a href=#3-production-run-databricks class="table-of-contents__link toc-highlight">3. Production Run (Databricks)</a><li><a href=#4-schedule-re-discovery class="table-of-contents__link toc-highlight">4. Schedule Re-Discovery</a></ul><li><a href=#-documentation class="table-of-contents__link toc-highlight">๐ Documentation</a><li><a href=#-verification-checklist class="table-of-contents__link toc-highlight">โ
Verification Checklist</a><li><a href=#-result class="table-of-contents__link toc-highlight">๐ Result</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> |