Swapping ingredients is the easy half. A recipe only works if the method changes with them · and if somebody tells you plainly which parts were checked and which were not. Both are below.
A link is fetched and parsed; a photo or PDF is read with OCR; pasted text is used as written. Container measurements are converted to real weights first — “1 bag of spinach” cannot be scaled, so it becomes “200g (1 large bag)” before anything else happens.
Not a lookup table. Butter in a cookie is doing something different from butter in a sauce, and the replacement differs accordingly. Only ingredients that actually violate an active diet are touched — a gluten-free request leaves the milk alone.
This is the part most tools skip. If a swap changes how the dish behaves, the steps change too: chill the dough because coconut oil sets harder, drop the oven 25°F because the batter browns faster, use two pans because the volume no longer fits one. A step that needs no change is copied across verbatim rather than paraphrased.
Linear scaling is done in code so it is exact. The model is only asked about the parts that are judgement: leavening that scales under-proportionally, eggs that must round to whole units, salt that intensifies in a larger batch.
Every adapted recipe is scanned against the diets that can be verified — ingredients and instructions both, because a clean ingredient list means nothing if step four still says to add parmesan.
After every adaptation the result is scanned against the diets where a violation is a property of the ingredient itself. Those checks are deterministic code, not the model grading its own work.
Vegan · Vegetarian · Dairy-Free · Gluten-Free · Nut-Free · Halal · Low-FODMAP. Ingredients AND instructions are both scanned · a clean ingredient list means nothing if step four still says to add parmesan. Low-FODMAP is checked for its fructan and fructose core only.
Keto · Low-Carb · Low-Sodium · High-Protein · High-Fiber. These depend on HOW MUCH, not on which ingredient. Checking them properly needs per-ingredient nutrition tied to quantity, which RecipeFix does not have. A word list could not tell 5g of sugar from 50g, and passing it would imply a guarantee we cannot make. Paleo and Whole30 could be checked the same way as the first group and are not yet.
None are collected, so none are shown and none appear in our structured data. A star rating was fabricated once during development and removed; a permanent test now fails the build if one reappears.
If an adaptation violates a verifiable diet, it is repaired and re-checked. If it still violates, the request FAILS and the credit is returned — rather than showing a recipe that is quietly wrong about something someone may be allergic to.
Some publishers block automated access outright. Rather than list sources we cannot reliably read, RecipeFix says so when a fetch is refused and offers to take the recipe from your own browser instead.
They are computed from standard reference values, not measured. A recipe written in grams is estimated far more precisely than one calling for a drizzle of oil, and the confidence shown reflects that.
Related: Use RecipeFix in Claude · Nutrition analyzer