Inside the diagnosis engine: how AdAstra scores content before it fixes anything
Before AdAstra suggests a single fix, it runs a full diagnosis first. Here is what analyze_content actually measures, in what order, and how a weak score turns into a specific next step.
Drop a piece of content into AdAstra, a draft, a newsletter, a landing page, and the first thing that happens is not a suggestion. It is a diagnosis. That diagnosis is what this article walks through: what it measures, in what order, and how a weak number turns into an exact tool to run next.
What the diagnosis engine does
The diagnosis runs as a single tool, analyze_content, and it is the mandatory first step whenever content is dropped: nothing else runs before it. It starts by segmenting the content into its structural pieces, title, hook, intro, key messages and call-to-action, so later checks can grade the right part of the page rather than the page as a whole. From there it runs a fixed set of themes one after another, not in parallel: each theme finishes, reports its own score and metrics, and streams in immediately, so the diagnosis builds up piece by piece rather than arriving all at once.
If one theme's own work fails, for example the Google Ads lookup behind the commercial theme is temporarily unavailable, that failure does not take the rest of the diagnosis down with it. The engine catches the error, records that single theme as a score of 0 with a bad severity and one metric flagging the failure, and moves on to the next theme.
The three themes
There are exactly three themes, and they always run in the same order: commercial, CTR and conversion, and SEO and LLM-readiness. Each one produces its own 0-to-100 score plus a list of individual metrics, and each metric carries its own severity rating. Where a metric is weak, it also carries a fix: a reference to the exact tool, sometimes with its configuration already filled in, that addresses that specific weakness. That is the point of running a diagnosis at all: a score alone tells you something is wrong, a score paired with a fix tells you which tool to run, and with what settings, to correct it.
Commercial theme and money-gaps
The commercial theme starts from the content's own core claims: it extracts the content's key messages and uses them as seed keywords, then looks those seeds up against real Google Ads keyword data for your target country and language. The keyword ideas that come back are split into two groups: ideas that match the content's own seed keywords, and ideas that do not.
That second group is the money-gaps, the same concept covered in the keyword economics article: keyword opportunities the lookup surfaces near your own topic that your content does not currently cover. The diagnosis reports the count of these gaps directly as a metric, and when there are any, it attaches a fix pointing at generate_keyword_ideas, seeded with the missing keywords themselves as the topic to expand on.
Alongside the gap count, the theme reports the average CPC and the combined monthly search volume across the on-topic keywords it found, each scored on its own 0-to-100 scale (volume scored against a ceiling of roughly 10,000 monthly searches, CPC scored against roughly 2 euros as a strong reference point). The commercial theme's overall score is the average of those two. If either comes in weak, a second fix appears pointing at optimize_content with volume-and-CPC optimization switched on.
That number is illustrative only, not a claim about any real piece of content.
CTR and conversion theme
The second theme looks at whether the content will actually get clicked and, once read, will actually convert. It predicts a click-through-rate score for the title and, separately, for the hook (the opening attention line identified during segmentation), and it scores the content's overall conversion strength. It also checks a simpler thing directly: whether a call-to-action is present at all, treated as an outright pass or fail rather than a graded score.
Each weak metric here points at a specific fix. A weak title CTR routes to optimize_headline. A weak hook, a missing CTA or a weak conversion score all route to optimize_content with conversion optimization switched on. The theme's overall score is the average of the title CTR, the hook CTR, the conversion score, and a flat 100 or 0 depending on whether a CTA was found.
Again, illustrative only, not a real result.
SEO and LLM-readiness theme
The third theme is really two checks folded into one score. The first half, when a URL is available, runs the same on-page SEO checklist covered in its own article and turns the pass ratio into a 0-to-100 score; without a URL, this half reports a neutral default and flags that a URL is required. Alongside it, the theme reports how many question-and-answer pairs it found, purely informational: good if there are any, a mild warning if there are none.
The second half checks AI-readiness directly against the same three GEO categories covered in the llms.txt article: FAQ and answer-readiness, depth and source value, and key takeaways. Each category is a straight compliant or non-compliant read of the content itself. Any category that fails gets a fix pointing at optimize_content, with the LLM optimization style set to match: FAQ Style, In-depth Analysis, or Key Takeaways, whichever category came up short.
The theme's overall score is the average of the SEO checklist pass rate and the share of AI-readiness categories that passed.
Illustrative only, as above, not a real page's result.
Scores, severity and one-click fixes
Every score across all three themes, and the overall score too, is read against the same fixed cutoffs: 70 or above is good, 40 to 69 is a warning, anything below 40 is bad. Presence-based metrics such as the CTA check skip the middle ground entirely: present is good, missing is bad. The overall score is simply the mean of the three theme scores, rounded to a whole number, and it gets its own severity from those same cutoffs. It is a summary, not a fourth measurement: the real signal lives in the theme scores and, underneath those, the individual metrics.
The short version
- analyze_content is the mandatory first step on any dropped content: it segments the content, then runs three themes in sequence, streaming each result as it finishes.
- The three themes, always in this order, are commercial, CTR and conversion, and SEO and LLM-readiness; each returns its own 0-to-100 score plus individual metrics.
- The commercial theme seeds keywords from the content's own key messages, then flags money-gaps: keyword ideas the lookup surfaces that the content does not cover, fixed via generate_keyword_ideas.
- The CTR and conversion theme predicts title and hook CTR, checks for a CTA and scores conversion strength; weak metrics route to optimize_headline or optimize_content.
- The SEO and LLM-readiness theme blends an on-page SEO checklist pass rate with compliance against the FAQ, depth and key-takeaways GEO categories; failures route to optimize_content with the matching style.
- Every score uses the same cutoffs: 70+ is good, 40 to 69 is a warning, below 40 is bad; a theme that fails outright reports a score of 0.
- The overall score is the plain average of the three theme scores; the real value is in the individual weak metrics, each already paired with the exact tool that fixes it.
See what your content is actually missing.
AdAstra diagnoses content across three themes before it ever suggests a fix.
Join the waitlist