Two people run the same scanner on the same morning. One of them ends up with fourteen tickers, a direction next to each, and a reason short enough to read in four seconds. The other ends up with three paragraphs about how the macro backdrop is constructive but selectivity is warranted. The tool did not change between the two runs. The request did.
Scanners that use a language model will happily answer the question you actually asked, and "what looks interesting in tech right now" is a question whose honest answer is an essay. If you want a list, you have to ask for a list, and you have to make the request narrow enough that a list is the only sensible shape for the answer.
The four things a scan request has to pin down
Every request that returns something actionable pins down four things. A constraint, which is the condition a name must satisfy to appear. A universe, which is the set of things allowed to appear at all. A time bound, which says over what window the condition has to have been true. And an output shape, which says what columns you want back.
Drop any one of them and the answer degrades in a predictable way. Drop the constraint and you get a list of whatever is currently famous. Drop the universe and you get names you cannot trade in the account you actually have. Drop the time bound and you get commentary, because "recently" is not a filter and the model will fill the gap with narrative. Drop the output shape and you get prose, because prose is the default shape of an unspecified answer.
Sentinel gives you controls for part of this. Direction, urgency, asset class, and whether the underlying market is open, all sit as filters on the results view rather than as words you have to write. That is worth knowing, because anything the controls already handle is something you should not be spending sentences on. Everything the controls do not cover is on you.

The universe is the real decision
Most people write the constraint first and treat the universe as an afterthought. It is the other way around. The universe determines what can possibly come back, and a badly chosen one poisons every scan you run afterwards.
Start with what you can actually trade. If your broker will not let you buy foreign lines, or will not let you short, or charges you a fee that eats a third of a small position, those names should never reach your screen. It feels wasteful to exclude them. It is not. Every name you cannot act on costs you the thirty seconds it takes to work out that you cannot act on it, and if a scan of forty names contains fifteen of those, you have spent a quarter of your session filtering rather than deciding.
Then set a floor. For most retail accounts the floor that matters is dollar volume, not market cap. A name that trades a few hundred thousand dollars a day can be perfectly fine for a $2,000 position and completely wrong for a $20,000 one. Pick the number that matches your actual position size and write it into the request, because the scanner has no idea how big you are.
The asset class filters in Sentinel run across stocks, crypto, forex, commodities, bonds and ETFs. If you only trade two of those, running the scan across all six is not thoroughness, it is noise you have volunteered for.
A time bound is what stops the answer becoming a story
The single word that produces essays is "recently". It has no meaning, so the model supplies one, and the meaning it supplies changes between runs. That is why the same request gives you a different flavour of answer on Tuesday than it did on Monday, and why you cannot tell whether the market changed or the interpretation did.
Write the window as a number. Over the last five sessions. In the last twenty-four hours. Since the last earnings date. Any of those is checkable, which means a name either qualifies or it does not, which is exactly the property that turns commentary back into a list.
Sentinel has its own version of this in the urgency filter, which offers Immediate, Developing and Watch. Those are three genuinely different shopping trips. Immediate is for something you would act on today and therefore need to be able to check today. Watch is a reading list. Deciding which one you are doing before you scan is most of the discipline, because the failure I see most often is someone finding a Watch-grade idea and trading it at Immediate size.
Ask for the columns you would use to reject the name
Output shape is the part people skip, and it is the cheapest of the four to get right. Name the columns. Five or six, no more.
- Ticker, so you can look it up without parsing a sentence.
- Direction, long or short, stated as one word.
- The trigger, in one clause, not one paragraph. "Gapped above the July high on three times average volume" is a trigger. "Momentum appears to be building" is not.
- The source, meaning what specific thing the claim rests on. A filing, a price series, a headline.
- The level that would prove it wrong, which is where your stop goes.
- The date the condition was met, so you know whether you are early or fourth in line.
The test for whether a column belongs is simple. Would you reject a name on the strength of that column alone? If yes, keep it. If no, it is decoration, and decoration is the crack that prose grows back through. A "narrative context" column will always fill with three sentences of hedged commentary, because that is the only thing that fits in it.
What this looks like on a Monday morning
The version I would actually run with a small account and twenty minutes takes one condition, one asset class, one urgency band, and asks for six columns and no more than fifteen rows. One condition, because two conditions joined by "and also" is how you get four results, three of which are wrong. Fifteen rows, because a cap forces ranking, and an uncapped request has no reason to prioritise.
Then the list gets cut before any of it gets researched. Anything you cannot trade in your account goes. Anything whose invalidation level is so far away that a sensible stop would make the position tiny goes. Anything where the trigger date is more than a few sessions old goes, unless you specifically asked for a slower window. What survives is usually three or four names, which is roughly the number a person with a job can actually look at properly.
The last check is on the tool rather than the list, and it is the one the header row in the screenshot exists for. Before you trust a single line, read the last-scan stamp. A scanner sitting behind a kill switch with auto-run off will keep showing you its last results forever, and those results look identical to fresh ones. A stale list of fourteen tickers is worse than an essay, because an essay never tricks you into thinking it is news.