Opens in a new tab

How Keyword Search in Jatheon Handles a Complex Public Records Request

Bojana Krstic

New on Jatheon Cloud

A public records request rarely asks for one thing. It names people, their nicknames and initials, a project, and a date range, and the responsive records sit in email, text messages, WhatsApp chats, and social media comments.

Many agencies run these requests through Microsoft Purview eDiscovery, where a wildcard only works at the end of a word, so *smith or sm*th won’t run, or through Google Vault, where wildcards work only in Gmail and Groups and a query with a date operator is capped at fewer than 10 OR terms. For this reason, one request turns into a string of partial searches, with the results merged by hand, when what the agency needs is one complete, defensible set of responsive records.

The response clock keeps running during that merge. In California, an agency has 10 days to determine if it holds disclosable records, extendable by no more than 14 days. Federal agencies get 20 working days under the FOIA.

Jatheon Cloud handles this kind of request from one search screen: exact phrases, spelling variants, typos, words near each other, and text inside scanned attachments, across email, SMS, WhatsApp, social media, websites, and files, with the search criteria recorded.

Below, we follow a county records officer through one complex request to show how each search type helps and where its limits are.

Who this is for: Public records officers, city clerks, and records managers at state and local agencies, K-12 districts, and public universities who answer open records requests against a variety of communication channels. It also fits IT staff who search on behalf of a clerk’s office.

The Request on the Records Officer’s Desk

The request below is illustrative, but each part of it shows up regularly in open records work. It lands with a county records officer we’ll call Dana:

All emails, text messages, WhatsApp messages, and social media posts or comments between Commissioner James Doherty (also known as “Jim” or “JD”) and anyone at Oakridge Development, or mentioning the Riverside Park lease or #RiversidePark, from Jan. 1, 2025, to the present.

It reads like one question, but it hides several search problems. The table below maps each one to the part of Jatheon Cloud that handles it, and the rest of the article follows Dana through them in order.

Part of the requestWhy it’s hard to searchHow Jatheon Cloud handles it
Jan. 1, 2025, to the presentA default date range quietly cuts results shortCustom From and To dates
“Oakridge,” “Oak Ridge,” and typosSpelling variants and misspellings slip past exact termsFuzzy Search, wildcards, and keyword lists
“Riverside Park lease”Staff rarely write the phrase the same way twiceProximity Search
“Jim,” “JD,” and other namesInitials fall under the three-character minimum for typed termsKeyword lists
#RiversideParkHashtags carry special charactersSpecial characters act as separators
Texts, WhatsApp, and social mediaEach channel usually lives in a different systemChannel tabs and Unified Search
A scanned, signed lease amendmentThe text exists only as an imageOCR on attachments

A First Pass to Size the Request

Dana starts with a quick look at how much material is out there. Simple Search takes a few terms, matches any of them (Contains Any), and searches every field by default. It sits in the Search section alongside Advanced Search, advanced social search, and Unified Search, each a separate permission; Compliance Officers and Account Admins typically hold all four.

The date range matters before anything else. Simple Search defaults to the last 14 days, so a request reaching back to January 2025 needs custom From and To dates, or the first count is missing more than a year and a half of records.

Dana types Oakridge, Riverside, and RiversidePark. Typed terms need at least three characters, and punctuation and special characters such as # and $ act as separators, so the search also catches the #RiversidePark hashtag. Because residents and staff spell the developer’s name a few ways, Dana switches on Fuzzy Search, which is off by default. Words of three to five characters can differ by one letter and longer words by two, so “Oakrige” still matches. Each term expands to at most 50 variants, and fuzzy matches are highlighted in orange so they’re easy to check.

The result count tells Dana how big the job is. It isn’t the final answer, though: Simple Search treats every term as an alternative, so it can’t express “Doherty and Oakridge” or “the lease, but not the park’s event schedule.”

Jatheon keyword search: Simple Search with Fuzzy Search on and the Search Fields menu open

Building One Query Instead of Ten

In Advanced Search, Dana writes the whole request as a single query. Conditions sit in blocks: conditions inside a block are joined by AND, and separate blocks are joined by OR. Each condition has a field (From, Recipients, Subject, Body, Message, Direction, and others), a predicate (Contains All, Contains Any, Contains Phrase), and a value.

