Skip to content

Opportunities ​

Opportunities organizes a project's growth work into topics, keyword evidence, and a small set of current priorities. Existing recommendations, replies, articles, and their history remain available.

Choose a project ​

The project switcher sits immediately below the Managani logo. Search or add a project there. Only the selected project's navigation is shown. Switching projects preserves the current section when possible. Direct links select their project, and Managani remembers your selection for your account in this browser.

All chats and All feedback always span projects. Switching the sidebar project while viewing either global inbox does not narrow that inbox.

Start with a growth plan ​

Open Opportunities → Topics and choose Check this site. Managani organizes keyword evidence into topics. Unmatched older recommendations stay in Content and History rather than creating empty topics. Add a website and description in project Settings so suggestions have product context. Research runs in the background; existing priorities remain available. Existing projects also receive an initial topic organization automatically, including projects without paid research enabled. A provider failure does not prevent organizing local keywords and recommendations.

Topics contains subjects, target keywords, existing pages, and ranking evidence. Use New topic in the toolbar to create a subject. Select a topic to switch between Keywords, Related content, and Edit. Keywords appears once as a table, including unmeasured targets. Related content lists blog posts, page updates, and social tasks with their current status, including completed work. Edit the topic inline and choose Save changes; saving does not generate content or start paid research. Background updates preserve unsaved edits, and action feedback appears in toast notifications.

Keyword Ranking, immediately before Sources & Settings, shows measured keyword results with dates and source labels. Results default to best position first. Click Position, Clicks, Impressions, or CTR to sort the full result set; click again to reverse. Unknown values stay last, and provider observations remain separate from Search Console averages.

Accepting work counts toward the initial capacity of three priorities. Completion and new discoveries do not automatically refill the plan. Use Content → Choose next priorities when ready for another cycle. Adjust capacity from one to ten in Sources & settings → Growth research.

Bring search evidence ​

DataForSEO research ​

Growth research reuses the encrypted DataForSEO credentials from Search trends, with a separate enable switch and weekly spending limit. Choose a country, language code, and device, then save and check the site. OAuth is not required.

Each check requests up to 100 ranked keywords and 100 keyword suggestions. It can check up to 20 selected queries against live organic results; the default is ten. Checks are cached by UTC week and request settings. Scheduled research runs weekly. The account's current provider pricing is checked before paid requests, with a conservative reservation against the project budget. Uncertain charges retain their reservation and are not retried in that cache period. A failure preserves previous evidence and schedules another check the next day; unknown paid requests remain cached to avoid duplicate charges. Account failures show the HTTP/provider status for diagnosis. Existing Search trends monitoring has its own schedule and charges.

Database positions are sampled observations; device is unspecified. Live results identify country, language, device, retrieval time, and top-ten coverage. Absence from those results means not observed in the top ten, not an invented ranking. Estimated search volume is not your traffic. Keywords cluster only when known intent and overlapping search results support it; sparse evidence remains provisional. AI can label topics and assess product fit, but does not supply ranking numbers.

Google Search Console CSV ​

Use Import GSC CSV. In Google Search Console, open Performance → Search results, set the period and filters, and export Queries. Import that CSV together with the same dates, country, device, search type, and other filters. No Google OAuth connection is used.

Query-only exports contain clicks, impressions, CTR, and average position, but no page mapping. A combined query/page CSV retains its page rows. Page-only exports are rejected. Imports accept up to 10,000 rows and 5 MB. Reimporting identical rows with identical report context does not duplicate history. Older periods stay in history without replacing newer ranking measurements. Each displayed row carries its own reporting context; differently filtered exports must not be treated as directly comparable.

Improve an existing page ​

A page-refresh action offers Existing page URL, Save target, and Accept page refresh. Review the proposed edits, apply them in your existing page editor, and mark the action complete. This path does not create another article or automatically update Ghost. New-content actions continue to use the existing drafting and publishing workflow.

