How to Analyze 10K Reports at Scale for Cold Email Outreach Using Clay
Transform Public Company Data Into Powerful Cold Email Personalization
Public companies are required to file detailed 10K reports annually, revealing everything from financial performance to business risks. These documents contain goldmine insights for B2B sales professionals - but analyzing them manually is impossible at scale. Here's how to automate the entire process using Clay to create highly personalized cold email outreach. If you're planning to scale this approach, review the Clay pricing guide and consider the Clay MBA for templates and advanced workflows.
What Makes 10K Reports Valuable for Cold Email
10K reports are annual filings that public companies must submit to the SEC. They contain comprehensive information about:
- Financial performance and revenue trends
- Risk factors and business challenges
- Market positioning and competitive threats
- Operational changes and strategic initiatives
This data allows you to qualify prospects based on growth patterns, identify specific pain points, and craft personalized outreach that resonates with their actual business situation.
Why Manual Analysis Doesn't Scale
A typical 10K report contains hundreds of pages of detailed information. While incredibly valuable, extracting actionable insights manually would take hours per company - making it impossible for any meaningful outreach volume.
Building Your Automated 10K Analysis Workflow in Clay
Step 1: Create Dynamic Search Queries
Start by building a formula that generates targeted searches for each company's 10K report:
site:sec.gov/archives [Company Name] 10K 2023
This search targets the SEC's public archives and finds the most recent filing. Since Clay sometimes struggles with dynamic values in API calls, create this as a separate formula column first.
Step 2: Extract Search Results with Surper
Surper.dev provides an affordable way to grab search engine results at scale. Set up the API call with:
- Query parameter referencing your search formula
- Extract only the first organic result (typically the correct 10K filing)
- This saves Clay credits compared to native enrichment tools
Step 3: Analyze Reports with Claygen
Since 10K reports are too large for Clay's cell limits, use Claygen to:
- Visit the 10K report URL
- Navigate to specific sections (like "Risk Factors")
- Summarize relevant information
Key prompt structure:
Visit [10K URL] and summarize the risks listed for operating this business. This is often under a 'Risk Factors' section. Explore the table of contents for anything mentioning 'risk' and navigate to that section.
Step 4: Connect Insights to Your Solution
Use GPT to tie the extracted insights to your company's offerings:
I work for [Company Description]. Help me find how my solution fits the problems [Target Company] has. Here are their main risk factors: [Claygen Output]. Give me three main benefits my service offers related to their risks. Keep each under 10 words.
Step 5: Generate Email-Ready Content
Finally, transform your analysis into usable email content:
Use this input to complete my prefix. Keep output under 15 words: "We can help you specifically by..." Input: [Previous GPT Output]
Best Practices for 10K Report Analysis
Focus on Specific Sections
Different sections provide different insights:
- Risk Factors: Pain points and challenges
- Financial Performance: Growth trends and budget implications
- Market Discussion: Competitive positioning
Use Multi-Step Prompting
Rather than asking AI to do everything in one step, break it down:
- Extract and summarize relevant sections
- Connect findings to your solution
- Generate email-ready content
This approach produces more accurate and actionable results. For comprehensive AI-powered sales training, check out the ClaudeGTM course.
Account for Variations
Not every 10K report uses identical formatting or section headers. Test your prompts across multiple reports and adjust for common variations in terminology.
Actionable Implementation Steps
- Start Small: Test with 10-20 companies to refine your workflow
- Customize Prompts: Adapt the analysis focus to your specific solution
- Quality Check: Review outputs to ensure accuracy before scaling
- Iterate: Continuously improve prompts based on results
Scaling Your 10K Analysis Process
This workflow transforms hours of manual research into automated insights you can generate at scale. The key is balancing automation with specificity - the more targeted your analysis, the more compelling your outreach becomes. For lightweight utilities to prep data before enrichment, browse our tools page.
Remember: this only works for public companies, but if you're targeting enterprise accounts, this approach can dramatically improve your email personalization and response rates.
Related Content
Want to master Clay?
6+ hours of structured training
ClayMBA is my comprehensive course on becoming a top GTM engineer. Learn everything from basics to advanced workflows.
Explore ClayMBAView Full Transcript
Hey everyone, Hans here. Today a quick video around analyzing 10K reports of companies, of public companies specifically. It's something that I read the other day on LinkedIn and that I'm having to do for some clients as well. As well, I had someone asking me in a DM about something, you know, pretty similar, like a pretty similar use case. So hopefully, that person finds it helpful and hopefully someone else will find this helpful as well. So for those of you who are not familiar or need a quick refresher, so 10K reports are basically annual reports of public companies. They need to make these public annual reports about everything that goes on for them behind the scenes in terms of profit, loss, risks, et cetera, et cetera. So this is the one from Nike, for example. So they talk about their business, general stuff around sales and marketing, about risk factors, the properties that they have. And there's a whole lot in there that could potentially be very useful if you're looking to reach out to that company. Unfortunately, only public companies have this available, but still, if you're reaching out to enterprise, public companies, et cetera, then this can be very helpful. But analyzing all of this right here, just by yourself is obviously a pain in the butt. So here you can see all the revenue. And that's great, you could say, you know what, tell me, you could see the, okay, let's have a look how your night revenue is trending. Okay, great, they're, you know, they're doing more revenue like year over year. So they're growing. So. just that you can already derive from a 10K report, which is free. You can see this company growing, yes or no, or are they downsizing? And based on that, you could qualify, disqualify a company, or you could adjust your outreach saying, you know, as you're downsizing, this is how we can help. So that's what a 10K report does or shows. And we want to grab those 10K reports at scale, analyze them at scale, and use that for outreach. So for our use case, which is just gonna be a sample demo type use case, what we're going to do is we're going to find all these 10K reports. I'm gonna show you how to do that. Then we're going to analyze them and check the risk factor section. It's just a random section that I grabbed that I thought was interesting. So here to explain all the risk factors associated with. running their business and then all these different risks they go deeper into it. It's actually really interesting. If I had the time for it, I would actually read the entire 10K report. I just find it fascinating. So we wanna grab that and basically tie it into something we can use for an email. So here we are in Clay, obviously, and we want to grab the 10K links for these companies and then... get the data and then get a summary of that and then use that to write emails. And we're going to use Surper for that and then Claygen and then GPT. Now, how we do that is we're going to Google to find those 10K reports. So here's the search that we're going to recreate. We're going to find on this website, so the SEC which is, you know, the occasional familiar, they're overseeing all of this, then they publish all of this in their archives publicly. So we need to find that this, for example, would find it for Tesla, their 10K report. And we want to have it from, you know, one of the most recent one. So that would be from last year. So basically it would find in this URL right here, it would find a 10K report for this company and they use their, you know, let's say their exact name or legal name, however you want to call that. So that's something to keep in mind when you're searching. So that's what we're going to recreate. We're going to recreate this search and then get the first result that we find and we're going to use that. So we're going to use SERPR for that. Now what we first have to do is we need to use a formula to recreate that search because Clay at times has some issues passing dynamic values through their API or the HTTP module. So I just, you know, I always do it this way just to get rid of that headache. Sometimes it works, sometimes it doesn't. I think when there are spaces involved, when you combine a constant or fixed value with a dynamic value, it often has issues. So we recreate that search. So we basically say site and as sec .gov forces archives, then the company name, and then this part where the company name is dynamic. And it will take all of these company names right here, like Tesla, Capital One, Visa, Inc, yada yada. So we'll take that. So this is the formula that creates all those searches. And then here we have the surfer .dev connector. which we set up. So basically, Surper is a tool that allows you to grab search results like Google search engine result pages. I think that's it. I think that's what Surp stands for. Basically, it allows us to grab whatever we see here. And that's so really cheap. So we're a big fan of Surper. It's a great way to save some clay credits. Then this is what the body looks like. So basically this is the only parameter that we need to pass, which is Q, which stands for query. And you can just copy and paste this. There's no need to fully explain what is what. Basically, just this is how we set it up, the query that we're passing. And then here we're referencing this that we just set up, right? So the search term that we use, the formula to create. So that is the value that we're passing through the API. Then we can hit Save and Run. There are headers under here as well which contain our API keys, so I'm not going to show that. And then this is what the result looks like. So it shows all the organic results and then some other stuff that is not really relevant to us. We only want the first organic results and we're going to assume that 99 .99 % of the time that is the actual report. And that is the case as well. So, you know, again, here's the one for Tesla, for example. This is the one for Nike. And we're going to analyze that. But like I showed you before, it's a lot of text. So we want to find a way to analyze that. Unfortunately, we cannot grab the text in its entirety. Just because clay has as limits to the cell size. So we cannot get all the text in there and then analyze it. So I haven't tried extensively, but claygen seems the most straightforward path forward. If that makes sense, it just seems the most logical solution to tackle this problem without spending hours on trying different methods. Instead, I'll just spend some time tweaking the prompts that I'm using. So basically, we then take Lejian and we try to navigate to that 10K report. So we say, visit, you know, that 10K report and make a summary of the risks listed to operating this business. This is often listed under a risk factor section. So this you could obviously adapt to whatever section you're interested in. If you're interested in their financials, then check like one, two, three, four of these reports and see how they use it because they sometimes have like different, let's say headers for their, you know, for the different sections, just find like a common word or phrase that they're using and say, okay, it is often listed under a section that mentions these are those words. And then I didn't get a lot of data initially. So I added this right here and that actually helped it. I said, one step you can take is to explore the table of contents for anything that mentions risk or, you know, financial or... marketing or sales, like whatever you're interested in, then navigate to the corresponding section and summarize it. I think it's a one isn't it? Yeah, there we go. So let's see, table of contents, risk. So here is that risk factors. And then if it would navigate to what this is, what it will find. It's a lot of text. So that's something to keep in mind is very unlikely to process all of this text right here and make a summary. what is very likely or more likely it will for it to do is to grab this right here and make a summary. So we can try and be really specific if there's something specific that we're looking for. And it's probably gonna take a little bit of trial and error because again, it's a lot of information to process and it's not that every 10K report has the exact same, like the exact exact same structure. They probably need to have the exact same things in there. It's just that the wording is sometimes a little bit different and you know how it's made up, the formatting is sometimes a little bit different. So it's gonna take a little bit of trial and error, but we got it to actually summarize. So I still misspelled summarize, I think. So we got it to summarize the main risk factors. So it does seem that it got most of it actually. So in this case, it lists like the main risk factors listed in the provider site document for Nike include, yada yada yada, terrorism, that's never good. So it lists all, immigration. So it lists a lot of the risk factors and then here as well. So we get all those risk factors and then we wanna use that for something that we can use in our outreach. So imagine we were ambitious enough to reach out to all the CEOs or CFOs of these companies, then we want to turn it into something we can use in an email, right? So we're going to get that summary and then we're going to use our company description. So for our, for the sake of this example or editorial, we're going to assume that we work for Wells Fargo and company, for example, you know, whatever your company does. So here we basically put in our company description and try and give it, like as much background as we can. So here, your company description would go, but in our case, we'll work for Wells Fargo, who are a financial service company with 1 .9 trillion in assets, which is pretty cool. So we're saying, I work for a company that does the following. Then I have this, I need to split it up. Then I need your help trying to find my solution to fit the problems or risk a business called company has. here are their main risk factors for operating their business. Then we get the main risk factors right there. Then give me a comma separate list of the three main benefits my product or service has related to their main risk factors. Keep each point under 10 words. And then I repeat this in here just because I find that really helps with the output. So remember only give me three main benefits, yada yada. So that's what we're doing. That is the second step of our problem. So basically we get a 10K report. we get a summary of the section that we're interested in. We get, let's say, a raw output of AI -generated content around how our solution ties into that summary of the section that we're interested in. So then that is the output right here. So Wells Fargo can help Nike achieve financial stability through diverse, divide services, global support for economic stability experience, and they have experience in regulatory compliance and risk management. reduce compliance violation incidents, enhance credit risk management, is not super specific. So you can obviously make this a lot more specific by going deeper to the prompt, extracting more information, having your summary be focused on something more specific. There's a lot of ways you can improve on this, but this gives us the main solutions that our company Wells Fargo can offer to these companies based on their very specific self -reported risk factors. Then we want to turn that into something we can actually use in an email. So then we say use the input below and our input is going to be the output from our last prompt. To finish my prefix, keep your output under 15 words. Here's the prefix, I need you to repeat and complete. We can help you specifically by, here's your input. Again, that is the output that we just went over. Remember, and I'm just repeating something. That is a problem that we're using. And then the output is we can help you specifically by achieving financial stability through diversified services and global support. We can help you specifically by enhancing international operational efficiency, compliance and adaptability. We can help you specifically by reducing compliance violations, instance enhancing credit risk management and improving liquidity availability. So that's just a quick workflow of how you can take a 10 credit report of a company grab all of them at scale, summarize a section that is important to you, cite it into something that your company does, and then cite it into something you can use in an email. Again, you can be a lot more specific with this, but I just wanted to show you the workflow of getting that report, analyzing, summarizing, and I wanna make sure that you're aware of the fact, probably the fact that some people may disagree with me, but the... found it to be a lot more accurate to do your prompting, et cetera, in different steps. So instead of saying, here's a 10K report, here's what my company does, write me an email. Instead, okay, get the 10K report, find my section, summarize it, use that as input to get something that is relevant, then use that output as something I can use for an email. You could even add additional stats. Basically, the more specific and restrictive you are with the AI, the better your output would be. So hopefully you found that workflow helpful. If there's something that you're using, let me know if there's any specific questions that come up. For now, as always, thanks for watching. Hopefully see you in the next video. Bye bye.
Want to master Clay?
6+ hours of structured training
ClayMBA is my comprehensive course on becoming a top GTM engineer. Learn everything from basics to advanced workflows.
Explore ClayMBA