Meet Sparx

Overview #

On this page, get a more detailed look at the features and capabilities offered by Sparx. My aim is to keep this up to date with each update to our code, but it may be out of date at times.

Want me to add new features? Or am I missing anything in the features list below? If so, please contact me at gboostlabs@gmail.com and let me know!

💡 Pro tip: Want to learn all about Sparx but don’t want to read this entire document? No worries! You can use Sparx’s Google search and content extract capabilities to parse this page, summarize it, and answer questions for you.


Philosophy #

I wanted to explain my philosophy behind the design and structure of the app. You’ll notice that there isn’t this notion of chat “history”. That’s because, as an avid user of AI chatbots myself, I find that I never go back to old chats. I stay in a single chat for as long as I can until it starts to lag, or until I reach some context cap. Then move onto a new one.

If I ever go back to one, it’s to find one key piece of information. Which again, happens almost never.

Instead, I’ve opted to allow Sparx customers to manually decide what context to save. See the context section below for more info. So treat your chats as disposable, and save whatever information you deem to be critical or important for future conversations.

If you have other questions or concerns, please don’t hesitate to reach out!

Context #

In each chat bubble (whether it’s your chat bubble, the AI assistant’s chat bubble, or a tool call chat bubble), you’ll see a little đź’ľ (save) icon.

Clicking on that save icon will automatically save the information in that message to the AI assistant’s context for future reference. And it does a fairly good job of knowing when to check its context. It first checks its current chat history, and if it can’t find context there then it checks it’s longer term context.

Whenever context is saved, we have the assistant do a quick filter and translation to ensure the context is:

Context is accessible across all models. So for example, if you have a chat where you’re working with gpt-4o-mini , save some important context, then switch to Claude’s haiku-3.5 later in the conversation, haiku-3.5 will be able to access that saved context as well.

You can see your saved context and manage it by going to https://iamsparx.com/context. When you delete context from there, it is also immediately deleted from our database. There is a modal to confirm deletion, but be careful before deleting any important context.

Asynchronous tasks #

In its current state, Sparx is primarily a chat application similar to ChatGPT, Claude, Gemini, and so on. That means long running tasks are not well suited for it because a chat is synchronous - you send a message to Sparx, and you wait for Sparx to respond. If Sparx performs a task that takes 5+ minutes, you’d probably end up being frustrated because you can’t use it during that time.

And I also want to be able to support more agentic and heavy tasks that could take several minutes to complete. In order to do this, I introduced the ability for Sparx to start asynchronous tasks. The only async task at the moment is the ability to research and write a blog post with citations. This process takes ~5-10 minutes.

Each task is assigned UUID, and Sparx may or may not surface that to you. If not, no worries. You can always ask Sparx What are the latest async tasks? Can you please give me a link to view completed tasks? And it will give you the info you need.

We also have a page to view async tasks, as well as their results. Since we currently only support blog posts as async tasks, we provide a way to view the blog post and to download it. The link format is https://iamsparx.com/tasks/<task_id>. This is the link that Sparx will generate for you if you ask for links to completed tasks.

You can view all async tasks at https://iamsparx.com/tasks. And from there, you can click on “View Details” to get to /tasks/<task_id> and view the task results in detail.

A few notes:

Quirks #

Sparx, like most AI tools, has its quirks. There may be times where you ask it search online for something and it chooses to use the “market research” assistant instead of the “online research” assistant. In cases like that, just try to be more explicit with your next request.

Another quirk is that it may make assumptions about what you want done. For example, if you ask it to help with keyword research and you previously spoke about keywords, it may not confirm with you what keywords it will use in its search.

Supported Models #

We currently support 3 models:

Model Name Provider Vision capabilities Blogging capability
gpt-4o-mini OpenAI âś… âś…
haiku-3.5 Anthropic ❌ ✅
grok-beta xAI ✅ ❌

You can switch freely between models, even in the middle of a chat.

Capabilities #

Online research #

We have an online research assistant that specializes in scraping different sources and extracting content. If Sparx thinks your request would benefit from or requires any of these online research tasks, it will call on this assistant.

Google search

Pretty self explanatory, but this method performs a search on Google. You can explicitly ask Sparx to run a google search, and even pass along requirements to help limit the search. This online research assistant is highly capable and understands Google’s query parameters enough to generate some advanced search queries to help you get the data you need.

đź’ˇ NOTE: Depending on your specific request or task, Sparx may not return links. If not, all you need to do is ask for it to return links.**

# Example prompt for google search
Please search google for top news stories today related to AI. Find the most compelling articles and please summarize them and include links to the original articles.

Content extraction

This gives the assistant the ability to load a page and extract the content as plaintext. (Want me to add functionality for extracting content in different formats? Let me know!).

