> ## Documentation Index
> Fetch the complete documentation index at: https://docs.visibility.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Opportunities

> Review the technical, on-page, content, backlink and AI citation wins Visibility finds for a project, and turn any of them into a Task.

Every Project has an **Opportunities** page: a running list of things worth doing for that website, gathered from your audit agents, your Google Search Console data and a weekly comparison against your competitors. Nothing on the page acts on its own. You decide which rows become Tasks, which to park, and which to ignore.

Open it from the project sidebar under **Opportunities**. The page has five tabs — **Technical**, **On-page**, **Content**, **Backlinks** and **AI Citations** — and opens on Technical.

<Frame caption="The Opportunities page: five tabs, a status and priority filter bar, and one row per finding.">
  <img src="https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/opportunities.jpg?fit=max&auto=format&n=-1GTvD6OGO5y12MA&q=85&s=d7e84bc072e277d0fe1b5fdf21981b77" alt="The Opportunities page of a project showing the Technical tab with prioritised findings" width="1568" height="782" data-path="images/opportunities.jpg" />
</Frame>

<Note>
  If **Opportunities** is missing from a project's sidebar, an admin can switch it back on under Project Settings → **Features** → **Opportunities**. It is on by default for every new project.
</Note>

## Where each tab gets its rows

The five tabs are filled in three different ways. Knowing which is which tells you what to set up and when to expect new rows.

| Tab              | A row is…                                                                       | Filled by                                                                                               | New rows arrive                                    |
| ---------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| **Technical**    | A technical finding on the site                                                 | The **Technical SEO Audit Agent**, while it works a recurring audit Task                                | After each run of that Task (weekly by default)    |
| **On-page**      | An on-page finding for a specific page                                          | The **On-Page SEO Audit Agent**, while it works a recurring audit Task                                  | After each run of that Task (weekly by default)    |
| **Content**      | A search query or topic you should write for or improve                         | A weekly Google Search Console scan, merged with topics your competitors rank on; agents can log extras | Weekly, or when you click **Sync now**             |
| **Backlinks**    | A site that links to your competitors but not to you                            | Automatic gap detection against your competitor domains                                                 | Weekly, or when you click **Run now** in Schedules |
| **AI Citations** | A source website that AI assistants cite for your competitors but never for you | Automatic gap detection built on your AI Visibility results                                             | Weekly, or when you click **Run now** in Schedules |

## Technical and On-page

These two tabs are filled by agents. An audit agent works a recurring Task, and every finding it records shows up as a row. Hiring the agent is not enough on its own — findings only arrive once the Task has run.

### Set up the audit

<Steps>
  <Step title="Hire the audit agent if you need to">
    If the tab shows **No agent can find technical opportunities yet** (or the on-page equivalent), click **Hire Technical SEO Audit Agent** or **Hire On-Page SEO Audit Agent** and complete the hire. Depending on your permissions the agent is added straight away, or the request lands in the [Inbox](/inbox-and-approvals) as an Agent hire Approval for an admin to accept. See [Agents](/agents) for how hiring works.
  </Step>

  <Step title="Create the recurring audit Task">
    Click **Create a Task** in the page header. The New task dialog opens pre-filled: the title (**Run a technical SEO audit** or **Run an on-page SEO audit**), a brief describing what to audit, the matching category, the capable agent already assigned, and **Recurring** switched on with a weekly schedule — Mondays at 09:00 UTC by default.
  </Step>

  <Step title="Adjust and confirm">
    Change anything you like — the day, the brief, the agent — then click **Create task**.
  </Step>

  <Step title="Wait for the first run">
    Findings land in the tab after the Task's next run. From then on the header button reads **Edit task** and opens that recurring Task, so you can change its cadence or brief whenever you want.
  </Step>
</Steps>

<Tip>
  The audit Task behaves like any other recurring Task: you can follow each run, read the agent's notes and stop it from the Task thread. See [Tasks](/tasks).
</Tip>

### Read the list

Rows are sorted by priority — Critical, then High, Medium and Low — with the newest first inside each priority. The table shows **Priority**, **Opportunity**, **Impact**, **Status** and **Date**; on a phone it collapses to priority, title and status.

The filter bar above the table has three parts:

