TimeToPost workflow catalog

Social media and marketing workflows

Explore practical workflows for planning, publishing, analysis, and automation. Each entry shows who it is for, what it helps with, where to start, and what to do next.

Some workflows are available in the product today, some are guide-only, and planned entries are labeled plainly. For agent-driven workflows, check account and integration capabilities before any action that creates, schedules, publishes, changes or deletes data.

113 workflows shown

Use-case catalog

Content preparation

Why does X say my post is too long when my document says it is under 280 characters?

For People drafting standard X posts: Review a draft against X's documented weighted-character rules and use the official X composer for final validation.

Guide only

Start here: X weighted-count guide

Guide

  1. Paste the complete draft into a private working document, including spaces, line breaks, hashtags, mentions, emoji, and URLs.
  2. Review X's documented weighted rules, including its treatment of URLs, emoji sequences, and characters outside the single-weight ranges.
  3. Revise text that is likely to exceed the standard-post allowance without relying on the TimeToPost character counter as a weighted validator.
  4. Paste the final draft into the official X composer and use its displayed limit as the final validation before publishing or scheduling.

Try with your AI assistant

Review this X draft locally using the documented categories that can differ from a simple Unicode code-point count: <DRAFT>. Identify URLs, emoji sequences, CJK text, combining sequences, mentions, and hashtags that require attention. Do not claim an exact weighted length or validity. Instruct the user to paste the final draft into the official X composer for final validation. Do not publish or save anything.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid TimeToPost plan can schedule or publish a valid standard post to a connected X account.

Review pricing

Content preparation

How many characters does an emoji use on X, including skin tones and family emoji?

For Creators using emoji in X posts: Review emoji sequences that may differ from a simple code-point count and validate the completed post in the official X composer.

Guide only

Start here: Emoji weight checklist

Guide

  1. Paste the exact line containing each emoji, including skin-tone modifiers and joined family sequences.
  2. Identify complete grapheme or emoji sequences instead of assuming that one visible symbol equals one Unicode code point.
  3. Consult X's documented weighted rules for recognized emoji sequences, but do not use the TimeToPost character counter as a weighted validator.
  4. Check whether any emoji conveys meaning that is absent from the surrounding words and add a short textual gloss when needed.
  5. Paste the completed post into the official X composer for final limit validation.

Try with your AI assistant

Inspect this X text locally: <TEXT>. Identify likely emoji sequences, joined sequences, modifiers, and places where a simple code-point count differs from visible graphemes. Do not claim exact X weights, total length, or validity. Suggest an optional textual gloss where an emoji carries otherwise missing meaning, and require final validation in the official X composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can schedule the validated standard post on X.

Review pricing

Content preparation

Why does my Japanese, Chinese, or Korean X post run out of room before 280 characters?

For CJK and bilingual X authors: Review a CJK or bilingual draft under X's documented weighting categories and shorten it without transliteration.

Guide only

Start here: CJK length worksheet

Guide

  1. Paste the original-language draft without transliterating it.
  2. Identify CJK spans that are treated differently from single-weight Latin characters under X's documented rules.
  3. Remove repetition or optional qualifiers while preserving names, figures, factual meaning, and the original language.
  4. Do not treat the TimeToPost character counter's Unicode code-point total as an X weighted total.
  5. Paste the shortened draft into the official X composer and use its displayed limit for final validation.

Try with your AI assistant

Review this original-language X draft locally: <DRAFT>. Identify CJK spans and suggest a shorter draft that preserves the language, names, figures, and factual claims. Do not report an exact weighted length, excess, remaining count, or validity. Require final validation in the official X composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can schedule the validated language variant on X.

Review pricing

Content preparation

How many characters do my hashtags add to an X post?

For Social editors adding hashtags to X captions: Review how hashtags contribute to an X draft and remove optional tags when the official composer shows an overflow.

Guide only

Start here: Hashtag budget table

Guide

  1. Separate the core caption from the proposed hashtag list.
  2. Review each hashtag as typed, including its number sign and text, while remembering that the complete post is subject to X's weighted rules.
  3. Preserve the complete sentence before deciding which optional tags to remove.
  4. Use the official X composer to test the combined post and remove optional tags if its limit display shows an overflow.
  5. Return one composer-validated post and a separate unused-tag list without claiming an ideal hashtag count.

Try with your AI assistant

Review this caption and hashtag list locally. Caption: <CAPTION>. Hashtags: <HASHTAGS>. Return the caption, individually listed tags, a proposed final post, and an unused-tag list. Do not claim exact X weights, remaining characters, or validity. Require the official X composer for final validation. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can publish the fitting post on X, with any separate reply treated as another X post.

Review pricing

Content preparation

Should I put hashtags in image alt text when they do not fit in the caption?

For Creators preparing accessible image posts: Separate visual description from discovery hashtags.

Guide only

Start here: Alt text cleanup checklist

Guide

  1. Copy the visible caption, proposed alt text, and hashtag list into separate private fields.
  2. Remove hashtag tokens from the alt text while retaining details that describe the image.
  3. Produce cleaned alt text and a separate list of removed tags.
  4. Add only useful tags to the visible caption, then validate the completed post in the official X composer rather than relying on a simple character count.
  5. Keep remaining tags outside the alt field and do not claim that alt text supplies search reach.

Try with your AI assistant

Clean these fields locally. Caption: <CAPTION>. Alt text: <ALT_TEXT>. Return JSON with cleanedAltText, removedHashtags, revisedCaption, and unresolvedTags. Alt text must remain a visual description. Do not claim an exact X weighted length or validity; instruct the user to validate the caption in the official X composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can upload media and publish an X post after the author supplies and confirms the final caption and alt text.

Review pricing

Content preparation

How can I move overflow hashtags into an X reply without breaking the main image caption?

For Creators whose image captions exceed 280 with hashtags: Prepare a valid main image post and a separate tag reply while explaining their different roles.

Guide only

Start here: Two-post caption template

Guide

  1. Provide the image caption and all proposed hashtags.
  2. Keep the complete message in the main post and move only optional overflow tags to a separate reply draft.
  3. Review the main post and reply separately, without treating a simple Unicode code-point count as X weighted validation.
  4. Do not start the reply with an account mention unless the author intentionally wrote one.
  5. Validate both drafts separately in the official X composer and describe the reply as separate distribution without promising identical reach.

Try with your AI assistant

Split this X content locally. Caption: <CAPTION>. Hashtags: <HASHTAGS>. Return JSON with mainPost and reply, each containing text and role, plus a visibilityCaution explaining that the reply is separate from the original post. Do not claim exact weighted lengths or validity. Require official X composer validation for each draft. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can schedule the main post and reply as separate public X posts.

Review pricing

Content preparation

How should I format a multi-word hashtag for screen readers?

For Social editors performing accessibility checks: Convert multi-word phrases into capitalized hashtags with visible word boundaries.

Guide only

Start here: CamelCase hashtag formatter guide

Guide

  1. Input: list each intended hashtag as ordinary words, such as open data day.
  2. Check: remove spaces and capitalize the first letter of each word.
  3. Output: convert the example to #OpenDataDay and show the recovered words.
  4. Check: preserve official capitalization for names and acronyms instead of blindly title-casing them.
  5. Output: count the formatted tag as part of the final X post before use.

Try with your AI assistant

Convert these phrases locally into accessible multi-word hashtags: <PHRASES>. Return JSON with items containing phrase, hashtag, recoveredWords, and notesForNamesOrAcronyms. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can insert the accepted hashtags into a scheduled X draft.

Review pricing

Content preparation

What is the image description limit on X, and does alt text need to stay under 125 characters?

For Editors writing X image descriptions: Use a simple Unicode code-point count as an editing aid for X image descriptions, with final field validation on X.

Available now

Start here: Alt text length checklist

Guide

  1. Paste only the image description, not the visible post caption, into the character counter.
  2. Read the displayed total as a simple Unicode code-point count. It is not a grapheme count and may differ for joined emoji or combining sequences.
  3. Use X's documented 1,000-character maximum as a review target, but do not treat the counter as a guarantee that the platform will accept the text.
  4. Treat 200 to 250 characters only as an optional succinctness review point, not a blocking platform limit.
  5. Retain essential visual information and confirm the final description in X's image-description field.

Open the related free tool

Try with your AI assistant

Review this X image description locally: <ALT_TEXT>. Return JSON with a simple Unicode code-point count, a note that grapheme and platform counting can differ, repeatedDetails, and an optional conciseRevision. Do not enforce a 125-character cap or guarantee acceptance under X's 1,000-character field limit. Require final validation in X's image-description field. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can attach confirmed alt text to uploaded media before an X post is published.

Review pricing

Content preparation

Should X alt text start with photo of or image of?

For People writing descriptions for X images and screenshots: Remove redundant image prefixes while retaining useful media-type information.

Guide only

Start here: Alt text prefix linter guide

Guide

  1. Input: provide the draft description and identify whether the asset is a screenshot, illustration, painting, or photograph.
  2. Check: remove a generic opening such as photo of, image of, or picture of.
  3. Output: retain or add Screenshot of when the fact that it is a screenshot matters.
  4. Check: keep useful form details such as close-up, aerial view, black and white, or illustration.
  5. Output: return a full-sentence description within X's 1,000-character maximum.

Try with your AI assistant

Lint this X alt text locally: <ALT_TEXT>. Asset type: <ASSET_TYPE>. Return JSON with revisedAltText, removedPrefix, retainedTypeLabel, characterCount, and within1000. Preserve Screenshot of when appropriate. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can store the confirmed description with uploaded media for an X draft.

Review pricing

Content preparation

If words are baked into an image, should I copy all of them into the alt text?

For People posting quote graphics, posters, and document images: Place essential image text in the description or summarize it when it exceeds X's field limit.

Guide only

Start here: Image text placement worksheet

Guide

  1. Transcribe the text visible in the image and provide the visible caption separately.
  2. Compare the transcription with the caption to identify essential words not available elsewhere.
  3. Place missing essential text in the image description when it fits, using X's documented field maximum as a review target.
  4. If it does not fit, write a complete summary of the image's point rather than cutting the transcription mid-sentence.
  5. Put any public source URL in the visible post, account for X's documented URL treatment when planning, and validate the completed post in the official X composer.

Try with your AI assistant

Process these fields locally. Image text: <IMAGE_TEXT>. Caption: <CAPTION>. Optional source URL: <SOURCE_URL>. Return JSON with altText, summarized, captionAddition, sourceUrlPresent, and omittedDetails. Mention X's documented fixed URL treatment only as a planning rule. Do not claim an exact weighted post length or validity; require final checks in X's composer and image-description field. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can publish the prepared caption and confirmed image description with the media on X.

Review pricing

Content preparation

Should alt text repeat a quote that is already in the post caption?

For Accessibility editors preparing text-based graphics: Remove unnecessary duplication while preserving visual facts absent from the caption.

Guide only

Start here: Caption and alt comparison guide

Guide

  1. Input: provide the visible caption, current alt text, and any image-only facts.
  2. Check: mark exact or near-exact sentences that appear in both fields.
  3. Output: when the caption already carries the message, keep only useful visual details in the alt text.
  4. Check: when the caption omits essential image text, retain that text in the description instead of deleting it.
  5. Output: verify that the revised description remains objective and within 1,000 characters.

Try with your AI assistant

Compare these fields locally. Caption: <CAPTION>. Alt text: <ALT_TEXT>. Image-only facts: <FACTS>. Return JSON with overlapSpans, captionCoversMessage, revisedAltText, retainedVisualFacts, and characterCount. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can attach the final description to media in an X draft.

Review pricing

Content preparation

Should abbreviations such as Dr or Ave be expanded in X image descriptions?

For Editors describing titles, dates, addresses, and organizations: Expand author-written abbreviations while preserving text printed verbatim in the image.

Guide only

Start here: Alt abbreviation review

Guide

  1. Input: provide the description and list any abbreviations visibly printed in the image.
  2. Check: find shortened titles, street terms, months, and organization names.
  3. Output: expand author-written forms such as Doctor, Avenue, or December where clarity improves.
  4. Check: preserve a printed abbreviation when accurately transcribing the image and capitalize acronyms appropriately.
  5. Output: recount the revised description and keep it within 1,000 characters.

Try with your AI assistant

Review this X image description locally: <ALT_TEXT>. Printed verbatim terms: <PRINTED_TERMS>. Return JSON with revisedAltText, edits containing from, to, and reason, preservedPrintedTerms, characterCount, and within1000. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can retain the confirmed description with an uploaded image for X publishing.

Review pricing

Content preparation

How do I replace subjective phrases such as having fun in image alt text?

For People describing photographs of other people: Replace inferred emotions or actions with observable details.

Guide only

Start here: Objective alt text rewrite guide

Guide

  1. Input: paste the current description and separately list facts known directly by the photographer.
  2. Check: underline judgments or guesses such as having fun, upset, successful, or about to leave.
  3. Output: replace each guess with visible evidence such as smiling, raised hands, a packed suitcase, or objects in frame.
  4. Check: keep known intent only when the author can confirm it rather than inferring it from appearance.
  5. Output: produce full sentences under X's 1,000-character maximum.

Try with your AI assistant

Rewrite this image description locally using observable details: <ALT_TEXT>. Confirmed context: <KNOWN_CONTEXT>. Return JSON with revisedAltText, removedJudgments, observableReplacements, characterCount, and within1000. Do not invent visual details. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can use the confirmed description with media in an X draft.

Review pricing

Content preparation

How do I describe a chart or map on X without copying the entire dataset?

For Researchers, journalists, and analysts: Write findings-focused alt text and keep source details in the visible post.

Guide only

Start here: Chart description template

Guide

  1. Provide the chart type, main takeaway, highest and lowest values, relevant labels, units, and source URL.
  2. Identify the finding a reader should retain rather than listing every plotted point.
  3. Write alt text containing the trend, important extremes, units, and necessary labels.
  4. Omit decorative interface controls and review the description against X's documented image-description maximum.
  5. Add the source URL to the visible post, account for X's documented URL treatment only as a planning rule, and validate the post in the official X composer.

Try with your AI assistant

Create a findings-focused X image description locally. Chart type: <TYPE>. Takeaway: <TAKEAWAY>. Extremes: <EXTREMES>. Labels: <LABELS>. Source URL: <URL>. Return JSON with altText, visiblePostSourceSentence, and omittedNonessentialDetails. Do not claim exact platform character counts or validity. Require final checks in X's composer and image-description field. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can publish the chart and confirmed description to a connected X account when the required connection and scopes are available. Analytics depend on the connected account and granted scopes.

Review pricing

Content preparation

How should I rewrite an X post that starts with an @mention?

For X users mentioning another account: Move a leading mention after the opening point so the post is not treated like a conversation opener.

Guide only

Start here: Leading mention rewrite

Guide

  1. Paste the complete draft exactly as it would appear on X.
  2. Determine whether the first visible characters form an @username mention.
  3. Rewrite the opening so the main point comes first and the mention appears naturally later.
  4. Prepare a quote-post comment as an alternative when the goal is to discuss another post.
  5. Validate each selected option in the official X composer rather than using a simple code-point count as a weighted validator.

Try with your AI assistant

Rewrite this X draft locally: <DRAFT>. Return JSON with startsWithMention, reorderedPost, and quoteCommentAlternative. Preserve factual meaning. Do not claim exact weighted lengths or validity; require final validation in the official X composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can schedule the selected standard post or publish it to a connected X account.

Review pricing

Content preparation

Do the account names automatically added to an X reply count toward 280?

