Check AI Search Visibility
Build a Python agent that tracks product mentions in AI search results.
Introduction
30 Second Summary
When buyers ask AI assistants which tool to use, your product can be absent from the shortlist before they ever visit your website. Without a repeatable check, that absence is easy to miss.
In this project, you will build a Python script that turns five buyer-style category questions into a product visibility report. Composio Instant gives your AI agent tools for web search and web scraping through one wallet.
What You'll Build
You will run your checker to see a terminal tally plus a saved Markdown report that ranks your product against competitors.
By the end of this project, you'll have:
- A five-question visibility check that reveals which products appear in answers to buyer-style category questions.
- A ranked product report showing how often your product appears against the competitors mentioned by the agent.
- A wallet usage check that shows what each search or scraping call cost.
- Secret Mission: Compare two monthly report snapshots to reveal which products gained or lost visibility.
Are there any prerequisites?
You need a product category plus one product to check. You do not need separate search or scraping provider accounts.
Before We Start
Before your agent can call search tools through Composio, your computer needs a reliable place to run the script. An unavailable or outdated Python installation would block every later visibility check.
You will confirm Python 3.10 or later from a terminal. You will also create an empty folder for the monthly script.
Composio stays untouched during this local setup. You will connect it after your environment is ready.
In this step, get ready to:
- Check that your terminal can run Python 3.10 or later.
- Install a newer Python release if the check shows an older version or no version.
- Create an empty Desktop folder for the monthly script.
Open a terminal and check Python
The terminal runs commands on your computer. Your operating system determines which Python command you use for the version check.
macOS
- Press Cmd+Space to open Spotlight.
- Type Terminal into the search field.
- Press Return to open Terminal.
- Check the installed Python version by running this command:
python3 --version
What does this command do?
The python3 --version command asks Python to print its installed version. The number tells you whether your Mac meets the project requirement.
Windows
- Press the Windows key to open Windows Search.
- Type PowerShell into the search field.
- Press Enter to open Windows PowerShell.
- Check the installed Python version by running this command:
python --version
What does this command do?
The python --version command asks Python to print its installed version. The number tells you whether your Windows computer meets the project requirement.
Choose the tab that matches the result in your terminal.
✔️ I see version 3.10 or higher
Your Python environment is ready. The terminal can reach a version that supports the script you will build.
ⓧ I see an older version
Your terminal can reach Python, but that installation is below the project minimum. Install a current supported release before continuing.
macOS
- Visit the official Python downloads page for macOS.
- Choose a currently supported Python release.
- Click Download macOS installer.
- Open the downloaded installer package.
- Click Continue through the installer information screens.
- Click Install on the installation screen.
- Approve the software installation when macOS asks for permission.
You will see the installer summary when the new Python release is ready.
- Double-click Install Certificates.command in the new Python application folder.
- Close the Terminal window from earlier.
- Press Cmd+Space to open Spotlight again.
- Type Terminal into the search field.
- Press Return to open a fresh Terminal window.
- Repeat the macOS version check shown above.
You should now see Python 3.10 or later.
Windows
- Visit the official Python downloads page for Windows.
- Choose a currently supported Python release.
- Click the Windows installer that matches your computer.
- Open the downloaded installer.
- Complete the installation prompts.
You will see a completion screen when the newer Python release is installed.
- Close the PowerShell window from earlier.
- Press the Windows key to open Windows Search again.
- Type PowerShell into the search field.
- Press Enter to open a fresh Windows PowerShell window.
- Repeat the Windows version check shown above.
You should now see Python 3.10 or later.
ⓧ Command not found
Your terminal cannot reach a Python installation yet. Install a current supported release for your operating system.
macOS
- Visit the official Python downloads page for macOS.
- Choose a currently supported Python release.
- Click Download macOS installer.
- Open the downloaded installer package.
- Click Continue through the installer information screens.
- Click Install on the installation screen.
- Approve the software installation when macOS asks for permission.
You will see the installer summary when Python is ready.
- Double-click Install Certificates.command in the new Python application folder.
- Close the Terminal window from earlier.
- Press Cmd+Space to open Spotlight again.
- Type Terminal into the search field.
- Press Return to open a fresh Terminal window.
- Repeat the macOS version check shown above.
You should now see Python 3.10 or later.
Windows
- Visit the official Python downloads page for Windows.
- Choose a currently supported Python release.
- Click the Windows installer that matches your computer.
- Open the downloaded installer.
- Complete the installation prompts.
You will see a completion screen when Python is installed.
- Close the PowerShell window from earlier.
- Press the Windows key to open Windows Search again.
- Type PowerShell into the search field.
- Press Enter to open a fresh Windows PowerShell window.
- Repeat the Windows version check shown above.
You should now see Python 3.10 or later.
Still seeing the old result?
- Close every Terminal or PowerShell window after the installation finishes.
- Open a fresh terminal through your operating system search.
- Repeat the version check for your operating system.
Help me fix my Python version check.
Create the empty project folder
A dedicated folder keeps the monthly script separate from unrelated files. Save its name now so every later step can return to the same place.
Use this project folder name: ai-search-visibility.
macOS
- Click an empty area of your Desktop.
- Press Shift+Cmd+N to create a new folder.
- Enter ai-search-visibility as the folder name.
- Press Return to save the folder name.
Windows
- Press Windows+E to open File Explorer.
- Select Desktop in the left navigation pane.
- Select New in the toolbar.
- Select Folder.
- Enter ai-search-visibility as the folder name.
- Press Enter to save the folder name.
Good progress. The empty ai-search-visibility folder now gives your monthly script a clean home.
Cannot find the new folder?
- Return to the Desktop where you created the folder.
- Look for the exact folder name you entered above.
- Repeat the folder creation steps if no matching folder appears.
Help me find or create my project folder.
Verify your local workspace
The final check proves that your terminal can reach Python. It also proves that the project folder exists with no files inside.
Before you check, which Python version do you expect to see? How many items do you expect inside the project folder?
macOS
- Switch back to the Terminal window from earlier.
- Confirm the Python version by running this command:
python3 --version
What does this check prove?
This command confirms that the shell can find Python. Its output identifies the exact version available to your future script.
- Switch back to your Desktop.
- Double-click ai-search-visibility to open it in Finder.
- Confirm that the Finder content area contains no items.
Windows
- Switch back to the PowerShell window from earlier.
- Confirm the Python version by running this command:
python --version
What does this check prove?
This command confirms that PowerShell can find Python. Its output identifies the exact version available to your future script.
- Switch back to File Explorer from earlier.
- Double-click ai-search-visibility to open it.
- Confirm that the File Explorer content area contains no items.
You will see Python 3.10 or later in the terminal. You will also see an empty project folder.
Final check not matching?
- Repeat the installation path above if the displayed Python version is below 3.10.
- Return to the Desktop if File Explorer or Finder shows a different folder.
- Move any accidental files out of the project folder so it is empty.
Help me verify my local Python workspace.
Your local workspace is ready. Next, you will sign in to Composio and confirm the wallet credit that powers your first tool calls.
Claim Your Composio Credit
Your search visibility script needs paid search and scraping tools. Creating separate accounts for every provider would turn a small monthly check into a stack of subscriptions and credentials.
In this step, you will sign in to Composio Instant. You will claim the free $2 starter credit and secure the project credential that your Python script needs.
In this step, get ready to:
- Sign in to Composio and claim the free $2 starter credit.
- Copy the project API key for your Python script.
- Confirm your wallet balance is visible in the dashboard.
Claim your starter credit
Composio Instant pays for supported tool calls from one wallet. The starter credit lets you begin this project without adding funds.
This action opens a wallet connected to your Composio account. You only need to claim the included credit in this step.
- Visit the Composio Instant page in your browser.
- Click Claim now in the starter credit section.
- Complete the sign-in flow shown in your browser.
- Open your organization settings from the Composio dashboard.
- Select Billing from the organization settings menu.
- Confirm that the page shows a prepaid balance of $2.
That is the funding sorted. Your wallet can now cover the first search and scraping calls in this project.
How Does the Wallet Help?
Instant tools use Composio provider accounts for supported actions. Each eligible call draws from the same prepaid balance, so your script does not need a separate provider account for every search or scraping service.
Starter Credit Missing?
- Confirm that you finished the sign-in flow from the Composio Instant claim page.
- Check the prepaid balance under Billing in your organization settings.
- Refresh the billing page once if the dashboard still shows the previous state.
Ask for help with a missing starter balance.
Secure your project API key
A project API key authenticates application code to one Composio project. Your local Python script uses this credential when it creates sessions and requests tools.
This key is a live credential. Keep it in a password manager and never paste its value into a screenshot or validation response.
- Select Platform from the dashboard product switcher.
- Select the project shown in Platform.
- Click Settings in the project sidebar.
- Open Project Settings.
- Select API Keys.
- Copy the project API key from this section.
- Store the copied key in your password manager.
Why Use a Project Key?
A project key keeps your script tied to the Composio project that owns its sessions and usage records. This gives your upcoming tool calls one consistent place for authentication and tracking.
Cannot Find the Project Key?
- Confirm that the product switcher shows Platform.
- Confirm that you selected a project before opening Settings.
- Use Create API Key in the API Keys section if no project key is listed.
Ask for help locating your project credential.
Verify your wallet is ready
Your account needs two things before Python can use Instant tools. It needs a valid project credential and a funded wallet.
Before you check, do you expect both readiness signals to be present?
- Return to API Keys in your project settings.
- Confirm that a project API key is listed without exposing its value.
- Switch to your organization settings.
- Select Billing.
- Confirm that the current prepaid balance shows $2.
- Hide any personal account details before taking your screenshot.
You now have the credential and starter balance needed for your local script. Composio is ready to authenticate the script and fund its first Instant tool calls.
Your Composio account is funded and your project credential is secure. Next, you will use Python to create a session with search and scraping tools.
Create Your Agent Session
Your Composio Instant wallet is funded. The next layer is a local script that can reach its tools.
An agent session controls which toolkits your agent can use. You will limit this session to Exa for web search plus Firecrawl for web scraping.
In this step, get ready to:
- Install the Composio Python SDK in your local project.
- Create a session with web search and scraping toolkits.
- Print the tools that the session exposes to your agent.
Prepare the Python dependency
The Composio SDK connects your Python script to the session API. Installing it adds the client that creates sessions and loads their tools.
- Switch back to the terminal in your AI search visibility project folder.
- Install the Composio SDK by running:
pip install composio
What does this command add?
This installs the current composio package. Your script can now create sessions through the Composio API.
- Confirm the terminal finishes with a successful installation message that names composio.
Having trouble installing the SDK?
- Check that the terminal is using the Python environment prepared earlier.
- Use a supported Python release from 3.11 through 3.15 if the installer reports an incompatible Python version.
- Check your network connection if the package download cannot complete.
Help me diagnose my Composio SDK installation.
Create the Composio client
Your script needs a Composio client before it can create a session. A hidden terminal prompt keeps your API key in memory without writing it into the file.
- Create ai_search_visibility.py inside your AI search visibility project folder using your code editor.
- Add the client setup by copying this code into ai_search_visibility.py:
from getpass import getpass
from composio import Composio
# Keep the API key hidden and in memory for this run
api_key = getpass("Paste your Composio API key: ")
composio = Composio(api_key=api_key)
print("Composio client is ready.")
What does this code do?
- The getpass() prompt accepts your API key without displaying it in the terminal.
- The Composio client keeps that credential available for authenticated requests during this run.
- The final message confirms that Python imported the SDK and created the local client.
- Save ai_search_visibility.py.
This next check asks for your API key. The script hides your input and leaves the credential out of the saved file.
- Run the client check from your project folder by running:
python ai_search_visibility.py
What does this command check?
Python runs ai_search_visibility.py and pauses at the hidden credential prompt. This check loads the SDK without running a paid search or scrape.
- Paste the Composio API key you prepared earlier when the hidden prompt appears.
- Press Enter to continue.
You will see Composio client is ready. Good. Your local script can now load the Composio client without storing your credential.
Client check not finishing?
- Confirm that you saved ai_search_visibility.py before running it.
- Confirm that your terminal is still inside the folder containing ai_search_visibility.py.
- Reinstall the composio package if Python reports that the import is unavailable.
Help me fix my Composio client check.
Create and inspect the session
A toolkit allowlist keeps the agent focused on the two capabilities this workflow needs. The session can discover search tools from Exa plus scraping tools from Firecrawl.
- Return to ai_search_visibility.py in your code editor.
- Add the session setup below print("Composio client is ready.") by copying this code:
# Restrict this session to search and scraping toolkits
session = composio.sessions.create(
user_id="ai_search_visibility",
toolkits=["exa", "firecrawl"],
)
# Load the tools this session exposes to the agent
tools = session.tools()
print("Available tools:", [tool.name for tool in tools])
What does this code do?
- The user_id gives this local workflow a stable session identity.
- The toolkits list limits tool discovery to exa and firecrawl.
- The session.tools() call loads the session tools that handle discovery and execution for the agent.
- The final line prints each returned tool name so you can inspect the session from your terminal.
- Save ai_search_visibility.py.
✔️ Awesome, I've got everything!
Your session code matches the finished file.
ⓧ I'd like to double check the full code
from getpass import getpass
from composio import Composio
# Keep the API key hidden and in memory for this run
api_key = getpass("Paste your Composio API key: ")
composio = Composio(api_key=api_key)
print("Composio client is ready.")
# Restrict this session to search and scraping toolkits
session = composio.sessions.create(
user_id="ai_search_visibility",
toolkits=["exa", "firecrawl"],
)
# Load the tools this session exposes to the agent
tools = session.tools()
print("Available tools:", [tool.name for tool in tools])
Before you run the finished script, do you expect Composio to return an empty list or a set of session tools?
- Run the finished session script from your project folder by running:
python ai_search_visibility.py
What does this run prove?
Session creation sends an authenticated request to Composio with the Exa and Firecrawl allowlist. A non-empty response proves that Composio created the session and exposed tools to your agent.
Default sessions return meta tools for discovering and executing allowed app tools. This keeps the initial tool list small while preserving access to search and scraping.
- Paste your Composio API key when the hidden prompt appears.
- Press Enter to create the session.
You will see Available tools: followed by a non-empty list. The list should include a discovery tool such as COMPOSIO_SEARCH_TOOLS.
No tools in the output?
- Confirm that your API key belongs to the Composio project where you claimed the wallet credit.
- Check that both exa and firecrawl are lowercase inside the toolkits list.
- Run the script again after confirming that your internet connection can reach Composio.
Help me troubleshoot my Composio session.
Your agent now has a focused route to web search and scraping tools. Next, you will send one buyer-style category question through that route and inspect which products appear.
Test One Buyer Question
Your Composio session can now expose the web-research tools that power this workflow. That gives your script the reach it needs.
A tool list does not show whether an AI agent can answer a real buyer question. In this step, you will run one category question to check the search findings plus the products they mention.
In this step, get ready to:
- Draft one buyer-style question about a task your product solves.
- Submit the question to an agent with access to your existing Composio tools.
- Print the search findings plus the products named in the response.
Draft one buyer-style question
A buyer-style question describes a real task without steering the answer toward one brand. This gives you a cleaner view of your product's answer-engine visibility.
What makes the question useful?
Specific tasks produce more relevant product recommendations. For example, a question about automatically scheduling customer appointments gives the agent a clearer target than a broad request for business software.
Leaving brand names out lets the search evidence determine which products appear.
- Choose one specific task that your product helps buyers complete.
- Write a question that asks for the best tools for that task.
- Remove your product name from the question.
- Store your finished question here: your buyer-style category question.
Add the single-question run
The agent needs the existing session tools inside its run. Its instructions also give the response a consistent shape that you can process in the next step.
- Switch back to the Python script from the previous step.
- Find the line containing tools = session.tools().
- Add the following block directly below that line:
from agents import Agent, Runner
# Run one buyer question with the session's web-research tools
result = Runner.run_sync(
starting_agent=Agent(
name="AI Search Visibility Analyst",
instructions=(
"Use the available web search tools to answer the question. "
"Use the available scraping tools when a result page needs closer inspection. "
"Start with a section titled 'Search findings' that summarizes the evidence. "
"End with a section titled 'Products named' that lists each product once."
),
model="gpt-5.2",
tools=tools,
),
input="[[BUYER_QUESTION=\"your buyer-style category question\"]]",
)
# Show the evidence and extracted product names in the terminal
print(result.final_output)
What does this code do?
- The Agent receives the existing tools collection so it can search the web during the run.
- The instructions tell the agent when scraping can provide more detail from a result page.
- The BUYER_QUESTION value supplies the category question you drafted.
- The final print() call sends the findings plus the product list to your terminal.
- Save the Python script from the previous step.
Run the question and inspect the evidence
This test can spend from the Composio credit you claimed earlier. Running one question keeps the first check focused.
Before you run it, make a mental prediction about the products you expect the search evidence to name.
- Rerun the Python script with the same terminal command you used in the previous step.
The agent may pause while its tools return live web results. Keep the process running until the final response prints.
You should see a Search findings section followed by a Products named section. The second section should list the products found in the search evidence.
Missing findings or product names?
- Confirm your buyer question asks about a specific task without naming your product.
- Check that the agent receives the existing tool collection through tools=tools.
- Confirm the code block sits after tools = session.tools() so the collection exists before the agent run starts.
Ask for help with the exact output you received: Why did my buyer-question agent return no search findings or product names?
That is your first live visibility signal. Your script can now turn one buyer question into search evidence plus a product list.
One question proves the workflow. Next, you will repeat it across five buyer questions to build a product tally.
Tally Five Category Questions
Your AI agent can already answer one buyer-style category question with Composio Instant. That result proves your search workflow can find products in the category.
One question captures a single buyer perspective. A five-question batch tests several perspectives so you can compare product visibility across the full set.
In this step, get ready to:
- Create five buyer-style questions for the same product category.
- Process every question through the existing agent workflow.
- Count each product mention in a cumulative terminal tally.
Draft five buyer-style questions
A Python list stores each question as a separate quoted entry. The loop can then process those entries in order.
What makes a useful question set?
Each question should reflect a different reason someone might choose a product. Keep your product name out of the questions so the prompt does not seed the result.
- The best tool for the category's core task.
- The easiest option for a first-time buyer.
- The best fit for a small team.
- The strongest option for a demanding workflow.
- The best value for a budget-conscious buyer.
- Return to your AI search visibility script from the previous step.
- Find the value that contains your original buyer-style category question.
- Refactor the question section into a five-entry list based on the five angles above.
- Keep your original category question as the first entry.
- Update the existing agent request so this test reads the first list entry.
- Save your script.
Before you rerun the script, do you expect the result format to change when the question comes from a list?
- Return to the terminal from the previous step.
- Press the Up Arrow key to recall your previous run command.
- Press Enter to rerun the script.
You should see one set of search findings followed by its named products. The output confirms that the first question still reaches the agent after moving into the list.
Does the script stop before returning findings?
- Check that all five questions have matching quote marks.
- Check that a comma separates every list entry.
- Confirm that the agent request reads the first entry from the new list.
Ask for help diagnosing the list change: Why did my Python script stop working after I changed one question into a five-entry list?
Process all five questions
The existing request already handles one question successfully. A loop reuses that same workflow for every entry without duplicating the search logic.
- Return to your AI search visibility script.
- Wrap the existing agent request plus its findings output in a loop that visits every question once.
- Keep the existing named-products output inside the same loop.
- Save your script.
This batch uses calls funded by your Composio wallet. Limiting the batch to five questions keeps this visibility check bounded.
Before you run the batch, how many separate result sections do you expect the terminal to show?
- Return to your terminal.
- Press the Up Arrow key to recall the run command.
- Press Enter to process the full question list.
You should see five question runs in the terminal. Each run should include search findings plus the products named for that question.
Do you see fewer than five results?
- Confirm that the loop processes the full question list instead of its first entry.
- Check that the agent request sits inside the loop indentation.
- Look for an early exit that stops the script after its first response.
Get help tracing the loop: Why does my Python loop stop before processing all five category questions?
Count cumulative product mentions
A dictionary can connect each product name to a running count. After the fifth response, those counts show how many category questions mentioned each product.
How should the tally work?
- Start with an empty tally before the question loop.
- Collect the product names from the current response.
- Treat repeated appearances of one product in the same response as one mention.
- Increase each current product's cumulative count by one.
- Print the updated tally after each question.
Counting each product once per question keeps repeated wording inside one answer from inflating its visibility.
- Return to your AI search visibility script.
- Add an empty product tally immediately before the question loop.
- Replace the named-products output inside the loop with logic that updates the cumulative tally after each response.
- Print the updated tally at the end of every loop pass.
- Save your script.
Before you run the finished batch, which product do you expect to lead the tally?
- Return to your terminal.
- Press the Up Arrow key to recall the run command.
- Press Enter to run the five-question visibility check.
You should see the tally grow after each response. The final tally should map every mentioned product to a count across all five questions.
Does the tally look inconsistent?
- Confirm that the empty tally is created before the loop.
- Check that each count update happens inside the loop.
- Make sure repeated names from one response are reduced to one mention before counting.
Ask for help checking the counting logic: Why is my cumulative product-mention tally resetting or overcounting products?
What does the final tally show?
The tally measures how often each product appears across your five buyer-style questions. It gives you a repeatable visibility snapshot for this question set.
You have turned five separate agent responses into one cumulative comparison. Your terminal now shows which products appeared most consistently across the batch.
Your five-question batch now produces a visibility tally you can compare over time. Next, you will save that tally as a markdown report with your product's position against competitors.
Generate Your Visibility Report
Your five-question run through Composio Instant already gives your Python script a cumulative product-mention tally. That terminal output proves the collection loop works.
Terminal output is easy to lose after a session ends. A Markdown report turns the same tally into a ranked snapshot that you can compare when you rerun the check next month.
In this step, get ready to:
- Rank the products from most mentioned to least mentioned.
- Write the ordered mention counts to a Markdown report.
- Confirm where your product appears in the competitor ranking.
Add the report writer
The report should reuse the tally your script already calculates. Sorting those counts creates a direct comparison between your product and every competitor.
What should the report contain?
- The report opens with a heading that identifies it as an AI search visibility report.
- The table has one column for rank. It has one column for product name. It has one column for mention count.
- The ranking orders products from the highest mention count to the lowest mention count.
- Your product appears in the same sorted table as every competitor.
- The report is written to a file with the .md extension inside the local project folder.
- Switch back to the Python script from earlier.
- Locate the point where the five-question loop has finished processing every question.
- Add one report-writing block immediately after the five-question loop using every requirement in the callout above.
- Save the Python script.
Before you rerun the script, ask yourself which product you expect to take first place.
- Return to the terminal from earlier.
- Rerun the script with the same terminal command you used in the previous step.
You'll see the cumulative tally again. The script also creates a Markdown report inside the local project folder.
That is a solid milestone. Your visibility result now survives after the terminal session closes.
Report file missing?
- Check that the report-writing block runs after the five-question loop finishes.
- Save the Python script before rerunning it.
- Confirm that the write destination points to the local project folder.
Help me fix a report file that was not created.
Verify the report ranking
A saved report is useful when its ordering matches the terminal tally. This final check compares the top row with the counts your script already printed.
Before you open the report, ask yourself where you expect your product to rank.
- Use the file list in the same editor to locate the new .md report inside the local project folder.
- Open the generated report.
- Compare the first table row with the highest count from the terminal tally.
- Find your product in the ranked table.
- Confirm that its rank matches its sorted position.
- Confirm that its mention count matches the terminal tally.
You'll see products ordered from the highest mention count to the lowest mention count. Your product's row shows its rank beside the matching count.
Good work. Your monthly visibility comparison is ready to keep or share.
Ranking does not match the tally?
- Set the sort order so the highest mention count appears first.
- Build every report row from the existing cumulative tally.
- Generate the report only after the fifth question has been processed.
Help me correct the ranking in my Markdown report.
Your script now leaves you with a report you can rerun each month. Next, you'll return to the Composio usage page to see what each call cost.
Review Wallet Usage
Your five-question run now produces a ranked Markdown report. That report shows how often your product appears beside competitors.
Composio Instant pays for search plus scraping calls from one wallet. The wallet balance is not a strict per-call spending cap because checks are asynchronous.
This step connects the latest run to its recorded costs. You will keep that cost check beside your monthly workflow.
In this step, get ready to:
- Review the costs created by the latest web search calls.
- Review the costs created by the latest web scraping calls.
- Confirm that the reusable workflow remains ready for next month.
Review each wallet charge
The report answers which products appeared. The wallet usage page answers what the workflow cost.
- Return to the Composio dashboard from earlier.
- Select the wallet area that displays your current balance.
- Open the usage page for that wallet.
- Locate the entries created by your latest five-question run.
- Read the cost shown for the search calls.
- Read the cost shown for the scraping calls.
You should see recorded costs associated with the tool calls from your latest run. Those entries show how much wallet credit the workflow consumed.
Why review usage after every run?
Your current balance shows how much credit remains. The usage history shows which calls consumed that credit.
Because checks are asynchronous, the balance is not a strict per-call cap. Keeping the script at five questions limits each monthly batch.
No recent calls listed?
- Refresh the usage page after a short wait.
- Confirm that the dashboard account matches the account used by your local script.
Help me find my recent Composio Instant wallet usage.
Confirm the monthly rerun path
A useful monthly comparison depends on a stable set of questions. Your existing five-question loop provides that baseline.
- Switch back to the local project folder from earlier.
- Confirm that the reusable Python script is present.
- Confirm that the generated Markdown report is present.
- Return to the Composio wallet usage page from earlier.
- Compare the listed call costs with your remaining wallet balance.
- Keep the current five-question loop for your next monthly run.
Before your final check, do you expect the latest run to leave cost records for both kinds of tool call?
- Refresh the wallet usage page to test your prediction.
You should see recorded costs for search calls. You should also see recorded costs for scraping calls.
You have closed the monthly loop. Your full workflow is ready for next month's run.
Secret mission
Audit Your Visibility Ranking
A product mention can signal a recommendation, a comparison, or a passing reference. Trace the evidence behind your ranking and add a confidence verdict that makes the report easier to trust.
Clean Up Your Resources
Clean Up Your Resources
Choose whether to keep the local workflow ready for next month, pause it, or delete its files. Keeping the folder creates no ongoing cost because your Composio Instant wallet is used only when the script makes calls.
Resources you used:
- The local project folder containing the reusable Python script plus the generated Markdown report.
Keep everything running
No action is needed. Choose this if you plan to rerun the AI search visibility workflow each month.
- Keep the local project folder in its current location.
- Rerun the script when you are ready for your next monthly check.
- Return to the Composio wallet usage page after each rerun.
Your script remains ready for another visibility check. Each rerun can use some of your remaining wallet balance.
Pause - I'll come back to this later
Pause new calls while keeping the monthly workflow ready. No background process needs to remain active after the script finishes.
- Close any terminal window used for the finished script run.
- Leave the local project folder in its current location.
- Wait until your next visibility check before running the script again.
Your script plus report stay on your computer. Your wallet balance stays unchanged until another call is made.
Delete - I don't want to use this again
Deleting your project folder becomes permanent after you clear it from the deleted-items area. Your Composio account remains available after the local files are gone.
A credential copy stored inside the project folder is removed with the folder. Credentials stored elsewhere remain available.
macOS
- Press Cmd+Space to open the macOS search bar.
- Type Finder into the search field.
- Press Enter to open Finder.
- Return to the location containing the local project folder.
- Select the folder containing your reusable script plus generated report.
- Move the selected project folder to the Bin.
You should no longer see the project folder in its previous location. It remains recoverable from the Bin at this point.
- Open the Bin from the Dock.
- Select only the local project folder.
- Use the context menu to permanently delete the selected folder.
- Confirm the permanent deletion in the system prompt.
You should no longer see the local project folder in its previous location or the Bin.
Windows
- Press the Windows key to open the Windows search bar.
- Type File Explorer into the search field.
- Press Enter to open File Explorer.
- Return to the location containing the local project folder.
- Select the folder containing your reusable script plus generated report.
- Move the selected project folder to the Recycle Bin.
You should no longer see the project folder in its previous location. It remains recoverable from the Recycle Bin at this point.
- Open the Recycle Bin from the desktop.
- Select only the local project folder.
- Use the context menu to permanently delete the selected folder.
- Confirm the permanent deletion in the system prompt.
You should no longer see the local project folder in its previous location or the Recycle Bin.
Nice Work!
Nice Work!
Outstanding work! You built a reusable Python workflow that uses Composio Instant to measure your product's visibility across buyer-style searches.
You've learned how to:
- Give an AI agent access to web search and scraping tools through a Composio Instant session.
- Run five buyer-style questions through the agent. Build a cumulative product mention tally from its answers.
- Generate a ranked Markdown report for monthly comparisons. Review wallet usage to understand the cost of each run.
- Secret Mission: Complete the optional challenge to push your AI search visibility workflow further.
Ready to quiz yourself?