Introduction
Competitive analysis is one of those tasks that eats time without adding much value if done manually. You spend hours collecting data from different sources, copying snippets into spreadsheets, then summarising the findings. By the time you've finished, market conditions have shifted and your intelligence is already stale.
The real problem is that these tools exist in isolation. Accio AI can pull company information, Lex Machina provides legal and litigation data, and Resoomer condenses documents into summaries, but none of them talk to each other. You end up with manual handoffs between platforms, copy-paste work, and no central repository for your findings.
This is where orchestration makes the difference. By wiring these three tools together with Zapier, n8n, Make, or Claude Code, you can trigger a complete competitive analysis workflow with a single input. New competitor spotted? One prompt, and the system gathers their company details, pulls their legal history, summarises their latest documents, and deposits everything into a shared workspace. No manual steps required.
The Automated Workflow
We'll build this workflow using n8n as the primary orchestrator, since it offers the best balance of flexibility and ease of use for intermediate users. The flow will trigger when you submit a competitor name, then move through three stages: discovery, analysis, and consolidation.
Stage One: Company Discovery with Accio AI
Accio AI specialises in pulling structured company data from public sources. When you feed it a company name, it returns employment size, funding information, recent news, and key executives.
Start by creating an n8n workflow with a Webhook trigger. This allows you to submit competitor names via a simple HTTP POST request.
POST /webhook/competitor-analysis
Content-Type: application/json
{
"company_name": "TechCorp Inc",
"industry": "SaaS"
}
Next, add an HTTP Request node to call the Accio AI API endpoint. You'll need an API key from Accio (available from their dashboard).
GET https://api.accio-ai.com/v1/company/search
Headers:
Authorization: Bearer YOUR_ACCIO_API_KEY
Content-Type: application/json
Query Parameters:
q=TechCorp Inc
fields=company_name,employees,funding,executives,recent_news
Accio returns JSON structured like this:
{
"company": {
"name": "TechCorp Inc",
"employees": 450,
"founded": 2015,
"funding_total": "$42M",
"latest_round": "Series B",
"executives": [
{
"name": "Sarah Chen",
"title": "CEO",
"background": "Previously VP at DataCorp"
}
],
"recent_news": [
{
"headline": "TechCorp raises $15M in Series B",
"date": "2024-01-15",
"source": "TechCrunch"
}
]
}
}
Store this response in an n8n variable for use in later stages. Set the variable name to accio_data.
Stage Two: Legal and Litigation Intelligence with Lex Machina
Lex Machina specialises in litigation data, regulatory filings, and legal intelligence. This is where you'll discover disputes, regulatory actions, and legal risk factors for your competitor.
Add another HTTP Request node pointing to the Lex Machina API. You'll pass the company name from your webhook trigger.
GET https://api.lex-machina-ai.com/v1/entities/search
Headers:
Authorization: Bearer YOUR_LEX_MACHINA_API_KEY
Content-Type: application/json
Query Parameters:
entity_name=TechCorp Inc
include_litigation=true
include_regulatory=true
include_ip_disputes=true
Lex Machina returns litigation records and regulatory data:
{
"entity": "TechCorp Inc",
"litigation": {
"total_cases": 12,
"active_cases": 3,
"cases": [
{
"case_id": "2023-CV-8421",
"plaintiff": "DataStream LLC",
"defendant": "TechCorp Inc",
"issue": "Patent infringement",
"filed_date": "2023-06-12",
"status": "Discovery",
"court": "Northern District of California"
}
]
},
"regulatory": {
"filings": 8,
"recent_actions": [
{
"agency": "FTC",
"action_type": "Inquiry",
"description": "Data privacy practices investigation",
"date": "2024-01-20"
}
]
}
}
Store this as the lex_data variable.
Stage Three: Document Summarisation with Resoomer
By this stage, you've gathered structured company data and legal intelligence. Now you need to summarise any lengthy documents: annual reports, white papers, investor presentations, or policy documents. Resoomer handles this automatically.
However, Resoomer doesn't take direct API calls in the traditional sense. Instead, you'll use it via a webhook integration or by sending document URLs. Create an n8n node that fetches a recent document URL for the competitor (you can hardcode this or pull it from Accio's findings), then format it for Resoomer.
POST https://api.resoomer.com/api/summarize
Headers:
Authorization: Bearer YOUR_RESOOMER_API_KEY
Content-Type: application/json
{
"url": "https://techcorp.com/investor-deck-2024.pdf",
"type": "document",
"length": "medium",
"language": "en"
}
Resoomer returns a condensed summary:
{
"original_length": 4500,
"summary_length": 890,
"summary": "TechCorp's 2024 investor deck highlights expansion into enterprise markets with three new product modules. Revenue growth of 35% year-over-year is driven by customer concentration in the financial services sector. The company plans Series C fundraising within 12 months and is building out a sales office in EMEA regions.",
"key_points": [
"Enterprise product expansion",
"35% YoY revenue growth",
"Series C planned in 2024"
]
}
Store this as resoomer_data.
Stage Four: Consolidation and Output
Now you have three datasets. Create a final n8n node that formats everything into a clean, structured output. Use a Set node to combine the variables:
{
"competitor_name": "{{ $node.webhook.json.company_name }}",
"analysis_timestamp": "{{ new Date().toISOString() }}",
"company_overview": "{{ $node['Accio AI'].json.company }}",
"legal_intelligence": "{{ $node['Lex Machina'].json }}",
"document_summary": "{{ $node['Resoomer'].json.summary }}",
"key_findings": {
"employee_count": "{{ $node['Accio AI'].json.company.employees }}",
"active_litigation": "{{ $node['Lex Machina'].json.litigation.active_cases }}",
"regulatory_risk": "{{ $node['Lex Machina'].json.regulatory.recent_actions.length > 0 ? 'High' : 'Low' }}",
"strategic_focus": "{{ $node['Resoomer'].json.key_points }}"
}
}
Finally, send this consolidated output to your destination of choice. Popular options include:
- Google Sheets via the Google Sheets API node, appending each analysis as a new row in a "Competitors" tab.
- Slack, posting a formatted message to a dedicated #competitive-intelligence channel.
- A database like PostgreSQL, inserting the full JSON structure for long-term analysis.
- Notion, creating a new page under a "Competitor Research" database with all findings.
For a Slack integration, configure the output like this:
{
"channel": "#competitive-intelligence",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Competitive Analysis: {{ $node.webhook.json.company_name }}"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Employees:*\n{{ $node['Accio AI'].json.company.employees }}"
},
{
"type": "mrkdwn",
"text": "*Funding:*\n{{ $node['Accio AI'].json.company.funding_total }}"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Document Summary:*\n{{ $node['Resoomer'].json.summary }}"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Active Litigation:* {{ $node['Lex Machina'].json.litigation.active_cases }}"
}
}
]
}
This entire workflow executes in under 30 seconds. You trigger it with a single HTTP request, and the system handles the rest.
The Manual Alternative
If you prefer to retain more granular control over each analysis, or if your competitors require custom research (which often happens with smaller or private companies), you can use these tools individually:
- Visit Accio AI's web dashboard, enter the company name, and review the results before proceeding.
- Open Lex Machina separately to dig deeper into litigation records if the automated pull flags active cases.
- Use Resoomer on specific documents you've found manually, rather than relying on automated document discovery.
This approach takes longer (typically 20 to 40 minutes per competitor), but it gives you the chance to ask follow-up questions within each platform and verify data quality. For deeply private companies or niche markets, this hybrid method often makes sense: automate the data gathering, then manually validate and expand on the results.
Pro Tips
Error Handling and Retries
Accio AI occasionally returns rate-limited responses if you're processing many competitors in quick succession. In your n8n workflow, set up a Retry node after the Accio API call with exponential backoff. Configure it to retry up to 3 times with a 5-second delay between attempts:
{
"retry": {
"max_retries": 3,
"delay_base": 5000,
"delay_multiplier": 2
}
}
This means the first retry waits 5 seconds, the second waits 10 seconds, and the third waits 20 seconds, before giving up.
Rate Limits and Batching
Lex Machina permits 100 API calls per day on standard plans. If you're analysing many competitors, batch them. Run competitive analysis once daily during off-peak hours (for example, 11 PM UTC), rather than spreading requests throughout the day. This also ensures your team sees consolidated reports at a predictable time.
Cost Optimisation
Resoomer charges by the number of summarisations. Avoid sending documents that are already summaries or marketing copy. Use Accio's news feed instead, which often includes pre-written summaries of major announcements. This saves Resoomer API calls and money.
Data Staleness
Lex Machina updates litigation records with a 24-48 hour lag. If you need real-time litigation data, supplement this workflow with a Google Alerts integration (set up separately via IFTTT or Zapier) to catch breaking news.
Customising Field Selection
Accio AI's API allows you to specify exactly which fields you want to retrieve. If you only care about funding and employees, request only those fields. This can slightly reduce latency and improves readability of the JSON response:
GET https://api.accio-ai.com/v1/company/search?q=TechCorp&fields=employees,funding_total
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| Accio AI | Professional | £99 | 500 API calls/month included; £0.20 per additional call |
| Lex Machina | Standard | £149 | 100 API calls/day (3,000/month); entity data included |
| Resoomer | Premium | £89 | 2,000 summarisations/month; document length unlimited |
| n8n | Cloud Professional | £30 | 200,000 executions/month; sufficient for 6-8 daily competitor analyses |
| Total | £367 | Assumes moderate usage; scales up with higher competitor volume |
If you analyse 5 new competitors weekly, this stack costs approximately £1.83 per competitor analysis, including orchestration overhead. Manual research typically costs 4-6 hours of labour per competitor at standard consulting rates, this becomes a significant saving within the first few weeks.
Implementation Timeline
Setting up this workflow from scratch takes 1-2 hours:
- Sign up for API keys from each tool (15 minutes).
- Build the n8n workflow following the stages above (45 minutes).
- Test with 2-3 real competitors and refine output formatting (30 minutes).
Once live, you can add new competitors to your analysis queue in under 2 minutes per entry. The system handles everything else automatically.