Introducing Spark 1 Pro and Spark 1 Mini models in /agent. Try it now →
Building a Claude Skills Generator with Firecrawl's Agent Endpoint
placeholderLeonardo Grigorio
Jan 20, 2026

Hi there, I’m Leo from Firecrawl. In this post, I’ll show you how I built a Claude Skills generator that automatically creates complete skill documentation from any URL.

Why Claude skills are booming

Claude skills are changing how people use AI in their day-to-day. They’re markdown files that extend Claude with new capabilities, trigger automatically based on context, and work across every project once you set them up.

Skills are streamlining workflows everywhere.

Need web scraping? Add a skill.

Want PDF processing? Add a skill.

Need API integrations? Add a skill.

Instead of copying and pasting the same instructions over and over, you define the behavior once and it works the same every time.

But here’s the thing: even though skills make your work easier, creating them manually is still tedious. You have to dig through documentation, extract the right information, understand the structure, format everything correctly, and make sure you don’t miss anything important.

We built an internal tool to solve this

At Firecrawl, we were creating a lot of Claude skills. It was taking hours for something that felt like it should be automated. So we built an internal tool: a Claude Code Skills Generator using Firecrawl’s /agent endpoint.

Give it a URL, and it generates complete Claude skill files with proper formatting, structure, and documentation. Everything you need, ready to use.

What would building this manually look like?

You’d start by accessing the URL, then either crawl or map everything. Mapping is probably better because you’d give the mapping context to the language model without crawling through things you might not need.

Once you have mapped everything, you’d have an array full of URLs. You’d send these URLs to an AI agent. After the agent reads them, it would process and understand what each URL is about. This URL is about an endpoint. This URL is about SDKs. This is for integrations.

If it doesn’t care about any of those, it keeps searching until it finds all the endpoints it should be finding. If none of those might be related to what you asked for, it will keep searching until it actually finds what you need.

Now that it has the URL, it goes inside, scrapes everything, brings it back to the context window, figures out what the structured output should look like, structures the data, and outputs it.

And all this would have to be created by us.

What about a no-code approach?

Even if you use a tool like n8n with a visual interface, you’d still need to do a lot of work.

You’d start with a chat message trigger, then send that message to an AI agent. After that, you’d have to give that agent access to different tools that can manage all this. Firecrawl provides these tools, so you could use them.

You’d select the Firecrawl tool and choose scraping. Make the URL input field dynamic so the AI could assign that value. Then you’d need to add another tool for mapping and search. Make those inputs dynamic too.

Then you’d add the crawling tool and make that input field dynamic as well. There are many more tools you could add, but just as an example, you’d already have three.

Now you need the AI agent to output in a specific format. So you’d toggle structured output and add the structured output parser. Here’s where you define the schema that it might output for us.

And to actually make it produce dynamic outputs based on the data it’s given, you’d have to add a lot of system prompting. Once you did all this, you’d have maybe 5% of what the actual Firecrawl agent endpoint can do.

How Firecrawl’s agent endpoint simplifies this

This is where Firecrawl’s /agent endpoint comes in. Instead of building and maintaining all that complexity yourself, you can:

  1. Send a prompt describing what you want
  2. Include a schema for the output format
  3. Make one API call
  4. Get back structured, accurate results

For my Claude Skills generator, I send a prompt that describes the guidelines for Claude to produce a Claude skill. Then I define a schema that tells the agent what fields it needs to fill in.

After that, it’s just a single POST request to Firecrawl’s agent endpoint to do all the work.

The agent handles everything else: mapping sites, searching for the right pages, extracting content, and formatting it according to your schema.

What does the output look like?

The generated files are detailed and precise. The skill markdown file follows the exact structure needed for Claude skills:

  • Name and description at the top
  • A decision tree showing when to use the skill
  • References to all related files
  • Proper formatting throughout

Everything is structured correctly and ready to use. Look at the size of these files and the precision. It’s exactly what you need without any manual work.

Introducing Spark 1 Pro and Spark 1 Mini

We’ve recently added two new models to the agent endpoint:

Spark 1 Mini: This is the default model if you don’t specify one. It’s 60% cheaper and great for most use cases.

Spark 1 Pro: Use this when you need better accuracy for complex searches and critical extractions.

To use Spark 1 Pro, just add this to your request body:

{
  "model": "spark-1-pro"
}

Or if you want to explicitly use Mini:

{
  "model": "spark-1-mini"
}

That’s it. The agent handles everything else.

Try it yourself

If you want to see the complete implementation of this Claude Skills generator, check out the GitHub repository GitHub repository. You’ll see exactly how simple it is to use Firecrawl’s agent endpoint for complex automation tasks like this.

Frequently Asked Questions

What are Claude skills?

