CivicRecords AI
★ v1.2.0 — what's new for staff
This manual was originally authored against v1.1.0. The v1.2.0 release (2026-04-23) is mostly administrative, install-time, and security-hardening work — your daily workflow in this manual is unchanged. The staff-visible notes below are the only items you need to know.
- If your city enables the public portal (optional, off by default). Residents can now create their own account and submit a records request through a public surface (
/public/*). Those submissions land in your normal request list and look like any other request — same statuses, same timeline, same workflow. You handle them exactly the way you handle staff-created requests today. Anonymous walk-up submission is not supported — every public submission has a logged-in resident ascreated_by. - Connector credentials are now encrypted at rest (ENG-001 closed). This is entirely transparent to you. Nothing in the staff UI changes. What changed: if your IT admin ever exports the database or restores a backup, connector credentials appear as ciphertext rather than plaintext. Your admin has a new
ENCRYPTION_KEYto manage — see the Administrator Manual for the operator detail; no staff action required. - Windows double-click installer is available. If your organization deploys new workstations from Windows, there is now a
CivicRecordsAI-1.2.0-Setup.exeon the v1.2.0 release page. It is unsigned by design, so Windows SmartScreen will show "Windows protected your PC — Unknown publisher" on first run. Remediation: More info → Run anyway. This is expected and safe when the installer came from the official release page with a matching SHA-256 checksum.
Full release narrative lives in the v1.2.0 release notes and CHANGELOG.md §[1.2.0]. Nothing else in this manual changed.
1 Welcome
What CivicRecords AI Does
CivicRecords AI is a tool that helps your city respond to public records requests faster and more accurately. When a resident asks for a document, CivicRecords AI searches across your city's record sources—meeting minutes, resolutions, ordinances, permits, and more—and presents the most relevant results in seconds. It also suggests which exemptions might apply, drafts response letters, and tracks every request from receipt to fulfillment. Everything runs on your city's own servers, and every decision is made by you, not by the system.
What CivicRecords AI Does NOT Do
- It does not make decisions for you. The system suggests and drafts; you review and approve. Every exemption flag, every response letter, and every release decision requires a human sign-off.
- It is not a public portal. Residents do not interact with CivicRecords AI directly. You use it internally to process their requests.
- It does not send data to the cloud. CivicRecords AI runs entirely on your city's local network or on-premises servers. No records or request data leave your infrastructure.
Who This Manual Is For
This manual is written for city staff members who use CivicRecords AI day to day: city clerks who process records requests, records officers who manage compliance, department liaisons who search for and provide departmental records, and city managers who oversee the process. You do not need any technical background to use this system or to follow this guide.
2 Signing In
How to Access CivicRecords AI
Open your web browser (Chrome, Edge, or Firefox are recommended) and navigate to the address provided by your IT department. In most installations, this is:
http://localhost:8080
If your city has deployed CivicRecords AI on a shared network server, your IT administrator will provide the correct URL (for example, http://records.yourcity.gov).
The Login Screen
When you arrive at the login page, you will see two fields: Email and Password. Enter the credentials that were provided to you by your system administrator and select Sign In.
Password Requirements
- At least 12 characters in length
- At least one uppercase letter and one lowercase letter
- At least one number
- At least one special character (such as
!,@,#, or$)
If You Are Locked Out
After five consecutive failed login attempts, your account will be temporarily locked. Contact your IT administrator to have your account unlocked and your password reset. Do not attempt to create a new account—your administrator manages all user accounts.
3 Dashboard Overview
What You See When You Log In
After signing in, you land on the Dashboard. This is your home base. It shows a summary of your active work:
- Open Requests — A count of requests currently assigned to you or your department that need action.
- Approaching Deadlines — Requests with statutory response deadlines within the next 5 business days.
- Recently Updated — A list of the most recently modified requests so you can quickly pick up where you left off.
- Pending Reviews — Exemption flags or draft response letters awaiting your review (visible to Reviewers and Admins).
Navigation Sidebar
The left side of the screen contains a navigation sidebar with the following items:
- Dashboard — Returns you to the home screen.
- Requests — View, create, and manage records requests.
- Search — Search across all indexed city records.
- Exemptions — Review AI-flagged exemptions (Reviewers and Admins only).
- Reports — Run reports on response times, volumes, and compliance metrics (Admins only).
- Settings — Account settings and system configuration (Admins only).
Your Role Determines What You Can See and Do
CivicRecords AI has four user roles. Each role has access to a specific set of features:
| Role | Can Search Records | Can Manage Requests | Can Review Exemptions | Can Approve Responses | Can Access Reports & Settings |
|---|---|---|---|---|---|
| Admin | Yes | Yes (all departments) | Yes | Yes | Yes |
| Reviewer | Yes | Yes (own department) | Yes | Yes | No |
| Staff | Yes | Yes (own department) | No | No | No |
| Read-Only | Yes | View only | No | No | No |
4 Searching for Records
The Search Bar
Navigate to the Search page from the sidebar. At the top of the page, you will find a large search bar. Type your query in plain, everyday English. You do not need to use special syntax or keywords. For example:
- Stormwater permit applications from 2024
- City council minutes discussing the park renovation
- Contracts with Acme Construction over $50,000
Press Enter or select the search button to run your query.
Understanding Search Results
Each result includes the following information:
| Column | What It Means |
|---|---|
| Title / Excerpt | The name of the document and a short excerpt showing where your search terms appear. |
| Source | Which record collection the document came from (for example, "Council Minutes" or "Building Permits"). |
| Page Number | The specific page within the document where the matching text was found. |
| Confidence Score | A percentage indicating how closely the result matches your query. Higher scores mean a stronger match. Scores above 80% are generally excellent matches. |
Filtering Results
After running a search, use the filter panel on the left side of the results to narrow down what you see:
- Date Range — Show only documents from a specific time period.
- Document Type — Filter by type such as minutes, ordinances, permits, or contracts.
- Department — Show only documents belonging to a specific department.
- Source Collection — Limit results to a particular indexed collection.
Follow-Up Searches
If your initial search returns too many results or not quite the right ones, refine your query. The system remembers your search context within a session, so follow-up searches build on your previous query. Try being more specific, adding date ranges, or using different terms that describe the same concept.
AI Summaries — The "AI Draft" Label
When you view search results, you may see short summaries marked with an "AI Draft" label. These summaries are generated by the AI to help you quickly understand what each document contains. They are drafts—helpful starting points, but not official descriptions. Always open and review the original document before relying on any AI-generated summary.
Tips for Effective Searches
- Use natural language. You do not need Boolean operators or quotation marks.
- Include specific names, dates, or dollar amounts when you have them.
- If a search returns no results, try broader terms or alternate spellings.
- Use filters after an initial broad search to narrow results efficiently.
- If you are searching for a specific document, try its title or document number.
5 Managing Records Requests
Creating a New Request
To log a new public records request that has come in by mail, email, or in person, follow these steps:
- Navigate to Requests in the sidebar and select New Request.
- Enter the requester's name and contact information (email or mailing address).
- Paste or type the full text of the request exactly as received from the requester.
- Select the date received. This is the date the request arrived at your office, which starts the statutory clock.
- Choose the receiving department from the dropdown. If the request spans multiple departments, select the primary department and note the others in the description.
- Select Save. The request is created with a status of Received and is now visible on your Requests list.
The 11 Request Statuses
Every request moves through a series of statuses. Here is a complete reference:
| Status | Description |
|---|---|
| Received | The request has been logged in the system. No work has started yet. |
| Clarification Needed | The request is unclear or too broad. You have contacted the requester for more information. |
| Assigned | The request has been assigned to a specific staff member or department for processing. |
| Searching | Staff are actively searching for responsive records. The AI may be running searches in the background. |
| In Review | Potentially responsive records have been found and are being reviewed for exemptions and relevance. |
| Ready for Release | Records have been reviewed and are ready to be compiled into a response. No outstanding exemption questions remain. |
| Drafted | A response letter has been drafted (often with AI assistance) and is awaiting supervisor review. |
| Approved | A supervisor or reviewer has approved the response letter and the records package for release. |
| Fulfilled | The responsive records have been compiled, redacted as needed, and packaged for delivery. |
| Sent | The response and records have been sent to the requester. |
| Closed | The request is complete. No further action is required. |
Status Workflow
Requests generally follow this path, though some may skip steps or loop back:
Alternate paths: From Received, a request may move to Clarification Needed and then back to Received once clarified. From Drafted, a reviewer may send the request back to In Review if issues are found. At any point, a request can be moved to Closed if withdrawn by the requester.
Assigning Requests
To assign a request to a staff member, open the request detail page and select the Assign button. Choose a staff member from the dropdown list. The assignee will see the request appear on their Dashboard under "Open Requests." You can reassign a request at any time.
Attaching Documents from Search Results
When you find responsive records through the Search feature, you can attach them directly to a request:
- From the search results, select the document you want to attach.
- Select the Attach to Request button that appears in the document preview.
- Choose the request you want to attach the document to from the list of open requests.
- The document is now linked to the request and will appear in its Attached Records tab.
Statutory Deadlines and Alerts
CivicRecords AI automatically calculates statutory response deadlines based on your state's public records law. You will see:
- A deadline date displayed prominently on each request.
- A countdown showing business days remaining.
- Color-coded alerts: green (more than 5 days), amber (5 or fewer days), red (overdue).
6 Reviewing Exemption Flags
What Exemption Flags Are
When CivicRecords AI analyzes records attached to a request, it may detect information that could be exempt from public disclosure under your state's laws. When this happens, it creates an exemption flag—a suggestion that a specific piece of content might need to be redacted or withheld. The system suggests; you decide.
Reviewing a Flag: Accept or Reject
Navigate to the Exemptions page from the sidebar, or open a specific request and go to its Exemptions tab. For each flag, you will see:
- The highlighted text that the system flagged.
- The exemption category (for example, "Social Security Number" or "Attorney-Client Privilege").
- The state statute that may apply.
- A confidence score showing how certain the AI is about this flag.
You have two choices for each flag:
- Accept — You agree that this content should be redacted or withheld. The system will mark it for redaction in the final response.
- Reject — You determine that this content is not exempt and should be released. The flag is dismissed.
PII Flags vs. Statutory Flags
| Flag Type | What It Detects | Examples |
|---|---|---|
| PII (Personal Information) | Personally identifiable information that may need to be redacted for privacy. | Social Security numbers, driver's license numbers, personal phone numbers, dates of birth, home addresses, medical information |
| Statutory | Content that may be exempt under a specific state statute. | Attorney-client privileged communications, law enforcement investigation details, trade secrets, personnel evaluation records, draft deliberative documents |
Understanding Confidence Scores
Each flag includes a confidence score from 0% to 100%. This score reflects how certain the AI is that the flagged content is actually exempt:
- 90–100% — Very high confidence. The AI strongly believes this is exempt (for example, a clearly formatted Social Security number).
- 70–89% — Moderate confidence. The content likely qualifies, but context matters. Review carefully.
- Below 70% — Lower confidence. The AI detected a possible match but is less certain. Give these flags extra scrutiny.
7 Response Letters
Generating a Draft Response Letter
Once you have reviewed all records and exemption flags for a request, you can generate a draft response letter:
- Open the request and navigate to the Response tab.
- Select Generate Draft. The AI will compose a response letter based on the request details, the records found, and any exemptions that were accepted.
- The draft appears in the editor within a few seconds. It is clearly marked with an "AI Draft" label at the top.
The AI Disclaimer
Every AI-generated letter includes a disclaimer at the top of the editing view:
This label is visible only to staff during the editing process. It is automatically removed from the final version sent to the requester.
Editing the Draft
The draft letter opens in a rich text editor. You can:
- Edit any text, including the greeting, body, and closing.
- Add or remove references to specific records or exemptions.
- Correct statute citations.
- Adjust the tone or add context that the AI may have missed.
- Add fee estimates or payment instructions.
Getting Supervisor Approval
After editing the draft, you submit it for supervisor review:
- Select Submit for Approval at the bottom of the editor.
- The request status changes to Drafted.
- A Reviewer or Admin receives a notification that a response letter is ready for review.
The Approval Workflow
The reviewer opens the response letter and has three options:
- Approve — The letter is approved for release. The status changes to Approved.
- Request Changes — The reviewer adds comments and returns the letter to the staff member for revision. The status returns to In Review.
- Reject — The draft is rejected entirely. The staff member must create a new draft from scratch.
8 Timeline & Messaging
Viewing the Request Timeline
Every request has a Timeline tab that shows a chronological log of everything that has happened:
- When the request was created and by whom.
- Every status change, with timestamps and the staff member who made the change.
- Documents that were attached or removed.
- Exemption flags that were reviewed.
- Messages sent to or received from the requester.
- Internal notes added by staff.
The timeline is read-only—you cannot edit or delete entries. This ensures a complete, tamper-proof record of every action taken on the request.
Adding Notes to the Timeline
To add an internal note (visible only to staff):
- Open the request and go to the Timeline tab.
- Select the Add Note button.
- Type your note in the text field. You can document research findings, record phone conversations with the requester, or leave instructions for colleagues.
- Select Save Note. The note appears in the timeline with your name and a timestamp.
Sending Messages to Requesters
You can send messages to the requester directly from within a request:
- Open the request and go to the Messages tab.
- Select New Message.
- Type your message. Common uses include requesting clarification, providing a status update, or informing the requester about fees.
- Select Send. The message is delivered to the requester's email address and recorded in the timeline.
Internal vs. External Messages
| Feature | Internal Notes | External Messages |
|---|---|---|
| Visible to | Staff members only | Staff and the requester |
| Delivered via | Appears in the timeline only | Sent to the requester's email and appears in the timeline |
| Use for | Research notes, internal coordination, staff-to-staff instructions | Status updates, clarification requests, fee notifications |
9 Fee Tracking
Adding Fee Line Items
Many public records laws allow you to charge fees for search time, copying, and postage. To add fees to a request:
- Open the request and go to the Fees tab.
- Select Add Fee Item.
- Choose the fee type from the dropdown (Search Time, Copying, Postage, Media, or Custom).
- Enter the quantity and per-unit cost. The system calculates the line total automatically.
- Select Save. The fee appears in the fee schedule for this request.
Fee Schedules
Your administrator configures the default fee schedule based on your jurisdiction's rules. Common fee categories include:
| Fee Type | Typical Rate | Basis |
|---|---|---|
| Search Time | Varies by jurisdiction | Per hour or per quarter-hour |
| Copying (paper) | $0.10 – $0.25 per page | Per page |
| Copying (electronic) | Varies | Per file or per request |
| Postage | Actual cost | Per shipment |
| Media (CD/USB) | Actual cost | Per item |
Estimated vs. Actual Fees
When you first add fees to a request, they are marked as Estimated. Estimated fees can be communicated to the requester so they know the approximate cost before you begin work. Once the work is complete and you know the exact amounts, update each line item to Actual. The system tracks both amounts so you have a clear record of what was estimated versus what was charged.
10 Department Access
What Departments Mean for Your View
In CivicRecords AI, every user is assigned to one or more departments (such as Finance, Public Works, or the City Clerk's office). Your department assignment controls which requests you can see and work on.
You Only See Your Department's Requests
When you log in and go to the Requests page, you see only requests that are assigned to your department. This keeps your workspace focused and protects interdepartmental confidentiality. If a request involves records from multiple departments, each department sees only its portion of the work.
Shared Documents
Some record collections are marked as shared by your administrator. Documents in shared collections are visible to all staff members regardless of department. This is common for records like city council minutes, adopted budgets, and published ordinances that are already public.
How Admins See Everything
Users with the Admin role can see requests from all departments. This allows city clerks and records officers who manage the overall program to have visibility across the entire organization, assign requests between departments, and generate city-wide reports.
11 Quick Reference
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| / | Focus the search bar from any page |
| Ctrl + K | Open the command palette (quick navigation) |
| N | Create a new request (from the Requests page) |
| Esc | Close the current dialog or panel |
| ? | Show keyboard shortcuts help overlay |
Status Transition Table (Compact)
| From Status | Can Move To |
|---|---|
| Received | Clarification Needed, Assigned, Closed |
| Clarification Needed | Received, Closed |
| Assigned | Searching, Closed |
| Searching | In Review, Closed |
| In Review | Ready for Release, Searching, Closed |
| Ready for Release | Drafted, Closed |
| Drafted | Approved, In Review, Closed |
| Approved | Fulfilled, In Review |
| Fulfilled | Sent |
| Sent | Closed |
| Closed | — (terminal status) |
Common Tasks Checklist
- Log a new request: Requests → New Request
- Search for records: Search → type your query
- Attach a found record to a request: Search results → Attach to Request
- Review exemption flags: Exemptions → Accept or Reject each flag
- Generate a response letter: Request → Response tab → Generate Draft
- Submit a letter for approval: Response tab → Submit for Approval
- Send a message to a requester: Request → Messages tab → New Message
- Add fees: Request → Fees tab → Add Fee Item
- Check deadlines: Dashboard → Approaching Deadlines panel
Glossary of Terms
- AI Draft — A label indicating that text (such as a summary or response letter) was generated by the CivicRecords AI engine and has not yet been reviewed by a staff member.
- Confidence Score — A percentage (0–100%) indicating how certain the AI is about a search result's relevance or an exemption flag's accuracy. Higher is more certain.
- Department — An organizational unit within your city (such as Finance, Public Works, or City Clerk). Departments control which requests and records are visible to which staff members.
- Exemption — A legal basis under state law for withholding or redacting part of a public record. Common examples include personal privacy, attorney-client privilege, and law enforcement investigation records.
- Exemption Flag — A suggestion from the AI that a specific piece of text in a document may qualify for an exemption. Flags must be reviewed and either accepted or rejected by a staff member.
- Human-in-the-Loop — The principle that the AI assists but never decides. Every exemption determination, every response letter, and every record release requires a human decision.
- PII (Personally Identifiable Information) — Information that can identify a specific person, such as Social Security numbers, driver's license numbers, dates of birth, and home addresses.
- Redaction — The process of permanently removing or obscuring exempt information from a document before releasing it to the public.
- Requester — The person or organization that submitted the public records request.
- RRF (Records Request Form) — A standardized form used to submit a public records request. Some jurisdictions require specific forms; others accept requests in any written format.
- Source Collection — A set of related documents that have been indexed by CivicRecords AI for searching, such as "Council Minutes 2020–2025" or "Building Permits."
- Statutory Deadline — The maximum number of business days your jurisdiction allows for responding to a public records request, as defined by state law. This varies by state.
- Timeline — A chronological, tamper-proof log of all actions taken on a records request, including status changes, messages, notes, and document attachments.
12 Getting Help
Contact Your IT Administrator
For issues related to your account (password resets, role changes, department assignments) or to the system itself (the application is down, pages are not loading, search is not returning results), contact your city's IT administrator. They manage the CivicRecords AI installation and can resolve most issues.
Community Discussions
CivicRecords AI is an open-source project with an active community. If you have questions about how to use a feature, want to suggest an improvement, or want to see how other cities are using the tool, visit the project's GitHub Discussions page:
github.com/CivicSuite/civicrecords-ai/discussions
Reporting Bugs
If you encounter a bug—something that does not work as described in this manual—please report it so it can be fixed. To report a bug:
- Note the exact steps you took before the problem occurred.
- Take a screenshot if possible (press PrtScn on your keyboard).
- Contact your IT administrator with the details. They will determine whether it is a local configuration issue or a bug in the software.
- If it is a software bug, your administrator can file an issue on the project's GitHub Issues page: github.com/CivicSuite/civicrecords-ai/issues
CivicRecords AI — Staff User Manual — Version 1.4.1 — April 2026
An open-source project for transparent, efficient public records management.