Intel competitor discovery
Skill b2bforce/b2bforce/.agents/skills/intel-competitor-discovery
Skills + workspace for AI agents in B2B service firms
npx -y skills add b2bforce/b2bforce --skill intel-competitor-discoveryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Discover new competitors via SERP results for a search phrase and location, deduplicate by root domain against already-monitored accounts, and propose candidates to add to monitoring. Use when the user wants to find competitors, research the market, or seed the monitoring list. Read firm profile first.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.8 KB, as published. Nobody here has run it
Competitor Discovery
Finds competitor candidates from search-engine results, so the user does not have to know every competitor by name.
Read Firm Context First
- Read
workspace/firm/profile.md— firm services, industry, geography, and the existing competitor list (used for deduplication). - Existing monitored competitors live in
workspace/intelligence/competitors/{slug}/!_profile.md.
When to Use
- User asks to find / discover competitors or research the market
- Seeding the monitoring list for a new firm
- Expanding monitoring around a specific service or keyword
Workflow
1. Build the search phrase
From firm context: a service + geography phrase, e.g. "drupal migration agency"
or "accounting firm Wroclaw". Ask the user to confirm or refine the phrase and
target country.
2. Fetch SERP results
Query a SERP API for the top 10 organic results (depth = 10) for the phrase
in the target country. Country is the SERP provider's full location name
(e.g. United States, Germany, Poland), not a country code.
- Requires
DATAFORSEO_LOGIN/DATAFORSEO_PASSWORD. - Dry-run (no key): ask the user for candidate URLs or use a provided list, and still run the dedup + profile steps below.
3. Process results
- Extract root domain from each result URL (lowercase, strip leading
www.). - Group by domain — one candidate per root domain. When several results
share a domain, keep the highest-ranked one (lowest
position). - Deduplicate against already-monitored accounts: in the app this is the set
of existing monitored companies in the workspace (matched by root domain). In
B2BForce, match against the competitor list in
workspace/firm/profile.mdand existingworkspace/intelligence/competitors/slugs. Flag matches asalready_existsand countduplicates_skipped. - Derive a candidate
namefrom the result title (split on|,-,::,//; fall back to the domain).
Note: the source pipeline does not auto-filter directories, marketplaces, Wikipedia, aggregators (clutch.co, g2.com), or the firm's own domain — every domain-grouped result is returned (duplicates flagged, not removed). Dropping obvious non-competitors happens in the user review step (§4), not automatically.
Return: results[] (name, domain, url, snippet, position, already_exists),
total, duplicates_skipped.
4. Present candidates and confirm
List candidates as a table (mark already_exists rows). Do not auto-add —
let the user pick which to monitor. This mirrors the source flow: the search
step returns candidates, and only an explicit confirm step creates accounts
(candidates already flagged already_exists are skipped on create).
5. Hand off to files-only monitoring
For each confirmed candidate, create
workspace/intelligence/competitors/{slug}/!_profile.md and
workspace/intelligence/competitors/{slug}/pages.md, then use
intel-competitor-monitoring to crawl. New competitors created from
candidates default to monitoring_enabled: true, monitoring_frequency: weekly,
and company_type: competitor. The homepage starts as the first monitored page
with Monitor=true and Priority=high.
Do not write to .agents/firm-context.md. If the firm profile needs a competitor
list, update workspace/firm/profile.md.
Workspace Output
| Artifact | Path |
|---|---|
| Discovery run | workspace/intelligence/reports/discovery-{YYYY-MM-DD}-{phrase-slug}.md |
| New competitor profile | workspace/intelligence/competitors/{slug}/!_profile.md |
| New page index | workspace/intelligence/competitors/{slug}/pages.md |
Discovery report frontmatter:
---
phrase:
country:
total_results:
duplicates_skipped:
candidates_added: []
date: 2026-06-01
---
Rules
- One candidate per root domain — always dedupe.
- Never add the firm's own domain.
- Confirm with the user before adding to monitoring (no silent writes to the monitored list).
- Respect rate limits; SERP discovery is a paid API call.
Environment Variables
DATAFORSEO_LOGIN=
DATAFORSEO_PASSWORD=
Related Skills
| Skill | When |
|---|---|
firm-context | Before discovery — services, geography, existing competitors |
intel-competitor-monitoring | After discovery — crawl confirmed competitors |
intel-weekly-report | Summarize changes across monitored competitors |