MedoraOne is a medical-tourism marketplace: clinics, doctors and treatment programs in four countries. A patient choosing a doctor abroad reads the doctor’s profile and judges whether anyone checked it. A content manager wrote each profile by hand in Word, about an hour per doctor. We built an AI agent that finds the doctor in public sources, confirms it is the same person, and writes the profile to 16 editorial rules. By our measurement it writes 25 an hour. In the same 7 months we redesigned the site with the client, screen by screen
A patient judges two things on a medical-tourism site: whether it works like one product, and whether a doctor’s profile was checked. The site fell short on both
The pages were built from parts that no longer matched. Our audit of the code found 37 different shadow styles where the design called for four levels, 238 different spacing combinations, and 129 places where white was typed in directly instead of taken from the theme. The whole codebase had one focus style, so a keyboard user could not see which link or button was selected. None of this is a single visible bug. Together it makes each page look slightly different from the last.
Doctor profiles were written in Word by a content manager, one at a time, about an hour each, and imported one at a time. The same hospital appeared under three spellings. A profile could say “twenty years of experience” with no record of whether that came from the hospital’s page or from a guess. Aggregator sites were used as sources, and they are often out of date about where a doctor works now. One large partner hospital alone has 107 doctors.
Two pieces of work ran side by side in 2026
We went through the patient’s path with the client in short rounds, one screen at a time. For each screen we asked what the patient is deciding there. We kept changing it until the page was consistent, quick to read and easy to move through. The audit showed what was broken. These sessions decided what replaced it.
Colors, type sizes and spacing are defined once, in one file. Every component takes its values from there, so a change to the brand color reaches every page. The redesign was delivered as a working site of 25 pages that needs no framework to run. It was not a design file that someone still had to build.
Every piece of text in the Figma design was compared automatically with the text on the built site. Sizes and positions were measured in a browser, not judged by eye. Before fixing a difference, we checked whether it was a later change the client had asked for, so the check could not undo it. Errors were fixed on whichever side had them, including in the design file.
Before the agent ran, we wrote the rules every profile must follow. Examples: titles and names are written in Latin letters, a doctor’s main specialty comes only from the current hospital’s page, hospitals are always named in English, and a year is never guessed. The client can read each rule and dispute it.
The agent takes a doctor and searches public sources: the hospital’s page, PubMed, ORCID, Google Scholar, congress pages. It confirms each source is the same doctor by comparing name, photo, hospital, city, specialty and education, and gives each match a confidence level. It writes each field straight into the form the rules set. Low-confidence findings go into notes for the editor, not into the profile. Two doctors with the same name are never merged automatically.
After research, a separate pass challenges each claim before it is accepted. In one profile, a publication under a different surname was left out because no source confirmed the name change. In the same profile, an experience figure worked back from a conference date was left out. The reason for each is written into the editor’s notes.
Each profile is laid out as a Word document for the content manager to review. While it builds the document, the software checks eight of the sixteen rules, such as no pronouns in the biography and no “present” in a CV line. Each violation prints a warning with the doctor’s name, and every run ends with a count of warnings.
Nobody retypes a finished profile. A plugin we wrote for the marketplace imports each record with its fields, categories and page addresses already filled in. Photos stay empty on purpose, and the content manager adds them.
The new site is a pilot build of the 25 pages listed. It does not replace the live marketplace. Photos are added by hand on purpose. How many of the profiles are live on the marketplace is the client’s number, not ours
Vitalii is one of the best front-end freelancers that I have worked with. He is always at the top of my list when I need some help with projects. Very knowledgeable, friendly and easy to work with. Very happy, as always.
Honestly the best dev that I use here at Upwork. He is without a doubt my favorite and preferred programmer. His work is clean, logical and on time. Beyond that he usually identifies missing needs and features in projects that I had not considered, which is massively helpful.
Absolutely impressed with his abilities and work ethic. As a programmer myself, I needed to outsource some workload for a personal side project. I found that Vitalii was knowledgeable and very good at what he does. Also he speaks/writes fluent English, which was super helpful. I certainly will be using Vitalii again on future projects. He has earned my trust. He was actually the 2nd person I hired for this job. The first one could not complete this task as needed (even though they had a compelling resume).
Anyway, I can't say enough good things about my experience with Vitalii. If you are looking for someone who can actually do what they say they can, is easy to work with and completes projects on time, I recommend him fully.
Wow, wow, wow. Vitalii was the best freelancer I have used. So dedicated, so detailed and never, never gave me a hard time even when he was right to do so. A real friend and superb coder, professional. I can't recommend him highly enough!
He is always great to work with and always goes the extra mile. Always happy with his work and communication.
Amazing work as always!
A 30-minute call about one process in your business. We will say where automation fits and where it does not