Steal a domain expert for your AI from publicly available work
How to turn the books, talks, and blog posts of a domain expert you cannot hire into prompt rules your AI follows by default.
You are building an AI product for a specific domain — copywriting, legal intake, clinical triage, claims adjudication — and you are not the expert. The right hire costs more than the project budget, or does not want the gig, or does not exist as a single person. The fix is not to hire them. The fix is to encode the decision patterns they already published into prompts your model follows by default. Below is the working example: an Instructor-wrapped prompt that turns a simplification expert's rules into a structured output your AI applies every turn. You will leave with the pattern, the code, and the three places this approach quietly fails.
Why the missing expert is the bug
When you ship AI into a domain you do not own, every prompt rewrite is a guess. You do not know which sentence is jargon to a layperson, which legal disclaimer is load-bearing, which medical phrasing is reassuring versus alarming. Your model picks up the average of its training data, which is exactly the wrong baseline for a specialist product. The team ships, the output looks fine to engineers, and the domain user spots three problems in the first sentence.
The class of bug here is not "the model is dumb." It is "no one on the team has encoded what good looks like." A principal domain expert sitting next to you solves it. Without one, the model defaults to generic output and you spend the project patching screenshots one at a time.
The pattern: mine published work, encode the rules
The experts you cannot hire have usually written down most of what makes them good. Books, conference talks, blog posts, course transcripts, podcast appearances. You are not trying to reproduce their voice. You are trying to extract the decision rules they apply when they work — the patterns that show up across every example they ship.
Three steps:
- Pick the expert by output, not credentials. For copywriting, that is a working advertising copywriter with a public body of work, not a marketing professor. For clinical triage, a nurse with a teaching channel, not a journal editor. You want someone whose published examples you can read and copy patterns from.
- Read with a notebook. As you go through their work, list the moves they make repeatedly. "Always lead with the customer's problem in their words." "Break any sentence with two clauses into two sentences." "Never use a word the reader would not say out loud." These are the rules.
- Translate the rules into a structured prompt. Not a vibe. A numbered list of constraints the model applies on every call, returned in a typed schema so you can test it. Frameworks like AIDA (Attention, Interest, Desire, Action) become explicit fields. Style rules become instruction lines.
The output of this exercise is not "a better prompt." It is a library of expert defaults your AI carries into every conversation.
The code
Below is the pattern applied to a simplification expert — someone who is good at rewriting dense prose for a general audience. The rules are extracted from their published work and pinned into the prompt. The output is structured with Instructor so you can evaluate it.
import os
from dotenv import load_dotenv
import google.generativeai as genai
from instructor import from_gemini, Mode
from pydantic import BaseModel
load_dotenv()
# Configure Gemini API
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
# Create Instructor-wrapped client
client = from_gemini(
client=genai.GenerativeModel(
model_name="gemini-2.0-flash-exp",
),
mode=Mode.GEMINI_JSON
)
class SimplifiedContent(BaseModel):
original: str
simplified: str
def generate_simplified_content(prompt: str) -> SimplifiedContent:
# Create enhanced prompt with new requirements
enhanced_prompt = f"""
Role: You're an expert at simplifying complex content.
Task: Simplify the given content for a layman audience.
Instructions:
1. Use clear and complete phrases to prevent any misinterpretation.
2. Avoid using cringe or overused words; choose suitable synonyms instead.
3. Write in simple terms with a casual, conversational style.
4. Break down complex sentences into shorter, easy-to-read ones.
5. Keep the original meaning intact while making the content more accessible.
Content to Simplify:
{prompt}
"""
response = client.chat.completions.create(
response_model=SimplifiedContent,
messages=[{"role": "user", "content": enhanced_prompt}]
)
return response
# Example usage
complex_text = """
His first job as a minister in Washington, D.C. was short-lived because his abolitionist views clashed with those of his congregation.
"""
simplified = generate_simplified_content(complex_text)
print("Original:", simplified.original)
print("\nSimplified:", simplified.simplified)
Run it and you get:
Original: His first job as a minister in Washington, D.C. was short-lived because his abolitionist views clashed with those of his congregation.
Simplified: He didn't stay long at his first church job in Washington, D.C. This was because he strongly believed slavery should end, but the people in his church didn't agree with him.
The lift is not the model. It is the five numbered rules in the prompt. Strip those out and you get a generic rewrite. Keep them in and the model applies a specific expert's playbook on every call.
What you will hit next
Three predictions for the team that runs this pattern:
- Your first encoding will be too literal. Experts work by feel on edge cases — they break their own rules when the situation calls for it. Your prompt will obey the rules everywhere and fail on the cases that do not match the textbook. Plan for a second pass where you add "except when..." clauses based on the failure transcripts.
- The expert you mined will be wrong about 5% of the time, and your AI will be confidently wrong about the same 5%. Encoding a human's judgement also encodes their blind spots. You need an eval set built from a second expert's examples to find where your chosen voice disagrees with the field consensus.
- Your domain prompt will outlive the model. When you swap models in 12 months, the rules will port unchanged and the wrapping will not. Keep the rules in a config file or database, not glued into the system prompt of a specific provider's SDK. The asset is the rule list, not the integration.
The real lesson
You are not going to hire the principal expert. You do not need to. Read their published work the way an apprentice would, write down the moves they make repeatedly, and pin those moves into a structured prompt your AI runs on every call. The output is not "the model got smarter." The output is your AI now has a default opinion in your domain — one you can point at, test, and improve.
The expert you cannot hire already wrote the manual. Your job is to make the model read it on every turn.
If you are building AI in a domain you do not personally own, send me the three best resources from the domain expert you would hire if money were no object, and I will draft the prompt rules that turn their judgment into your AI's defaults. [email protected].