The request has two halves, so the query gets two blocks:

  • Block 1, communications with the developer: Doherty’s address in From or Recipients, AND Oakridge in the message.
  • Block 2, the lease itself: the park and the lease mentioned close together, AND no mention of the summer concert series, which shares the park’s name and floods the results.

A few predicates do the precise work. Contains Phrase matches words in the exact order typed, which is also the reliable way to search an email address such as Doherty’s. Negative predicates such as Does Not Contain Phrase handle the exclusion.

Jatheon Advanced Search block combining Contains Phrase on a mailbox address with Contains Any on the message

Wildcards catch word forms: ? replaces one character and * replaces any number, so develop* finds “develop,” “developer,” and “development.” They work in Simple and Advanced Search. When Fuzzy Search is on it takes priority over wildcards, so Dana switches it off for conditions where the wildcard pattern should decide.

Jatheon Advanced Search using the develop* wildcard in the Message field

Proximity Search handles the phrase nobody writes the same way twice. It finds two or more words within a set distance, called the slop, which runs from 1 to 10 intermediate words. A slop of 3 on “park lease” catches “lease for the park” without pulling every message that mentions either word.

Two Jatheon Advanced Search blocks joined by OR, with Proximity Search and Does Not Contain Phrase conditions

Names, Nicknames, and Initials in a Keyword List

The request names Doherty three ways, and a records officer who knows the county will add a few more: “Commissioner Doherty,” the developer’s staff, and the “Oak Ridge” spelling that appears in older correspondence. Typing each one as its own condition gets unwieldy fast, and on a request naming 30 people and projects it stops being practical.

A keyword list holds them all in one place. Dana creates a list in the Keyword Lists section with comma-separated entries, up to 3,000 characters, and then points an Advanced Search condition at it with Contains Keywords from Keyword List (or Does Not Contain Keywords from Keyword List). On the Attachment field, Filename Contains Keywords from Keyword List matches file names, which picks up a document saved as “Oakridge_lease_draft.”

Two behaviors shape how the list is written:

  • Each entry is searched as a phrase: “Oak Ridge” matches those two words together, not a message that has “Oak” and “Ridge” in different sentences.
  • Entries don’t carry the three-character minimum: this is how Dana searches “JD,” which a typed search would reject.

Apostrophes and slashes don’t belong in list entries: An apostrophe acts as a separator, and a slash returns zero results, so “Riverside/Oakridge” needs to become two entries. Dana can also attach the list to a case and reuse it later for redaction terms.

Jatheon keyword list with names, nicknames, and initials for a public records request

Texts, Social Media Comments, and a Scanned Lease

Part of the request lives outside email. Doherty texts the developer from a county phone, and residents argue about the lease under #RiversidePark on the county’s social media pages.

Tabs across the Search section set the channel: Email, Social, File, Website, and Unified, which searches all four at once. On the Email tab, the Search for dropdown switches between Emails, SMS, and WhatsApp. In SMS or WhatsApp mode the fields relabel to Participant (From, To) and Message (Body, Attachment), so the same keyword list and proximity condition carry over to Doherty’s texts. On the Social tab, search reads the content of textual attachments on social media items, not only their names.

Jatheon Search For dropdown with Emails, WhatsApp, and SMS selected

Then there’s the signed lease amendment, which a staff member scanned and emailed as a TIFF image. The Message (Subject, Body, Attachment) field searches file names and the text inside attachments, including files inside ZIP archives. OCR* extracts text from PNG, JPEG, TIFF, JPEG 2000, GIF, WebP, and BMP files and from image-based emails, so the scanned amendment turns up for “Oakridge” the same way a typed memo would.

*A Jatheon administrator needs to turn on OCR under the AI configuration for this to work.

When attachments crowd the results, the Content Type Is and Content Type Is Not predicates filter them by Text, Image, Audio, Video, Application, or Other. Dana uses Content Type Is Not to drop the video clips attached to park event posts.

Jatheon search results highlighting a keyword found in the text of a scanned TIFF attachment

Turning Thousands of Hits Into a Responsive Set