Subsequent CSV imports can compare completed work only when reporting windows, query cohorts, grain, and filters are comparable and contain enough impressions. Missing or mismatched evidence is labeled insufficient. Click changes are observed associations; they are not proof that an edit caused growth or generated conversions.

Set up discovery ​

Open Sources & settings. Configure discovery sources and writing/publishing settings. Public product pages, roadmap, changelog, and the project description ground recommendations.

Competitors ​

Saving a project with a public website and description starts competitor discovery in the background. Existing projects also initialize discovery when Opportunities opens; visiting settings is not required. Discovery uses public product context and web evidence. Each entry includes its name, website, explanation, and supporting links. Add, edit, or remove entries anytime. Suggest more competitors preserves your edits and does not restore removed competitors. You can explicitly add a removed competitor back.

Competitors guide discovery and topic suggestions. Removing one stops future competitor-specific discovery; historical opportunities remain. Competitor changes do not enroll topics in paid search monitoring.

Connect a project DataForSEO account and choose up to five target countries from the searchable dropdown. Search by country name or ISO code, then select a country to add its tag. Remove a tag to stop including that country after saving. Choices come from DataForSEO’s supported countries; no country names need to be guessed. Existing supported single-country settings appear as one tag. Unsupported saved locations must be replaced.

Approve up to 20 topics. Suggest topics adds suggestions directly to the watchlist, one topic per line, preserving existing topics and skipping duplicates. Suggestions fill available space up to the 20-topic limit. Review or remove topics, then click Save trends. Suggestions alone do not save the watchlist or enable monitoring. Enable paid monitoring explicitly. Monitoring checks every topic in every selected country every 24 hours and charges your DataForSEO account per request. The form shows the total checks per scan: 20 topics across five countries means 100 paid checks daily. New monitoring is eligible immediately; editing an enabled watchlist keeps its next scheduled scan. Existing six-hour schedules wait until at least 24 hours after the previous scan, preserving any later scheduled time. Results and failures identify their country; a failed country does not discard other results.

Measurements describe relative Google search interest, not absolute search counts. Rising interest compares complete daily buckets from the same seven-day response: at least twice the baseline and a 20-point increase, with at least three baseline days. Insufficient, stale, and zero-baseline data are labeled separately. Trends alone never authorize publication.

Work an opportunity ​

  • Content → Needs attention: new recommendations, drafts awaiting review, manual page edits, and failures requiring intervention.
  • Content → In progress: queued, generating, and scheduled tasks.
  • History: completed, published, dismissed work, and unscheduled replies below the relevance threshold.

Filter Content by All, Blog, Page, or Social. Blog creates a new article, Page updates existing content, and Social replies to a conversation. Each outcome has its own task and status: a social reply awaiting review does not hide an article already underway. Other recommendations remain available under All. Open a task to inspect its evidence and next action. Opening does not generate or publish anything.

Queue article accepts work for the next eligible generation run. Queue position and next-run information explain what happens next. Generate now is separate and subject to plan limits. Publishing follows the displayed policy: ready for review, Ghost draft, or automatic Ghost publication. Under Automation, choose review or automatic article acceptance. Explicit project choices are preserved. Projects without a saved acceptance choice inherit their enabled Ghost automation. Automatic acceptance includes existing eligible recommendations, and articles discovered during a scheduled run can be generated in that run. Trend-only opportunities and manually created recommendations still require review.

Generate articles on a schedule controls when queued articles are written. After an article is generated controls whether finished articles stay in Managani, become Ghost drafts, or publish live. Ghost delivery does not enable generation or accept existing recommendations. Paused generation has no next scheduled run; queued articles have not started generating.

For an explicitly identified project whose prior automation was interrupted, the existing migration supports --restore-automation --host-id=<host> --site-id=<site>. It reports dry-run counts by default; --apply restores automatic article acceptance only when that project already has an enabled Ghost draft/live strategy. Repeating it reports zero changes. It does not generate or publish during the repair.

