Digesting the Salem City Council Hearing Record for July 27, 2026

Public testimony is often technically available but practically inaccessible. I downloaded the hearing record, removed duplicates, redacted contact information, summarized each submission, classified the testimony, and linked every entry back to its source page.

The Salem City Council convened on July 27, 2026, at 6:00 p.m.  The Agenda and supplemental packets can be obtained at here. Here is a screenshot of the page you will encounter, it is designed to look like a calendar and has entries in blue bars on a given date:

The “helpful” interface requires you to hover and click a given blue bar on a given day.  Here’s what you will see (as of Tuesday, 7/28/26 at 4:50 AM PDT):

I numbered the choices, whose names have had the middle truncated and replaced with an ellipsis so that the entries are not unique, e.g. “07-27-26 Cou…pdf”, and I downloaded all five entries into a directory ~/work/Salem/20260727.  If you hover over the blue characters of any entry, you get a mouse pop-up that distnguishes the entry:

I do not know whether this interface satisfies applicable accessibility requirements, but its dependence on hovering, truncated filenames, and precise mouse movement raises obvious usability and accessibility concerns. A plain-text list with complete filenames would be substantially easier to navigate.

Here is a listing of the files downloaded with their size and page number (along with the shell script that extracted the page count):

jlpoole@jp ~/work/Salem/20260727 $ date; printf '%-60s %12s %8s\n' 'FILE' 'SIZE' 'PAGES'
find . -maxdepth 1 -type f -iname '*.pdf' -print0 |
while IFS= read -r -d '' file; do
    size=$(du -h --apparent-size "$file" | awk '{print $1}')
    pages=$(pdfinfo "$file" 2>/dev/null | awk '/^Pages:/ { print $2 }')

    printf '%-60s %12s %8s\n' \
        "${file#./}" \
        "$size" \
        "${pages:-ERROR}"
done
Tue Jul 28 04:57:54 PDT 2026
FILE                                                                 SIZE    PAGES
07-27-26 Council Written Testimony #2.pdf                             36M      361
07-27-26 Council Additions 1.pdf                                     836K       22
Agenda - FullPackage City Council _Jul27_2026.pdf                     89M      386
07-27-26 Council Written Testimony 1.pdf                              61M      319
Agenda - Agenda City Council _Jul27_2026.pdf                         503K        8
jlpoole@jp ~/work/Salem/20260727 $ 

I then submitted this prompt to OpenAI’s Codex:

~/work/Salem/20260727 contains 5 PDFs relating to the City of Salem hearing on same date. Would you please digest the PDFs providing a table of people who appeared with a colum [sic] of their name & address, if provided, their email, and then a concise summary in 1-3 sentences of the substance of their submission? The table would be relevant to “Additions” which is a powerpoint presentation and “Agenda – Agenda” which is solely the Agenda. The goal here is to provide an executive summary, along with count of testimony submissions, so one can get an overview without having to read 600+ sheets.

The response was:

5:11 AM

Worked for 4m 12s

Done. I created the digest here:

[salem_2026-07-27_testimony_digest.md](/home/jlpoole/work/Salem/20260727/salem_2026-07-27_testimony_digest.md)

Key counts from the digest:

  • 187 public testimony records counted after deduping repeated PDF text and removing staff-only wrapper/reply records.
  • 173 approximate unique submitter identities by name/email pair.
  • Classification: 129 opposed or seriously concerned, 1 directly supportive, 5 focused on/supportive of process motions, 52 questions or mixed process comments.

I treated Agenda - Agenda and 07-27-26 Council Additions 1.pdf as the agenda/context anchors, and did not separately count Agenda - FullPackage... because it appears to duplicate agenda/supporting material and would risk double counting.

5:15 AM

Here are the results (I had Codex remove addresses and emails from the table):

https://salemdata.net/CityOfSalem/salem_2026-07-27_testimony_digest_redacted_v1.html

The resulting digest contains 187 materially distinct testimony records representing approximately 167 submitters. Of those records, 129 opposed or expressed serious concern about the proposal, one directly supported it, five focused on the proposed public-process motions, and 52 consisted of questions or mixed process comments.

This method is not limited to data centers or Salem. Residents, journalists, neighborhood associations, and public officials can use the same approach whenever testimony is buried in large agenda packets. The essential safeguards are preserving the source documents, explaining the methodology, protecting private information, and linking summaries back to the record.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *