The Toolset · Go Syfert

The toolset

Twelve tools, all read-only, all running against this site's own library. Your robot picks them up automatically the moment you connect; you never call them yourself unless you want to. None of it is a black box: under each tool below is a note on how it actually works, because you should not have to trust a research tool that will not explain itself.

First, where the books come from: the case corpus is the Free Law Project's CourtListener bulk data, 10.7 million opinions from every state and federal court, refreshed quarterly and packaged into read-only SQLite databases. On top of it sits a dataset built here: roughly 175 million citation events, each one a specific place where one opinion cites another, with the surrounding sentence, any parenthetical the judge wrote, any words quoted, and any pin cite. Most of the tools below are different views into that map.

search_cases

Full-text search across 10.7 million opinions with boolean operators, phrases, proximity, court and date filters, and authority-weighted ranking. Sort by relevance, date, citations, or what is trending in the courts right now.

How it works: SQLite FTS5 full-text indexes over the entire corpus. Queries run first against a dedicated search machine holding a content-bearing index tuned so cold queries answer in milliseconds; if that machine is down, a fallback index on the web server answers instead, slower but identical. Relevance is authority-weighted: citation counts, citing-court rank, and treatment health all feed the ordering. A one-word query that matches millions of opinions gets told to narrow itself, with suggestions, instead of making you wait ninety seconds for a ranking that cannot finish.

check_citation

The hallucination catcher. Give it a citation and the case name your draft claims, and it tells you whether the cite exists, what case really lives there, and whether the names match. Misses come back with did-you-mean suggestions from the same reporter volume.

How it works: the citation is parsed into volume, reporter, and page; reporter abbreviations are normalized to canonical spellings so "So.2d" and "So. 2d" land on the same index key; then the triple is looked up in an index of every citation in the corpus. The claimed case name is compared to the real one with token-similarity scoring: above 0.75 is a match, 0.4 to 0.75 is partial, below that is flagged as a likely hallucination. On a miss, two more checks run before anything gets condemned: a sweep of the same volume within twenty pages either way (a transposed page number is the most common miscopied cite), and a live query against CourtListener's citation-lookup API, so a case newer than the local quarterly snapshot comes back "real, just recent" instead of "fake."

check_brief

The whole-document audit. Paste a finished draft: every citation is extracted and verified, every claimed case name checked against the real one, every quoted passage compared to what courts have actually quoted from that case. Red-flagged authority comes back with suggested replacements. Attack mode runs the same audit against an opponent's brief and returns ammunition.

How it works: the same engine that powers this site's Brief Check page, run as a library. Every Bluebook-shaped citation is extracted with its position in your text (up to 512KB and 200 citations per pass). The party names your draft asserts near each cite are compared against the real case at that citation, which is exactly the check that would have caught the famous fabricated-cases sanctions. Anything in quotation marks near a cite is matched against the passages other courts have actually quoted from that case and scored by similarity: 95 percent or better is clean, 70 percent reads as paraphrase, below that is flagged a possible misquote. Each resolved case carries its treatment flag, the name of whoever overruled it if it is red, and replacement suggestions.

get_treatment

Is it still good law? Red means overruled or superseded. Yellow means questioned, limited, or distinguished. Green means followed. You also get the citing cases behind each signal, negative first, with context, plus who overruled it (including statutory supersession), still-good replacement authority to cite instead, and early-warning signals when a case is under fire or split the circuits.

How it works: Syfertize, the treatment engine built for this site. Citing sentences from the citation-event map are classified individually: is this court following, distinguishing, criticizing, or overruling, and is the target of that verb THIS case? Grammar matters and is handled: "we overrule Smith" and "Smith, which overruled our earlier rule," are different events, and a naive keyword matcher gets them backwards. Signals are weighted by court hierarchy, aggregated into a histogram per case, and the flag falls out of the histogram. The "overruled by" line requires consensus before naming names: at least two independent citing courts agreeing on the overruler, or a near-unanimous signal. The citing-case list you get back carries the judge's own sentence or parenthetical as context, not a machine summary.

search_quotes

Which case actually says this? Phrase search across 448,000 passages that courts quote from each other, ranked by adoption, each tied to its source case. The companion layer: every famous passage carries a verified / altered / not-in-the-opinion verdict, so misattributed quotes get caught before they reach a filing.

How it works: every distinct passage that two or more opinions quote verbatim was extracted from the citation-event map and phrase-indexed, 448,000 passages in all. Your search runs as a phrase match, not keywords, and results rank by adoption count: how many separate cases quote the passage. Each passage is tied to the opinion it originates in, with the span of years courts have been quoting it. A miss is itself information: language that gets paraphrased rather than quoted should not be attributed as a quotation.

get_propositions

What is this case actually cited for? The distinct legal propositions courts rely on it for, each with its own flag and counts. Cite the case for the right point, not just the right name.

How it works: the parentheticals, quoted passages, and host sentences of everyone who cites the case are clustered into distinct propositions, headnote-style, and each cluster keeps its own treatment histogram, citer counts, and last-ten-years usage. That is why a case can be green on one proposition and dead on another, and why this tool exists. The quote-integrity layer compares each famous passage as commonly quoted against the opinion text actually on file and returns a verdict: verbatim, close, drifted, or absent. "Drifted" means courts have collectively mutated the wording; "absent" means the words are not in the opinion at all, and both happen more often than anyone would like.