Prepare reply makes the suggested reply ready for review. Supported Bluesky targets offer Post reply; other sources offer Copy reply, Open conversation, and Mark replied. Completing a reply does not complete its related article. Only replies actually queued or scheduled for delivery are shown as automatic work. A missing draft cannot be prepared or posted; low-scoring replies remain in History with the reason.

Failures belong to their actions. Retry the failed action without repeating successful work. If Ghost may have created a post but its response was lost, Managani checks for that post before trying again. Retry later when creation is uncertain; another post is not created until the previous result is resolved.

If regeneration replaces a Ghost post and removal of the previous post fails, Managani keeps that cleanup pending. It retries during subsequent publishing, regeneration, or enabled strategy runs, while preserving the current article. If a regenerated article could not be published, Publish creates a new Ghost post from the new text; it never republishes the superseded post.

While an article is generating, its status cannot be changed. Generation holds a one-hour lease. If a generation stops unexpectedly, the lease expires after one hour; you can then change the status or start the generation again.

Existing data ​

The resumable migration scripts/migrations/unify-opportunity-actions.mjs defaults to dry-run; --apply backfills actions, historical reply opportunities, and existing articles. Optional --host-id=... limits the migration. It does not generate content, discover competitors, or publish. Existing records, URLs, and automation settings are preserved.

Automatic Ghost Images ​

In Content Strategy settings, open Publishing and enable Automatic images. Add optional visual instructions and set a monthly image budget (up to $25 per project). Existing projects keep images disabled until you enable them. An OpenAI API key and Ghost connection are required; the existing tenant AI-key settings apply.

Managani generates a photorealistic cover and one inline image for articles below 1,200 words, or two inline images for longer articles. Images use GPT Image 1.5 at medium quality, are uploaded to Ghost, and include alt text. Images are prepared after article quality checks, before the post goes live. The article's publishing mode still determines whether Ghost keeps a draft or publishes it.

Open a post to see image progress and previews. If preparation fails, use Retry images and publish. Completed images are reused; failed uploads reuse saved image data. Each generation gets one automatic retry. Manual retries still count against the budget.

The budget resets by UTC calendar month. Each image request reserves $0.08 to cover output and its bounded prompt; reservations remain counted when billing is uncertain. This is a conservative spending limit, not an exact provider invoice. Budget exhaustion holds the post until the budget is increased or a later month allows a retry.

If Ghost's creation response is lost, Managani looks for the existing draft before continuing. If it cannot establish the outcome, publication stays on hold rather than creating another post. Retry reconciliation later. Unsplash+, stock libraries, and real product screenshot selection are not included in this version.

Article publishing checks ​

If publishing is blocked, open the article in Opportunities. Article checks lists the exact saved warnings, including missing internal links, missing external sources, or links outside the supplied source context. Article checks & tools opens the draft and repeats those warnings. Review Supporting evidence and your Writing & publishing instructions, then choose Regenerate post to generate a new draft and rerun checks. Required link failures disable the drawer’s publishing button; advisory warnings alone do not. Regeneration can incur generation costs and follows the existing confirmation flow.

Images from Razuna ​