* **Status** — a single choice: All statuses, Open, In progress, Done or Dismissed, each with a count. The default is **Open**, so Done and Dismissed rows stay out of the way until you ask for them.
* **Priority** — tick any combination of Critical, High, Medium and Low. **Clear** resets it.
* **N shown** on the right tells you how many rows match. If nothing matches, click **Clear filters**.

Filters reset when you switch tabs.

### Triage a finding

Click a row to open its detail dialog. It shows the status, priority and type badges, the title and description, tiles for **Effort** (Low, Medium or High), **Impact** (a 0–100 score), **Created** and **Updated**, and the page the finding relates to.

From the dialog you can:

* Change **Status** to Open, In progress, Done or Dismissed. The change saves immediately.
* Change **Priority** to Critical, High, Medium or Low. This saves immediately too.
* Click **Create task** to hand the finding to an agent. See [Turn an opportunity into a Task](#turn-an-opportunity-into-a-task).
* Click **Dismiss** to park it. A Done or Dismissed row shows **Reopen** instead.
* Click the trash icon to delete the finding permanently.

Prefer to stay on the list? Right-click a row for the same actions: **Open details**, **Create task**, **Set status**, **Set priority**, **Dismiss** and **Delete**.

## Content

The Content tab shows search demand you are not capturing yet. Once a week Visibility scans your Google Search Console data, scores every qualifying query, and files the results into three buckets. Topics your competitors get traffic on, but you have no page for, are merged into the same list.

<Frame caption="The Content tab: bucket sub-tabs with counts, topic groups, and a tier pill and metrics line on every query.">
  <img src="https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/opportunities-content.jpg?fit=max&auto=format&n=-1GTvD6OGO5y12MA&q=85&s=e077fbd53dc08f3a3c5f1b8aef97a43a" alt="The Content tab of the Opportunities page with a topic group expanded to show queries, tier pills and metrics" width="1568" height="782" data-path="images/opportunities-content.jpg" />
</Frame>

### Connect Search Console first

If the tab shows **Connect Search Console**, click **Connect in Project Settings**. It takes you to Project Settings → **Integrations**, where you connect the Google account that owns the site's Search Console property. See [Integrations](/integrations).

Branded queries — searches for your own name — are excluded automatically. Visibility works the brand terms out from your domain; there is no list for you to maintain.

### The three buckets

The bucket sub-tabs read **New content (N)**, **Optimize (N)** and **Expand (N)**. Inside each, queries that mean roughly the same thing are clustered under one topic label in an accordion.

| Bucket          | What it means                                                                                                                                     | Groups are ordered by |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| **New content** | Real demand with no page on your site covering it. Includes Search Console queries and topics your competitors rank on that you have nothing for. | Best score first      |
| **Optimize**    | A page already ranks for the query but earns fewer clicks than that position normally gets.                                                       | Recoverable clicks    |
| **Expand**      | The query is only partly covered. Grow the existing page, or add a sibling piece.                                                                 | Best score first      |

### What a query row tells you

Expand a topic group to see its queries. Each row shows:

* A **tier pill** — **Quick win**, **Strong**, **Consider** or **Low** — followed by the win score, for example *Quick win · 82*. The win score runs from 0 to 100 and combines how much demand the query has, where you currently rank, how far your click-through rate sits below what that position normally earns, and the intent behind the search. Higher means more likely to pay off quickly.
* On **Optimize** rows, **+N clicks** in place of a tier: the estimated extra clicks per month if the page earned the click-through rate its position deserves.
* The suggested content type and a short why-line explaining the pick.
* A metrics line such as *1.2K impr · pos 8.4 · CTR 1.2% vs 3.0% · current page*, with a link to the page that ranks today.

Competitor rows in the New content bucket look slightly different: a **Competitor · score** pill, the number of competitors covering the topic, and a **their page** link so you can see what they published.

A few rules shape the list:

* A query needs at least **50 impressions in the last 28 days** to qualify.
* Each bucket shows up to **50 rows**.
* A query that stops appearing in scans for 7 days is tagged **stale** until it shows up again.

### Refresh sooner than weekly

The status line at the top of the tab tells you when the scan last ran. To refresh before the next weekly scan, click **Sync now**. You get up to **3 manual syncs per project per day**; the button reads **Syncing…** while a scan is running and **Daily limit reached** once you have used them up. The weekly scan itself is never affected by your manual syncs.

To change how often the scan runs, open Project Settings → **Schedules** and edit the **Content Opportunities** card. See [Schedules behind the automatic tabs](#schedules-behind-the-automatic-tabs).

### Logged by agents

Below the Search Console picks you may see a **Logged by agents (N)** table. These are content opportunities an agent recorded while working — the status line names the Competitor Analysis Agent as one source. The table works exactly like the Technical tab: click a row for the detail dialog, set status and priority, dismiss or create a Task.

## Backlinks

A backlink gap is a website that links to one or more of your competitors but not to you — usually the most realistic link you can go after, because the site already links to businesses like yours. The check runs weekly and needs no agent.

### Before it can run

If the tab shows **Backlink gaps need a little setup first**, it lists what is missing, each with a **Set it up** button:

* A **project domain**, set in Project Settings → **General**.
* At least one **competitor domain**, added under Project Settings → **General** → **Competitor domains**. See [Choosing competitors](#choosing-competitors).
* A **data provider** — either the managed provider or your own DataForSEO keys under Company settings → **Data providers**. See [Credits and BYOK](/credits-and-byok).

Once everything is in place, wait for the weekly check or open Project Settings → **Schedules** and click **Run now** on **Competitor Link Gaps**.

### Read the rows

Rows are listed strongest first. Each one shows:

* A **score pill** — the impact score from 0 to 100, comparable across Backlinks, AI Citations and competitor content gaps.
* The referring domain and a why-line such as *Links to 3 of your 5 competitors, but not to you · domain rank 51*.
* **Domain rank**, **Spam** and **Visit** evidence so you can judge the site before you reach out.
* **First seen**, plus **Create Task** and a dismiss (X) button.

Rows scoring under 40 are tucked behind **Show N lower-scoring**. The weekly check retires rows by itself, too: when a listed site starts linking to you the finding is marked **Won** — you never have to close it by hand.

<Tip>
  Turning a backlink gap into a Task is the quickest way to start outreach. The Task is pre-titled **Earn a link from** that domain, and [Link building](/link-building) tracks the result.
</Tip>

## AI Citations

An AI citation gap is a source website that AI assistants cite when they answer questions about your competitors, but never when your brand is involved. Getting listed there is how you show up in those answers. Each row is one source domain, so each row is one outreach target. Like Backlinks, the check runs weekly and needs no agent.

### Before it can run

If the tab shows **AI Citation gaps need a little setup first**, it lists what is missing with **Set it up** buttons:

* A **project domain**.
* At least one **competitor domain**.
* At least one completed **AI Visibility** check for the project. See [AI Visibility](/ai-visibility).

Then wait for the weekly check, or click **Run now** on **AI Citation Gaps** under Project Settings → **Schedules**.

### Read the rows

Each row shows a score pill, the source domain, a why-line such as *Cites 2 of your 4 competitors across 7 pages, and never mentions you*, **N cited pages**, an **Example** link to one of those pages, **Create Task** and a dismiss (X) button. Lower-scoring rows sit behind **Show N lower-scoring**, just like Backlinks. There is no **Create a Task** header button on this tab; work row by row.

## Choosing competitors

Backlinks, AI Citations and the competitor rows on the Content tab all compare your project against the domains in Project Settings → **General** → **Competitor domains**. Type a domain into the pill input and press Enter to add it.

You do not have to guess. Below the input, **Suggested competitors — seen across your AI-visibility answers** offers one-tap pills for the domains that keep turning up when AI assistants answer your tracked prompts, each with a count of how often it appeared. Click **Show N more** for the full set.

Directories and listing sites appear in a separate **Directories** group, described as better citation targets than competitors. Leave them out of your competitor list: adding a directory as a competitor removes it from your AI Citations tab, which is usually the opposite of what you want.

<Info>
  On the project Overview, the **Site authority** card shows the same hint — *N suggested from your AI-visibility answers* — next to **Add competitors** until you have added at least one.
</Info>

## Turn an opportunity into a Task

Every tab lets you hand a row to an agent, and it always goes through the New task dialog — nothing is created until you confirm.

<Steps>
  <Step title="Start from the row">
    On **Content**, **Backlinks** and **AI Citations**, click **Create task** (or **Create Task**) on the row. On **Technical** and **On-page**, use **Create task** in the detail dialog or in the right-click menu. On the Content tab you can also click **Create task** on a topic group header to raise one Task that covers every query in the cluster.
  </Step>

  <Step title="Check the pre-filled Task">
    The New task dialog opens with a title and brief already written for you — see the table below. Content Tasks are pre-assigned to the project's active content-writing agent when you have one.
  </Step>

  <Step title="Edit and confirm">
    Change the title, brief, agent or due date as you like, then click **Create task**.
  </Step>
</Steps>

| Where the row came from                            | Pre-filled title                                         | What the brief includes                                                                             |
| -------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Technical, On-page, or an agent-logged Content row | The finding's own title                                  | Its description, effort, impact and the page it relates to                                          |
| A Search Console query                             | **Optimize page for "query"** or **How-to guide: query** | Impressions, position, click-through rate against the expected rate, and the estimated extra clicks |
| A Content topic group                              | One title for the cluster                                | Every query in the group                                                                            |
| A competitor content gap                           | **Write a page covering topic**                          | The topic and what competitors cover                                                                |
| A Backlinks row                                    | **Earn a link from domain**                              | The domain and the evidence from the row                                                            |
| An AI Citations row                                | **Get listed on domain**                                 | The source domain and the cited pages                                                               |

After you confirm, an agent-logged row flips to **In progress** and a Search Console row shows a **task created** chip, so you can see at a glance what is already being worked. Follow progress in [Tasks](/tasks).

## Dismiss what you will not act on

Not every row deserves a Task. Dismissing keeps the page honest without deleting anything an agent found.

* **Technical and On-page** — click **Dismiss** in the dialog or right-click menu. The row leaves the default Open view. If you change your mind, set the **Status** filter to Dismissed and click **Reopen** on the row.
* **Content** — click the X on a query. It stays hidden across all future scans, and a **N dismissed rows hidden.** line at the bottom of the tab keeps count.
* **Backlinks and AI Citations** — click the X on a row and it disappears from the tab.

<Warning>
  There is no list of dismissed rows on the Content, Backlinks or AI Citations tabs. Once a dismissed row has left the screen you cannot bring it back, so dismiss only what you are sure about.
</Warning>

## Schedules behind the automatic tabs

The automatic sources each have a card under Project Settings → **Schedules**:

| Schedule card                                                        | Feeds                                                   |
| -------------------------------------------------------------------- | ------------------------------------------------------- |
| **Content Opportunities** — Surface content gaps from Search Console | The Content tab's Search Console picks                  |
| **Competitor Content Gaps**                                          | Competitor rows in the Content tab's New content bucket |
| **Competitor Link Gaps**                                             | The Backlinks tab                                       |
| **AI Citation Gaps**                                                 | The AI Citations tab                                    |

Each card shows its cadence (**Not scheduled** or a plain-English schedule), a checklist of its requirements, and a **Run now** button. If a run fails, the card offers **Retry**. The three competitor checks run weekly at most — the schedule editor tells you *This source runs weekly at most* and hides shorter intervals. **Competitor Content Gaps** needs the same three things as Backlinks: a project domain, a competitor and a data provider.

For the schedule editor itself, see [Projects](/projects).

## The Monday email

Every Monday, the admins of your Company receive an email summarising the opportunities still open across its projects. It covers open and in-progress findings logged by agents — Technical, On-page and agent-logged Content rows — grouped by project, with the top five per project. If nothing is open, no email is sent. Search Console picks, Backlinks and AI Citations are not included, so check those tabs in the app.

## Related pages

<CardGroup cols={2}>
  <Card title="Tasks" href="/tasks">
    What happens to a Task after you create it from an opportunity.
  </Card>

  <Card title="Projects" href="/projects">
    Project Settings: Features, Schedules, Integrations and competitor domains.
  </Card>

  <Card title="AI Visibility" href="/ai-visibility">
    The checks that power the AI Citations tab and competitor suggestions.
  </Card>

  <Card title="Dashboards" href="/dashboards">
    Build a shareable report from the project's ranking, AI visibility and traffic data.
  </Card>
</CardGroup>
