//Data
Search, lists, and tags
Facts checked against official sources · September 9, 2026
Search, lists, and tags are the three tools your team uses every day to turn a voter universe into work. Search finds people. Lists hold the people you found so a walk, a text, or a mail piece can pick them up. Tags mark what you learned about one person so the next search can find them again.
This page covers the filter bar and what it can express, the two kinds of saved list and how each behaves, pinning, folders, uploads and area carving, how tags are scoped and applied, and exactly who can download a file.
What it is
Search is the Records screen under Voters: a text box for name, address, or voter ID, and a filter bar of structured predicates that run against your campaign's universe. The result is a paged table you can sort, select from, and act on in bulk. The same predicates are available to the AI query, so a question typed there and a filter set here return identical rows.
Lists are saved groups of voters. They come from four places: a search you saved, a question you asked the AI query, a file of voter IDs you uploaded, or a shape you drew on a map. A list is what every downstream feature consumes: the walk generator, the SMS and email composers, the CSV export, and the print workflow.
Tags are short labels on a single voter, such as Supporter, Yard sign requested, or Do not knock. They are private to your campaign, they record who applied them, when, and how, and they become filters everywhere: in the filter bar, in the AI query, and on the dashboard's most-applied-tag widget. The product's own hint puts it well: a tag marks one voter; a list is a saved group you built from a query.
How search works: the filter bar
The filter bar exposes every predicate the search index supports. Filters combine with AND across types and OR within a multi-select, and the whole filter state lives in the URL, so a filtered view can be bookmarked, reloaded, or pasted to a teammate.
- Text search matches name and address through a full-text index and matches the voter ID exactly, so a chair can paste a VUID and confirm the right person.
- Party bucket: Republican, Democrat, Independent, Unknown.
- Registration status: Active, Suspense, Inactive, Unknown, matched case-insensitively so inconsistently cased source files still filter correctly.
- Gender, and an age range from 18 to 110 computed from date of birth.
- Geography: ZIP (up to 50 at once), precinct (up to 50), congressional district, state senate district, and state house district, each a multi-select fed from the values actually present in your data.
- Contact presence: has phone, has email.
- Vote history: voted in at least N of the last five general elections, and at least N of the last five primaries.
- Tags: tagged with any of, tagged with all of, and not tagged with, each accepting up to 20 tags. Any-of finds everyone already involved; all-of finds the people to ask for two things at once.
- Include off-roll records shows registrations no longer on the county roll, badged Off roll, for reference only.
How lists work: saving, pinning, refreshing, carving
Saving. The Save selection dialog has two destinations. New list creates a fresh list and asks you to choose a kind. Static freezes the matching voters at save time (up to 50,000 from a select-all), and static lists are what walks, outreach, and export read. Dynamic saves the filter set itself as a re-evaluatable query with no member rows; think of it as a bookmark of a search rather than a roster. Add to existing appends your selection to a static list you already started, skipping voters already on it, which is the search-add-search-add flow for building one list across many separate searches.
The Lists page shows active lists with pinned ones first. Pinning is campaign-wide, so a pinned Universe or Saturday turf list sits at the top for everyone. Lists can be renamed, filed into folders, searched, archived to an Archived Lists view (restore or delete forever), or deleted outright. Deleting a list unlinks any walks built from it rather than deleting the walks, and the confirmation tells you how many.
Upload a list takes a CSV or TSV of voter IDs up to 50 MB with a column named VUID, VOTER_ID, or one of the common aliases. IDs that match your universe become members; IDs that do not are dropped and counted in the confirmation, so you know how much of a prior-cycle list survived.
List detail pages members 100 at a time and carries the working buttons: Refine (open the AI query scoped to this list), Refresh (re-run the list's stored query chain against current data and save the result as a new dated list, leaving the original frozen), Carve area (draw a polygon over the list's geocoded doors and save what falls inside as a sub-list), Tag list, Tag selected, and Export CSV. The actions menu also sends the list to the email composer, the SMS composer, or block walking.
Targeting areas, a sibling page under Voters, does the same carving without a starting list: draw a shape on the map, see every voter inside it, and save that as a list for outreach, walks, or further filtering.
Export, and who may export
Exporting is the one action that is stricter than viewing. The candidate and campaign manager can download; staff can do everything else in the app but cannot pull a file. The search export lets you pick from 22 fields with a Names and phone preset and is capped at 100,000 rows sorted by last name; the list export streams the whole list; the AI query export is capped at 10,000 rows. All three are hard-scoped to the campaign's district and exclude off-roll voters.
| Surface | Who can export | Cap |
|---|---|---|
| Search (Records page) | Candidate, campaign manager | 100,000 rows, with a field picker |
| Saved list | Candidate, campaign manager | Whole list, streamed |
| AI query session | Candidate, campaign manager | 10,000 rows |
| Precinct chair view | The chair, only with the precinct export grant | Own precinct only |
| Staff, volunteers | No export | Not applicable |
How a local campaign uses it
City council, 21,000 registered. After a weekend of walks the manager asks the AI query for everyone who answered yes to the yard-sign question, gets 62, saves it as a list, and clicks Tag list with Yard sign requested. Before the Saturday sign drop she filters tagged any of Yard sign requested and ZIP 78745, gets 41, saves a static list, and sends it to block walking so the sign crew has a route. In November the tag is a filter for the thank-you mailer.
School board trustee, 38,000 registered. The candidate builds a Parents we have met list across six separate searches over a month: each precinct in turn, has phone, voted in two of the last five generals. She ticks the rows she recognizes from meet-and-greets and adds them to the same existing static list. It grows from 40 to 310 members; she pins it, files it in a Field folder, and exports Names and phone for Thursday call nights.
County party, 14 precinct chairs. The data director uploads last cycle's chase list of 9,000 voter IDs; 8,640 match and 360 are dropped as no longer in the universe. She carves it by area into four sub-lists for four chairs, tags every member Past chase so it is a filter for the next query, and pins the parent list. Chairs see only their own precinct and cannot export.
Why it matters
Most local campaigns lose their field knowledge between cycles because it lived in a volunteer's head or a spreadsheet nobody kept. Tags and lists put that knowledge on the voter record where the next walk, text, and mail piece can use it. The door-knocking guide explains why a supporter ID is worth more than a persuasion contact; tags are how you keep it. How to read a voter file covers the fields the filter bar exposes, and what a precinct chair does explains why chairs get a scoped, export-free view.
The scoping rules are the quiet part that matters. Personal tags let a staffer track a hunch without polluting the shared vocabulary, campaign tags keep the team on one definition of Supporter, and the export gate means a departing staffer never walked out with the file.
What it does not do
Boundaries worth knowing before you build a workflow around them.
- Dynamic lists are saved filters, not rosters: they have no member rows, cannot take manual additions, and nothing downstream reads them. Save a static list when you need to walk, text, or export.
- Refresh only works on lists that came from the AI query, because it replays the stored query chain; a list built from the filter bar or an upload has no chain.
- The Send to mailer handoff on a list is marked coming soon; the mailer list saved from a query session is a static list you export for a vendor.
- Uploaded lists match by voter ID only. A file without an ID column cannot be uploaded as a list; bring it in through Voters, then Import, instead.
- Off-roll voters are never added to a list, even from an upload or an add-to-existing action.
- Filters AND across types. There is no OR between two precinct groups except by putting both precincts in the same multi-select, and no nested logic.
- Tags do not cross campaigns, platform tags cannot be created by a campaign, and bulk tagging by filter caps at 10,000 voters per action.
- Staff cannot export; precinct chairs cannot open the detail sheet or save lists from their view.
Works with
Everything here reads the voter database and pairs with the AI voter query, which accepts the same tags and produces the same lists. Lists hand off directly to block walking, SMS outreach, email outreach, and direct mail; the chair-scoped view is part of precinct chair tools.
Frequently asked questions
Should I save a list as static or dynamic?
Static, almost always. A static list freezes the matching voters and carries member rows, which is what walks, texting, email, and export consume. A dynamic list saves only the filter set; it is useful as a bookmark you can re-run from the Records page, but it has no members and nothing downstream can read it.
Can I build one list from several different searches?
Yes. Run a search, select rows or select all matching, open Save selection, and choose Add to existing. Pick the static list you started earlier; voters already on it are skipped. Repeat with the next search. The dialog preselects your most recently touched list so a repeat add is one click.
Who can see my personal tags?
Only you. Personal tags are scoped to your user and never appear to teammates, in their filters, or in their AI queries. Campaign tags are shared with everyone on the campaign, and platform tags are global facts you cannot create. Tags never cross from one campaign to another.
Can I upload a list from a previous cycle?
Yes, as long as it has a voter ID column named VUID, VOTER_ID, or a common alias. Upload a CSV or TSV up to 50 MB; matching IDs become members and non-matching IDs are dropped and counted so you can see how much of the old list is still in your universe. Other columns are ignored.
Can staff export a list?
No. Exports from search, from a saved list, and from an AI query session are limited to the candidate and campaign manager. Staff can search, build and pin lists, tag, and send lists to walks and outreach inside the app. A precinct chair can export only their own precinct, and only when an admin has granted that specifically.
What happens to walks when I delete a list?
The walks stay. Deleting a list removes its member rows and unlinks any walks that were generated from it, and the confirmation tells you how many active walks will be unlinked. If you would rather keep the list around, archive it instead; archived lists can be restored or deleted forever later.
Find them once. Keep them forever.
Keep reading