Extract, Don't Decide: Using LLMs for Structured Signal Extraction | Mycroft

Amruta Naik shows how she used a language model to read news headlines and return typed fields with a confidence score, while leaving every judgment to a human reviewer. The rule she keeps: the model reads, it never decides.

3:05 video3 min readWatch on YouTube

A pipeline that gathers news headlines about a company still has a problem: a raw headline is just text, and a scoring system cannot do anything with it. In this presentation, Amruta Naik describes how she taught a language model to turn headlines into structured signals, under one firm rule. The model reads, and it never decides.

Why raw headlines cannot be scored

Her agent collected headlines about a company, but every one arrived tagged the same generic way, as a news mention. That label is not enough to score anything. Someone has to read each headline and judge what kind of event it describes: a funding round, a layoff, a security breach, an executive change. A headline such as "OpenAI safety employee resigns" is only text until someone decides which category it belongs to.

Doing that judgment by hand across hundreds of headlines does not scale. But handing the judgment entirely to an AI is exactly what the project refuses to do. The question was where to draw the line.

Drawing the line: the model reads, it never decides

The line was drawn carefully. The language model is used to extract structure. It reads the headline, decides what type of signal it is, pulls out any amount or date, and rates its own confidence. Then it stops. It does not score risk, and it does not decide that a signal is true. A human still validates the result before anything counts.

Forcing typed fields with LangChain

To make this reliable, the pipeline uses LangChain to force the model to return clean, typed fields instead of loose text. The schema asks for exact fields rather than a paragraph:

  • the signal type
  • any dollar amount
  • any date
  • a confidence score from 0 to 100
  • one line of reasoning

The prompt also carries a hard instruction: never invent an amount or a date that is not in the headline. If the model is unsure, it must say so with low confidence instead of making something up.

Testing on two real headlines

The video then shows the model reading two real headlines. For the first, "OpenAI safety employee resigns," the model typed the signal as an executive change, gave a confidence of 70, and explained that a resignation is a personnel change. The second was a vague headline about superintelligence. The model typed it as a plain news mention with a confidence of 20, and its reasoning noted that there was no funding, no layoff and no real event.

The gap between 70 and 20 matters. The model did more than classify: it indicated how much to trust each result.

The unvalidated signal rule

Both extracted signals, the confident one and the vague one, came out marked unvalidated. The model read them, typed them, scored its own confidence, and then stopped. It does not get to say they count. A human reviews the confidence, checks the reasoning, and makes the decision. In Naik's phrasing, the AI made the human faster, not absent. That, she says, is the difference between a tool you can trust and one you cannot.

Key takeaways

  • A raw headline cannot be scored until someone converts it into a structured signal.
  • Use the language model to extract structure: signal type, amount, date, confidence and reasoning.
  • Enforce a typed schema so the model returns fields, not free text.
  • Tell the model never to invent an amount or date, and to report low confidence when unsure.
  • A self-reported confidence score tells the reviewer how much to trust each result.
  • Mark every extracted signal as unvalidated until a human has checked it.
  • Let the model do the tedious reading at scale, and keep the judgment with a person.

Try it yourself

If you are putting an LLM into a workflow, ask one question about each step: is it reading or is it deciding? Reading means pulling structure out of messy text, where mistakes are cheap because a human checks them. Deciding means letting the model make the final call unchecked, which is where trust breaks. Pick one step in your own workflow and move any final decision back to a person.

Chapters

  1. 0:00Introduction: Why Raw News Headlines Cannot Score Anything - The Boundary Line: Model Reads, It Never Decides
  2. 0:50Enforcing Schema with LangChain: Typed Fields And Confidence Scores
  3. 1:15Testing Real Headlines: Executive Changes vs Plain News Mentions
  4. 1:45The Unvalidated Signal Rule: Human Validation Before Execution - Key Takeaway: Extract Structure, Don't Hand Over Decisions
Full transcript(auto-generated, with timestamps)

Introduction: Why Raw News Headlines Cannot Score Anything - The Boundary Line: Model Reads, It Never Decides

[0:00]Hello, this is Amuda. So far, my pipeline could gather news headlines about a company, but a raw headline is useless to a scoring system. Open AI safety employee resigns as just text. Is that a layoff and executive change? Nothing important. This week, I taught a language model to read those headlines and turn them into precise structured signals. But with one firm rule, the model reads, it never decides. Here's the gap. My agent collects headlines, but everyone comes in tagged the same generic way. News mentioned, that's not enough to score anything. Somebody has to read each headline and judge what kind of event is this, a funding round, a layoff, a security breach. Doing that by hand across hundreds of headlines doesn't scale. But handing the judgment entirely to an AI is exactly the thing this project refuses to do. So where's the line? So the ask drew the line carefully. Use a language model to extract structure, read the headline, decide what type of signal it is, pull out any amount or date, and rate its own

Enforcing Schema with LangChain: Typed Fields And Confidence Scores

[0:50]Confidence. But stop there. The model does not score risk. It does not decide the signal is true. It extracts and structures a human still validates before anything counts. I wired this with lang chain which forces the model to return clean typed fields instead of loose text. Here's the heart of it. The schema I forced the model to fill not a paragraph of text but exact typed fields. What signal type any dollar amount any date a confidence score from 0 to 100 and one line of reasoning and a

Testing Real Headlines: Executive Changes vs Plain News Mentions

[1:16]Hard instruction in the prompt. Never invent an amount or a date that isn't in the headline. If the model is unsure, it must say so with low confidence, not make something up. And here's the model actually reading two real headlines. First, open AI safety employee resigns. The model typed it as an executive change confidence 70 and explained why a resignation is a personnel change. Second, a vague headline about super intelligence. The model typed it as a plain news mention. Confidence 20 reasoning, no funding, no layoff, no

The Unvalidated Signal Rule: Human Validation Before Execution - Key Takeaway: Extract Structure, Don't Hand Over Decisions

[1:47]Real event. Look at that confidence gap. 70 versus 20. The model didn't just classify, it told me how much to trust it. And this is the line that keeps the whole thing honest. Both of those extracted signals, the confident one and the vague one, came out marked unvalidated. The model read them, typed them, scored its own confidence, and then stopped. It does not get to say they count. A human reviews the confidence, checks the reasoning, and decides the AI made the human faster, not absent. That's the entire difference between a tool you can trust and one you can't. So, what did week three teach? that the right way to use an LLM in a serious pipeline isn't to hand it the decision. It's to let it do the reading. Turn messy text into structured

Data, rate its own confidence, show its reasoning, and then hand all of that to a human who makes the call. The model did the tedious part at scale. The judgment stayed where it belongs. Extract. Don't decide. Your turn. If you're putting an LLM into a workflow, ask one question. Is it reading or is it deciding? Reading. Pulling structure out of messy text is where these models shine and where mistakes are cheap because a human checks them. Deciding, letting the model make the final call unchecked is where trust breaks. Use the LLM for the reading. Keep the deciding for a person. Teaching a model to read the news, extract structure, rate confidence, and leave the decision to a human. Next week, I run this on a model that lives entirely on my own machine. Thank you.

More from Mycroft Financial AI

Humanitarians AI Lyrical Literacy Project