For People composing X replies and developers previewing them: Distinguish auto-populated reply mentions from manually typed text and use the official X composer for final validation.

Guide only

Start here: Reply count worksheet

Guide

  1. Provide the reply text and separately list the handles that X added automatically.
  2. Identify which leading reply mentions are interface-provided and which mentions were manually typed into the reply body.
  3. Apply X's documented exception only to genuinely auto-populated reply mentions.
  4. Review URLs, emoji, CJK text, and manually typed mentions as categories that can affect weighted counting.
  5. Use the official X composer to confirm whether the completed reply fits before publishing.

Try with your AI assistant

Review this X reply locally. Visible text: <TEXT>. Auto-populated handles: <HANDLES>. Return JSON with countedTextForReview, suppliedAutomaticMentions, manualMentions, and itemsRequiringComposerValidation. Do not claim an exact weighted length, remaining count, or validity. Require final validation in the official X composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can publish a confirmed reply as a public X post.

Review pricing

Content preparation

Can I schedule an X post longer than 280 characters, and which mentions get notified?

For Authors preparing longer X posts: Classify a long post, check first-280 mention placement, and create standard-post parts when scheduling the long form is unsuitable.

Guide only

Start here: Long post readiness checklist

Guide

  1. Paste the complete draft and state whether replies are limited to mentioned accounts.
  2. Treat text beyond the standard-post allowance as potentially requiring an X longer-post feature, and verify current eligibility and limits in the authenticated X interface.
  3. Review which mentions appear near the beginning separately from those appearing later when notification or reply settings matter.
  4. If longer-post scheduling is unavailable, divide the material into coherent standard-post drafts without using the TimeToPost character counter as a weighted validator.
  5. Validate every part in the official X composer and verify X's current longer-post and scheduling restrictions before proceeding.

Try with your AI assistant

Assess this X draft locally: <DRAFT>. Reply setting: <SETTING>. Return JSON with likelyFormClass, mentionsNearBeginning, mentionsLater, issuesToVerify, and optionalStandardPostParts. Do not assert a current longer-post maximum, scheduling support, exact weighted lengths, or validity. Require verification in the authenticated X interface and official composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can schedule the resulting standard X posts. It does not remove X's own restrictions on longer-post drafting or scheduling.

Review pricing

Content preparation

How can I turn an article into X posts that each fit the standard limit?

For Content and SEO writers with an existing article: Create source-grounded X drafts with one claim per post and a final link-back.

Available now

Start here: Article-to-X drafting template

Guide

  1. Provide the article text or a public source URL and the desired number of posts.
  2. Extract only claims supported by the supplied source and remove article transitions that do not work as standalone posts.
  3. Draft an opening post around one specific claim without a leading mention or URL.
  4. Give each middle post one supported point and place the article URL in the final post, accounting for X's documented URL treatment only as a planning rule.
  5. Label unsupported claims for removal and validate every completed draft in the official X composer.

Try with your AI assistant

First call whoami, then get_capabilities. Show the authenticated organization and require explicit confirmation that <ORGANIZATION> is correct. Only if create_posts_from_source is reported as available and supports the supplied source type, use it to create X drafts from <PUBLIC_SOURCE_URL_OR_SUPPORTED_SOURCE>. Do not approve, schedule, publish, or autosend. Then use get_source_status if that capability is available. Return JSON with organization, sourceStatus, drafts containing text and sourceClaim, unsupportedClaims, and composerValidationRequired. Do not claim exact weighted lengths or validity; require final validation in the official X composer.

Tools: whoami, get_capabilities, create_posts_from_source, get_source_status

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: TimeToPost paid plans can retain generated drafts and schedule approved standard posts to X, subject to plan limits.

Review pricing

Content preparation

How do I turn a set of X posts into a clean blog draft?

For Writers repurposing their own X posts: Remove thread-only language and organize the remaining ideas into a search-ready article brief.

Guide only

Start here: Posts-to-article brief

Guide

  1. Paste the posts in order and mark which hashtags are topical rather than reach-only.
  2. Remove thread markers, requests to repost, leading account mentions, and reach-only hashtags.
  3. Group the remaining supported claims under descriptive H2 headings without adding unsupported facts.
  4. Draft a concise title and meta description, treating 60 and 155 characters as editing guidelines rather than hard Google limits.
  5. Return the cleaned outline, removed-text log, title count, and meta-description count for human editorial review.

Try with your AI assistant

Work locally from <ORDERED_X_POSTS>. Remove thread-only language, group supported claims into a blog outline, and draft a concise title and meta description. Treat 60 title characters and 155 meta-description characters as editorial guidelines, not hard Google rules or ranking guarantees. Return JSON with title, titleCharacters, metaDescription, metaCharacters, sections, removedItems, and unsupportedClaims. Do not call AutoSEO, save, approve, publish, schedule, or autosend.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth can generate AutoSEO article drafts from a configured site's supported topic workflow. It does not import an arbitrary pasted X thread as the article source; a human can paste and edit the locally prepared outline.

Review pricing

Content preparation

Why can two visually identical X drafts produce different technical character counts?

For Developers and editors copying text between applications: Compare raw and NFC-normalized Unicode text as a diagnostic, then validate the selected draft in the official X composer.

Guide only

Start here: Unicode normalization check

Guide

  1. Paste the exact draft copied from the source application.
  2. Compare its raw Unicode sequence with an NFC-normalized version, especially around accented letters and combining marks.
  3. List visually similar spans whose underlying code points change during normalization.
  4. Do not treat the TimeToPost character counter's code-point count as X weighted validation or assume that code points equal graphemes.
  5. Review the selected text in the official X composer for final limit validation before use.

Try with your AI assistant

Analyze this draft locally for Unicode normalization: <DRAFT>. Return JSON with normalizedText, normalizationChanges, rawCodePointCount, and normalizedCodePointCount. Explain that code-point counts are not grapheme counts or X weighted lengths. Do not claim remaining space or validity; require final validation in the official X composer. Do not save or publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid plan can schedule the normalized, validated standard post to X.

Review pricing

Scheduling

How do I schedule for a named timezone without changing my computer clock?

For Remote social media operators: Convert a civil time in an event timezone into the operator's local time and UTC.

Guide only

Start here: Timezone posting planner

Guide

  1. Record the event datetime and IANA zone, for example 2026-11-03 20:00 in America/New_York.
  2. Record the operator's IANA zone, for example Europe/Berlin.
  3. Use a date-aware timezone converter backed by current IANA timezone data to obtain the operator-local datetime and UTC instant, including the calendar date.
  4. Verify the dated offsets and abbreviations independently before entering the value into a device-clock scheduler.

Try with your AI assistant

Provide a manual conversion checklist for {event_datetime}, {event_iana_zone}, and {operator_iana_zone}. Do not calculate or claim an exact conversion unless a date-aware IANA timezone service is actually available. Require independent verification of the UTC instant, local dates, offsets, and abbreviations.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid account can schedule the confirmed UTC instant as an X post, subject to its plan limits.

Review pricing

Scheduling

How do I schedule a discussion post one hour before an event in Eastern time?

For Live event moderators: Subtract a lead interval from an event time anchored to a named timezone.

Guide only

Start here: Lead-time worksheet

Guide

  1. Write the event time with its zone, for example 2026-11-10 21:00 America/New_York.
  2. Subtract the required lead, for example 60 minutes, before doing any zone conversion.
  3. Convert the resulting 20:00 Eastern time to UTC and the operator's local zone.
  4. Check the event date and post date separately before entering the post time.

Try with your AI assistant

Provide a checklist for subtracting {lead_minutes} minutes from {event_datetime} in {event_iana_zone}, then verifying the result in {operator_iana_zone} with a date-aware IANA timezone converter. Do not claim an exact converted timestamp without such a service. Require checks of both event and posting dates.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: After human confirmation, the resulting UTC instant can be used to schedule one X post.

Review pricing

Scheduling

How do I schedule for the account's previous calendar date while traveling?

For Traveling account managers: Resolve a desired account-local date when the operator is already on another calendar day.

Guide only

Start here: Dual-date conversion card

Guide

  1. Enter the desired account-local value, for example 2026-10-21 18:00 America/Chicago.
  2. Enter the current operator zone, for example Asia/Tokyo.
  3. Record the UTC result and the operator-local value, which may be 2026-10-22.
  4. Check that the account-facing date remains October 21 before saving the slot.

Try with your AI assistant

Provide a checklist for converting {account_local_datetime} in {account_iana_zone} to {operator_iana_zone} using a date-aware IANA timezone converter. Require verification of the UTC instant and both calendar dates. Do not claim an exact result or that a specific scheduler ignores the device timezone.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A confirmed UTC value can be scheduled on X without relying on the operator's device date.

Review pricing

Scheduling

How do I convert an audience activity chart when its timezone differs from my scheduler?

For Social media managers using activity charts: Convert a chart hour into the separate timezone used by a scheduling control.

Guide only

Start here: Two-clock conversion worksheet

Guide

  1. Identify the chart zone from its label, for example America/Los_Angeles.
  2. Record the chart date and peak hour, for example 2026-10-06 at 09:00.
  3. Convert that instant into the scheduler zone, for example Australia/Sydney.
  4. Check for a next-day result before entering the converted time; do not treat the chart hour as a new recommendation.

Try with your AI assistant

Provide a checklist for interpreting {chart_date} {chart_hour} in {chart_iana_zone} and converting that instant to {scheduler_iana_zone} with a date-aware IANA timezone converter. Do not invent a best time or claim an exact conversion without such a service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: If account analytics are connected and the required scopes are available, a paid operator can compare account data and separately schedule a selected X time after verification.

Review pricing

Scheduling

How do I keep weekly posts anchored to US Eastern when daylight saving dates differ?

For Operators managing international event seasons: Build a weekly civil-time schedule and identify weeks when the cross-zone offset changes.

Guide only

Start here: DST season table

Guide

  1. Choose the anchor zone and civil time, for example Thursday 20:00 America/New_York.
  2. List each event date for the season rather than adding fixed seven-day durations.
  3. Convert every dated occurrence to the operator zone and UTC.
  4. Flag any row whose zone gap differs from the prior week and manually verify that row.

Try with your AI assistant

Provide a manual procedure for listing each dated occurrence of {weekday} at {civil_time} in {anchor_iana_zone} from {start_date}, then converting every row separately with a date-aware IANA timezone service. Require verification of changed offsets and abbreviations. Do not generate exact timestamps without that service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Confirmed occurrences can be added individually to an X schedule so each UTC instant is explicit.

Review pricing

Scheduling

How do I verify both the date and time when scheduling between Canada and Australia?

For Operators scheduling across large UTC offsets: Display one instant as two full local dates and times.

Guide only

Start here: Dual-date card

Guide

  1. Enter the source value, for example 2026-10-21 21:00 America/Toronto.
  2. Convert it to Australia/Sydney and UTC.
  3. Write both results with weekday, date, time, and abbreviation rather than only clock hours.
  4. Check whether the destination is on October 22 before copying the schedule.

Try with your AI assistant

Provide a checklist for showing {source_datetime} in {source_iana_zone} and {destination_iana_zone} with a date-aware IANA timezone converter. Require full weekday, date, time, abbreviation, and UTC verification. Do not claim exact values without that service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: The verified UTC instant can be scheduled as an X post after the operator confirms both date labels.

Review pricing

Scheduling

Is this London event time GMT or BST on the selected date?

For Creators publishing international event announcements: Determine whether a London-local datetime uses GMT or BST.

Guide only

Start here: Timezone abbreviation check

Guide

  1. Enter the London-local date and time, for example 2026-07-15 at 19:00.
  2. Resolve it with Europe/London rather than a fixed GMT offset.
  3. Use the returned abbreviation, which is BST for this example, and record 18:00 UTC.
  4. Check any announcement that says GMT and replace that label when it conflicts with the dated zone result.

Try with your AI assistant

Explain how to resolve {local_datetime} with Europe/London using a date-aware IANA timezone source and compare it with {typed_label}. Do not calculate or assert the abbreviation, offset, or UTC instant unless such a service is available. Require independent verification before correcting an announcement.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A corrected announcement can be scheduled on X at the confirmed UTC instant.

Review pricing

Scheduling

How do I write one event announcement for US, European, and Japanese viewers?

For Global creators and event hosts: Render one confirmed instant in five audience-facing timezones.

Guide only

Start here: Five-zone announcement line

Guide

  1. Start from one UTC instant, for example 2026-11-07T17:00:00Z.
  2. Convert it to US Pacific, US Eastern, UTC, Central European, and Japan time.
  3. Include the correct dated abbreviations and mark Japan as the next date when applicable.
  4. Check every displayed time still maps back to the same UTC instant before publishing.

Try with your AI assistant

Provide a checklist for converting {utc_iso} into America/Los_Angeles, America/New_York, UTC, Europe/Berlin, and Asia/Tokyo with a date-aware IANA timezone service. Require full dates and verification that every displayed value maps to the same instant. Do not invent exact local values without that service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: The completed line can be scheduled as an X post on a paid plan.

Review pricing

Scheduling

How can I detect that my browser timezone differs from the timezone I intend to schedule in?

For Users of browser-based schedulers: Compare the intended timezone with the device-detected timezone before saving.

Guide only

Start here: Timezone preflight checklist

Guide

  1. Record the intended zone, for example America/New_York.
  2. Read the browser or operating-system zone, for example America/Los_Angeles.
  3. Convert the same civil time under both zones and compare the UTC results.
  4. If the results differ, select the intended instant explicitly rather than saving the unverified browser interpretation.

Try with your AI assistant

Provide a preflight checklist comparing {civil_datetime} in {intended_iana_zone} and {detected_iana_zone}. Explain how to use a date-aware IANA timezone converter to compare the resulting instants. Do not claim exact UTC values or a minute delta without that service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Scheduling the confirmed UTC value on X avoids interpreting the time through a separate device-clock control.

Review pricing

Scheduling

How do I audit posts already scheduled across a daylight-saving change?

For Operators with an existing scheduled queue: Compare stored UTC instants with the intended local wall times after a DST transition.

Guide only

Start here: Manual queue audit template

Guide

  1. Export or copy each item as ID, stored UTC, intended IANA zone, and intended local datetime.
  2. Convert every intended local datetime independently to its correct dated UTC value.
  3. Mark a mismatch when the converted UTC differs from the stored UTC, for example by 60 minutes.
  4. Correct only verified rows and recheck their local date and abbreviation after editing.

Try with your AI assistant

First call whoami, then get_capabilities, show the authenticated organization, and require explicit confirmation before reading data. Only if list_posts and get_post are available with the required scopes, read {date_range}. Return a read-only JSON audit with post_id, stored_publish_time, intended_zone_placeholder, intended_local_placeholder, mismatch_status, and review_needed. Do not infer the intended timezone, edit, approve, publish, or reschedule anything.

Tools: whoami, get_capabilities, list_posts, get_post

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid scheduling provides a queue to review, but any time correction should remain a human-confirmed scheduling action.

Review pricing

Scheduling

How do I keep a recurring post at the same local time after daylight saving changes?

For Operators managing daily or weekly recurring posts: Create dated civil-time occurrences instead of adding fixed 24-hour or seven-day durations.

Guide only

Start here: Recurrence expansion worksheet

Guide

  1. Define the recurrence as a local rule, for example 18:00 every day in Europe/London.
  2. Create each calendar date first, including dates on both sides of the clock change.
  3. Convert each dated 18:00 occurrence to UTC separately.
  4. Check that every local result remains 18:00 even where adjacent UTC gaps are 23 or 25 hours.