get_citing_cases

The citator list: ranked citing cases with judge-written parentheticals you can drop straight into a string cite, verbatim quotes, pin cites, and each citing court's own signal.

How it works: the citator build keeps each case's top-ranked citers, roughly fifty per case, ordered by treatment salience and rank. The parenthetical and quote fields are lifted straight from the citing judge's own text, which is what makes them usable verbatim in a brief, and the signal field is the signal that judge used: "see," "but see," "cf." Because the list is top-ranked rather than exhaustive, the tool tells your robot to run get_treatment for the comprehensive negative sweep rather than concluding a case is clean from this list alone.

find_related_cases

Hand it one good case and get the doctrinal line it belongs to: the frequently co-cited family around the anchor authority.

How it works: co-citation clustering. Cases that opinions persistently cite together form families around an anchor authority; about 1,500 major doctrinal lines are built this way, landmark-grade cases only. If your case is not in a family, the tool says so and points at get_citing_cases instead of padding the answer.

get_case

The full opinion text of any case, cleanly extracted, with metadata, parallel citations, and its treatment flag. Long opinions page gracefully.

How it works: each opinion in a case (majority, concurrence, dissent) is stored separately with its author and type, extracted to clean text, and served through a character-offset window, so a 300-page opinion pages instead of silently truncating. The metadata layer resolves parallel citations and builds the Bluebook citation, including the fiddly parts like Florida DCA district resolution.

search_statutes and get_statute

Statutes and codes for all fifty states plus D.C., the U.S. Code, the C.F.R., the federal rules, and the sentencing guidelines. Search by topic or citation; fetch full section text with cross-references surfaced so new amendments do not hide from you. Every section arrives annotated: the leading cases construing it, with one-sentence squibs, subsection-by-subsection, and federal sections carry a banner when they have been struck down or held unconstitutional.

How it works: fifty-five separate corpora, each its own FTS index, scraped from the official state and federal sources with the scrape date carried in every response. A query ending in a number tries the exact-citation arm first; topic queries run token-matched ranking weighted heavily toward citation and title over body text, strict-AND first with an OR retry so near-misses still surface. The unglamorous secret sauce is citation normalization, hundreds of small rules so the cite a lawyer actually types finds the string the corpus actually stores: "42 USC 1983" gains its section sign, "CPL 440.10" expands to the full New York law name, "TRCP 166a" is rebuilt into "Tex. R. Civ. P. 166a," North Dakota sections get their zero-padding back. Annotations are Notes of Decisions built from the citation-event map: the cases that actually construe each section, with squibs. Coverage limits are printed in the results themselves rather than hidden; Pennsylvania, for example, is consolidated-statutes-only, and the tool says so every time.

find_court

Turns "the Eleventh Circuit" into the court identifier the search filters want. Small tool, saves arguments.

How it works: court names are matched as order-independent token sets with the directional abbreviations expanded, so "S.D. Florida," "Southern District of Florida," and "Florida Southern District" all meet in the middle. Ranking prefers courts that are still deciding cases, determined from the corpus itself rather than the upstream metadata (which wrongly marks all five Florida DCAs defunct), and warns you when your best match is a court whose opinions stopped in 1910.

How it works

  1. Activate free access: enter your email, then open the one-time link it mails you.
  2. You get a private URL, shown exactly once. Save it like a password.
  3. Paste it into your AI chatbot or TUI coding terminal. In Claude that is Settings, then Connectors, then Add custom connector; other MCP-capable assistants work the same way.
Check this first: some firm AI plans lock custom connectors so only an administrator can add one. Open your assistant's settings and make sure you can add a custom connector before you ask for access. If you get stuck, call me and we will sort it out.

Pricing

Free
For now. No card, no trial clock, nothing to cancel. If real pricing ever arrives you will hear it from me first; there is no card on file to charge quietly.

The terms, in plain English

When something does not work, tell me and I will fix it.

What flows through the pipe is case law: opinions, citations, statutes, treatment data. Your searches necessarily pass through this server, but I do not log them: not the citation you checked, not the case name, not your query, not a brief you pasted in. What I keep is operational only: which tool ran, whether it succeeded, and how long it took, so I can keep the lights on and catch abuse. Nobody sees even that but me, Graham W. Syfert, Esq., P.A., and it is not shared with third parties, not sold, and not fed to any advertising machine. Be sensible anyway: do not paste client secrets into a search box, here or anywhere.

Your access URL is a secret. Treat it like one, because anyone holding it can search on your subscription. If it leaks, tell me and I will issue you a fresh one and retire the old one.

The service is provided as-is, with no warranty of any kind, express or implied. The robot checks the citations, but you are still the lawyer, and the filings are still yours. Nothing here is legal advice, and no attorney-client relationship forms by subscribing.

Use of this service constitutes your acknowledgment and acceptance of these terms. You are probably an attorney. I am an attorney. If you have any problems you could just call me at 904-383-7448.