Pharma intelligence, connected.
Transforming fragmented regulatory data into navigable intelligence for top pharmaceutical companies. Guidance documents, inspection reports, enforcement actions, and CFRs linked into one queryable graph — with GPT-4o handling extraction, summarization, translation, and conceptual link discovery.
Regulatory intelligence, transformed
BRIEFINGAt Redica, we used GPT-4o and a knowledge graph to turn fragmented pharma regulatory data into navigable intelligence. We built a system that connected guidance documents, inspection reports, enforcement actions, and CFRs. Users could explore relationships between regulatory activity across different agencies and topics.
I worked with the team to use GPT-4o for extracting relationships, summarizing documents, translating non-English content, and surfacing connections that weren’t obvious through keyword search. The system allowed users to chat with any document, automatically generate site risk briefings, and explore complex regulatory topics. This made it much easier to find relevant context and make informed decisions.
62,418
Connected data points across sites, findings, documents, topics, regulators, manufacturers, and enforcement actions.
214,786
Intelligent relationships with provenance tracking and confidence weighting.
273ms
Median query response post-cache optimization. Fast enough to feel interactive.
The problem
SITUATIONRedica had excellent inspection data that was structured, clean, and trusted by top pharma companies. However, their regulatory intelligence product was still in early stages with limited structure and no connections to other data sources.
The challenge was taking a disorganized collection of guidance documents, warning letters, and enforcement actions and making it genuinely useful. Users needed more than just search capability; they needed to navigate relationships and understand context across regulatory activity, inspections, and risk patterns. QA, compliance, and strategy teams needed to spot trends before they became problems.
Customers didn’t want a list of 483s or a PDF dump of new guidance. They needed to answer questions like:
- What sites have been cited for data integrity in the last 12 months?
- What recent guidance touches on that topic?
- Are there patterns across regions, product types, or regulators?
- Which CDMOs are exposed based on those trends?
The individual pieces of data existed, but the meaningful relationships between them didn’t. Our goal was to build those connections systematically at scale.
What we built
OPERATIONSMost systems pile on more data. We focused on surfacing what matters and how it’s connected.
Schema design
We began by identifying the core entities that regulatory teams care about:
- Sites. Manufacturing facilities tracked across regions and authorities.
- Inspection findings. Observations, 483s, and warning letters tied to sites.
- Documents. Guidance, Q&As, draft rules, technical notes.
- Regulatory topics. Data integrity, sterility, CAPA, supply chain, etc.
- Regulatory bodies. FDA, EMA, Health Canada, PMDA, MHRA, ANVISA.
- Manufacturers. Sponsors and CDMOs operating the sites.
- Enforcement actions. Import alerts, consent decrees, debarments.
Each entity included relevant metadata, and every connection had provenance tracking and confidence weighting. We used GPT-4o to identify potential relationships, LangChain to process and chunk lengthy documents, and Neo4j for graph storage and traversal. I collaborated with the engineering team on schema design and worked on the user experience to help people explore these relationships without feeling overwhelmed.
Graph schema (excerpt)
# Cypher-style sketch — illustrative, not full schema (:Site {id, name, country, manufacturer_id}) (:Inspection {id, date, authority, site_id}) (:Finding {id, severity, topic_id, citation}) (:Document {id, type, title, language, authority, published}) (:Topic {id, slug, label}) (:Authority {code, name, region}) (:Manufacturer {id, name, parent_id}) (:Enforcement {id, type, date, severity}) // relationships (Site)-[:OPERATED_BY]->(Manufacturer) (Inspection)-[:AT]->(Site) (Finding)-[:FROM]->(Inspection) (Finding)-[:CONCERNS]->(Topic) (Document)-[:ISSUED_BY]->(Authority) (Document)-[:COVERS]->(Topic) (Document)-[:RELATED_TO {confidence, source}]->(Document) (Enforcement)-[:AGAINST]->(Manufacturer) (Enforcement)-[:CITES]->(Document)
Top connected node types
Average outbound links per node, by source type. Dense interconnections were the goal — sparse graphs surface nothing.
| Edge pattern | Avg links |
|---|---|
| Regulatory Topic → Document | 47.3 |
| Site → Inspection Finding | 31.8 |
| Manufacturer → Enforcement | 24.6 |
| Document → Reg Authority | 19.2 |
| Site → Regulatory Topic (inferred) | 15.7 |
Technology
- GPT-4o. Relationship extraction, summarization, translation.
- LangChain. Document processing and chunking.
- Neo4j. Graph storage and traversal.
- Redis. Caching for traversal-heavy queries.
How we used GPT-4o at Redica
METHODSThe graph provided the underlying structure, while GPT-4o helped us extract meaningful insights from inspections, enforcement actions, and regulatory documents. We focused on reducing noise, minimizing manual work, and helping users find relevant answers more efficiently.
Chat with an inspection or a document
Most of Redica’s users aren’t searching for PDFs. They’re trying to answer questions.
- What was the root cause in this 483?
- How does this compare to similar findings across sites?
- What does current EMA guidance say about this issue?
We added chat to any node in the graph. You could open an inspection or guidance doc and ask a real question. The model used the graph context and source text to give a useful answer, with references. No magic. Just fast access to information that mattered.
Summaries and translation for regulatory docs
A lot of documents in Redica had no summaries. Many weren’t in English. That slowed everything down. We used GPT-4o to fix both.
Every document now has a clear, scoped summary that regulatory teams can scan quickly. If the original language wasn’t English, we translated it. If it lacked metadata, we filled it in with topic and geography. We gave users a reason to open the document instead of skipping it.
AI-assisted link discovery
Regulatory documents often have genuine relationships that aren’t obvious from their titles or surface content.
We used GPT-4o to identify meaningful connections that weren’t apparent through keyword matching alone. For example, an FDA observation about inadequate process control could be linked to EMA guidance on aseptic processing. They covered similar regulatory themes but used different terminology. Traditional search might miss these connections, but the model could identify the conceptual relationships.
These connections appeared as “related guidance” or “related inspections” in the interface, providing users with relevant context without requiring them to know specific search terms.
Auto-generated site risk briefings
Customers spend hours compiling reports before audits or internal reviews. They pull citations manually, summarize findings, and guess what context to include. We built a tool that does most of that for them.
You enter a site or manufacturer. It pulls in relevant inspections, observations, enforcement actions, linked documents, and guidance. Then it assembles a briefing that’s actually readable. Structured. Reviewable. Editable.
It doesn’t replace judgment. It just saves the team from doing the same work over and over.
Sample briefing JSON
{
"site_id": "SITE_8421",
"manufacturer": "Acme Pharma (CDMO)",
"window": "last_24_months",
"summary": "Two FDA inspections, one EU GMP cert.
Recurring theme: data integrity in QC labs.",
"events": [
{ "type": "FDA_483", "date": "2024-03-12",
"topics": ["data_integrity", "audit_trails"],
"severity": "high" },
{ "type": "EMA_NCR", "date": "2023-11-04",
"topics": ["aseptic_processing"],
"severity": "medium" }
],
"linked_guidance": [
"FDA 21 CFR 211 audit trails",
"EMA Annex 1 aseptic processing (2023)"
],
"open_questions": [
"Has CAPA closed observations from 2024-03-12?",
"Are similar topics flagged at sister sites?"
]
}
My role
PERSONNELDefined schema alongside engineering and data science teams.
Mapped product requirements to user-facing features and model evaluation.
Set evaluation metrics: recall of relevant nodes, user task completion, query latency.
Prioritized development based on customer interviews and feedback.
Built feedback loop with SMEs to validate edge accuracy and reduce false positives.
Scoped and reviewed API contracts for frontend graph exploration tooling.
Timeline of linked events
SIGNAL TRACERegulatory teams can now see when new documents signal changes in inspection behavior. The graph makes the lead time visible.
- 127 new FDA warning letters
- 43 major EU guidance updates
- 89 EMA documents published
- 312 inspection findings (sterility)
46 days
Median delta: guidance publication → first matching observation in the field.
Multiplier on observation rate within a 90-day window after publication.
Results
AFTER-ACTIONFaster answers, deeper context, and a measurable lift in SME task completion.
Search vs. graph query
Same task, two retrieval modes. Graph wins on every axis we measured.
| Metric | Keyword search | Graph query |
|---|---|---|
| Avg. relevant docs found | 5.7 | 11.2 |
| Time to first insight | 3m12s | 38s |
| Tasks completed (SMEs) | 54% | 92% |
| # of hops to full context | N/A | 2.3 |
Regulatory complexity analysis
INTELCross-jurisdictional intelligence reveals hidden regulatory patterns and precedent connections.
73% of documents reference multiple jurisdictions — surfacing harmonization signals and ICH alignment patterns that single-authority search would miss.
Counted by inbound + outbound edges per topic node.
| Topic | Links | Tier |
|---|---|---|
| Data integrity | 847 | high |
| CAPA systems | 692 | high |
| Supply chain | 578 | high |
| Sterility | 434 | medium |
| Process validation | 389 | medium |
| Cleaning validation | 356 | medium |
| Labeling | 267 | lower |
| Facilities | 234 | lower |
| Equipment | 198 | lower |
Query and traversal metrics
TELEMETRYFast, deep, and useful — the graph changed how users got work done.
273ms
Post-cache optimization, end-to-end query.
2.1 hops
Median hops to reach full context for a typical question.
High
Top query patterns precomputed and Redis-backed.
# Most-used traversal shapes Site → Topic → Document // 85% Manufacturer → Enforcement → Topic // 70% Topic → Guidance → Regulator // 60%
Frequently asked questions
FAQWe limited default traversal depth for common queries and precomputed relationship paths for the most used node types. Redis handled caching. This kept UX responsive without oversimplifying the graph.
We had regulatory experts from top pharma companies on staff. They reviewed relationships directly. If a link didn’t hold up, it was removed. We didn’t pad counts or chase novelty. The graph had to reflect reality.
We also built feedback tools into the product. Early on, we weighted input from a trusted group of power users. They knew the space and gave direct, actionable feedback. It helped us catch weak connections and keep the signal clean.
Plugging the graph into dynamic monitoring. Trigger alerts when new documents strengthen risk signals for a known site. We already started work on query-driven workflows and narrative explanations on top of the graph engine.
Ship a knowledge graph that reduces time to insight.
I’ll help you define objects and relationships, set evaluation, and use LLMs where it adds value. If you have volume and messy text, we can scope a pilot in roughly 4–8 weeks and measure time to insight and task completion.