Open source Klue alternative: looot-battlecards
Build a competitive battlecard for each competitor from public data.
The code is MIT open source. The data is not free and not self-hosted: every real run calls looot and pays per call at the catalog price shown before the run.
Short answer
What is looot-battlecards?
looot-battlecards is an MIT-licensed web app and CLI. Give it your product and 1 to 10 competitor domains and it reads each competitor's pricing, homepage, careers, news, tech stack, reviews and ads. It writes one card per competitor, with a source link and date on every claim. The code is open source. The data is paid per looot call.
What it does
What looot-battlecards does and how to run it
It reads up to seven signals per competitor and keeps only what the page or result says. No claim is written from memory. Cards are built with templates and plain extraction rules, with no LLM needed.
A section that failed, is pending or was skipped is marked as such instead of being hidden. You can add your own strengths under Where we win, marked as your words and not fetched data.
Each card exports to JSON, markdown and one HTML page with print styles, ready for Save as PDF. The quote shows before any paid call and a spend cap is enforced.
This is the job that products such as Klue and Crayon do.
git clone https://github.com/loootai/looot-battlecards && cd looot-battlecards
npm install --ignore-scripts
npm run demo
npm run cards -- --demo
npm run cards -- --config battlecards.example.yaml --dry-run
export LOOOT_TOKEN=...
npm run cards -- --config battlecards.yaml --max-spend 0.25Facts
Facts from the repository
Read from GitHub on 2026-10-11.
| Job | Build a competitive battlecard for each competitor from public data. |
|---|---|
| License | MIT |
| Language | TypeScript |
| A real run needs |
|
| Demo mode | Yes. npm run demo shows invented competitors, and --demo writes the same cards as files. Both need no token and make no network call. |
| Repository | github.com/loootai/looot-battlecards |
| Facts read on | 2026-10-11 |
Data and price
Endpoints it calls, with the live price
Every real run calls these looot endpoints. The price column is read live from the catalog, never typed into this page.
| Endpoint | Used for | Live price |
|---|---|---|
| jina-readerjina | Pricing, homepage and careers pages as markdown | reading live price |
| serper-newsserper | Recent news | reading live price |
| serper-searchserper | Review snippets from review sites | reading live price |
| tomba-technologytomba | Tech stack by category | reading live price |
| scrapecreators-facebook-adlibrary-company-ads-getscrapecreators | Meta ad angles | reading live price |
| scrapecreators-linkedin-ads-searchscrapecreators | LinkedIn ad angles | reading live price |
Prices are read from the looot public catalog when the page loads. Some endpoints are priced per result, so a run that returns many rows costs more than one call. The CLI dry run prints the exact quote for your input before anything is charged.
Limits
What looot-battlecards does not do
- It has no win-loss interviews, no CRM or call-recording insights and no Slack or CRM publishing step.
- It does not read Google Ads. The Meta and LinkedIn libraries cover the ad angles it reports.
- Pricing and careers extraction needs a page that can be read as markdown. A page that loads prices with scripts comes back empty, and the card says so.
- Review themes are keyword rules on search snippets, which is a weak signal. The card quotes the snippet so you can judge it.
- It does not alert you when a competitor page changes. The sibling repo looot-monitor does that.
- Response parsing was written from provider documentation and fixtures. The README says it was not checked against a recorded paid response.
- The web app has no sign-in. Run it behind your own access control if you host it.
With an agent
Run it with your agent
Copy the prompt, give it to the agent you already use, and it dry-runs first.
FAQ
Questions about looot-battlecards
Keep going
Related on looot.ai
- Tomba through looot
Email finder and verifier
- ScrapeCreators through looot
Social media data API
- Jina through looot
Reader and search APIs
- Best SERP API
Ranked by live price
- Free tools
Jobs you can run in the page
- All open source repos on looot
The hub with every repo
- repo
- https://github.com/loootai/looot-battlecards
- job
- Build a competitive battlecard for each competitor from public data.
- license
- MIT
- language
- TypeScript
- endpoint
- jina: jina-reader (web_scrape_markdown)
- endpoint
- serper: serper-news (news_search)
- endpoint
- serper: serper-search (google_serp_organic)
- endpoint
- tomba: tomba-technology (company_technographics)
- endpoint
- scrapecreators: scrapecreators-facebook-adlibrary-company-ads-get (ads_meta_search)
- endpoint
- scrapecreators: scrapecreators-linkedin-ads-search (ads_linkedin_search)
- price
- per call, read live from the catalog on the web page
- framing
- MIT code, paid data, every real run calls looot
- setup
- https://looot.ai/skill.md
- llms.txt
- https://looot.ai/llms.txt
- read
- 2026-10-11
Run looot-battlecards on your own looot account.
Try the demo first, no account needed. For a real run, start your workspace, top up, and use the quote the repo prints before it spends anything.