Sep 15, 2026
How Farmanuario Accelerates Multi-Source Drug Surveillance Using the Claude API
At 3 a.m. in Montevideo, while Farmanuario’s editors sleep, drug regulators around the globe get checked. Every new safety notice, label revision, and product-information update from the EMA, the FDA, Spain’s AEMPS, Argentina’s ANMAT, and the health authorities of Uruguay and Paraguay is fetched, fingerprinted, and read. By the time the team arrives, anything that might change a medication’s warnings is waiting in a short queue, with the new text quoted and the source linked.
Farmanuario is Uruguay’s national drug reference compendium. Founded in 1988 by Dr. Luis González Machado, a technical director, it has spent almost four decades giving doctors and pharmacists across LATAM independent, reliable information on medicines, first in print and now through digital platforms, professional databases, and pharmacy system integrations.


Gaspar
Full Stack Developer
8 minutes read
Dr. González wanted that surveillance handled by AI, and he wanted it done safely. He brought in Odev.tech, an AI-first software company that builds on Anthropic’s technology, to design and build it. The system went from first line of code to daily production in about three months.
The Challenge
Farmanuario is the reference a doctor opens before prescribing and a pharmacist opens before dispensing. For that to be safe, its monographs have to say exactly what the regulators say. And regulators say new things every day, across several agency websites that share no format, no feed, and no publishing habits.
Until now, an editor did the checking by hand. Each visit meant opening each site in turn, working out what had appeared since last time, and reading each candidate. The hard part was not the volume but the traps. Some agencies publish an item today and stamp it with a date three weeks old, so anyone relying on dates misses real changes. The editor had to re-read older pages too, every time. Then came the noise: lot recalls, counterfeit alerts, and administrative notices that look like safety news and change nothing clinically. Whatever survived still needed a specialist’s judgment. Does this new precaution, this pregnancy warning, this drug interaction, mean a monograph has to change?
The manual process consumed double-digit hours of editor time every week, and it asked for an expert’s full attention, every week, on work that was mostly searching. In this domain a missed contraindication is not a data-quality problem. It is a patient-safety risk.
“We were doing this well, and we were doing it by hand. Every week an expert went through the regulatory sites one by one, re-reading older pages because agencies sometimes post with earlier dates. It was rigorous, and it was slow. I wanted the same rigor without the hours.”
Dr. Luis González Machado, technical director, Informédica-Farmanuario
The Solution
Odev built the system as two separate parts, because collecting and judging are different jobs. One part is plain code: sweep the sources, notice what changed, keep the evidence. The other part is Claude: read what changed and decide whether it matters. In a medication context that split is not a convenience. Every step that can be deterministic is deterministic, and the models are used only where judgment or messy documents are involved.
A “Collection” Layer
Every day the collection layer sweeps every source, whether they publish an RSS feed, a REST API, or plain HTML, and pulls down anything new. It never asks what date a posting carries. Instead, each item gets a digital fingerprint, a hash of its content, and an item is new if that fingerprint has never been seen before. That single rule defeats backdated uploads. A notice stamped three weeks old still has a fingerprint nobody has on file.
Everything the layer sees is archived. Every version of every page is saved, so the team can go back to any date and see exactly what a regulator had published. And the layer fails loudly. If a site is redesigned and a parser can no longer read it, the run raises an alarm rather than quietly reporting zero results. A system that fails silently is worse than no system at all, because it creates false confidence.
An “Intelligence” Layer
The intelligence layer is a two-stage funnel, like two people working in sequence. The first does a fast pass to clear away the chaff. The second reads carefully and writes up the evidence.
Claude Sonnet 5 does the first pass. Working from a rulebook written for each source, it classifies everything the collection layer found and discards what is clearly irrelevant: administrative notices, lot recalls, counterfeit alerts. When it is unsure, it escalates. A false positive here costs a reviewer a few minutes. A false negative is a missed warning. So the prompts are deliberately biased toward recall.
Claude Opus 5 takes what survives. It opens the original document, HTML or PDF passed directly to the model, looks for an actual change to the warnings, and if it finds one, quotes the new text verbatim. For Spain’s CIMA database, which publishes an official change log but only the current version of each document, the system keeps its own archive of every version it has seen and has Opus 5 compare consecutive versions, reporting only substantive changes. Every model call runs through the Message Batches API with structured outputs, which halves the cost and lets one schema constrain the model’s answer, the database row, and the dashboard.
The funnel is steep. In a month-long validation run over the full backlog, the system ingested tens of thousands of items, sent roughly a third of them to Opus 5 for assessment, read thousands of full documents, and surfaced a couple of hundred genuine warning changes. One of them, a revision to the EMA’s product information for Zadenvi (denosumab), was caught within hours of publication. Each genuine change it surfaced cost a few cents in model spend.
The Most Important Part: It Never Decides on Its Own
None of this decides anything. The AI only proposes. Nothing is discarded silently: every item and every classification is logged. Every proposal that reaches a reviewer carries the verbatim quote of the new text and a link to the original, so the reviewer approves against the source, not against a summary. And every human decision, approve, reject, or note, is stored with who made it and when, as an auditable history. There is no code path that applies a change without a person approving it first.
Those decisions do more than sit in a log. Every rejection, every dismissed flag, and every item a reviewer promotes by hand becomes a feedback event. On the next run, the most recent of them are placed in Sonnet 5’s instructions as real, human-decided examples: items reviewers flagged that the triage should have caught, and items the AI flagged that reviewers threw out. The filter calibrates itself to the team’s judgment without anyone editing a prompt. The loop runs in one direction only. Humans teach the model. The model never revisits a decision a human has made.
The system is also comfortable saying no. After the first CIMA baseline, more than a dozen product documents changed overnight. Opus 5 compared every one against their previous versions and reported that none touched the warnings section. Nothing reached the queue, and the reviewer’s morning stayed short.
“People trust Farmanuario because a person stands behind every line. That does not change because the searching is now done by a model. Claude can read the agencies overnight and show me exactly what changed and where. The decision to change a monograph is still ours, and it should be. What I asked for was a system that makes that decision easier and better documented, not one that makes it for us.”
Dr. Luis González Machado, technical director, Informédica-Farmanuario
The Dashboard
So the team can use all of this without touching code, Odev built a control panel around the daily routine. Each morning an editor opens it and sees the queue: a handful of proposals, each showing the medication, the quoted text, and a link to the source. One click approves or rejects it, and the decision joins the history. If the editor spots something in the plain news list that the AI let through, one click promotes it to the queue: the next cycle reads its full document, and the triage learns from the miss. A second view shows whether each source is healthy or needs attention. A third shows what each run cost, in tokens and in dollars. A full sweep of all regulators, read end to end by Claude, costs less than a cup of coffee, and the monthly model bill came in at the bottom of the original estimate, thanks to the Message Batches API.
“Taking a process that required many hours of technical expertise and reducing it to a few minutes, freeing up technical people for more valuable tasks, is a major step, a win-win for everyone.”
Dr. Luis González Machado, CEO, Informédica-Farmanuario
The Outcome
Today the agents sweep the full set of sources every day, and every source is currently healthy. The editor who used to spend double-digit hours a week hunting across multiple regulatory websites now spends about 15 minutes a day reviewing a filtered queue with the evidence served up front. Backdated uploads are caught by design. A broken site raises an alarm the same morning. And every decision Farmanuario makes about its monographs now has a paper trail.
The current scope is warnings only, but the schema and prompts already cover all nine sections of a monograph, so widening it is a change of prompt and filter rather than a rebuild. Next on the roadmap: comparing each proposal against Farmanuario’s current monograph text so only real differences are proposed, adding agencies such as the WHO, Health Canada, and the MHRA, and writing approved changes straight into the Farmanuario database.
“What we gained is not accuracy. We already had that. What we gained is time, and a record of every decision that anyone can audit.”
Dr. Luis González Machado, technical director, Informédica-Farmanuario
With Claude, Farmanuario:
- Cut regulatory surveillance from double-digit hours of editor time a week to about 15 minutes a day
- Sweeps drug-regulatory sources across Europe, the US, and South America every day, with no source relying on publication dates
- Read tens of thousands of regulatory items in a one-month validation run and surfaced hundreds of genuine warning changes, at a few cents of model spend per change found
- Hands every proposal to a human reviewer with the new text quoted verbatim and the source linked
- Learns from every human correction: rejected and hand-flagged items are fed back to the triage model as real examples on the next run
- Runs on the Message Batches API for a monthly model spend that is a rounding error next to the editor hours it replaced