Open Settings → Integrations → Razuna image source. Enter an access token and the Razuna URL (default https://app.razuna.com), then add AI instructions and save. For example: “Look in the workspace and find project-related assets in the same-named folder. The Photos folder contains general images you can use.” The AI discovers accessible workspaces and folders and uses these instructions to decide where to search. Team admins manage connections; tokens are encrypted and never returned to the browser. The URL supports public HTTPS Razuna installations and requires Razuna API access. In development, it also supports the matching Razuna dev hostname: g.n.lan connects to r.n.lan, g.d.lan to r.d.lan, and g.lan to r.lan. Production continues to require a public host. Enter a token when changing the URL; a saved token is not silently sent to a different server.

Enable Automatic images in Content Strategy and connect Ghost. Managani uses the project name, article, and saved source instructions to search appropriate folders for each cover and inline image, then inspects candidate previews and metadata. It prefers relevant, readable product screenshots for feature explanations, avoids duplicate assets within an article, and considers recent use. If nothing fits, it uses the existing AI image generation budget. A missing screenshot becomes a conceptual illustration, never an invented product screenshot. Provider errors pause preparation instead of silently switching to generation.

Open an unpublished article and choose Prepare / retry images to review images before publishing. Replace image lets you search or browse Razuna, select an asset, or generate an illustration. Manual choices survive retries; explicitly regenerating the article can replace the image plan. Replacements update only the affected article/image and preserve the open editor. Existing Ghost drafts receive explicit replacements; published articles cannot be changed through this picker.

Images are copied to Ghost, so publication does not depend on a private Razuna URL or an active connection. Razuna assets do not consume image-generation reservations; AI selection still uses your configured OpenAI access. Existing generated-only projects keep their current behavior until a source is connected.

You can store licensed Unsplash+ downloads in Razuna. Include only assets you are entitled to use for the intended publication; putting them in a workspace does not expand their license or permit sharing an individual subscription. There is no direct Unsplash connector in this version. Social sharing uses the blog article preview; native social image attachments are not included.

Existing recommendation recovery ​

Scheduled checks correct unpublished recommendations that explicitly call for updating an existing page but were routed to a new article. The previous draft remains available; its body and identifiers are preserved, and generation/publication is blocked in favor of the page-refresh action. Published work and active generation/image workflows are left alone. Existing failed articles can be retried from Actions after deployment; recovery does not automatically republish them.

Article actions use an article-length brief even when discovered alongside a short reply. The writer and link checks share supplied project/documentation URLs. Empty writer responses and malformed image search plans receive one corrective retry. After three insufficient trend checks for the same term and country, that pair is checked weekly; provider errors retain previous observations and appear separately.

Automatic content and older recommendations ​

Topics describe subjects, target keywords, and existing pages; defining a topic does not schedule recurring blog posts. Use Plan content for this topic when a topic has no related work, or open Related content to continue existing work.

Eligible blog recommendations under automatic article acceptance appear in In progress as Awaiting automatic processing. They need no approval. The next scheduled content run picks them up within its generation limit; the displayed run time is not a promised completion time.

Needs attention explains exceptions, including paused generation, manual requests, trend-only recommendations, sources set to show suggestions, and recommendations disconnected from the active writing strategy. Existing Ghost drafts and articles blocked by publishing or quality errors remain visible for review. Turning on automatic publishing does not retroactively publish those drafts.

Empty topic entries previously created from unmatched recommendations are excluded from Topics and future planning. Their linked posts, recommendations, and history are preserved.

Subjects rather than individual queries ​

Automatically organized Topics contain at least two related keywords and an assessed product fit. The organizer proposes up to 24 subject areas per check from up to 1,200 stored queries, prioritizing stronger evidence. Queries are processed in batches of at most 200 that reuse the same subject titles; existing subjects are retained if any batch fails. Failed grouping retries after 5 minutes, then 15 minutes, 1 hour and 6 hours for repeated failures. Topics shows whether grouping is pending, running, failed or finished without relevant subjects. Subject grouping is an AI assessment, not proof that the keywords share search results. Only measured data appears as rankings.

Single queries, irrelevant suggestions, and malformed query strings do not become automatic topics. All original keyword measurements remain in Keyword Ranking. Manually defined or edited topics remain visible even with one or no keywords, and their keyword scope is protected from automatic regrouping.

Existing projects receive a background organization pass using stored evidence. This migration does not itself trigger extra DataForSEO requests. If organization fails, existing subjects are preserved and the organizer uses the retry schedule above. Previously failed checks waiting on the old daily retry become eligible on the next scheduler run. Obsolete automatic topics leave navigation without deleting related posts, recommendations, or history.