Enterprise Technical Pitch & Architecture Demonstration for Content Acquisition, Legal Engineering, and Identity Resolution Teams at Tier-1 Public Records & Risk Solutions Aggregators.
National aggregators have mastered federal and state appellate courts, but county-level municipal and justice courts remain an operational bottleneck: fragmented dockets, brittle web scrapers that fail under perimeter WAF updates, non-standard address strings that frustrate identity clustering, and unmanaged compliance liabilities.
Chrisian has built a purpose-built, direct-source acquisition, 70-column normalization, and human-in-the-loop QA pipeline that converts county court dockets into pristine, entity-clustered feeds ready for immediate ingestion into enterprise identity graphs and legal docket intelligence platforms.
Rather than running fragile, evasive scrapers that trigger Cloudflare anti-bot blocks or violate computer use policies, Chrisian interfaces directly with official county-sanctioned bulk extract channels:
/PublicExtracts/GetExtractData) capturing civil eviction and debt dockets across all 16 Justice of the Peace courts.storage/snapshots/tx_harris_odyssey/YYYY-MM-DD/) and is assigned a cryptographic SHA-256 checksum registered in PostgreSQL alongside byte size and network latency.
Raw court exports are passed through a deterministic normalization engine adhering strictly to Harris County's official file specification (CivilFileSpec.pdf, revised February 24, 2025):
"LAST, FIRST MIDDLE" and "FIRST MIDDLE LAST" strings into discrete first, middle, and last fields.$1,450.00 → 145000), avoiding floating-point rounding errors.EVICTION / CIVIL_JUDGMENT / TAX_LIEN record type, and formats dates to ISO 8601 (YYYY-MM-DD).Across the operational POC's ingestion of 9,600 filings from Harris County JP Courts:
| Pipeline Stage | Straight-Through Processing (STP) | Human Intervention | Governing Mechanism |
|---|---|---|---|
| Ingestion & Landing | 100.0% | 0.0% | Automated cron with SHA-256 integrity validation |
| 30-of-70-Column Normalization | 100.0% | 0.0% | Deterministic grammar parser adhering to CivilFileSpec.pdf |
| Entity Resolution | 6.4% | 93.6% | Jaro-Winkler multi-attribute match score ≥ 0.85 threshold |
| FCRA 7-Year Obsolescence | 100.0% | 0.0% | Automated SQL date boundary rule (15 U.S.C. § 1681c) |
| Option A Dispute Suppression | 100.0% | 0.0% | Immediate automated withholding upon dispute lodgment |
Why Texas JP Courts Require a Calibrated 0.85 Threshold: Texas Justice Courts do not collect Date of Birth (DOB) or SSNs on civil dockets. Straight-through automation must therefore be strictly governed by exact surname matching, first name string distance, and normalized address components to prevent false positive merges.
Identity matching is a separate, optional layer: source acquisition and 70-column normalization do not depend on entity resolution succeeding. If the aggregator's use case only requires normalized, source-verified court records — not person-level identity clustering — that layer can be omitted entirely, which removes the 6.4% / 93.6% split above as a consideration altogether.
To prevent incorrect merges into downstream credit or identity profiles, the system enforces automated exception routing (status = NEEDS_REVIEW). Two conditions are coded and running today; three more describe scenarios the pipeline does not yet detect, included to show where review logic would extend next:
Operational today:
"Miller, John") where address details diverge or lack secondary unit confirmation. Below 0.50, no candidate is considered at all and a new canonical subject is created instead.Not yet detected — proposed extensions:
"Doe, John & Jane Doe d/b/a ABC Enterprises") where party boundaries require legal pleading inspection.P.O. Box) listed as the service address in an in-rem eviction action, requiring cross-referencing with property appraisal district (HCAD) parcel data.
What is operational today: every sub-threshold match is flagged NEEDS_REVIEW and automatically withheld from the Screening API's reportableRecords response — confirmed live, not an API response fabricated for this brief. What is a proposed design, not yet built: a staffed triage console, a service-level commitment, and a dual-control approval workflow for resolving those flags. The mockup below illustrates the intended design for that console; it does not reflect a tool or a review team operating today.
Proposed, for an agreed engagement — none of this is staffed or running today:
NEEDS_REVIEW suppression already keeps the record out of screening results.Chrisian is designing toward two enterprise delivery modalities. Both exist today in a working but simpler form than full production delivery; the gap between what runs now and what's proposed is specific and listed below each one.
Operational today: the portal generates a JSONL extract plus a SHA-256 manifest on request (download, not a scheduled push) — the flat fields are case number, court, county/state, record type, filing date, disposition, judgment amount, the extracted defendant, last-verified timestamp, and the source snapshot ID. Proposed, not yet built: scheduled nightly delivery via S3 bucket drop or SFTP, and the richer nested schema below (disposition detail, plaintiff, FCRA reportability flags, full provenance) — shown to illustrate the target shape, adaptable to the aggregator's own field spec once scoped.
{
"caseNumber": "261100386606",
"court": {
"courtId": "305",
"courtName": "Harris County Justice of the Peace Court Precinct 1, Place 1",
"county": "Harris",
"state": "TX"
},
"docketType": "EVICTION",
"filingDate": "2026-09-01",
"disposition": {
"status": "DEFAULT_JUDGMENT_PLAINTIFF",
"date": "2026-09-21",
"rawText": "Default Judgment for Plaintiff"
},
"financials": {
"claimAmountCents": 145000,
"judgmentAmountCents": 145000,
"currency": "USD"
},
"parties": {
"defendant": {
"fullName": "Marentetti, Deborah",
"firstName": "Deborah",
"middleName": null,
"lastName": "Marentetti",
"addressLine1": "3804 Brandt St",
"addressLine2": "Apt 4",
"city": "Houston",
"state": "TX",
"postalCode": "77006"
},
"plaintiff": {
"name": "Littlepage Properties, LLC",
"address": "1912 W. Main St., Houston, TX 77098"
}
},
"compliance": {
"isFcraReportable": true,
"statutoryCutoffDate": "2033-09-21",
"hasActiveDispute": false
},
"provenance": {
"snapshotSha256": "48a2477ee0868a2f597ea90aefb0997c9afe5d148658e09970a4fb35fcab3c13",
"lastVerifiedAt": "2026-09-14T10:51:48.342Z",
"sourceSystem": "HARRIS_TX_JCIS_EXTRACT"
}
}
Operational today: GET /api/v1/screenings/search?name=...&state=TX is live and callable against the current dataset, returning match confidence scores, last-verified timestamps, and statutory reportability codes, with every query logged for FCRA permissible-purpose audit. Query latency has not yet been benchmarked at production data volumes, so no specific figure is claimed here.
County civil cases are dynamic procedural lifecycles that unfold over multiple weeks. The diagram below illustrates the lifecycle a production change-detection system would need to track; it is a design target, not a feature running today.
Operational today:
case_number; re-ingesting the same case updates the existing row in place rather than creating a duplicate.Not yet built — proposed:
NEW_RECORD, PROCEDURAL_UPDATE, TERMINAL_DISPOSITION, VACATED_OR_DISMISSED) to downstream subscribers, rather than silently overwriting it.Chrisian's canonical schema is designed to serve as a normalized Intermediate Representation (IR). The mapping below is illustrative guidance for two representative target shapes, not a built adapter — a real target mapping would be defined against the aggregator's own schema:
| Chrisian Canonical Field | Enterprise Legal Docket Target (Platform A Standard) | Investigative & Risk Platform Target (Platform B Standard) | Mapping / Transformation Rule |
|---|---|---|---|
| court.courtName | CourtHierarchy.JurisdictionName | CourtIdentifier.CourtName | Mapped to Standard Court Code: TX-HAR-JP-011 |
| docketType ("EVICTION") | CaseType.LitigationTaxonomy | CaseClassification.TypeCode | Mapped to Standard Civil Taxonomy: LT-PROP-EVICT / LT_EVICT |
| defendant.firstName | Subject.EntityName.First | PartyDetails.Defendant[0].First | Parsed string; uppercase sanitized |
| defendant.lastName | Subject.EntityName.Last | PartyDetails.Defendant[0].Last | Primary identity graph entity anchor |
| defendant.addressLine1 | Subject.Address.StreetAddress1 | PartyDetails.Defendant[0].Addr1 | CASS standardized (e.g. "3804 Brandt St") |
| defendant.addressLine2 | Subject.Address.StreetAddress2 | PartyDetails.Defendant[0].Addr2 | Unit / Suite normalized (e.g. "Apt 4") |
| financials.judgmentAmountCents | Judgment.AwardAmount | Financials.JudgmentAmount | Formatted to decimal: cents / 100 (1450.00) |
| provenance.snapshotSha256 | SourceMetadata.RawDocumentHash | Provenance.ChecksumSha256 | Preserved for evidentiary provenance |
Custom Declarative Mappings: For proprietary back-office systems, our pipeline supports declarative JSON Schema / JQ transformation templates to adapt date formats (YYYYMMDD vs ISO 8601), case number formatting, and custom enum dictionaries on demand.