Try with your AI assistant

Expand {first_local_datetime}, zone {iana_zone}, interval {calendar_interval}, for {count} occurrences. Return JSON rows with local_datetime, abbreviation, utc_iso, previous_gap_hours, and dst_transition. Preserve civil time rather than a fixed-second interval.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: The resulting UTC values can be scheduled as separate X posts after review.

Review pricing

Scheduling

What date and time will viewers in another timezone see on my post?

For Creators explaining global post times: Preview one publication instant in several viewer-local timezones.

Guide only

Start here: Viewer clock preview

Guide

  1. Enter the publisher's local datetime and IANA zone, for example 2026-10-02 19:00 Asia/Tokyo.
  2. Convert it once to UTC.
  3. Convert that UTC instant into each viewer zone, such as America/New_York and America/Los_Angeles.
  4. Check and display calendar-date changes; note that this changes timestamp display, not the publication instant.

Try with your AI assistant

Provide a checklist for converting {publisher_local_datetime} in {publisher_iana_zone} to UTC and then to {viewer_iana_zones} using a date-aware IANA timezone service. Require full-date display and verification. Do not claim exact viewer timestamps without that service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: If a viewer-local target is selected, its confirmed UTC instant can then be scheduled on X.

Review pricing

Scheduling

What datetime format should I use in a bulk scheduling CSV?

For Spreadsheet-based content operators: Create an unambiguous schedule CSV using offset-bearing ISO-8601 timestamps.

Guide only

Start here: CSV datetime template

Guide

  1. Create columns body, publish_at, and network.
  2. Write publish_at as ISO-8601 with an offset or Z, for example 2026-10-06T09:00:00-04:00.
  3. Reject bare values such as 2026-10-06 09:00 because they do not identify an instant.
  4. Parse each accepted row back to UTC and check that it matches the intended local date before import or manual entry.

Try with your AI assistant

Validate CSV text {csv_text}. Require body, publish_at, and network. Return JSON with accepted_rows, rejected_rows containing row and error, and cleaned_csv. Accept only ISO-8601 timestamps with an explicit offset or Z. Mark networks other than x as manual_export.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: After capability and plan checks, confirmed X rows may be entered through an authenticated scheduling workflow. Other network rows remain manual exports unless the platform is publicly supported.

Review pricing

Scheduling

How do I turn 'tomorrow at 4pm' into an exact scheduled timestamp?

For Operators entering times in plain language: Resolve a relative phrase against a supplied reference time and named timezone.

Guide only

Start here: Relative-time worksheet

Guide

  1. Record the exact reference time, for example now equals 2026-10-01T15:00:00Z.
  2. Supply the interpretation zone, for example America/New_York.
  3. Resolve 'tomorrow at 4pm' to 2026-10-02T16:00:00-04:00 and 2026-10-02T20:00:00Z.
  4. Confirm the written calendar date and reject phrases that omit either a clock time or timezone.

Try with your AI assistant

Resolve phrase {time_phrase} using reference instant {reference_utc_iso} and zone {iana_zone}. Return JSON with resolved_local_iso, utc_iso, calendar_date_text, ambiguity, and needs_confirmation. Do not guess if the time or zone is missing.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Only the confirmed absolute UTC value should be used for paid X scheduling.

Review pricing

Scheduling

How do I combine several channel schedules and find posts that collide?

For Creators managing multiple channels: Merge dated publishing rows into one chronological calendar and flag short gaps.

Guide only

Start here: Weekly collision calendar

Guide

  1. Create rows containing channel label, title, and an offset-bearing publish_at value.
  2. Convert every row to UTC and sort the combined list chronologically.
  3. Choose a minimum gap, for example 60 minutes, and flag adjacent items closer than that.
  4. Export the checked list to a calendar file or use it as a manual native-publishing checklist.

Try with your AI assistant

Analyze schedule rows {rows_json} with minimum gap {gap_minutes}. Return JSON with chronological_rows, collisions containing item IDs and minutes_apart, and an ICS-compatible event list. Do not claim to publish video or non-X rows.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Optional X announcement rows can be scheduled on X; video and other network entries remain manual calendar items.

Review pricing

Scheduling

How do I prevent an unapproved post from reaching the schedule?

For Agencies and client content teams: Keep pending content in drafts and require explicit approval before scheduling.

Available now

Start here: Approval gate checklist

Guide

  1. Create a draft with body, approver, approval deadline, and proposed publish time.
  2. Check that the approval deadline occurs before the proposed publish time.
  3. Keep the item blocked while its status is pending, rejected, or missing an approver.
  4. After explicit approval, recheck the final body and time before a separate scheduling action.

Try with your AI assistant

First call whoami, then get_capabilities, show the authenticated organization, and require explicit confirmation that {organization_name} is correct. Only if create_drafts, list_drafts, and list_approvals are reported as available and authorized, create draft-only records from {content_rows} and read their approval state. Return JSON with draft_id, approver when available, approve_by, proposed_publish_at, status, and blocking_reasons. Do not approve, schedule, publish, or autosend anything.

Tools: whoami, get_capabilities, create_drafts, list_drafts, list_approvals

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid workflows can retain drafts and approval records; scheduling remains a separate human-confirmed action after approval.

Review pricing

Scheduling

How do I prepare one scheduled X post and a manual version for another network?

For Operators reusing content across networks: Produce an X-ready variant and a clearly labeled manual copy block without claiming automatic cross-network publishing.

Available now

Start here: Two-slot posting pack

Guide

  1. Enter the source text, link, X publish time, and the second network's manual publish time.
  2. Use the character counter only for a simple Unicode code-point count of the X draft. It is not an X weighted validator and does not apply the 23-character URL rule.
  3. Create a separate manual version using the second network's current editorial requirements.
  4. Validate the X version in the official X composer, schedule only the X item, and add a separately zoned calendar reminder for the manual item.

Open the related free tool

Try with your AI assistant

Adapt source {source_text} and link {url} into JSON with x containing text and publish_at {x_publish_at}, plus manual containing text, label {manual_network_label}, and publish_at {manual_publish_at}. Keep claims unchanged. You may report simple Unicode code-point counts only, clearly labeled as non-weighted and non-validating. Require official X composer validation and never state that the manual item will be auto-published.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Starter includes up to 30 X posts per month, while the second network item remains a manual copy block.

Review pricing

Scheduling

Should I start with Eastern time when my X audience is spread across the United States?

For US-focused X account operators: Use a source-labeled public timing curve as a baseline and translate it across US timezones.

Available now

Start here: Best Time to Post

Guide

  1. Open the public timing tool and keep its result labeled as a source-labeled public baseline rather than account analytics or a personalized optimum.
  2. Select a candidate window. If applying it to a particular future date, record that date explicitly.
  3. Use a separate date-aware IANA timezone converter to translate the dated instant across Central, Mountain, and Pacific time; the current planner code does not guarantee future-date DST conversion.
  4. Check whether the audience is known to skew west before manually recording the final window.

Open the related free tool

Try with your AI assistant

Use best_time_teaser for {platform} and {region_or_timezone}. Return JSON with source_label, candidate_windows, timezone, and limitations. Describe results as a public baseline, not this account's measured optimum. Do not schedule or publish.

Tools: best_time_teaser

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: When account analytics are connected and the required scopes are available, Pro can help an operator compare available account performance with the public baseline and schedule a chosen X time.

Review pricing

Scheduling

How do I rank posting hours using my own X performance data?

For X accounts with historical performance data: Compare hour-of-week performance while exposing sample counts and refusing thin conclusions.

Available now

Start here: Own-data ranking guide

Guide

  1. Collect each post's publication timestamp and one consistent metric, such as impressions.
  2. Convert all timestamps to the audience timezone and group them by weekday and hour.
  3. For each group, calculate post count and median metric rather than ranking a single exceptional post.
  4. Exclude groups below a chosen sample threshold, then compare the remaining top three windows.

Try with your AI assistant

First call whoami, then get_capabilities, and confirm organization {organization_name}. Only if the authenticated account, required scopes, and both read tools are available, read {date_range} using get_engagement_summary and get_optimal_times. Return JSON with timezone, available ranked_windows, post_count_per_window when supplied by the tools, metric_basis, sample_limitations, and no_schedule_action. Do not infer unavailable analytics, draft, approve, schedule, or publish.

Tools: get_engagement_summary, get_optimal_times

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: If account analytics are connected with the required scopes, Pro can expose available account-derived timing information for review. Scheduling a selected X post remains a separate action.

Review pricing

Scheduling

What time should I type into a device-clock scheduler without changing my system timezone?

For Operators using schedulers tied to device time: Convert a desired zoned time into the wall time expected by the current device zone.

Guide only

Start here: No-clock-change card

Guide

  1. Enter the desired value, for example 2026-10-08 20:00 America/New_York.
  2. Enter the unchanged device zone, for example America/Toronto.
  3. Copy the returned device-local datetime and UTC instant.
  4. Before saving, check the device zone still matches the entered zone and confirm the desired-zone date remains correct.

Try with your AI assistant

Provide a checklist for converting {desired_local_datetime} in {desired_iana_zone} to {device_iana_zone} with a date-aware IANA timezone service. Require verification of the UTC instant, both local dates, and the device's actual zone before saving. Do not claim an exact value without that service.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid X schedule can use the verified UTC instant directly instead of a separate device-clock control.

Review pricing

Scheduling

How do I prepare several X posts as drafts before scheduling any of them?

For Teams preparing an X content queue: Create reviewable drafts while separating drafting from scheduling and publishing.

Available now

Start here: Draft queue checklist

Guide

  1. Prepare each row with draft text, proposed UTC time, source note, and reviewer.
  2. Use the character counter only as a simple Unicode code-point editing aid, not as an X weighted validator, and verify proposed times with a date-aware IANA timezone source.
  3. Validate each final text in the official X composer before creating draft-only records.
  4. Create drafts only after confirming the authenticated organization and capabilities, then review their IDs, text, and proposed times as a batch.
  5. Leave scheduling as a later explicit action after organization, content, and time confirmation.

Open the related free tool

Try with your AI assistant

First call whoami, then get_capabilities, show the authenticated organization, and require explicit confirmation that {organization_name} is correct. Only if create_drafts and list_drafts are available and authorized, create draft-only X items from {rows_with_text_and_proposed_utc}, then verify them with list_drafts. Return JSON with draft_id, text, proposed_utc, validation_notes, and status. Do not claim X weighted validity, approve, schedule, publish, or autosend.

Tools: whoami, get_capabilities, create_drafts, list_drafts

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Starter supports up to 30 X posts per month; Pro provides unlimited scheduling, with scheduling still requiring a separate confirmed action.

Review pricing

Website SEO

Why does Google say my description is unavailable because of robots.txt?

For CMS site owners whose titles or descriptions are missing from search results: Check whether robots.txt blocks a specific page and distinguish crawl access from search exclusion.

Guide only

Start here: Robots access checklist

Guide

  1. Input: paste the robots.txt text and affected URL, for example https://example.com/products/widget.
  2. Match the URL path against the relevant User-agent group and its Allow and Disallow rules. Output: allowed, blocked, or unclear, plus the matching rule.
  3. Open the page and view source. Check that one title element and one meta name="description" exist.
  4. If the page should appear with a snippet, remove only the rule blocking that path and verify the page remains publicly accessible.
  5. If the page should stay out of search, allow crawling and add meta name="robots" content="noindex" or an X-Robots-Tag noindex header. Check that no conflicting index directive remains.

Try with your AI assistant

Analyze this robots.txt and URL locally. Input: {"robots_txt":"<ROBOTS_TEXT>","url":"<PAGE_URL>","goal":"show_snippet|exclude"}. Return JSON only with urlAllowed, matchedRule, titleCheckInstructions, descriptionCheckInstructions, smallestRobotsChange, exclusionDirective, and cautions. Do not claim to crawl the URL.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A paid TimeToPost plan can support related content drafting and scheduling workflows after the page issue is fixed, but it does not replace search-engine recrawling.

Review pricing

Website SEO

Will disallowing tag and search URLs in robots.txt remove them from Google?

For Blog owners managing tag archives and internal search-result pages: Choose crawl and index controls separately for tag, category, and internal search URLs.

Guide only

Start here: Index control decision sheet

Guide

  1. Input: list each path, whether visitors can click it, and its purpose, for example /tag/seo as a browsable archive and /?s=shoes as internal search.
  2. Keep useful visitor-facing archives crawlable when they provide distinct navigation or content.
  3. For URLs that should not appear in search, place a page-level noindex directive while leaving them crawlable long enough for the directive to be read.
  4. Treat Sitemap lines as discovery hints, not removal instructions. Multiple absolute Sitemap URLs may be declared.
  5. Output: a table with path, visitor value, crawl choice, index choice, exact directive, and a check that no robots.txt rule prevents reading noindex.

Try with your AI assistant

Create a crawl and indexing decision table from this input: {"robots_txt":"<ROBOTS_TEXT>","paths":[{"path":"<PATH>","linked_from_site":true,"purpose":"tag|search|other"}]}. Return JSON only with findings containing path, crawlChoice, indexChoice, directive, reason, and conflictCheck.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost content workflows can help create and schedule promotion for useful indexable hub pages after the site owner makes the technical changes.

Review pricing

Website SEO

Does the Sitemap line have to be last in robots.txt?

For Site owners editing robots.txt and sitemap declarations: Validate Sitemap directive syntax and placement without treating it as an indexing guarantee.

Guide only

Start here: Sitemap directive validator guide

Guide

  1. Input: paste the complete robots.txt file.
  2. Extract each line beginning with Sitemap: and check that its value is an absolute URL such as https://example.com/sitemap.xml.
  3. Keep valid Sitemap directives wherever they occur in the file. They do not need to be the final lines.
  4. Allow multiple Sitemap directives when the site has multiple sitemap files or indexes.
  5. Output: valid sitemap URLs, malformed lines, corrected lines, and a manual submission checklist for the search engine's sitemap interface.

Try with your AI assistant

Validate this robots.txt text locally: <ROBOTS_TEXT>. Return JSON only with sitemapUrls, placementValid, malformedLines, correctedLines, and submissionChecklist. Do not claim that sitemap inclusion guarantees indexing.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost features are not required for this robots.txt task. Paid plans can support separate content creation, scheduling, and analytics work.

Review pricing

Website SEO

Why is Google's search title different from my title tag?

For Publishers whose search result title differs from the HTML title: Compare the title element with visible title signals and identify likely rewrite triggers.

Available now

Start here: Title signal comparison

Guide

  1. Input: collect the title element, first visible H1, og:title, site name, page language, and first 200 words.
  2. Compare the fields for conflicting wording, vague labels such as Home, repeated keywords, duplicated site names, or language mismatches.
  3. Choose one descriptive page-specific phrase and use it consistently in the title, main heading, and social title where editorially appropriate.
  4. Output: issue list and one proposed title, for example Blue Widget Installation Guide | Example Site.
  5. Check that the title is unique on the site and wait for recrawling. Search results may still vary by query and device.

Open the related free tool

Try with your AI assistant

Run seo_audit with full=false for <PAGE_URL>. Then compare the returned page checks with these supplied fields: title=<TITLE>, h1=<H1>, og_title=<OG_TITLE>, site_name=<SITE_NAME>, language=<LANGUAGE>. Return JSON with issues, proposedTitle, supportingSignals, and manualChecks. Do not promise that a search engine will use the proposal.

Tools: seo_audit

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid plans can store related drafts and support content scheduling and analytics. Search-result title selection remains controlled by the search engine.