A 20-month request across several channels returns more than anyone can read item by item. Filters on the results page narrow it by Sender, Dates, Message Size, Email Direction, Tags, Attachments, Attachments Number, and Has Notes. Selected filters combine with AND, and several values within one filter combine with OR, so Dana can keep only items from Doherty’s two accounts that also carry attachments.

Subsearch then runs a second term against Senders, Recipients, Subject, Body, or Attachments, within the current results only. A subsearch for “renewal” on Body shows which of the lease messages discuss the renewal terms, without rebuilding the main query or losing the result set.

Jatheon results page filters with a subsearch for renewal on the message body

Completing the Review Without AI

Keyword search, filters, and subsearch get Dana to a set she can read, and from there the review can be done entirely by hand. For many requests, that’s the whole job.

Dana opens each item in the single email view. Fuzzy matches are highlighted in orange, and terms found in scanned attachments are highlighted in the extracted text, so she can see why an item matched before reading it in full. She tags the items that answer the request and adds notes on borderline calls, such as a text that mentions the lease only in passing. Because Tags and Has Notes are also filters on the results page, she can later pull up only the responsive set, or only the items with notes, when a supervisor checks her decisions.

The same keyword list that found Doherty’s nicknames is attached to the case, so it carries over to redaction. When the requester narrows the date range or adds a name, Dana updates the saved search and re-runs it instead of starting over.

The limit is reading time. Keywords show that a message mentions the lease, but deciding whether it discusses the renewal terms still means opening it. On a request that returns a large set, that reading takes up most of the response window.

Jatheon search result tagged Responsive with search terms highlighted in the single email view

Enhancing Keyword Search with AI

To cut that reading time, Dana can add Liya, Jatheon’s AI assistant, on top of the keyword search and ask plain-language questions about the results, such as “Which of these messages discuss the lease renewal terms?”

Liya answers about a whole result set or a single item, takes follow-up questions on its summary, and shows the sources behind each answer. That last part matters when a records officer has to explain how a record was found and why it was selected.

Liya shortens review without replacing the search: the documented keyword query is still the record of how the agency searched, and Dana still makes the final call on each record. Liya is part of the separately licensed AI module and can also be purchased as a single feature.

Liya, Jatheon's AI assistant, answering a question about search results with sources listed

What Dana Can Show When the Response Is Challenged

Without one search screen, a request naming 30 terms across email and staff phones means separate searches in separate systems, a spreadsheet tracking which terms ran where, and a manual merge.

In Jatheon Cloud, Dana’s saved search holds the whole query, and it can be re-run or shared when the requester narrows or widens the scope.

The search also documents itself. An email exported to PDF carries the search criteria used to find it, and every search is recorded in the audit log. If the requester later questions if the response was complete, Dana can show exactly what ran and when.

“Records teams can stop hand-translating vague citizen requests into search criteria, which is the most tedious part of the workflow. Creating the advanced search with all the booleans out of a complex request can take longer than running the search itself.”

Marko Dinic

Marko Dinic

CEO of Jatheon

Records teams we speak with ask for the same things: full-text search across bodies, attachments, and metadata, Boolean logic, and metadata filters in one place.

To cut response times on records requests that span email, texts, chat apps, and social records, with Jatheon’s Support team assisting whenever a request gets complex, get a demo of Jatheon Cloud search or email sales@jatheon.com.

FAQ

Can Jatheon Cloud search for a two-letter term?

Simple and Advanced Search require at least three characters per typed term, to keep results precise. For initials or short codes, add them to a keyword list and search with Contains Keywords from Keyword List, since list entries don’t have that minimum.

Can I search by date range alone?

Not directly: Jatheon Cloud needs at least one condition. Add a Message Size (KB) condition with Larger Than and a value of 0, which matches every message, and set the date range you need.

Can Jatheon Cloud turn a request letter into a search?

Yes. With FOIA request automation, you upload the request as a PDF or TXT file from Advanced Search, and Jatheon Cloud saves generated search criteria under Saved Searches in the FOIA tab for you to review before running. See FOIA request automation in Jatheon Cloud.

Schedule Your Personal Demo

HS trigger