CivicRecords AI

Staff User Manual
Version:  1.4.1 Updated:  April 2026 Audience:  City Clerks, Records Officers, Department Liaisons, City Managers

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 as created_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_KEY to 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.exe on 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 $)
i
Note Your password expires every 90 days. The system will prompt you to change it before it expires.

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
Tip If you need access to features outside your current role, contact your system administrator.

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.

!
Warning AI summaries are generated text and may occasionally contain inaccuracies. Always verify information against the original source document.

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:

  1. Navigate to Requests in the sidebar and select New Request.
  2. Enter the requester's name and contact information (email or mailing address).
  3. Paste or type the full text of the request exactly as received from the requester.
  4. Select the date received. This is the date the request arrived at your office, which starts the statutory clock.
  5. Choose the receiving department from the dropdown. If the request spans multiple departments, select the primary department and note the others in the description.
  6. Select Save. The request is created with a status of Received and is now visible on your Requests list.
Tip Copy and paste the original request text whenever possible. The AI uses this text to search for relevant records, so accuracy matters.

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:

Received Assigned Searching In Review Ready for Release Drafted Approved Fulfilled Sent Closed

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:

  1. From the search results, select the document you want to attach.
  2. Select the Attach to Request button that appears in the document preview.
  3. Choose the request you want to attach the document to from the list of open requests.
  4. 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).
!!
Important Statutory deadlines are calculated automatically, but they are only as accurate as the "date received" you entered when creating the request. Always double-check this date.

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.
!
Why Every Flag Needs Human Review The AI analyzes text patterns and statutory language, but it cannot understand context the way you can. A high confidence score does not mean automatic redaction. Only a trained staff member or attorney can make the final exemption determination. Always review the surrounding context before accepting or rejecting a flag.

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:

  1. Open the request and navigate to the Response tab.
  2. Select Generate Draft. The AI will compose a response letter based on the request details, the records found, and any exemptions that were accepted.
  3. 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:

i
AI Draft Notice This letter was drafted by CivicRecords AI and has not been reviewed by staff. It may contain errors, omit relevant information, or cite incorrect statutes. A staff member must review and approve this letter before it is sent.

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:

  1. Select Submit for Approval at the bottom of the editor.
  2. The request status changes to Drafted.
  3. 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):

  1. Open the request and go to the Timeline tab.
  2. Select the Add Note button.
  3. Type your note in the text field. You can document research findings, record phone conversations with the requester, or leave instructions for colleagues.
  4. 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:

  1. Open the request and go to the Messages tab.
  2. Select New Message.
  3. Type your message. Common uses include requesting clarification, providing a status update, or informing the requester about fees.
  4. 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
Tip Before sending an external message, double-check that you have selected the correct message type. Internal notes cannot be converted to external messages after they are saved, and external messages cannot be unsent.

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:

  1. Open the request and go to the Fees tab.
  2. Select Add Fee Item.
  3. Choose the fee type from the dropdown (Search Time, Copying, Postage, Media, or Custom).
  4. Enter the quantity and per-unit cost. The system calculates the line total automatically.
  5. 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
i
Note Fee rates are set by your administrator and follow your jurisdiction's fee ordinance or statute. If you believe a rate is incorrect, contact your administrator rather than overriding it manually.

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.

i
Note Department-level access controls are part of Phase 2 of CivicRecords AI. If your installation has not yet enabled department filtering, all staff members may see all requests. Contact your administrator for your city's current configuration.

11 Quick Reference

Keyboard Shortcuts

Shortcut Action
/Focus the search bar from any page
Ctrl + KOpen the command palette (quick navigation)
NCreate a new request (from the Requests page)
EscClose the current dialog or panel
?Show keyboard shortcuts help overlay

Status Transition Table (Compact)

From Status Can Move To
ReceivedClarification Needed, Assigned, Closed
Clarification NeededReceived, Closed
AssignedSearching, Closed
SearchingIn Review, Closed
In ReviewReady for Release, Searching, Closed
Ready for ReleaseDrafted, Closed
DraftedApproved, In Review, Closed
ApprovedFulfilled, In Review
FulfilledSent
SentClosed
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:

  1. Note the exact steps you took before the problem occurred.
  2. Take a screenshot if possible (press PrtScn on your keyboard).
  3. Contact your IT administrator with the details. They will determine whether it is a local configuration issue or a bug in the software.
  4. 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
Tip The more detail you provide when reporting an issue, the faster it can be resolved. Include what you were trying to do, what you expected to happen, and what actually happened.

CivicRecords AI — Staff User Manual — Version 1.4.1 — April 2026

An open-source project for transparent, efficient public records management.