Review pricing

Website SEO

How do I rewrite repetitive title tags so every page is distinguishable?

For Catalog and template-site editors with repetitive titles: Rewrite a batch of boilerplate titles using page-specific facts.

Guide only

Start here: Title rewrite worksheet

Guide

  1. Input: prepare rows with URL, current title, H1, page type, and one unique fact such as product, city, category, or article subject.
  2. Group titles sharing the same long prefix or suffix and mark rows that differ by only one weak token.
  3. For each row, lead with the unique subject, remove repeated keyword lists, and add the site name once if useful.
  4. Output: URL, detected issue, proposed title, and needs_input when no unique fact exists.
  5. Check that no two proposed titles are identical and that each accurately describes its page.

Try with your AI assistant

Rewrite these titles locally: {"site_name":"<SITE_NAME>","pages":[{"url":"<URL>","current_title":"<TITLE>","h1":"<H1>","page_type":"<TYPE>","unique_fact":"<FACT>"}]}. Return JSON only with pages containing url, issues, proposedTitle, and status. Do not invent missing page facts.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost content workflows can create or store drafts related to revised pages, but they do not directly edit website title tags.

Review pricing

Website SEO

What should I do when the title is in a different language from the page?

For Editors maintaining localized or multilingual pages: Align the title, main heading, and social title with the page's primary language and writing system.

Guide only

Start here: Localized title checklist

Guide

  1. Input: provide the current title, H1, og:title, a body sample, and the intended page language.
  2. Identify fields written in a different language or writing system from the main content.
  3. Draft a concise replacement title using only a translation or terminology supplied by the editor.
  4. Apply matching language to the H1 and og:title where those fields describe the same page subject.
  5. Output: mismatched fields, replacement title, fields to update, and needs_translation when verified wording was not supplied.

Try with your AI assistant

Review this localized title input: {"title":"<TITLE>","h1":"<H1>","og_title":"<OG_TITLE>","body_sample":"<BODY_SAMPLE>","page_language":"<LANGUAGE>","approved_terms":["<TERM>"]}. Return JSON with mismatch, fieldsToChange, proposedTitle or null, and blocker. Do not invent an authoritative translation.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid content workflows can store separate drafts for different audiences, but verified localization still requires editorial review.

Review pricing

Website SEO

How can I create unique meta descriptions for a large catalog?

For Catalog, directory, local, and news-site editors: Generate factual, unique meta descriptions from structured page fields.

Guide only

Start here: Meta description template sheet

Guide

  1. Input: create rows with URL, page type, name, author or business, date, price, location, hours, and a one-sentence summary where available.
  2. Select only facts relevant to that page type and combine them into one readable description rather than a keyword list.
  3. Output one description per URL and mark missing_facts when the row lacks enough distinct information.
  4. Compare outputs and flag exact or near duplicates for revision.
  5. Check each description against the live page so every stated fact is visible and current. Search engines may still choose body text instead.

Try with your AI assistant

Create factual meta descriptions from: {"pages":[{"url":"<URL>","type":"article|product|local|other","fields":{"name":"<NAME>","author":"<AUTHOR>","date":"<DATE>","price":"<PRICE>","location":"<LOCATION>","hours":"<HOURS>","summary":"<SUMMARY>"}}]}. Return JSON with url, metaDescription, status, usedFacts, and duplicateGroup. Do not invent facts or measured SEO outcomes.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth includes AutoSEO drafts at one per week. Those drafts can support broader content work, while website metadata changes still require the site's publishing system.

Review pricing

Website SEO

How do I limit, remove, or exclude part of a search snippet?

For Publishers controlling how page content may appear in search snippets: Map a snippet policy to robots directives or the data-nosnippet attribute.

Guide only

Start here: Snippet directive builder

Guide

  1. Input: choose normal snippet, maximum character count, no snippet, or exclude one visible section.
  2. For a maximum, output meta name="robots" content="max-snippet:N" using the chosen integer.
  3. For no snippet, output meta name="robots" content="nosnippet" or the equivalent X-Robots-Tag header.
  4. For one excluded section, add data-nosnippet to the relevant HTML element rather than blocking the whole page.
  5. Check the head and response headers for duplicate directives. Output all conflicts and retain one intentional policy.

Try with your AI assistant

Build a snippet policy locally from {"mode":"default|max_snippet|nosnippet|exclude_selector","max_snippet":<NUMBER_OR_NULL>,"selector":"<SELECTOR_OR_NULL>","existing_meta":["<DIRECTIVE>"],"existing_header":"<HEADER_OR_NULL>"}. Return JSON with metaTag, httpHeader, htmlAttribute, conflicts, and verificationSteps.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost plans do not replace website template changes. They can support related drafting and distribution after the policy is implemented.

Review pricing

Website SEO

How can I verify title, description, robots, and canonical tags on a CMS page?

For Hosted CMS users who configure SEO fields without editing templates: Check the rendered page head for essential tags and duplicates.

Available now

Start here: Head tag verification checklist

Guide

  1. Input: open the live page, use View Source, and copy the head section.
  2. Count title elements and meta name="description" tags. Flag duplicate title elements, duplicate descriptions, or a missing title. A meta description is optional, but record when it is absent.
  3. List robots and crawler-specific meta tags, then flag conflicting index or snippet directives.
  4. List rel="canonical" values and verify that each observed value resolves to an absolute URL. Treat canonical tags as signals, not indexing guarantees.
  5. Output: findings for each field, the exact duplicate or conflicting tags, and a note to change them in the CMS search settings when raw HTML is unavailable.

Open the related free tool

Try with your AI assistant

Run seo_audit with full=false for <PAGE_URL>. Return JSON with titleFindings, descriptionFindings, robotsFindings, canonicalFindings, topThreeFixes, and manualSourceChecks. Treat this as a page check, not a full-site crawl.

Tools: seo_audit

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid plans can add content drafting, scheduling, and analytics workflows. They do not directly configure third-party CMS templates.

Review pricing

Website SEO

How do I stop an XML sitemap from ranking instead of the real page?

For Site owners seeing an XML sitemap URL in search results: Reduce the sitemap file's search eligibility and verify the intended page's basic signals.

Guide only

Start here: Sitemap result recovery checklist

Guide

  1. Input: record the sitemap URL, target content URL, current canonical, title, sitemap membership, and whether ordinary pages link to the XML file.
  2. Remove navigational or editorial links to the XML file while keeping legitimate sitemap submission methods.
  3. Configure the sitemap response with X-Robots-Tag: noindex and verify the header on the live response.
  4. Check that the target page returns normally, has a unique title, uses a self-referencing canonical, and is the preferred URL listed in the sitemap.
  5. Output: header change, links to remove, target-page failures, and a separate content-quality review because suppressing the XML file does not improve a weak page.

Try with your AI assistant

Review this user-supplied sitemap and target-page evidence locally: {"sitemap_url":"<SITEMAP_URL>","sitemap_response_headers":"<HEADERS>","internally_linked":true,"target_page_url":"<TARGET_PAGE_URL>","target_status":"<STATUS>","target_title":"<TITLE>","target_canonical":"<CANONICAL>","target_in_sitemap":true}. Return JSON with sitemapHeaderRecommendation, linksToRemove, targetPageChecks, topFixes, qualityReviewRequired, and manualChecks. Do not claim to crawl either URL or guarantee which URL a search engine will show.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: After the canonical page is corrected, paid scheduling can distribute an approved public X post linking to that page. It does not influence search ranking directly.

Review pricing

Website SEO

How should I canonicalize duplicate home URLs such as / and /home?

For Developers managing duplicate homepage routes: Select one preferred homepage URL and align canonicals, sitemaps, and internal links.

Guide only

Start here: Canonical alignment worksheet

Guide

  1. Input: list each duplicate URL, current canonical, sitemap status, redirect status, and whether templates link to it.
  2. Choose one absolute HTTPS URL as the preferred homepage based on the site's existing public convention.
  3. Set every duplicate page's rel=canonical to that preferred URL, or redirect duplicates when that is appropriate for users and infrastructure.
  4. Keep only the preferred URL in the sitemap and retarget internal links to it.
  5. Output: preferred URL, canonical changes, sitemap removals, redirect candidates, and remaining signal conflicts.

Try with your AI assistant

Resolve this duplicate homepage cluster locally: {"preferred_url":"<PREFERRED_URL>","cluster":[{"url":"<URL>","canonical":"<CANONICAL>","in_sitemap":true,"internally_linked":true,"redirect_status":"<STATUS>"}]}. Return JSON with preferredUrl, canonicalChanges, sitemapKeep, sitemapRemove, linksToRetarget, redirectCandidates, and conflicts.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost plans can support content and distribution around the corrected canonical URL, but canonical and redirect implementation stays in the website stack.

Review pricing

Website SEO

Which 404 or noncanonical URLs should I remove from my sitemap?

For Site owners cleaning CMS-generated XML sitemaps: Classify sitemap URLs using supplied status codes, canonicals, and hosts.

Guide only

Start here: Sitemap cleanup spreadsheet

Guide

  1. Input: export sitemap URL, HTTP status, canonical URL, and host into a table.
  2. Keep rows that return 200 and identify themselves as the preferred canonical.
  3. Remove rows returning 404 or 410 and rows whose canonical points to a different URL.
  4. Flag URLs on a different host for separate review because sitemap host rules apply.
  5. Output: keep list, remove list, and reason codes of not_found, non_canonical, wrong_host, or missing_observation. Check removed URLs against internal links before regenerating the sitemap.

Try with your AI assistant

Classify this supplied sitemap export without crawling: {"sitemap_host":"<HOST>","rows":[{"url":"<URL>","status":200,"canonical":"<CANONICAL>","host":"<HOST>"}]}. Return JSON with keep, remove, review, and countsByReason. Do not infer missing HTTP data.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost plans do not provide a claimed full-site crawler. Related AutoSEO drafting is available on Growth, while sitemap regeneration remains a website operation.

Review pricing

Website SEO

Should a syndicated copy with a cross-domain canonical be in its sitemap?

For Publishers syndicating articles across properties: Align cross-domain canonicals with each host's sitemap.

Guide only

Start here: Syndication canonical checklist

Guide

  1. Input: provide the copy URL, canonical URL, copy sitemap host, and canonical sitemap host.
  2. Confirm that the copy's rel=canonical uses the absolute preferred URL on the canonical host.
  3. Omit the copy URL from the syndicating host's sitemap when it declares another host's URL as canonical.
  4. Include the preferred URL only in a sitemap belonging to its own host.
  5. Output: include or omit decisions for both sitemaps, the exact canonical element, and a check for conflicting noindex or canonical directives.

Try with your AI assistant

Review this syndication pair: {"copy_url":"<COPY_URL>","canonical_url":"<CANONICAL_URL>","copy_sitemap_host":"<COPY_HOST>","canonical_sitemap_host":"<CANONICAL_HOST>","existing_robots_meta":"<META_OR_NULL>"}. Return JSON with copySitemapDecision, canonicalSitemapDecision, relCanonical, robotsConflict, and checks.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid scheduling can publish an approved public X post that links to the preferred canonical article. It does not alter cross-domain canonical processing.

Review pricing

Website SEO

What happens when a page has both index and noindex robots tags?

For Framework developers with metadata emitted by multiple components: Find duplicate robots directives and reduce them to one intentional policy.

Guide only

Start here: Robots conflict parser guide

Guide

  1. Input: copy every robots and crawler-specific meta tag from the head plus any X-Robots-Tag response header.
  2. List each directive in source order and mark index versus noindex, follow versus nofollow, and snippet-control conflicts.
  3. If the page should be excluded, retain one noindex directive and remove code paths emitting index directives.
  4. If the page should be indexed, remove noindex and either retain one index,follow tag or rely on the documented default.
  5. Output: observed tags, conflict list, one final directive, likely template sources to inspect, and a check that sitemap changes alone will not repair duplicate metadata.

Try with your AI assistant

Parse these supplied directives: {"html_head":"<HEAD_HTML>","x_robots_tag":"<HEADER_OR_NULL>","intent":"index|noindex"}. Return JSON with observedTags, conflicts, finalDirective, directivesToRemove, and templateDebugChecklist. Do not claim to inspect the live framework.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost workflows can hold related content drafts, but resolving framework metadata requires a code or CMS change.

Review pricing

Website SEO

Should related variant pages canonicalize to a hub or remain separate pages?

For Editors managing topic hubs and related article variants: Separate true duplicates from distinct pages and assign canonicals, descriptions, and hub links.

Guide only

Start here: Variant consolidation worksheet

Guide

  1. Input: provide the hub URL and a short factual summary, current canonical, and current description for each variant.
  2. Compare summaries. Treat substantially equivalent pages as consolidation candidates and distinct questions as separate pages.
  3. For duplicates, choose one canonical and include only it in the sitemap.
  4. For distinct pages, use self-referencing canonicals, write unique factual descriptions, and link each support page to the hub with a descriptive anchor.
  5. Output: consolidate or separate decision, canonical map, description changes, internal links, and a check that the decision matches actual page content.

Try with your AI assistant

Analyze this supplied content set: {"hub":{"url":"<HUB_URL>","summary":"<SUMMARY>"},"pages":[{"url":"<URL>","summary":"<SUMMARY>","canonical":"<CANONICAL>","description":"<DESCRIPTION>"}]}. Return JSON with decision, reasoning, canonicals, descriptions, sitemapDecision, and internalLinks. Do not infer similarity from URLs alone.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth includes one AutoSEO draft per week, which can support an approved hub or support-page brief. Website canonical and linking changes still require implementation.

Review pricing

Website SEO

Should a canonical URL include UTM tracking parameters?

For Developers whose templates copy request parameters into canonical URLs: Remove known tracking parameters from canonical and sitemap signals while preserving reviewed functional parameters.

Guide only

Start here: Canonical parameter cleaner

Guide

  1. Input: provide the current canonical URL, sitemap URL, and any parameters the application genuinely needs to preserve.
  2. Identify known tracking parameters such as utm_source, utm_medium, utm_campaign, gclid, and fbclid.
  3. Remove known tracking parameters from the preferred absolute canonical while retaining only explicitly approved functional parameters.
  4. Update the sitemap entry and internal links to the same cleaned URL.
  5. Output: cleaned canonical, removed parameters, retained parameters, unknown parameters requiring review, and conflicts between canonical and sitemap.

Try with your AI assistant

Clean this canonical locally: {"canonical_url":"<URL>","sitemap_urls":["<URL>"],"functional_parameters_to_keep":["<PARAM>"]}. Return JSON with cleanedCanonical, removedTrackingParameters, retainedParameters, unknownParameters, correctedSitemapUrls, and conflicts.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid plans can support associated content and promotion workflows, but URL normalization must be applied in the site's templates and linking system.

Review pricing

Website SEO

Which existing pages should a new article link to?

For Bloggers and editors with an inventory of existing articles: Select a small set of relevant internal destinations and contextual anchors from a supplied draft and page inventory.

Guide only

Start here: Internal link suggestion sheet

Guide

  1. Input: split the draft into numbered paragraphs and supply existing URL, title, and one-sentence summary rows.
  2. For each paragraph, identify pages whose supplied summary directly supports or expands the paragraph's topic.
  3. Choose no more than one destination per paragraph and apply a page-level cap, for example three links in a short article.
  4. Draft an anchor using natural words already present in the paragraph and vary anchors when the same topic recurs.
  5. Output: paragraph number, destination, anchor, relevance reason, and skipped candidates. Check every destination manually before editing the draft.

