Automatic organic internal linking + one conversion CTA block per article, for every connected site. Builds a lightweight content index, proposes language-isolated relevant link targets, drafts anc...
What this app can do
14 tools registered
Enable Site10 tok
Turn on Internal Linking Engine for one site already known to Sites Registry. Creates the site's settings row in review_first mode by default -- no content is touched until a plan is previewed and explicitly applied.
Update Site Settings5 tok
Update an existing site's Internal Linking Engine settings (mode, limits, CTA targets, exclusions, languages). Only given fields change.
List Sites2 tok
List every site with Internal Linking Engine settings (enabled or not), across every connected site.
Get Site Settings2 tok
Read one site's Internal Linking Engine settings in full.
Index Posts5 tok
Cache metadata for a batch of posts already fetched via wordpress-hub, so the Relevance Engine can score them without re-fetching. Call this once per post before get_relevant_targets/preview_internal_links can use it as a candidate or source.
Get Site Index Status2 tok
One-glance index health for a site: how many posts indexed, by language, and when last indexed.
Get Relevant Targets8 tok
Find the top-N internal-link targets for one already-indexed source post, using deterministic metadata + term-overlap scoring (categories/tags/product_type/title). Language isolation is a hard filter -- a candidate whose lang differs from the source post's lang is never returned, even if it scores highest (the climtec.md RU/RO lesson). Excluded URLs from the site's settings are also dropped before scoring.
Preview Internal Links20 tok
Build a preview linking+CTA plan for a site -- NEVER writes anything. Takes raw content Webbee already fetched via wordpress-hub.get_post_content, and (optionally) anchor/CTA insertions Webbee already drafted via an LLM pass, and validates every proposed insertion's find_exact_substring occurs EXACTLY ONCE in that post's current raw content -- any insertion that doesn't is dropped, never guessed. Returns a plan_id; nothing is applied until apply_internal_links is called after Webbee has actually written each surviving diff via wordpress-hub.replace_post_content_text.
Get Linking Plan2 tok
Read one linking plan in full -- every post's proposed diff, for review before applying.
List Linking Plans2 tok
List linking plans, optionally filtered by site and/or status.
Apply Internal Links15 tok
Record that a pending_review plan's diffs were actually written to the site -- call this ONLY AFTER Webbee has already called wordpress-hub.replace_post_content_text for each surviving insertion in the plan (using expected_state_token per post for safety). This function does not write to any site itself; it only transitions the plan's own status and increments the site's confirmed_applies_count toward its full_auto threshold.
Reject Linking Plan2 tok
Reject a pending_review plan without applying it. Nothing was ever written, so this is purely a status change.
Rollback Linking Run10 tok
Roll back an already-applied plan: returns the original find/replace pairs (the inserted anchor/CTA text as 'find', the pre-insertion original snippet as 'replace') for Webbee to write back via wordpress-hub.replace_post_content_text, restoring each post's content. This function does not write to any site itself -- it only returns the rollback instructions and transitions the plan's own status once Webbee confirms.
List Linking Runs2 tok
List the linking runs dashboard -- one row per plan lifecycle event, newest first.