Claude skills are markdown files that extend Claude Code with new capabilities. They trigger automatically based on context and work across every project once you set them up. Skills let you define behavior once and have it work consistently every time, whether you need web scraping, PDF processing, or API integrations.

Why did Firecrawl build a Claude Skills generator?

Creating Claude skills manually was taking hours. You have to dig through documentation, extract the right information, understand the structure, format everything correctly, and make sure you don't miss anything. Firecrawl automated this with an internal tool that takes a URL and generates complete Claude skill files with proper formatting, structure, and documentation.

What is Firecrawl's /agent endpoint?

Firecrawl's /agent endpoint is a single API that handles complex web data gathering tasks. Instead of building and maintaining tools for mapping, crawling, scraping, and data extraction yourself, you send a prompt and schema, make one API call, and get back structured, accurate results. The agent automatically handles everything: mapping sites, searching pages, extracting content, and formatting according to your schema.

What's the difference between Spark 1 Pro and Spark 1 Mini?

Spark 1 Mini is the default model and is 60% cheaper, great for most use cases. Spark 1 Pro offers better accuracy for complex searches and critical extractions. You can specify which model to use by adding 'model: spark-1-pro' or 'model: spark-1-mini' to your request body.

How much work would it take to build this manually?

Building this manually requires mapping or crawling entire sites, sending URLs to an AI agent, processing each page to understand its content, searching until you find the right information, scraping pages, extracting content, structuring it according to your schema, and outputting the final result. All of this infrastructure would need to be built and maintained by you. With Firecrawl's agent endpoint, it's just one API call.

Can I build this with no-code tools like n8n?

Yes, but even with n8n's visual interface, you'd need to set up chat triggers, connect AI agents, give agents access to multiple tools (scraping, mapping, searching, crawling), make all inputs dynamic, add structured output parsers, define schemas, and add extensive system prompting. Even after all that work, you'd have maybe 5% of what the actual agent endpoint does automatically.

What does the Claude Skills generator output look like?

The generated files are detailed and precise, following the exact structure needed for Claude skills: name and description at the top, a decision tree showing when to use the skill, references to all related files, and proper formatting throughout. Everything is structured correctly and ready to use without manual work.

How do I use the Spark 1 Pro model instead of the default?

To use Spark 1 Pro, add this to your request body: {"model": "spark-1-pro"}. To explicitly use Spark 1 Mini, add {"model": "spark-1-mini"}. That's it - the agent handles everything else.

placeholder
Leonardo Grigorio @leonardogrig
AI Engineer at Firecrawl
About the Author
Leonardo Grigorio works as a Developer Relations Engineer at Firecrawl. He is a full-stack developer and AI entrepreneur passionate about building tools, communities, and automation solutions.
FOOTER
The easiest way to extract
data from the web
. . .. ..+ .:. .. .. .:: +.. ..: :. .:..::. .. .. .--:::. .. ... .:. .. .. .:+=-::.:. . ...-.::. .. ::.... .:--+::..: ......:+....:. :.. .. ....... ::-=:::: ..:-:-...: .--..:: ......... .. . . . ..::-:-.. .-+-:::.. ...::::. .: ...::.:.. . -... ....: . . .--=+-::. :-=-:.... . .:..:: .:---:::::-::.... ..::........::=..... ...:-.. .:-=--+=-:. ..--:..=::.... . .:.. ..:---::::---=:::..:... ..........::::.:::::::-::.-.. ...::--==:. ..-::-+==-:... .-::....... ..--:. ..:=+==.---=-+-:::::::-.. . .....::......:: ::::-::.---=+-:..::-+==++X=-:. ..:-::-=-== ---.. .:.--::.. .:-==::=--X==-----====--::+:::+... ..-....-:..::-::=-=-:-::--===++=-==-----== X+=-:.::-==----+==+XX+=-::.:+--==--::. .:-+X=----+X=-=------===--::-:...:. .... ....::::...:-:-==+++=++==+++XX++==++--+-+==++++=-===+=---:-==+X:XXX+=-:-=-==++=-:. .:-=+=- -=X+X+===+---==--==--:..::...+....+ ..:::---.::.---=+==XXXXXXXX+XX++==++===--+===:+X+====+=--::--=+XXXXXXX+==++==+XX+=: ::::--=+++X++X+XXXX+=----==++.+=--::+::::+. ::.=... .:::-==-------=X+++XXXXXXXXXXX++==++.==-==-:-==+X++==+=-=--=++++X++:X:X+++X+-+X X+=---=-==+=+++XXXXX+XX=+=--=X++XXX==---::-+-::::.:..-..
Backed by
Y Combinator
LinkedinGithubYouTube
SOC II · Type 2
AICPA
SOC 2
X (Twitter)
Discord