Try with your AI assistant

Suggest internal links from supplied text only: {"draft_paragraphs":["<PARAGRAPH>"],"inventory":[{"url":"<URL>","title":"<TITLE>","summary":"<SUMMARY>"}],"max_links":3}. Return JSON with links containing paragraphIndex, url, anchor, reason, plus skipped candidates and their reasons.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth AutoSEO drafts can support ongoing article creation. Pro includes unlimited scheduling and analytics for approved social promotion, but it does not imply automated website link insertion.

Review pricing

Website SEO

Which pages should receive internal links first?

For Site owners prioritizing internal-link maintenance: Rank indexable pages by missing inbound links and excessive click depth.

Guide only

Start here: Internal link priority queue

Guide

  1. Input: prepare URL, indexable status, inbound internal-link count, and clicks from the homepage.
  2. Exclude pages intentionally marked noindex or removed from the content plan.
  3. Place pages with zero inbound internal links first, then pages at four or more clicks from the homepage.
  4. For each destination, select one topically related source page from a supplied list and draft a descriptive anchor.
  5. Output: ordered URL, priority reason, suggested source, anchor, and a check that the source is itself indexable and reachable.

Try with your AI assistant

Rank this supplied internal-link data: {"pages":[{"url":"<URL>","indexable":true,"inbound_internal_links":0,"depth_from_home":4}],"source_pages":[{"url":"<URL>","title":"<TITLE>","summary":"<SUMMARY>"}]}. Return JSON with queue containing url, priorityReason, suggestedSourceUrl, suggestedAnchor, and validationNotes.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid TimeToPost plans can support content drafting and social analytics after site owners implement the internal links. No automated site crawl is claimed.

Review pricing

AI visibility

Is my llms.txt valid, or did I write it like robots.txt?

For Developers and technical editors: Validate llms.txt structure against the published markdown proposal and identify robots.txt directives that do not belong.

Guide only

Start here: llms.txt lint checklist

