CINXE.COM
Caltrans Contracting Opportunities Portal
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <base href="/" /> <link rel="stylesheet" href="/css/site.css" /> <!-- Public Sans font google API --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&display=block"> <!-- State Template CDN CSS --> <link rel="stylesheet" href="https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/css/cagov.core.css" integrity="sha384-v1GgOP6qWQcijImJxz3qLkAyRpYlhdwsY7PeXtrX7sYhOHvj21STxltLrCd0IePs" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/css/colortheme-oceanside.css" integrity="sha384-yy7Do1ONgnKlZOvN/gorWknGonXzQVzLnRxgWDYmTmdoTkdm7LI2PHUDnfcJZOJ2" crossorigin="anonymous"> <link rel="stylesheet" href="https://js.arcgis.com/4.29/esri/themes/light/main.css"> <!-- BEGIN Google Tag Manager --> <link rel="preconnect" href="https://www.googletagmanager.com" /> <link rel="preconnect" href="https://www.google-analytics.com" /> <script> var yourGA4MeasurementId = "G-WLDEF7NZZ2"; // Caltrans GA4 Measurement ID var stateGTMAccount = "GTM-NJ6Q4MV"; // GTM-NJ6Q4MV - all ca.gov (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != "dataLayer" ? "&l=" + l : ""; j.async = true; j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl; f.parentNode.insertBefore(j, f); (function () { dataLayer.push(arguments); })("config", yourGA4MeasurementId, { cookie_flags: "secure;samesite=lax;domain=", }); })(window, document, "script", "dataLayer", stateGTMAccount); </script> <!-- END Google Tag Manager --> </head> <body> <header role="banner" id="header" class="global-header fixed" style=""> <div id="skip-to-content"> <a href="#main-content">Skip to Main Content</a> </div> <div class="utility-header"> <div class="container"> <div class="flex-row"> <div class="social-media-links"> <div class="header-cagov-logo"> <a href="https://www.ca.gov?utm_campaign=state_template_link&utm_medium=header&utm_source=external"> <span class="sr-only">CA.gov</span> <span class="ca-gov-logo-svg"></span> </a> </div> <p class="official-tag"> <span class="desktop-only">Official website of the</span> State of California </p> </div> <div class="settings-links"> <a href="/aboutUs">About Us</a> <a href="/contactUs">Contact Us</a> </div> </div> </div> </div> <!-- header branding with light gray background --> <div class="section-default"> <div class="branding"> <div class="header-organization-banner"> <a href="/"> <div class="logo-assets"> <img src="/images/caltranslogo_v2.png" alt="Caltrans Logo"> </div> </a> </div> </div> </div> </header> <div class="container container-fluid"> <div class="row"> <h1>Caltrans Contracting Opportunities Portal</h1> </div> </div> <main role="main" class="pb-3"> <HeadContent> <title>Caltrans Contracting Opportunities Portal</title> <style> .district-list { padding-left: 15px; } .district-item { display: flex; align-items: center; padding: 8px 0; border-bottom: 1px solid #ddd; } .district-item:first-child { padding-left: 0; } .district-item + .district-item { padding-left: 20px; } .district-item a { margin-right: 10px; } .district-item-checkbox { margin-right: 10px; } /* Make left column take full width on small screens */ @media (max-width: 992px) { .mapDiv { display: none; } .district-column { flex: 0 0 100%; max-width: 100%; } } .district-item { cursor: pointer; } </style> </HeadContent> <div class="container container-fluid"> <h2>Caltrans Project Search</h2> <div class="row"> <!-- Left Column --> <div class="col-md-6 district-column"> <h3>Search by District</h3> <p> 110 Projects Currently Available (As of 03/11/2025 03:14 AM) </p> <div class="district-list"> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="allDistrictsCheckbox" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="/allProjects" onclick="event.stopPropagation();">All Districts</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox1" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/1" onclick="event.stopPropagation();">District 1 - Eureka</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox2" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/2" onclick="event.stopPropagation();">District 2 - Redding</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox3" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/3" onclick="event.stopPropagation();">District 3 - Marysville / Sacramento</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox4" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/4" onclick="event.stopPropagation();">District 4 - Bay Area / Oakland</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox5" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/5" onclick="event.stopPropagation();">District 5 - San Luis Obispo / Santa Barbara</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox6" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/6" onclick="event.stopPropagation();">District 6 - Fresno / Bakersfield</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox7" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/7" onclick="event.stopPropagation();">District 7 - Los Angeles</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox8" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/8" onclick="event.stopPropagation();">District 8 - San Bernardino / Riverside</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox9" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/9" onclick="event.stopPropagation();">District 9 - Bishop</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox10" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/10" onclick="event.stopPropagation();">District 10 - Stockton</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox11" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/11" onclick="event.stopPropagation();">District 11 - San Diego</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox12" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/12" onclick="event.stopPropagation();">District 12 - Orange County</a> </label> </div> <div class="district-item" onclick="toggleCheckbox(this)"> <label> <input type="checkbox" id="districtCheckbox13" class="district-item-checkbox" onclick="event.stopPropagation();"> <a href="onestopshop/13" onclick="event.stopPropagation();">Other Non-Specific Districts</a> </label> </div> </div> <button id="submitButton" class="btn btn-primary mt-3" disabled>Submit</button> </div> <!-- Right Column (Map) --> <div class="col-md-6 mapDiv"> <h3>Search by Map Location</h3> <p> Select one of the district outlines below for a list of current Caltrans construction contracting opportunities. </p> <img src="/images/cal-district-map-edited-2019.png" usemap="#CaltransMap" alt="Map of Caltrans districts in California" title="Caltrans District Map"> <map name="CaltransMap" id="CaltransMap"> <area shape="poly" coords="38,10,35,23,41,28,43,34,45,39,43,46,39,61,42,69,38,77,32,88,30,95,28,103,34,117,46,123,51,133,58,146,56,163,60,175,62,186,63,193,70,197,80,196,88,194,92,192,100,192,106,195,110,201,117,201,120,199,120,195,121,191,121,188,121,179,119,174,111,169,107,165,107,161,107,153,106,148,95,148,98,146,95,140,95,138,98,130,97,130,88,128,79,125,69,124,70,115,70,107,69,95,68,82,66,75,72,67,74,61,75,58,72,48,72,42,65,43,61,40,62,30,60,26,63,21,66,14,68,9,56,7,38,10" href="onestopshop/1" alt="District 1" title="District 1"> <area shape="poly" coords="70,10,61,21,62,39,60,45,70,45,74,58,68,69,65,75,66,94,68,127,93,130,95,137,136,139,136,132,149,132,157,120,167,116,165,129,180,149,185,144,187,139,209,143,229,142,230,10,70,10" href="onestopshop/2" alt="District 2" title="District 2"> <area shape="poly" coords="97,137,97,145,99,150,106,151,105,161,104,168,116,172,123,187,123,193,135,209,136,213,141,213,147,211,153,211,154,217,154,223,159,226,158,230,153,234,148,238,151,240,156,238,160,234,164,228,170,228,178,226,184,226,184,222,186,213,194,210,202,211,212,212,219,209,226,205,228,201,234,200,234,196,239,190,234,183,232,142,208,142,191,140,185,146,182,149,168,133,167,127,170,121,167,117,160,120,152,129,149,132,138,132,136,138,97,137" href="onestopshop/3" alt="District 3" title="District 3"> <area shape="poly" coords="67,196,76,196,75,194,85,194,88,193,89,192,99,192,106,198,111,205,116,202,121,197,122,193,129,199,133,207,135,213,139,213,147,211,153,210,154,223,158,224,157,230,146,238,153,239,159,237,159,248,160,262,159,268,165,274,165,284,168,290,175,292,174,297,175,303,168,303,164,301,157,306,152,301,152,299,139,291,133,285,131,288,129,288,127,290,122,289,118,287,120,272,114,266,114,250,98,240,93,241,92,226,89,224,85,215,67,196" href="onestopshop/4" alt="district 4" title="District 4"> <area shape="poly" coords="125,290,134,286,141,293,149,297,154,300,159,306,164,301,174,303,182,312,190,316,203,330,205,338,202,343,203,354,210,359,220,365,222,371,224,382,229,383,233,392,238,392,239,396,243,397,243,400,249,402,248,407,253,407,254,413,257,414,257,422,259,432,259,446,256,452,237,451,228,447,217,449,204,442,203,416,204,411,196,408,191,400,192,397,190,390,186,389,180,381,174,378,172,374,165,366,161,355,153,348,145,340,143,329,141,322,123,296,126,290" href="onestopshop/5" alt="District 5" title="District 5" /> <area shape="poly" coords="190,316,211,295,218,294,221,291,229,291,265,256,278,267,291,273,292,283,301,291,307,301,309,315,315,331,320,345,326,359,325,367,325,372,315,370,312,402,299,402,299,426,296,428,268,429,265,424,258,423,259,412,255,412,253,407,249,407,249,402,242,400,242,395,239,395,238,391,234,391,229,385,229,381,225,379,225,371,222,370,222,366,207,356,203,351,202,348,202,344,205,339,206,330,191,316" href="onestopshop/6" alt="District 6" title="District 6" /> <area shape="poly" coords="260,423,267,425,268,430,296,429,299,427,342,428,342,457,338,473,334,476,326,478,320,488,316,492,308,489,305,480,293,474,278,472,270,464,258,453,260,447,260,423" href="onestopshop/7" alt="District 7" title="District 7" /> <area shape="poly" coords="343,370,344,375,341,375,340,381,342,381,342,428,343,447,340,469,334,478,342,484,349,494,354,498,350,503,356,505,362,510,483,509,489,494,490,481,490,475,497,469,505,463,506,458,501,452,494,448,491,436,490,431,486,427,483,420,483,417,431,369,343,370" href="onestopshop/8" alt="District 8" title="District 8"> <area shape="poly" coords="252,202,432,370,343,370,342,426,299,427,299,403,312,403,314,371,324,371,325,361,321,348,310,315,306,299,302,293,296,287,294,281,291,280,292,271,288,273,279,267,268,257,267,243,251,228,250,222,254,213,252,202" href="onestopshop/9" alt="District 9" title="District 9" /> <area shape="poly" coords="160,236,160,233,164,228,172,228,183,226,186,213,193,210,202,211,209,212,217,211,227,204,239,190,254,204,254,215,251,223,253,230,267,243,268,256,264,255,229,290,221,292,217,293,211,295,190,315,180,309,176,304,175,299,175,292,166,287,166,275,160,268,160,236" href="onestopshop/10" alt="District 10" title="District 10" /> <area shape="poly" coords="345,510,349,506,349,504,356,504,362,508,482,509,479,513,481,519,480,528,489,534,490,543,486,550,367,563,366,553,360,549,358,526,345,510" href="onestopshop/11" alt="District 11" title="District 11" /> <area shape="poly" coords="321,490,327,479,335,478,347,489,348,492,353,496,348,502,350,507,345,510,321,490" href="onestopshop/12" alt="District 12" title="District 12" /> <area shape="poly" coords="" href="onestopshop/13" alt="Other" title="Other" /> </map> </div> </div> </div> <script> const allCheckbox = document.getElementById('allDistrictsCheckbox'); const checkboxes = document.querySelectorAll('.district-item-checkbox'); const submitButton = document.getElementById('submitButton'); function toggleCheckbox(row) { const checkbox = row.querySelector('.district-item-checkbox'); checkbox.checked = !checkbox.checked; checkbox.dispatchEvent(new Event('change')); } function toggleAllCheckboxes() { const isChecked = allCheckbox.checked; checkboxes.forEach(checkbox => { if (checkbox !== allCheckbox) { checkbox.checked = isChecked; } }); updateSubmitButton(); } function updateSubmitButton() { const checkedCount = document.querySelectorAll('.district-item-checkbox:checked').length; submitButton.disabled = checkedCount < 1; } function getSelectedDistricts() { const selectedDistricts = []; checkboxes.forEach((checkbox, index) => { if (checkbox.checked && index > 0) { // Ignore the first checkbox (All Districts) selectedDistricts.push(checkbox.nextElementSibling.href.split('/').pop()); } }); return selectedDistricts; } submitButton.addEventListener('click', function () { const selectedDistricts = getSelectedDistricts(); if (selectedDistricts.length > 0) { const districtParams = selectedDistricts.join(','); window.location.href = `/onestopshop/${districtParams}`; } }); allCheckbox.addEventListener('change', toggleAllCheckboxes); checkboxes.forEach(checkbox => { checkbox.addEventListener('change', () => { if (checkbox !== allCheckbox) { const allChecked = document.querySelectorAll('.district-item-checkbox:not(#allDistrictsCheckbox)').length === document.querySelectorAll('.district-item-checkbox:not(#allDistrictsCheckbox):checked').length; allCheckbox.checked = allChecked; } updateSubmitButton(); }); }); </script> </main> <aside class="p-b-md p-t-sm section-standout site-footer"> <div class="container"> <div class="row"> <!-- First Column --> <div class="col-md-6"> <a href="https://ppmoe.dot.ca.gov/des/oe/contractor-info.html" target="_blank" class="d-block no-underline m-y font-size-16"> Contractors Corner </a> <a href="https://ppmoe.dot.ca.gov/des/oe/weekly-ads/all-adv-projects.php" target="_blank" class="d-block no-underline m-y font-size-16"> Advertisements </a> <a href="https://tableau-public.dot.ca.gov/t/ProjectManagement/views/24-MonthAdvertiseLookAhead/24-MonthAdvertiseLookAhead?%3AshowAppBanner=false&%3Adisplay_count=n&%3AshowVizHome=n&%3Aorigin=viz_share_link&%3AisGuestRedirectFromVizportal=y&%3Aembed=y" target="_blank" class="d-block no-underline m-y font-size-16"> 24-Month Advertise Look Ahead </a> </div> <!-- Second Column --> <div class="col-md-6"> <a href="https://caleprocure.ca.gov/pages/Events-BS3/event-search.aspx" target="_blank" class="d-block no-underline m-y font-size-16"> CaleProcure </a> <a href="https://www.dgs.ca.gov/PD" target="_blank" class="d-block no-underline m-y font-size-16"> Solicitations </a> </div> </div> </div> </aside> <footer id="footer" class="global-footer hidden-print"> <div class="container"> <div class="d-flex"> <ul class="footer-links me-auto"> <li> <a href="https://dot.ca.gov/accessibility" class="cagov-logo">Accessibility</a> </li> <li> <a href="https://dot.ca.gov/privacy-policy" class="cagov-logo">Privacy Policy</a> </li> <li> <a href="https://dot.ca.gov/conditions-of-use" class="cagov-logo">Conditions of Use</a> </li> </ul> <ul class="socialsharer-container"> <li> <a href="http://www.facebook.com/CaltransHQ" title="Facebook"><span class="ca-gov-icon-facebook" aria-hidden="true"></span><span class="sr-only">Facebook</span></a> </li> <li> <a href="https://twitter.com/CaltransHQ?ref_src=twsrc%5Etfw" title="Twitter"><span class="ca-gov-icon-twitter" aria-hidden="true"></span><span class="sr-only">Twitter</span></a> </li> </ul> </div> </div> <!-- Copyright Statement --> <div class="copyright"> <div class="container"> <div class="d-flex"> <p>Copyright <span aria-hidden="true">©</span> 2024 State of California</p> </div> </div> </div> <button class="return-top"> <span class="sr-only">Back to top</span> </button> </footer> <script src="https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/js/cagov.core.js" integrity="sha384-DszeIb7TGGVH7Nf6Q2L22KUG6bIZpYns5OSFUF/nVTY+ejYtC+JrAK1aYKS9RLFV" crossorigin="anonymous"></script> <script src="https://js.arcgis.com/4.30/"></script> <script src="/js/site.js"></script> </body> </html>