Boundary Atlas

Georgia's 9th congressional district (GA-09)

Georgia's 9th congressional district (GA-09) covers parts or all of 12 counties, including Banks County, Fannin County, Gilmer County, Habersham County, Jackson County and Rabun County, and 73 ZIP codes (40 wholly inside it). Its 2020 population was 765,135. This is the map in force for the November 3, 2026 election.

765,135residents (2020 Census)
12counties
73ZIP codes
145voting precincts

Who represents GA-09

OfficeMemberContact
U.S. Representative (GA-09)Andrew S. Clyde (R)202-225-9893
U.S. SenatorJon Ossoff (D)202-224-3521 · contact form
U.S. SenatorRaphael G. Warnock (D)202-224-3643 · contact form

Officials serving now (members of Congress until January 3, 2027). Sources: Members of Congress: the @unitedstates project, congress-legislators (CC0).

Counties

CountyShare of the county's residents in GA-09
Banks County100%
Fannin County100%
Gilmer County100%
Habersham County100%
Jackson County100%
Rabun County100%
Stephens County100%
Towns County100%
Union County100%
White County100%
Hall County68%
Gwinnett County34%

ZIP codes

Percentages mark ZIPs only partly in GA-09: the share of that ZIP's residents inside it.

Towns

Baldwin CCD, Blairsville CCD, Blue Ridge CCD, Buford-Sugar Hill CCD, Carters Lake CCD, Clarkesville CCD, Clayton CCD, Clermont CCD, Cleveland CCD, Commerce CCD, Cornelia CCD, Ellijay CCD, Helen CCD, Hiawassee CCD, Higdon-Mobile CCD, Homer CCD, Ivylog CCD, Jefferson CCD, Lula CCD, Macedonia CCD, Martin-Avalon CCD, Maysville CCD, Maysville CCD, McCaysville CCD, Mineral Bluff CCD, Morganton CCD, Mossy Creek CCD, Mountain City CCD, Nicholson CCD, North Gilmer CCD, Rich Mountain CCD, Rock Creek CCD, South Gilmer CCD, Southeast Banks CCD, Suches CCD, Tiger CCD, Toccoa CCD, Turnerville CCD, West Jackson CCD and Young Harris CCD and others.

Get this in your AI agent

Your agent can draw every precinct in GA-09, or list them with population shares (related_geographies). Add https://boundarymcp.com/mcp to Claude, ChatGPT, Cursor or Codex (free, no key; how), then:

get_boundaries(id="us:congressional_district:1309", children_level="precinct", include_districts=True)