Guide

  1. Paste the complete file and number its lines. Raw llms.txt text # Acme Docs > Product documentation ## Guides - [Start](/start) A line-numbered copy The file has exactly one H1.
  2. Check the summary and section order. H1, optional blockquote, H2 sections and Optional section > Documentation for Acme API A list of missing or misplaced elements Optional is used only for links an agent may skip.
  3. Inspect every section row. Each item beneath an H2 - [Authentication](https://example.com/docs/auth): Token setup Valid markdown links with optional notes Every list item has a title and URL.
  4. Remove robots.txt syntax. Directive-like lines User-agent: * Disallow: /private A violation list with line numbers No User-agent, Allow, Disallow or Crawl-delay lines remain.

Try with your AI assistant

Review this llms.txt locally without calling an MCP tool: {{LLMS_TXT}}. Return JSON with valid, errors containing line and message, h1, summary, and sections containing heading and links. Apply the published markdown proposal only and flag robots.txt directives.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: No paid TimeToPost feature validates or monitors llms.txt. Growth includes AutoSEO drafts once per week, but that is a separate content workflow.

Review pricing

AI visibility

Should llms.txt be at the site root or beside my docs?

For Documentation owners and web developers: Check whether an llms.txt file is published at the conventional site-root location and document any additional project-specific files without treating them as a hierarchical override system.

Guide only

Start here: llms.txt path worksheet

Guide

  1. Write the site origin and the documentation page URL. One page URL https://example.com/docs/api/auth The origin and normalized page path Exclude the query string and fragment.
  2. Check the conventional root location. The site origin https://example.com/llms.txt HTTP status and content type for /llms.txt Do not treat an HTML error page as a valid llms.txt file.
  3. Record any additional llms.txt files intentionally published by the site owner. Known project or documentation paths https://example.com/docs/llms.txt A list of additional files and their stated scope Do not infer that the deepest file automatically overrides the root file.
  4. Review the selected file's links and stated scope. The root file and any documented project-specific file Links under a Docs section The file to use for the stated project and any out-of-scope links State that external client discovery and adoption may vary.

Try with your AI assistant

Given {{PAGE_URL}}, the manually collected status for the conventional root file, and any site-documented additional files in {{CANDIDATE_STATUSES}}, return JSON with rootFile, additionalFiles, documentedScope, recommendedFile, reasoning, outOfScopeLinks, and limitations. Do not apply a deepest-path override rule or claim that outside systems fetch any file.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

Further reading

When you need more: No paid TimeToPost feature resolves or maintains path-scoped llms.txt files.

Review pricing

AI visibility

What clean markdown URL should an agent open for this HTML page?

For Documentation and marketing teams: Test proposed markdown alternate URL patterns without claiming they affect citations.

Guide only

Start here: markdown alternate probe sheet

Guide

  1. Normalize the page URL. Canonical HTML URL https://example.com/docs/setup A URL without query parameters Keep the original host and path.
  2. Create the proposal's alternate candidates. Normalized URL /docs/setup.md, /docs/setup/index.md, /docs/setup/index.html.md A candidate URL list Do not overwrite or publish anything.
  3. Open each candidate and record status and content type. Candidate list 200 text/markdown Status and content type table A 200 HTML shell is not a clean markdown response.
  4. Compare the successful body with the visible page. Markdown response and source page Both contain the Installation heading Preferred alternate or none Label citation impact as unknown.

Try with your AI assistant

Using the manually fetched results {{URL_RESULTS}}, return JSON with candidates containing url, status, contentType and textPresent, plus preferred and limitations. Do not claim markdown alternates improve ranking or citations.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Starter supports up to 30 X posts, so an approved documentation update can be shared on X separately. It does not generate or host markdown alternates.

Review pricing

AI visibility

If robots.txt blocks crawlers, can they still read my llms.txt?

For Site owners managing crawl and training controls: Separate Googlebot, Google-Extended and wildcard robots.txt rules for llms.txt and its linked pages.

Guide only

Start here: crawler access matrix

Guide

  1. Open the site's robots.txt. Site origin https://example.com/robots.txt Raw robots.txt text Confirm it is not an HTML error page.
  2. List paths to test. llms.txt and important linked pages /llms.txt, /docs/start.md A path checklist Include each path exactly as requested.
  3. Evaluate rules separately. Googlebot, Google-Extended and * groups Googlebot allowed; Google-Extended disallowed Token-by-path allow table Do not merge Googlebot and Google-Extended into one control.
  4. Document the limitation. Completed matrix User-triggered fetch behavior may differ A factual access summary Do not promise every assistant will obey the file.

Try with your AI assistant

Parse this copied robots.txt locally: {{ROBOTS_TXT}} for these paths {{PATHS}}. Return JSON with groups and a matrix for Googlebot, Google-Extended and wildcard. State that user-triggered assistants may behave differently and do not claim universal enforcement.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: No paid TimeToPost plan changes or monitors robots.txt access controls.

Review pricing

AI visibility

Does a non-browser crawler receive my page or a firewall challenge?

For Site owners using bot protection or captcha services: Compare manually captured responses without bypassing access controls.

Guide only

Start here: fetch comparison worksheet

Guide

  1. Request the page without JavaScript using a command-line client or server log. One public URL https://example.com/article Status, content type and body size Do not solve or bypass a challenge.
  2. Repeat with an ordinary browser user-agent. The same URL Mozilla-compatible user-agent A second status and size Keep all other request settings unchanged.
  3. Repeat with a crawler token you are authorized to test. User-supplied user-agent A clearly identified test crawler A third response summary Do not impersonate a crawler for access.
  4. Compare challenge indicators. Three response summaries 403 plus captcha text only for crawler token Likely accessible, blocked or inconclusive A 200 response can still contain a challenge or thin shell.

Try with your AI assistant

Compare these user-collected response summaries {{FETCH_RESULTS}}. Return JSON with results containing userAgent, status, bytes, textWords and challengeSuspected, plus conclusion and limitations. Do not recommend bypassing a firewall or captcha.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: No paid TimeToPost feature performs neutral-network crawler monitoring or bypasses access controls.

Review pricing

AI visibility

What article text exists before JavaScript runs?

For Teams publishing client-rendered content: Compare raw response text with the rendered page and identify a thin application shell.

Guide only

Start here: raw text comparison

Guide

  1. Save the initial HTML response without executing scripts. One page URL view-source:https://example.com/article Raw HTML Use the network response, not the rendered DOM.
  2. Extract the title, headings and readable body text. Raw HTML Title plus H1 and three paragraphs Outline and approximate word count Ignore scripts, styles and navigation boilerplate.
  3. Compare it with the browser-rendered article. Raw and rendered text Raw response has 40 words; rendered article has 900 Missing headings and passages Do not assign an unsupported minimum word threshold.
  4. Choose a remediation. Comparison result Server-render the main article text A specific engineering action The important content should be available as text.

Try with your AI assistant

Compare the user-supplied raw HTML and rendered-page text locally: {{RAW_AND_RENDERED_TEXT}}. Return JSON with rawTitle, rawHeadings, approximateRawWordCount, renderedHeadings, approximateRenderedWordCount, missingPassages, classification, remediationOptions, and limitations. Do not claim to fetch the URL, impose a minimum word threshold, or guarantee search or citation outcomes.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth includes AutoSEO drafts once per week. It does not guarantee server rendering or AI citations.

Review pricing

AI visibility

Is my JSON-LD in the initial HTML or inserted after load?

For Teams using client-side widgets or tag managers: Check whether structured data is present in the raw response without asserting a citation benefit.

Guide only

Start here: source schema probe

Guide

  1. Capture the raw HTML response. One public page URL https://example.com/service Unrendered source Do not use the post-JavaScript Elements panel.
  2. Search for application/ld+json scripts. Raw source <script type="application/ld+json"> All raw JSON-LD blocks Record an explicit none-found result.
  3. Parse each block. JSON-LD text "@type":"Organization" Types and top-level keys Flag invalid JSON rather than guessing its meaning.
  4. Compare with rendered markup. Raw blocks and rendered DOM blocks FAQPage appears only after load Initial, client-inserted or absent classification Do not claim server-side placement improves citations.

Try with your AI assistant

Compare the user-supplied raw HTML and rendered DOM excerpts locally: {{RAW_AND_RENDERED_HTML}}. Return JSON with rawJsonLdBlocks, renderedJsonLdBlocks, parseErrors, types, placementClassification, and limitations. Use unknown when the supplied evidence is insufficient, and do not claim that placement changes citation outcomes.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth provides weekly AutoSEO drafts, but it does not install or move JSON-LD into server-rendered HTML.

Review pricing

AI visibility

Which structured-data claims are missing from the visible page?

For Publishers generating structured data from templates: Compare important JSON-LD strings with visible source text and detect unresolved placeholders.

Guide only

Start here: schema consistency table

Guide

  1. Extract JSON-LD from the raw response. Raw page HTML headline, name and description fields Field paths and string values Skip non-text values.
  2. Extract visible text from the same response. Raw HTML Page heading and article body Normalized visible text Use the same response version for both sides.
  3. Compare each structured-data string. JSON-LD values and visible text JSON-LD price is absent from the page Matched and unmatched fields Allow minor whitespace differences but not changed facts.
  4. Search for template tokens. JSON-LD text {{product_name}} or ${price} Unresolved placeholder list Review every flagged value before publishing.

Try with your AI assistant

Compare the user-supplied raw HTML, extracted visible text, and JSON-LD locally: {{SCHEMA_AND_VISIBLE_TEXT}}. Return JSON with fields containing path, value, visibleMatch and notes, plus unresolvedPlaceholders, manualReview, and limitations. Do not fetch the page, invent missing facts, or claim ranking or citation effects.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth includes AutoSEO drafts once per week. Technical schema corrections remain a site implementation task.

Review pricing

AI visibility

Should this page use FAQPage or QAPage markup?

For Help-center and public-information editors: Choose the appropriate markup shape and verify that accepted answers are visible.

Guide only

Start here: FAQ markup decision guide

Guide

  1. Classify how answers are created. Page editorial model Publisher supplies one answer per question Single-answer or community-answer classification Confirm whether users can submit alternative answers.
  2. Select the candidate type. Classification Single publisher answer maps to FAQPage FAQPage or QAPage recommendation Use QAPage when users can submit competing answers.
  3. List every question and accepted answer. Visible page text How do refunds work? Refunds take five business days. Question-answer pairs Each accepted answer is visible on the page.
  4. State eligibility limits. Site type and chosen markup Not a government or health site A caution about rich-result expectations Do not present markup as an AI citation feature.

Try with your AI assistant

Analyze this page description and copied question-answer text locally: {{PAGE_CONTENT}}. Return JSON with recommendedType, rationale, visibleQA, jsonLdOnlyAnswers, and limitations. Do not claim rich-result or AI citation eligibility.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth can create weekly AutoSEO drafts, but it does not guarantee FAQ rich results or AI citations.

Review pricing

AI visibility

What does this URL need to be eligible as a supporting link in search AI features?

For Site owners evaluating public search eligibility: Review ordinary crawl, index and snippet signals without requiring a special AI file.

Guide only

Start here: AI search eligibility checklist

Guide

  1. Run the free single-page SEO audit. Public page URL https://example.com/guide A 0 to 100 score and top three fixes Treat it as a page check, not a full crawl or ranking report.
  2. Verify Googlebot access. robots.txt and page path Googlebot is not disallowed Allowed, blocked or ambiguous Do not substitute Google-Extended for Googlebot.
  3. Inspect index and snippet controls. Raw HTML and response headers No noindex and no page-wide nosnippet Control inventory A canonical to another host requires review.
  4. Confirm meaningful text is present. Raw response body The article heading and core answer appear in source Text-present or thin-shell result State that passing does not guarantee appearance.

Try with your AI assistant

Review the user-supplied single-page audit output, robots.txt rules, raw HTML, and response headers locally: {{PAGE_EVIDENCE}}. Return JSON with auditFindings, googlebotAccess, indexControls, snippetControls, canonicalReview, meaningfulTextPresent, manualChecks, and limitations. Do not request a gated report, measured rankings, or keyword gaps. State that passing these checks does not guarantee indexing or an AI-feature supporting link.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Growth includes weekly AutoSEO drafts. Paid plans do not guarantee indexing, rankings or supporting-link placement.

Review pricing

AI visibility

How can I exclude one section from snippets without removing the page from search?

For Publishers controlling search previews: Distinguish page-wide and section-level snippet controls.

Guide only

Start here: snippet control decoder

Guide

  1. State the intended scope. Content to restrict Hide one pricing note but keep the article indexed Section-level or page-level requirement Do not use noindex for a section-only goal.
  2. Inspect meta tags and headers. Raw HTML head and HTTP headers meta robots content="nosnippet" Page-wide controls Record noindex, nosnippet and max-snippet separately.
  3. Inspect the target element. Raw HTML around the sensitive text <span data-nosnippet>Internal note</span> Section-level control status The attribute surrounds the exact text to exclude.
  4. Explain the consequence. Detected controls data-nosnippet limits that region; noindex removes eligibility Plain-language effect by control Do not generalize behavior to every answer engine.

Try with your AI assistant

Review the copied raw HTML and headers {{HTML_AND_HEADERS}} locally. Return JSON with controls containing kind, scope and value, recommendedControl for {{INTENDED_SCOPE}}, and limitations. Do not claim universal support outside the documented search system.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: No paid TimeToPost feature edits or deploys snippet-control markup.

Review pricing

AI visibility

Why is old text still showing after I added a snippet control?

For Site owners debugging recently changed preview controls: Verify the current raw response and follow the documented recrawl troubleshooting order.

Guide only

Start here: snippet update debug sheet

Guide

  1. Fetch the current raw HTML. Affected page URL https://example.com/pricing Current response body and headers Confirm the intended control is actually present.
  2. Check the control's scope and syntax. Current markup data-nosnippet wraps the old price Correct, misplaced or absent A page-wide meta directive cannot be inferred from rendered styling.
  3. Record cache information and deployment time. Cache headers and publish timestamp Updated today; CDN age 12 hours Possible stale-delivery factors Do not claim which version the crawler stored.
  4. Request recrawl in the owner's search account. Verified live URL Use URL Inspection A user-completed recrawl request Allow recrawl time and avoid promising an update date.

Try with your AI assistant

Using the user-collected current HTML, headers and deployment time {{DEBUG_INPUT}}, return JSON with controlInRawHtml, syntaxAssessment, cacheFactors, orderedNextChecks and limitations. Do not claim access to Search Console or crawler cache.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: No paid TimeToPost plan accesses Search Console or requests recrawls.

Review pricing

AI visibility

How can I tell whether search AI features sent traffic instead of ordinary web results?

For Marketers and founders measuring discovery: Explain the documented reporting limit and avoid presenting llms.txt fetches as citations.

Guide only

Start here: AI traffic interpretation guide

Guide

  1. Open the Web search performance report in the site owner's account. A user-controlled search performance account Performance filtered to Web Clicks and impressions included in Web reporting Do not assume a separate AI-feature dimension exists.
  2. Export the relevant date and page range. Page filter and dates /guide from August 1 to August 31 A user-provided aggregate table Label it as combined Web performance.
  3. Inspect direct referral and server logs separately. Analytics export or access-log excerpt Requests to /llms.txt by user-agent Referral totals and file-fetch counts A file fetch is not evidence of a citation.
  4. Write the measurement conclusion. Combined search data and logs AI-feature traffic cannot be isolated from this report Known, unknown and proxy signals Do not estimate an unsupported AI traffic share.

Try with your AI assistant

Analyze only the user-provided aggregate export and log counts {{MEASUREMENT_DATA}}. Return JSON with webPerformance, directReferrals, llmsTxtFetches, known, unknown and caveats. Do not claim Search Console access, separate AI-feature attribution or that a fetch equals a citation.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Pro includes analytics, but no provided TimeToPost tool isolates search AI-feature traffic or accesses Search Console.

Review pricing

AI agents and MCP

How do I connect my assistant to the TimeToPost MCP server?

For Marketers using an MCP-compatible assistant: Connect the authenticated remote MCP endpoint and verify its available tools.

Available now

Start here: MCP connection checklist

Guide

  1. Add https://api.timetopost.co/mcp as a remote MCP server in the client. Input example: the exact HTTPS URL. Output: a saved server entry.
  2. Complete the browser OAuth flow when prompted. Check: do not paste an API key or access token into chat.
  3. Call whoami. Output check: an authenticated account and organization context are returned.
  4. Call get_capabilities. Output check: use only the tool names returned for the authenticated account.
  5. Run list_free_tools as a read-only test. Check: a structured free-tool catalog is returned without attempting a mutation.

Try with your AI assistant

Connect to https://api.timetopost.co/mcp using the client's browser OAuth flow. Call whoami, then get_capabilities, then list_free_tools. Return JSON only as {account:{label,organization}, capabilities:[string], freeTools:[{name,slug}]}. Do not call any mutation, scheduling, approval, or publishing tool.

Tools: whoami, get_capabilities, list_free_tools

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid scheduling and analytics capabilities depend on the authenticated account and the capabilities returned by get_capabilities. Confirm backend plan eligibility before any paid action.

Review pricing

AI agents and MCP

What should I check when my MCP client says OAuth discovery failed?

For Users unable to start the TimeToPost MCP login: Separate an incorrect endpoint from a client or OAuth discovery failure.

Guide only

Start here: OAuth discovery triage card

Guide

  1. Confirm the configured endpoint is exactly https://api.timetopost.co/mcp. Check for missing HTTPS, copied punctuation, or an extra path.
  2. Reconnect and watch for a browser authorization prompt. Output check: a browser flow should open rather than asking for a token in chat.
  3. If discovery still fails, remove the saved server entry and add the endpoint again to clear stale metadata.
  4. Confirm the client supports authenticated remote HTTP MCP servers, not only local command-based servers.
  5. Record the client name, timestamp, endpoint, and exact error text for support. Do not include access tokens or authorization codes.

Try with your AI assistant

Help me diagnose an OAuth discovery failure for the endpoint https://api.timetopost.co/mcp. Input: <client name and exact error text with secrets removed>. Return JSON as {endpointChecks:[string], clientChecks:[string], safeRetrySteps:[string], supportDetails:[string]}. Do not request or expose tokens, authorization codes, passwords, or API keys.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: OAuth troubleshooting applies to the authenticated MCP connection regardless of subscription. A paid plan does not replace the need for a compatible MCP client and successful OAuth authorization.

Review pricing

AI agents and MCP

Why did MCP login fail with invalid_grant after I approved it?

For Users whose browser consent completed but token exchange failed: Recover from a failed OAuth authorization-code exchange without sharing credentials.

Guide only

Start here: Invalid grant recovery guide

Guide

  1. Start a completely new connection attempt instead of reusing the prior authorization code. Check: old codes are not copied into chat.
  2. Complete browser consent promptly because authorization codes are short-lived.
  3. Keep the same client and redirect flow throughout the attempt. A changed redirect URI or client identity can invalidate the exchange.
  4. If the client opened multiple login tabs, close them and retry with one clean authorization flow.
  5. If failure continues, report the client name and sanitized error. Output example: invalid_grant after browser consent, with no code, verifier, or token attached.

Try with your AI assistant

Create a safe recovery checklist for this sanitized MCP OAuth error: <exact error without codes or tokens>. Return JSON as {likelyChecks:[string], freshLoginSteps:[string], secretsNeverToShare:[string], escalationSummary:string}. Do not ask for an authorization code, PKCE verifier, access token, refresh token, password, or API key.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: This is an authentication recovery task, not a paid feature. After connection succeeds, paid capabilities depend on the account's plan and the result of get_capabilities.

Review pricing

AI agents and MCP

I'm logged in, so why is an MCP tool still forbidden?

For Authenticated users receiving a permission error: Distinguish successful authentication from missing capability or organization access.

Available now

Start here: MCP permission checklist

Guide

  1. Call whoami to identify the current account and organization. Check: it is the organization the user intended to access.
  2. Call get_capabilities before retrying the blocked action. Output: the capabilities currently available to that account.
  3. Compare the requested tool with the returned capabilities instead of assuming every listed server tool is authorized.
  4. Treat 401 as missing or invalid authentication and 403 as insufficient permission or scope.
  5. If the organization is wrong, stop and reconnect with the intended account rather than attempting the write in another workspace.

Try with your AI assistant

Call whoami and then get_capabilities. Input: the blocked tool name <tool_name> and intended organization <organization_name>. Return JSON as {authenticated:boolean, currentOrganization:string, organizationMatches:boolean, requestedTool:string, capabilityVisible:boolean, safeNextAction:string}. Do not call the blocked tool or any mutation.

Tools: whoami, get_capabilities

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: If the required capability is paid, confirm backend plan eligibility and organization authorization. Upgrading does not override organization permissions.

Review pricing

AI agents and MCP

How can I see the real MCP tool names instead of asking the model to guess?

For People writing reliable prompts for TimeToPost: Discover authenticated capabilities and use only actual TimeToPost tool names.

Available now

Start here: Verified tool catalog worksheet

Guide

  1. Call whoami to establish the authenticated account and organization.
  2. Call get_capabilities and preserve the returned tool or capability names exactly.
  3. Use list_free_tools for the public-tool subset and list_integrations for available connection types.
  4. Copy exact names such as seo_audit or list_drafts into prompts. Do not translate them into invented names.
  5. If a desired name is absent, classify the workflow as manual or guide-only rather than repeatedly calling a guessed tool.

Try with your AI assistant

Call whoami, get_capabilities, list_free_tools, and list_integrations. Return JSON as {organization:string, capabilities:[string], freeTools:[string], integrations:[string]}. Preserve exact returned names. Do not infer, rename, or invent tools and do not call mutations.

Tools: whoami, get_capabilities, list_free_tools, list_integrations

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid functionality is account-specific. Use get_capabilities and the backend plan check to determine which scheduling, AI, or analytics actions are available.

Review pricing

AI agents and MCP

How do I keep an MCP marketing workflow from loading or calling unnecessary tools?

For Operators using assistants with many connected tools: Select a minimal set of TimeToPost tools for one clearly bounded job.

Available now

Start here: Minimal tool profile worksheet

Guide

  1. Write one bounded job sentence, such as auditing one page and returning three fixes.
  2. Call whoami, then get_capabilities, and select only the returned tools directly required for that job.
  3. Separate read-only work from mutations. Do not include scheduling or publishing tools in a research profile.
  4. Write the expected output fields and stop conditions before making any task-specific call.
  5. After the run, verify that the assistant called only the selected tools and did not substitute similarly named tools.

Try with your AI assistant

Call whoami and then get_capabilities for this job: <one concrete marketing job>. Return JSON as {organization:string, job:string, availableCapabilities:[string], minimalTools:[string], excludedMutationTools:[string], suggestedPrompt:string, outputContract:object}. Build the suggested prompt locally from the returned capabilities. Do not execute the suggested workflow or call any mutation.

Tools: whoami, get_capabilities

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid capabilities remain account-specific. Confirm them with get_capabilities and the backend plan check while continuing to expose only the smallest relevant tool set.

Review pricing

AI agents and MCP

Can my assistant audit one page for basic SEO and GEO issues?

For Content marketers checking a specific public page: Run the existing deterministic page audit and prioritize the top three fixes.

Available now

Start here: SEO and GEO audit

Guide

  1. Provide one publicly reachable page URL. Input example: https://example.com/article.
  2. Run the free audit with the full or gated report disabled. Output: deterministic checks and a score from 0 to 100.
  3. Extract the top three reported issues and preserve the audit's wording rather than claiming a full-site crawl.
  4. For each issue, map the result to one page edit, such as changing a title or adding a missing description.
  5. Recheck the page after deployment and compare the same deterministic checks. Check: do not describe this as measured live rankings.

Open the related free tool

Try with your AI assistant

Use seo_audit on <public_page_url> with the free result only and full=false if supported. Return JSON as {url:string, score:number, checks:[{name,status,evidence}], topFixes:[{issue,action,verification}]}. State that this is a single-page technical audit, not a full crawl or measured ranking report.

Tools: seo_audit

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Use the available single-page audit for its deterministic checks only. It does not crawl a site or provide measured rankings, search volume, or keyword-gap data. Growth may generate configured-topic articles through AutoSEO after backend capability confirmation.

Review pricing

AI agents and MCP

Can my assistant give me directional keyword ideas without claiming exact search volume?

For Writers choosing a topic or phrase: Retrieve free directional keyword ideas with estimated bands and redacted exact metrics.

Available now

Start here: Keyword Snapshot

Guide

  1. Enter one seed phrase. Input example: remote team content calendar.
  2. Run the free snapshot with full=false. Output: directional ideas and estimated bands, not measured exact volume.
  3. Group returned ideas by apparent intent using only the supplied wording and fields.
  4. Choose one primary phrase and two supporting phrases based on relevance to the intended page.
  5. Add a note to the brief that exact volume, difficulty, CPC, and trend data were not included in the free result.

Open the related free tool

Try with your AI assistant

Use keyword_snapshot for the seed phrase <seed_keyword> with the free result and full=false if supported. Return JSON as {seed:string, ideas:[{keyword,estimatedBand,intent}], selected:{primary:string,supporting:[string]}, limitation:string}. The limitation must say the free output is directional and does not provide measured exact search volume.

Tools: keyword_snapshot

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Treat the snapshot as directional only. Do not promise measured live search volume, difficulty, CPC, or trends. Use keyword_research or keyword_add_to_plan only if get_capabilities returns those exact tools and the backend confirms access.

Review pricing

AI agents and MCP

Can my assistant check whether one AI model mentions my brand?

For Brand and content teams checking answer-engine visibility: Run one source-labeled AI model probe and report whether the brand appeared.

Available now

Start here: GEO Visibility Check

Guide

  1. Provide the exact brand name and one natural-language prompt. Input example: Which services help with <problem>?
  2. Run one free model probe. Output: whether the supplied brand appeared in that response.
  3. Record the model or source label returned by the tool and the exact prompt used.
  4. Classify the result only as appeared or did not appear for this probe. Do not convert it into a citation rank or market share.
  5. Repeat later with the same prompt if monitoring manually, and keep each probe separate rather than claiming statistical coverage.

Open the related free tool

Try with your AI assistant

Use geo_visibility_check with brand <exact_brand_name> and prompt <exact_question>. Return JSON as {brand:string, prompt:string, sourceLabel:string, appeared:boolean, evidence:string, limitation:string}. The limitation must state that this is one model probe, not citation ranking, repeated visibility measurement, or competitor analysis.

Tools: geo_visibility_check

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: The gated report adds multiple prompts, repeated mentions, and competitor comparisons. It should not be represented as part of the free single-probe result.

Review pricing

AI agents and MCP

What is a reasonable public best time to post before I have account analytics?

For Marketers without enough account-specific engagement history: Retrieve a source-labeled public timing curve as a starting point.

Available now

Start here: Best Time to Post calculator

Guide

  1. Choose the supported platform context and an IANA timezone.
  2. Run the public timing calculation. Treat the result as a source-labeled aggregate baseline, not account-specific analytics.
  3. Select two candidate windows from the returned curve. For future dates, convert them with a date-aware IANA timezone converter and verify daylight-saving behavior manually; the current calculator uses a current-date UTC offset and is not reliable for arbitrary future-date conversion.
  4. Place the verified windows into a manual test plan with comparable post types.
  5. After several posts, compare actual account engagement and stop treating the public curve as personalized advice.

Open the related free tool

Try with your AI assistant

Use best_time_teaser for <platform_context> and <timezone>. Return JSON as {sourceLabel:string, timezone:string, candidateWindows:[{day,start,end}], personalization:false, conversionCaveat:string, testPlan:[string]}. State that future dates require date-aware IANA timezone conversion and manual DST verification. Do not claim these times come from the user's account analytics.

Tools: best_time_teaser

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: A downloadable calendar may be available through the gated flow, but future event times must be verified with date-aware IANA timezone conversion because the current calculator uses a current-date offset. Account analytics require the relevant connection, scopes, data, and capability.

Review pricing

AI agents and MCP

Can my assistant find posting times from my connected account data?

For Authenticated customers with connected account analytics: Retrieve account-specific optimal times and separate them from public timing benchmarks.

Guide only

Start here: Optimal-time review template

Guide

  1. Call whoami and confirm the intended organization before requesting account analytics.
  2. Call get_capabilities and verify that get_optimal_times is returned for the account.
  3. Confirm that the requested account is connected, the required scopes are present, and sufficient analytics data is available. If any condition is missing, stop without promising personalized results.
  4. If supported, request the account and timezone and preserve the tool's returned provenance and limitations.
  5. Build a test calendar manually. Do not schedule or publish, and verify future dates with a date-aware IANA timezone conversion.

Try with your AI assistant

Call whoami, then get_capabilities. Confirm the organization equals <organization_name>. Only if get_optimal_times is returned and the requested account is connected with required scopes and data, call it for <account_or_channel> and <timezone>. Return JSON as {organization:string, account:string, timezone:string, windows:[object], provenance:string, prerequisitesMet:boolean, limitations:[string], nextTest:[string]}. Do not promise results when prerequisites are missing, and do not schedule, approve, or publish anything.

Tools: whoami, get_capabilities, get_optimal_times

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Account-specific timing is conditional on the connected account, required scopes, sufficient data, get_capabilities, and backend plan eligibility. Scheduling is a separate user-confirmed action.

Review pricing

AI agents and MCP

How can I compare recent engagement with the previous period using my connected data?

For Social teams reviewing account performance: Retrieve engagement summaries for two periods and calculate transparent differences.

Guide only

Start here: Period comparison worksheet

Guide

  1. Define two equal date ranges. Input example: the last seven complete days and the preceding seven days.
  2. Call whoami and get_capabilities, then confirm the intended organization and read access.
  3. Call get_engagement_summary separately for each period using the same account and dimensions.
  4. Calculate current minus previous for fields actually returned. Output check: absent metrics remain null rather than being invented.
  5. Flag possible outliers for human review, but do not claim causation from a summary alone.

Try with your AI assistant

Call whoami, then get_capabilities, and confirm organization <organization_name>. If confirmed, use get_engagement_summary for <account_id>, current range <current_start/current_end>, and previous range <previous_start/previous_end>. Return JSON as {account:string, current:object, previous:object, deltas:object, missingMetrics:[string], possibleOutliers:[object], causalClaims:false}. Do not mutate, schedule, approve, or publish.

Tools: whoami, get_capabilities, get_engagement_summary

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Connected-account comparison is conditional on the account connection, required scopes and metrics, get_capabilities, and backend plan eligibility. Keep the workflow read-only.

Review pricing

AI agents and MCP

Which of my posts performed best without relying on generic advice?

For Creators and marketers with connected post analytics: Read actual post metrics and rank posts using a user-selected metric.

Guide only

Start here: Post-metric analysis template

Guide

  1. Choose a date range and one primary metric from the metrics the account actually exposes.
  2. Call whoami and get_capabilities, then confirm the organization before reading post data.
  3. Use list_posts to identify posts in the range and get_post_metrics for the selected posts.
  4. Rank only on the selected metric and show raw values. Check: do not combine unlike metrics into an unexplained score.
  5. Read the top posts with get_post and note repeated topics or formats as hypotheses to test, not proven causes.

Try with your AI assistant

Call whoami, then get_capabilities, and confirm organization <organization_name>. Read posts for <account_id> in <date_range>, retrieve available metrics, and rank by <one_metric>. Return JSON as {metric:string, ranked:[{postId,value,textExcerpt}], unavailableMetrics:[string], repeatedPatterns:[string], caveat:string}. Do not create, edit, schedule, approve, or publish anything.

Tools: whoami, get_capabilities, list_posts, get_post_metrics, get_post

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Connected post analysis is conditional on the account connection, required scopes and returned metrics, get_capabilities, and backend plan eligibility. Analysis does not queue a post.

Review pricing

AI agents and MCP

Can my assistant create social drafts without scheduling or publishing them?

For Editors who want assistance writing but retain publication control: Create draft records for a confirmed organization and leave them unapproved and unscheduled.

Guide only

Start here: Draft-only workflow card

Guide

  1. Prepare a brief with topic, audience, factual inputs, prohibited claims, and desired length. Input example: a 240-character X post about a published article.
  2. Call whoami and get_capabilities, then show the organization and ask the user to confirm it before creating anything.
  3. Use create_drafts only after confirmation. Output: draft IDs and text, with no schedule time or publication action.
  4. Use list_drafts to verify the new records exist and remain drafts.
  5. Return the drafts for human editing. Check: do not call approve_draft, schedule_post, publish_post, or publish_thread.

Try with your AI assistant

First call whoami, then get_capabilities. Show the organization and require explicit confirmation that it equals <organization_name>. After confirmation, use create_drafts with brief {topic:<topic>, audience:<audience>, facts:<verified_facts>, prohibitedClaims:<claims>, channel:'X', count:<count>}. Then call list_drafts to verify them. Return JSON as {organization:string, drafts:[{id,text,status}], scheduled:false, approved:false, published:false}. Do not call approve_draft, reject_draft, schedule_post, publish_post, or publish_thread.

Tools: whoami, get_capabilities, create_drafts, list_drafts

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Draft creation requires the returned capability and backend plan eligibility. Keep drafts unapproved, unscheduled, and unpublished until a separate human-confirmed action. Public publishing support is X only.

Review pricing

AI agents and MCP

How can I review pending drafts without letting the assistant approve them?

For Editors responsible for reviewing generated content: List draft records and produce a human review sheet without changing statuses.

Available now

Start here: Draft review rubric

Guide

  1. Call whoami and confirm the intended organization before reading drafts.
  2. Call get_capabilities and verify list_drafts is available.
  3. List the relevant drafts and retrieve individual details with get_post when a record is linked to a post object.
  4. Score each draft manually for factual support, audience fit, prohibited claims, length, and required edits.
  5. Return a review recommendation only. Check: no approve_draft, reject_draft, scheduling, or publishing call is made.

Try with your AI assistant

Call whoami, then get_capabilities, and confirm organization <organization_name>. Use list_drafts for <status_or_filter>. Read details only as needed. Return JSON as {drafts:[{id,text,status,checks:{facts,audience,claims,length},recommendedEdits:[string],recommendation:'review'|'revise'}]}. Do not approve, reject, schedule, publish, or otherwise mutate any record.

Tools: whoami, get_capabilities, list_drafts, get_post

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Paid plans can support subsequent X scheduling, but approval and scheduling should remain separate explicit actions after the reviewer edits the draft.

Review pricing

AI agents and MCP

Can my assistant turn one source URL into drafts while keeping them unpublished?

For Content teams repurposing an existing article or source: Create draft records from a source and verify processing status without publishing.

Guide only

Start here: Source-to-draft brief

Guide

  1. Provide one source URL and a brief containing audience, channel, factual constraints, and number of drafts.
  2. Call whoami and get_capabilities, show the organization, and require explicit confirmation before creating records.
  3. Use create_posts_from_source after confirmation, with output constrained to drafts.
  4. Use get_source_status until the source reports a terminal state, then use list_drafts to inspect the resulting drafts.
  5. Check each draft against the source and return unsupported statements for removal. Do not approve, schedule, or publish.

Try with your AI assistant

Call whoami and get_capabilities. Show the organization and require confirmation that it equals <organization_name>. Then use create_posts_from_source with {sourceUrl:<url>, audience:<audience>, channel:'X', count:<count>, outputMode:'draft'}. Check get_source_status and list_drafts. Return JSON as {source:string, status:string, drafts:[{id,text,sourceSupported:boolean,unsupportedClaims:[string]}], approved:false, scheduled:false, published:false}. Do not approve, schedule, or publish.

Tools: whoami, get_capabilities, create_posts_from_source, get_source_status, list_drafts

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Source-based draft creation requires the exact returned capabilities and backend plan eligibility. Keep outputs as X drafts for human source checking; approval, scheduling, and publishing are separate actions.

Review pricing

AI agents and MCP

How do I prepare an X scheduling receipt before anything is queued?

For Teams that want a final check before scheduling an X post: Assemble a read-only receipt containing the intended account, final text, media, and time.

Available now

Start here: X scheduling receipt

Guide

  1. Call whoami and get_capabilities, then confirm the organization and that X scheduling is available.
  2. Use list_drafts and get_post to read the selected draft without changing it.
  3. If media is referenced, record the existing media identifiers and expected attachment order without uploading new media.
  4. Build a receipt with organization, account, final text, media IDs, timezone, and scheduled timestamp.
  5. Compare the receipt with the original instruction. Stop on an account, audience, channel, text, or date mismatch. Do not call schedule_post.

Try with your AI assistant

Call whoami, then get_capabilities, and confirm organization <organization_name>. Read draft <draft_id> and scheduler_status for the intended X account <account_id>. Return JSON as {organization:string, account:string, network:'X', draftId:string, finalText:string, mediaIds:[string], scheduledAt:<ISO8601>, timezone:string, mismatches:[string], readyForHumanDecision:boolean}. Do not upload, approve, schedule, publish, or mutate anything.

Tools: whoami, get_capabilities, list_drafts, get_post, scheduler_status

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Starter at $12 per month supports up to 30 X posts, and Pro at $49.99 per month includes unlimited scheduling. The actual schedule_post call must remain a separate explicit action after reviewing the receipt.

Review pricing

AI agents and MCP

How do I avoid duplicate X posts after a scheduling or publishing error?

For Operators handling an uncertain X scheduling result: Read scheduler and post state before deciding whether any retry is necessary.

Available now

Start here: No-duplicate retry checklist

Guide

  1. Stop automatic retries when a schedule or publish result is uncertain.
  2. Call whoami and get_capabilities, then confirm the intended organization.
  3. Use scheduler_status and list_posts to look for the job, matching text, account, and time window.
  4. If a matching queued or published post exists, record it and do not retry.
  5. If no match exists, return the evidence and require a fresh human decision. Do not call schedule_post or publish_post in the diagnostic workflow.

Try with your AI assistant

Call whoami, then get_capabilities, and confirm organization <organization_name>. Check scheduler_status and list_posts for account <account_id>, text fingerprint <text_or_hash>, and window <start/end>. Return JSON as {matchingJobs:[object], matchingPosts:[object], state:'queued'|'published'|'failed'|'not_found'|'uncertain', retryRecommended:false, humanDecisionRequired:boolean}. Do not retry, schedule, cancel, approve, or publish.

Tools: whoami, get_capabilities, scheduler_status, list_posts, get_post

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Scheduling is available on paid plans, including up to 30 X posts on Starter and unlimited scheduling on Pro. A retry should be a separate human-confirmed action only after the read-back shows no duplicate.

Review pricing

Analytics and conversion

One post went viral. How do I calculate the engagement rate of a typical post?

For Creators preparing a media kit or responding to a sponsor: Calculate per-post and median engagement rates from user-supplied metrics using one consistent denominator basis.

Available now

Start here: Median engagement calculator

Guide

  1. Choose one basis for the entire batch: followers, impressions, or reach. The calculator does not retrieve platform data.
  2. Prepare at least five posts. For each post, enter any available likes, comments, shares, and saves, plus its denominator. Use the same basis for every post.
  3. Example follower-based input: 420 likes, 35 comments, denominator 12500, basis followers. With omitted metrics treated as zero, the rate is 3.64 percent.
  4. In the web UI, calculate one post at a time. For up to 100 posts, use the MCP batch tool and review the complete input before approving calculation.
  5. Read perPost rate for each row, medianRate for the typical post, and aggregateRate for total supplied engagements divided by total supplied denominators.
  6. Disclose the selected basis and confirm denominator consistency. Do not present a universal good or bad benchmark.

Open the related free tool

Try with your AI assistant

After I approve the complete user-supplied posts array, call calculate_engagement with {"posts":{{posts_json}}}. Each row must contain denominator and one shared basis of followers, impressions, or reach, with optional likes, comments, shares, and saves. Return the tool's perPost, medianRate, and aggregateRate results, state the basis and metric definition, and note that no platform data was retrieved. Do not post, publish, or add universal benchmarks.

Tools: calculate_engagement

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Pro includes connected-account analytics and post metrics that can support recurring X performance reviews.

Review pricing

Analytics and conversion

What sponsorship quote should I calculate from my followers and my own price per thousand?

For Creators preparing a quote for one sponsored post: Calculate a base quote and an engagement-adjusted quote using only user-supplied pricing assumptions.

Guide only

Start here: Sponsor quote formula sheet

Guide

  1. Enter followers and your own price per 1,000 followers. Example: 18000 followers and $20 per 1,000.
  2. Calculate the base as followers divided by 1,000 times the supplied price. The example base is $360.
  3. Calculate engagement as (likes + comments + shares) divided by followers times 100.
  4. Define your own editable uplift bands before calculating. Example: 0 to 2 percent adds 0 percent, 2 to 4 adds 10 percent, and above 4 adds 20 percent.
  5. Multiply the base by 1 plus the selected uplift. Output base, engagement rate, matched band, uplift, and adjusted quote.
  6. Check that the result labels all bands as user assumptions and does not present them as market rates.

Try with your AI assistant

Calculate a sponsor quote from {{followers}}, {{price_per_thousand}}, {{likes}}, {{comments}}, {{shares}}, and editable bands {{bands_json}}. Return JSON with base_quote, engagement_rate, matched_band, uplift_percent, adjusted_quote, currency, and assumption_notice. Do not invent pricing bands or market benchmarks.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: If the backend confirms eligibility, an approved X announcement may be scheduled separately. This worksheet does not establish market pricing or recommend a sponsorship rate.

Review pricing

Analytics and conversion

Which of two creators has the stronger engagement rate using the same formula?

For Small businesses comparing two creator proposals: Compare two user-supplied creator metric summaries with one transparent engagement formula and denominator basis.

Available now

Start here: Creator comparison calculator

Guide

  1. Collect a comparable metric summary for each creator. The calculator does not retrieve or scrape creator data.
  2. For each creator, enter likes, comments, shares, and saves as available, plus a denominator and one shared basis such as followers.
  3. Submit the two rows together through MCP. The web UI supports only one row per calculation, so its separate results must be compared manually.
  4. Review each perPost rate. The higher value indicates the stronger rate only under the supplied metrics, denominator basis, and sampling method.
  5. Use aggregateRate only as the combined engagements divided by combined denominators. It is not an average creator score.
  6. Report both inputs, both rates, the shared basis, and sample limitations. Do not infer pricing or apply a universal benchmark.

Open the related free tool

Try with your AI assistant

After I approve the two user-supplied creator rows, call calculate_engagement with {"posts":{{creators_json}}}. Both rows must use the same basis and comparable supplied metrics. Return perPost, medianRate, and aggregateRate, then identify the higher perPost rate by input order. State that the tool did not retrieve profile data. Do not scrape, estimate fees, post, or add benchmarks.

Tools: calculate_engagement

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Pro analytics can be used for connected X account performance analysis, while external creator figures still need to be supplied by the user.

Review pricing

Analytics and conversion

Should I calculate engagement separately for still posts and short videos?

For Creators publishing both still posts and short videos: Calculate median and aggregate engagement separately for user-labeled format groups using a consistent basis.

Available now

Start here: Format engagement calculator

Guide

  1. Label each user-supplied post with a format such as still or short-video. The calculator does not retrieve posts or infer formats.
  2. Choose one denominator basis for all compared groups: followers, impressions, or reach. Enter optional engagement metrics and the applicable denominator for every post.
  3. Create one batch per format and keep labels consistent. Each MCP call can calculate up to 100 posts; the web UI accepts one post at a time.
  4. Run calculate_engagement separately for each format group. Do not combine reel and short-video unless you intentionally normalize those labels first.
  5. Compare medianRate and aggregateRate across groups while reporting each group's row count and shared basis.
  6. Treat small samples cautiously, disclose missing metrics, and do not use a universal format benchmark.

Open the related free tool

Try with your AI assistant

After I approve the user-supplied posts grouped by format, call calculate_engagement once per format with each group's posts array. All compared groups must use the same basis and metric definition. Return each format's perPost, medianRate, aggregateRate, and row count. State that formats and metrics were supplied by the user and no platform data was retrieved. Do not post or add benchmarks.

Tools: calculate_engagement

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Pro analytics can support analysis of connected X post metrics, with format labels supplied or maintained by the user.

Review pricing

Analytics and conversion

Which engagement rate should I report when I have followers and impressions?

For Creators and sponsors comparing different engagement formulas: Calculate and label follower-based and impression-based rates from user-supplied metrics without selecting a universal benchmark.

Available now

Start here: Engagement definition calculator

Guide

  1. Supply the engagement metrics yourself because the calculator does not retrieve platform data. Decide whether likes, comments, shares, and saves are available consistently.
  2. Create one followers batch with each row's follower denominator and basis followers.
  3. Create a separate impressions batch with the same engagement metrics, each row's impression denominator, and basis impressions. Do not mix bases in one call.
  4. Use MCP for batches of up to 100 posts. The web UI calculates only one post at a time.
  5. Compare the returned perPost, medianRate, and aggregateRate values, clearly labeling the numerator metrics and denominator basis for each result.
  6. Do not choose a preferred formula solely because it is larger, and do not describe any percentage as universally good or bad.

Open the related free tool

Try with your AI assistant

After I approve both user-supplied arrays, call calculate_engagement separately with {"posts":{{followers_posts_json}}} and {"posts":{{impressions_posts_json}}}. The first array must use basis followers and the second basis impressions, with the same disclosed engagement metrics where possible. Return and label each call's perPost, medianRate, and aggregateRate. State that no platform data was retrieved. Do not post, select a universal formula, or add benchmarks.

Tools: calculate_engagement

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Pro analytics and get_post_metrics can support a consistent connected-X reporting workflow when the account exposes the required fields.

Review pricing

Analytics and conversion

Can I check campaign links for inconsistent source names and capitalization?

For Founders and freelancers tagging links manually: Lint pasted campaign URLs for missing fields, mixed case, spaces, and user-defined naming inconsistencies.

Guide only

Start here: UTM lint checklist

Guide

  1. Paste the URLs and define your allowed source and medium values, such as x and organic_social.
  2. Parse every URL and check for utm_source, utm_medium, and utm_campaign.
  3. Flag uppercase characters and unencoded spaces because values are case-sensitive and spaces require encoding.
  4. Compare values against your allowed list and flag near-duplicates, such as two names you use for the same source.
  5. Output each issue with its URL, issue code, current value, and proposed corrected URL.
  6. Review every proposed replacement so the destination path and non-UTM query parameters remain unchanged.

Try with your AI assistant

Lint URLs {{urls_json}} against allowed_sources {{allowed_sources_json}} and allowed_mediums {{allowed_mediums_json}}. Return JSON issues with url, code, parameter, current_value, suggested_value, and corrected_url. Preserve destination paths and non-UTM parameters. Do not publish.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: For an X draft, an authenticated MCP workflow can call whoami, get_capabilities, confirm the organization, create a draft, and leave it unapproved for review.

Review pricing

Analytics and conversion

Which campaign parameters are missing from my tagged link?

For People creating their first campaign link: Check which documented campaign parameters are present and identify missing core tags.

Guide only

Start here: Required UTM checker

Guide

  1. Paste the final URL you intend to use, including its query string.
  2. Parse and list utm_source, utm_medium, utm_campaign, utm_id, and utm_source_platform as present or missing.
  3. Treat source, medium, and campaign as the core set for this checklist and explain that partial tagging can contribute to not-set reporting.
  4. Create an example URL with placeholders only for missing core values, such as YOUR_MEDIUM.
  5. Output the present list, missing list, placeholder URL, and a note that parameter order does not matter.
  6. Replace every placeholder and test the final link before publishing.

Try with your AI assistant

Inspect URL {{url}} for utm_source, utm_medium, utm_campaign, utm_id, and utm_source_platform. Return JSON with present, missing, missing_core, and placeholder_url. Preserve existing parameters and do not invent campaign values.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: An authenticated X drafting workflow can validate the link before creating a draft, after whoami, get_capabilities, and organization confirmation.

Review pricing

Analytics and conversion

Should separate social posts share one campaign and use content tags for each post?

For Operators whose acquisition report has become one campaign row per post: Keep one promotion campaign while differentiating individual posts with content parameters.

Available now

Start here: Post content campaign URL builder

Guide

  1. Enter up to 20 HTTP or HTTPS destination records with the same approved source, medium, and campaign.
  2. Assign each planned post a unique content value, such as launch-hook-a or launch-hook-b.
  3. Review the records for duplicate content values before calculation. The builder creates URLs but does not decide whether identifiers are semantically unique.
  4. Run the builder. It preserves existing query parameters and fragments, refuses credential-bearing or non-HTTP URLs, and performs no fetch.
  5. Output a mapping of your post IDs to the returned URLs. Keep the post ID separately if it differs from the content value.
  6. Review every URL before use. The tool does not publish, schedule, or verify the destination.

Open the related free tool

Try with your AI assistant

After I approve the complete post records, call build_campaign_urls with {"records":{{records_json}}}. Each record must contain the approved url, source, medium, shared campaign, and unique content value. Return the generated URLs in input order and separately report any duplicate content values found in the approved input. State that no destination was fetched and nothing was posted or scheduled.

Tools: build_campaign_urls

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: After whoami, get_capabilities, and organization confirmation, create_drafts can save X copy with planned tagged URLs as drafts only.

Review pricing

Analytics and conversion

Which campaign parameters disappeared after my link redirected?

For People checking links opened through shorteners or in-app browsers: Compare a planned URL with the final address copied after a real click.

Guide only

Start here: UTM redirect diff sheet

Guide

  1. Copy the exact planned URL from the post or message before clicking it.
  2. Open the link in the target environment, wait for redirects to finish, and copy the final address-bar URL.
  3. Parse UTM parameters from both URLs and classify each as kept, lost, added, or changed.
  4. Example: planned utm_source=x and landed with no utm_source should be reported as lost, not blank success.
  5. Output kept names, lost names, changed values, and a corrected planned URL for another test.
  6. Repeat the click after correction because this comparison cannot guarantee that a platform or redirector will preserve tags.

Try with your AI assistant

Compare planned URL {{planned_url}} with landed URL {{landed_url}}. Return JSON with kept, lost, added, changed entries containing name, planned_value, and landed_value, plus corrected_planned_url. Do not claim that any platform preserves parameters.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: For connected X content, get_post can retrieve the saved post record for review, while redirect testing still requires the user's final clicked URL.

Review pricing

Analytics and conversion

How can I compare a product pin with an email signup pin fairly?

For Sellers rotating the top destination on an existing profile page: Compare two periods using the same profile-click, pin-click, order, and signup fields.

Guide only

Start here: Profile pin experiment sheet

Guide

  1. Choose two non-overlapping periods and record their start date, end date, and pin type.
  2. For each period, enter profile clicks, pin clicks, orders, and signups from your own records.
  3. Calculate pin click share as pin clicks divided by profile clicks.
  4. Calculate orders per profile click and signups per profile click separately.
  5. Set a minimum profile-click threshold before reviewing results. If either period is below it, label the comparison insufficient.
  6. Output both period rows and metric differences without declaring that product or signup pins win generally.

Try with your AI assistant

Compare periods {{periods_json}} using minimum profile clicks {{min_clicks}}. Return JSON rows with pin_click_share, orders_per_profile_click, signups_per_profile_click, sufficient_sample, and differences. Do not generalize beyond the supplied periods.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Tagged X posts can be scheduled on Starter to support a controlled traffic period, but TimeToPost does not rotate external profile links.

Review pricing

Analytics and conversion

How do I compare a profile-link call to action with a comment-keyword call to action?

For Creators testing two response paths with their own posts: Calculate profile-click and keyword-comment response rates from user-supplied counts.

Guide only

Start here: CTA path comparison sheet

Guide

  1. List each tested post with impressions, profile clicks, keyword comments, messages sent, landing arrivals, and optional sales.
  2. Calculate profile clicks per 100 impressions and keyword comments per 100 impressions.
  3. Calculate landing arrivals per 100 impressions as a separate downstream measure.
  4. Only calculate sales rates when sales were entered; otherwise leave them blank.
  5. Output aggregate rates, per-post rates, and the number of posts in each path.
  6. Check that results use your own counts and do not reuse conversion percentages reported by other accounts.

Try with your AI assistant

Analyze CTA test rows {{posts_json}}. Return JSON with profile_clicks_per_100, keyword_comments_per_100, landing_arrivals_per_100, optional sales_per_100, per_post rows, and post_count. Leave unavailable rates null and add no external benchmarks.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: TimeToPost has create_dm_funnel and related authenticated workflow tools; any mutation must begin with whoami, get_capabilities, organization confirmation, and creation as a draft only without activation or sending.

Review pricing

Analytics and conversion

What should I change my profile link to while one post is getting attention?

For Sellers with one outbound profile URL and a currently active post: Prepare a temporary tagged destination, short profile text, and manual revert date.

Guide only

Start here: Spike link swap checklist

Guide

  1. Enter the usual URL, spike-specific URL, traffic source, post ID, and number of days for the temporary change.
  2. Keep utm_campaign tied to the offer and set utm_content to the post ID followed by -spike.
  3. Generate the tagged spike URL without altering required non-UTM query parameters.
  4. Write profile text under 160 characters that names the immediate destination and action.
  5. Calculate the revert date from the start date and selected duration.
  6. Output the tagged URL, profile text, revert date, and manual restore checklist; do not claim the profile can be edited automatically.

Try with your AI assistant

Prepare a temporary profile-link plan using usual_url {{usual_url}}, spike_url {{spike_url}}, source {{source}}, campaign {{campaign}}, post_id {{post_id}}, start_date {{start_date}}, and days {{days}}. Return JSON with tagged_url, profile_text under 160 characters, revert_on, and restore_steps. Do not edit any profile.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Starter can schedule an approved X follow-up using the spike-specific tagged URL; editing profiles on other networks is not an available publishing capability.

Review pricing

Analytics and conversion

Can you turn my article into an X thread, caption, pull quote, and email teaser?

For Founders and creators repurposing an existing long-form article: Create distinct derivative drafts and count characters for every X post.

Guide only

Start here: Article derivative prompt

Guide

  1. Paste the article text or provide a source URL, then specify the desired X thread length.
  2. Extract the central claim, three supporting points, one quotable sentence, and one email takeaway before drafting locally.
  3. Write the X thread so each post advances the argument, then draft a separate caption, pull quote, and email teaser.
  4. Use the basic character counter only as a Unicode code-point count. It is not X-weighted, URLs are not fixed at 23 characters, and emoji grapheme clusters may count differently.
  5. Paste every X post into the official X composer for final validation. Keep longer text clearly labeled rather than silently cutting it, and remove claims unsupported by the source.

Try with your AI assistant

Using source text or URL {{source}}, draft locally an X thread of {{x_post_count}} posts plus a caption, pull_quote, and email_teaser. Return JSON with x items containing text and basic_codepoint_count, plus caption, pull_quote, email_teaser, source_claim_checks, and validation_notice. The validation_notice must say the count is not X-weighted, URL weighting is not implemented, emoji graphemes can differ from code points, and every post must be checked in the official X composer. Do not create records, approve, schedule, publish, or send.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: After human review, eligible X drafts may be created or scheduled only through capabilities returned by get_capabilities and a successful backend plan check. TimeToPost does not import arbitrary pasted article text through AutoSEO; AutoSEO generates configured-topic articles from site configuration.

Review pricing

Analytics and conversion

How do I give each article derivative its own tagged link?

For People distributing one article through social and email derivatives: Generate a shared campaign link set with a distinct format identifier for each derivative.

Available now

Start here: Derivative campaign URL matrix

Guide

  1. Prepare up to 20 derivative records using the canonical HTTP or HTTPS article URL and one approved campaign value.
  2. For each derivative, enter its source and medium, then use a unique format label such as x-thread or newsletter-hero as content.
  3. Review source and medium carefully so email and social derivatives do not share the wrong channel values.
  4. Run the builder. It preserves existing query parameters and fragments, refuses URLs with credentials or non-HTTP protocols, and performs no network fetch.
  5. Map each derivative label to the returned URL and confirm campaign consistency across the set.
  6. Test destinations separately before distribution. The tool creates links only and does not publish derivatives.

Open the related free tool

Try with your AI assistant

After I approve the complete derivative records, call build_campaign_urls with {"records":{{records_json}}}. Each record must contain the canonical url, its approved source and medium, the shared campaign, and its derivative label as content. Return generated URLs in input order and any validation refusals. State that query parameters and fragments were preserved, no destination was fetched, and nothing was published.

Tools: build_campaign_urls

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: An approved X derivative can be drafted and scheduled with its own tagged URL; other format links remain copy-ready exports.

Review pricing

Analytics and conversion

Which past posts are worth rewriting, and which spike was a one-off?

For Creators choosing which past posts to repurpose: Rank user-supplied posts by link-click rate and separately flag engagement outliers.

Guide only

Start here: Repurpose ranking worksheet

Guide

  1. Prepare rows with post ID, impressions, likes, replies, reposts, and link clicks.
  2. Set a minimum impression threshold before ranking, such as 500 impressions.
  3. Calculate click rate as link clicks divided by impressions and engagement rate as likes plus replies plus reposts divided by impressions.
  4. Calculate the median engagement rate across eligible rows and flag posts above twice that median as outliers.
  5. Rank eligible posts by click rate, but label rows with no recorded click data as unranked rather than zero-performing.
  6. Output ranked rows, outlier flags, threshold, formulas, and excluded IDs, then review outliers separately from repeatable click performers.

Try with your AI assistant

First call whoami, then get_capabilities, and confirm the organization before reading connected X data. For post IDs {{post_ids}} and minimum impressions {{min_impressions}}, use only fields actually returned by get_post_metrics and get_engagement_summary. Return JSON with available_fields, ranked rows containing post_id, click_rate if available, engagement_rate, outlier, excluded_reason, plus formulas and median_engagement. Do not invent missing click metrics and do not create, schedule, approve, or publish anything.

Tools: whoami, get_capabilities, get_post_metrics, get_engagement_summary

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Connected X performance review is conditional on account connection, scopes, returned metrics, get_capabilities, and backend plan eligibility. Any rewrite should be created later as a separate reviewed draft.

Review pricing

Analytics and conversion

What are my CPM, CPC, CPA, and CTR from spend, impressions, clicks, and conversions?

For Small businesses calculating basic promotion economics: Calculate four standard rates from user-supplied campaign totals.

Guide only

Start here: Campaign cost formula card

Guide

  1. Enter spend, currency, impressions, clicks, and conversions. Example: $500, 100000 impressions, 2000 clicks, and 50 conversions.
  2. Calculate CPM as spend divided by impressions times 1,000. The example CPM is $5.
  3. Calculate CPC as spend divided by clicks and CPA as spend divided by conversions. The example values are $0.25 and $10.
  4. Calculate CTR as clicks divided by impressions times 100. The example CTR is 2 percent.
  5. Return null with a denominator-zero explanation whenever impressions, clicks, or conversions are zero.
  6. Output the four values and formulas without adding industry benchmarks or performance labels.

Try with your AI assistant

Using spend {{spend}}, currency {{currency}}, impressions {{impressions}}, clicks {{clicks}}, and conversions {{conversions}}, return JSON with cpm, cpc, cpa, ctr_percent, formulas, and null_reasons. Use null for zero denominators. Do not add benchmarks.

Ask the agent to call get_capabilities before any mutation and keep human review where the workflow requires it.

When you need more: Connected X performance may be reviewed alongside these manually calculated rates only when the account, scopes, returned metrics, capabilities, and backend plan eligibility support it.

Review pricing