The assistant is smart enough to do this on its own if necessary, but you can always explicitly tell Sparx to perform a Google search and extract content. You can also tell Sparx explicitly to visit a site and learn about it.

# Example prompt for content extraction
Please visit https://iamsparx.com and tell me about the product.

Reddit scraping

This gives the assistant to interact with Reddit an API. It’s currently limited but I’m happy to loosen restrictions if Sparx users are interested.

# Example prompts for scraping reddit

## Example asking for all posts
Please scrape the SaaS subreddit and tell me what people are talking about.

## Example looking for specific keywords
Please scrape the SaaS subreddit and sort by newest. Tell me if anybody is request a landing page roast.

Market research #

We built a specialized market research assistant that Sparx can leverage when necessary. If Sparx thinks your request would benefit from or requires any number of market research tasks, it will call on this assistant. Below are a list of capabilities owned by the market research assistant.

đź’ˇUnless otherwise noted, all of the data in here is extracted from Google; we do not yet support Bing. But if you want this, please let me know!

Keyword search volume

Retrieve keyword search volume for one or more keywords. You can ask Sparx to return summarized with key info like average search volume and competition level, or you can ask it to return detailed information.

By default, it also gets historical search volume up to 1 year from whatever the current date is.

# Example prompt
Please return detailed keyword volume details for "ai seo tools".

Keywords for site

You can get a list keywords relevant to the target domain. Can only handle one domain at a time. Similar to what I mentioned above, this can get historical keyword volume data up to one year from the current date. It will return up to 50 keywords.

# Example prompt
Please return a detailed list of keywords targeted by semrush.com.

Find related keywords

Accepts certain keywords and finds related ones. Returns up to 50 related keywords and volume data (again, only going back one year from the current date).

# Example prompt
Please find and return detailed related keywords for "ai seo tools".

Estimate site traffic

Attempts to retrieve the estimated combined organic and paid traffic for a given domain.

# Example prompt
Please find and return detailed estimated monthly traffic for semrush.com.

Domain rank overview

This will provide you with ranking and traffic data for organic and paid search for a given domain.

# Example prompt
Please return a detailed report on the domain ranking for semrush.com

Find competitors by domain

Given a domain, this will provide you with a full overview of ranking and traffic data from competitor domains for both organic and paid search.

# Example prompt
Please find domain competitors for semrush.com

Find competitors by keywords

This will find you a list of competitors ranking for the specified keywords.

# Example prompt
Please find competitors targeting the keyword "ai seo tools"

Whois data extraction

This will attempt to provide you with Whois data and backlink stats for a given domain. In some cases this won’t return anything (i.e. if someone has whois protection enabled on their domain).

# Example prompt
Please get detailed whois data for semrush.com.

Detect technology use

Get a list of technologies in use by the specified domain.

# Example prompt
Please find and report a detailed list of technology in use by semrush.com

Other capabilities #

Research and writing blog posts

This is the first agentic capability provided to Sparx. We refer to this as an async task because it’s a long running task that Sparx will initiate, and it runs in the background. Read more about async tasks in the section above.

It’s best if you tell Sparx explicitly what you want. If you just say “can you please help me write a blog post”, it may not check with you for specifics or details and write a post based on what it thinks you want.

But what’s really impressive about this is that it should actually generate a relatively high quality blog post with citations. Citations are currently appended at the end of a blog post as list. I found that attempting to insert them inline results in hallucinated links that aren’t valid. But my goal is improve the blog post creation process to include links inline which are more natural.

# Example prompt (assuming it has context on what Sparx is)
Please write for me a blog post promoting my app Sparx and targeting the keyword "ai seo tools".

Retrieving stored conversational context

This isn’t something you usually need to ask Sparx to do explicitly, but you can. In cases where you ask Sparx something out of the context of the current conversation like “Based on our marketing strategy, what keywords did we say we would target?”, there’s a good chance it’ll know to use this capability and check its stored context.

If not, it’ll reply with something like “I’m sorry, but I don’t remember what our marketing strategy was. Can you please remind me?” In this case, simply prompt it to check its saved context: “It should be in your saved context. Can you check there?” This should do the trick.

Async task checks

For asynchronous tasks (i.e. researching and writing a blog post), you can ask Sparx what the status is and if it’s completed yet. It can also list the latest asynchronous tasks and their states, along with page links to view them.

# Example prompt
Can you please list out the latest async tasks and the links to any completed ones?
 
1
Kudos
 
1
Kudos

Now read this

SEO Writing AI: Beyond Just Tools, How to Integrate with Strategy

In the fast-paced world of digital marketing, staying ahead of the competition requires more than just adopting the latest technologies. Artificial Intelligence (AI) is revolutionizing SEO strategies by offering tools that not only... Continue →