Identify potential B2B clients matching service definition and ideal client profiles
Scanned 6/2/2026
Install via CLI
openskills install reggiechan74/JobOps---
name: findclient
description: Identify potential B2B clients matching service definition and ideal client profiles
disable-model-invocation: true
---
## Configuration
Read `.jobops/config.json`. If missing, stop with:
> JOBOPS NOT CONFIGURED
> Run /jobops:setup (then /jobops-ic:setup) to initialize your workspace.
Use `config.directories.contractor_root` for output paths in this skill.
Use `config.preferences.default_currency` for pricing if applicable.
## Arguments
Identifies potential B2B clients through intelligent discovery with 10-point B2B fit scoring and entry point mapping.
**Input Options:**
- `<ideal-job-file>`: Optional ideal job file from `/idealjob`
- `--industry=X`: Filter by industry
- `--size=startup|mid|enterprise`: Company size filter (startup: 1-50, mid: 50-500, enterprise: 500+)
- `--location=X`: Geographic filter
- `--limit=N`: Max prospects (default: 20, max: 50)
**Output**: `{config.directories.contractor_root}/prospects/[Domain]_[YYYYMMDD].md` (Domain = service category/industry, sanitized PascalCase)
---
## Phase 1: Load Prerequisites and Build Targeting Profile
### 1.1 Check Service Definition Prerequisite
Search for `{config.directories.contractor_root}/services/service_definition_*.md`. If NOT found, stop with:
```
SERVICE DEFINITION REQUIRED
Run /defineservices first to create service catalog with ideal client profiles, pricing, and differentiation.
```
If multiple found, use most recent (latest date in filename).
### 1.2 Parse Service Definition
Extract from YAML: `consultant`, `generated_on`, `version`
Extract from markdown body:
- **Services**: name, category, ideal_client (industries, company_size, pain_points, decision_makers)
- **Target Market**: primary_markets, secondary_markets, avoid_markets, geographic_focus
- **Differentiation**: competitive_advantages, proof_points
### 1.3 Parse Command-Line Filters and Optional Ideal Job
**Filters:**
- `--industry=X`: Narrow to specified industry
- `--size=startup|mid|enterprise`: Filter by company size
- `--location=X`: Geographic constraint
- `--limit=N`: Default 20, max 50
**If ideal job file provided** ({{ARG1}} ends with `.md`):
Extract: target industries, company size, location, tech stack, organizational characteristics
### 1.4 Consolidate Targeting Profile
**Priority order:** Command-line filters > Ideal job criteria > Service definition
Create merged targeting profile with industries, company sizes, geographic focus, pain points, decision makers.
---
## Phase 2: Research Queries and Discovery Strategy
### 2.1 Generate 10-15 Web Search Queries
Create targeted queries using service-industry intersections:
**Query Types:**
1. **Industry + Contractor**: "[industry] companies hiring consultants 2025", "[industry] contractor jobs [location]"
2. **Pain Point + Service**: "[industry] [pain point] consulting RFP", "[industry] need for [service]"
3. **Procurement**: "[industry] vendor registration portal", "[industry] consulting spend"
4. **Company Discovery**: "top [industry] companies [location]", "[industry] digital transformation 2025"
5. **Intermediaries**: "[industry] consulting marketplaces", "[industry] staffing agencies"
6. **Associations/Events**: "[industry] association directory", "[industry] conference sponsors 2025"
Customize with current year (2025), location filter, target industries, and pain points.
**Time Budget:** ~6-8 minutes for 20 prospects (discovery 3-4min, B2B signals 2-3min, entry points 1-2min)
---
## Phase 3: Discovery and B2B Signal Research
### 3.1 Execute Company Discovery
Run web searches to identify 30-50 candidate companies (will filter to limit after scoring).
**Extract:** Company name, industry, HQ location, size (employees/revenue), website, description
**Prioritize sources:** LinkedIn pages, industry directories, conference sponsors, government registries, transformation news
**Quality filters:** Exclude staffing agencies, individual consultants, <5 employees (unless startup filter)
### 3.2 Research 5 B2B Signal Types (30-60 sec per company)
**1. Contractor History (25% weight)**
- Search: "[company] consultant/contractor job postings", site:linkedin.com "[company] consultant", site:glassdoor.com "[company] contractor"
- Evidence: Job posts (recent = strong), Glassdoor contractor mentions, LinkedIn contractor profiles, vendor pages
**2. Procurement Accessibility (20% weight)**
- Search: "[company] vendor registration", "[company] supplier portal", "[company] small business program"
- Evidence: Vendor portals, small business programs, streamlined processes, RFPs
**3. Domain Alignment (25% weight)**
- Check: Industry match, pain point evidence (press releases, job postings, news), tech stack, initiatives
- Evidence: Press releases on relevant initiatives, job postings showing gaps, company website priorities
**4. Size/Budget Fit (15% weight)**
- Search: "[company] revenue/funding/employee count", site:linkedin.com "[company] employees"
- Evidence: Revenue (filings/news), funding rounds, employee count, consulting spend
- Budget capacity: Enterprise (500+): $50K-$500K+, Mid (100-500): $10K-$100K, Small (50-100): $5K-$25K, Startup (<50): <$10K
**5. Geographic Match (15% weight)**
- Check: HQ location, remote culture, multiple offices, international presence
- Evidence: Remote job postings, Glassdoor reviews on flexibility, distributed employee locations
### 3.3 Identify Entry Points (1-2 min for high-scoring prospects)
**5 Entry Point Types:**
1. **Procurement Portals**: URL, process (Open/Quarterly/Invite), requirements, ease
2. **Warm Introductions**: 2nd-degree LinkedIn connections, associations, alumni, former colleagues
3. **Intermediaries**: Staffing agencies serving client, consulting marketplaces
4. **Decision-Makers**: LinkedIn profiles matching ideal_client.decision_makers titles, accessibility
5. **Content/Events**: Conferences, guest posting, LinkedIn engagement, webinars
---
## Phase 4: 10-Point B2B Fit Scoring
### 4.1 Scoring Formula
```
Total Score = (Contractor History x 0.25) + (Procurement Accessibility x 0.20) +
(Domain Alignment x 0.25) + (Size/Budget Fit x 0.15) + (Geographic Match x 0.15)
```
Each factor: 0-10 points. Final: 0.0-10.0 (1 decimal)
**Priority:** HIGH (8-10): Active outreach | MEDIUM (5-7.9): Worth pursuing | LOW (1-4.9): Deprioritize
**Confidence:** HIGH (4+ factors with direct evidence) | MEDIUM (2-3 direct) | LOW (mostly inferred)
### 4.2 Factor Scoring Tables
**Factor 1: Contractor History (25%)**
| Score | Evidence |
|-------|----------|
| 10 | Active program + job posts <3mo + positive Glassdoor |
| 8-9 | Job posts <6mo OR consulting spend in reports |
| 6-7 | LinkedIn contractors, job posts 6-12mo |
| 4-5 | Indirect (staffing mentions, industry norms) |
| 2-3 | Minimal, inferred from size (enterprise) |
| 0-1 | No evidence |
Evidence: Job post URLs/dates, Glassdoor quotes, LinkedIn profiles, report citations. Confidence: HIGH (direct), MED (indirect), LOW (inferred)
**Factor 2: Procurement Accessibility (20%)**
| Score | Evidence |
|-------|----------|
| 10 | Public portal + small biz program + streamlined |
| 8-9 | Portal exists + reasonable process |
| 6-7 | Contact identified + public process |
| 4-5 | General info, suggests openness |
| 2-3 | No public info, size suggests process |
| 0-1 | Closed network OR bureaucratic |
Evidence: Portal URLs, policy docs, contacts. Red flags: "Approved only", excessive insurance, >6mo qualification
**Factor 3: Domain Alignment (25%)**
| Score | Evidence |
|-------|----------|
| 10 | Perfect industry + active pain point + recent initiative |
| 8-9 | Target industry + strong pain point OR adjacent + perfect match |
| 6-7 | Industry + some pain point OR adjacent + good fit |
| 4-5 | Adjacent + transferable pain points |
| 2-3 | Weak alignment, speculative fit |
| 0-1 | Mismatch OR no pain point evidence |
Sub-scoring: Industry match (+4 exact, +2 adjacent), Pain point (+3 exact, +2 job gaps, +1 reports), Service need (+3 direct, +2 strategic, +1 general)
**Factor 4: Size/Budget Fit (15%)**
| Score | Evidence |
|-------|----------|
| 10 | 1000+ employees + consulting spend >$1M/yr |
| 8-9 | 500-1000 employees OR mid + $50M+ revenue |
| 6-7 | 100-500 employees + $10M-$50M revenue |
| 4-5 | 50-100 employees + funding/revenue |
| 2-3 | <50 employees + Series A+ funding |
| 0-1 | <20 employees, no budget indicators |
Budget capacity: Enterprise $50K-$500K+, Mid $10K-$100K, Small $5K-$25K, Startup <$10K. Evidence: Revenue, employee count, funding, consulting spend
**Factor 5: Geographic Match (15%)**
| Score | Evidence |
|-------|----------|
| 10 | HQ in target + remote-friendly confirmed |
| 8-9 | HQ in target OR remote + adjacent |
| 6-7 | National presence + remote option |
| 4-5 | Different geo + strong remote |
| 2-3 | Different geo, limited remote |
| 0-1 | Different geo + no remote (on-site) |
Location filter scoring: HQ match +5, office +3, adjacent +2, remote national +2. Remote signals: Job posts +3, Glassdoor +2, policy +2
---
## Phase 5: Prospect Report Generation
### 5.1 Sort and Filter
Sort by score (descending), group by priority. Limit to `--limit` (default 20). Target distribution (limit=20): HIGH 8-12, MEDIUM 6-10, LOW 0-2.
### 5.2 Report Structure
**File:** `{config.directories.contractor_root}/prospects/[Domain]_[YYYYMMDD].md` (domain = service category/industry, sanitized PascalCase)
**YAML Frontmatter:**
```yaml
---
consultant: [Name]
service_definition: [Path]
generated_by: /findclient
generated_on: [ISO8601]
output_type: prospects
status: final
version: 1.0
search_criteria:
industries: [List]
company_sizes: [List or "All"]
location: [Filter or "Global"]
limit: [Number]
prospect_count:
high_priority: [Count]
medium_priority: [Count]
low_priority: [Count]
total: [Total]
---
```
### 5.3 Executive Summary
```markdown
# Client Prospect Report: [Domain Focus]
**Generated:** [Date] | **Consultant:** [Name] | **Search Focus:** [Industries/services]
## Executive Summary
### Prospect Pipeline Overview
- **HIGH Priority (8-10)**: [X] companies - Active outreach recommended
- **MEDIUM Priority (5-7.9)**: [Y] companies - Worth pursuing with right introduction
- **LOW Priority (1-4.9)**: [Z] companies - Deprioritize
### Top 3 Opportunities
1. **[Company 1]** ([X.X]/10) - [One-line value prop]
2. **[Company 2]** ([X.X]/10) - [One-line value prop]
3. **[Company 3]** ([X.X]/10) - [One-line value prop]
### Market Intelligence
- [Market receptiveness finding]
- [Common pain points]
- [Entry point patterns]
### Recommended Next Steps
1. [Immediate action for top prospect]
2. [High-priority group strategy]
3. [Pipeline development]
```
### 5.4 HIGH Priority Format (Full Detail for ALL)
```markdown
## [Company Name]
**B2B Fit Score: [X.X]/10** HIGH PRIORITY
### Company Overview
**Industry:** [Industry] | **Size:** [Employees] employees | [Revenue] | **HQ:** [City, Province, Country] | **Website:** [URL]
### B2B Fit Scoring Breakdown
| Factor | Score | Weight | Contribution | Evidence Quality |
|--------|-------|--------|--------------|------------------|
| Contractor History | [X]/10 | 25% | [X.XX] | [HIGH/MED/LOW] |
| Procurement Access | [X]/10 | 20% | [X.XX] | [HIGH/MED/LOW] |
| Domain Alignment | [X]/10 | 25% | [X.XX] | [HIGH/MED/LOW] |
| Size/Budget Fit | [X]/10 | 15% | [X.XX] | [HIGH/MED/LOW] |
| Geographic Match | [X]/10 | 15% | [X.XX] | [HIGH/MED/LOW] |
| **TOTAL** | **[X.X]/10** | 100% | **[X.XX]** | **[HIGH/MED/LOW]** |
**Overall Confidence:** [HIGH/MED/LOW] - [Rationale]
### Score Rationale
[2-3 sentences explaining score, highlighting strongest factors]
### Service Alignment
| Service | Fit | Evidence |
|---------|-----|----------|
| [Service 1] | HIGH/MED/LOW | [Specific need evidence] |
**Primary Value Prop:** [Service-specific value prop]
### Entry Points & Outreach
#### Entry Point 1: [Type]
**Access:** [URL/method] | **Process:** [Steps/timeline] | **Ease:** [EASY/MOD/COMPLEX] | **Notes:** [Details]
#### Entry Point 2-3: [Repeat format]
### Recommended Outreach
**Priority:** [IMMEDIATE/THIS WEEK/THIS MONTH]
**Steps:**
1. [Action 1]
2. [Action 2]
3. [Action 3]
**Pitch:** Lead with [pain point], emphasize [advantage], highlight [proof points]
**Estimated Value:** [Engagement type], [project size], [timeline]
### Evidence & Sources
**Contractor History:** [Source URLs/quotes]
**Procurement:** [Source URLs]
**Domain:** [Source URLs]
**Budget:** [Source data]
**Geographic:** [Source data]
### Red Flags
[Concerns or "None identified"]
```
### 5.5 MEDIUM Priority Format (Condensed)
```markdown
## [Company Name]
**B2B Fit Score: [X.X]/10** MEDIUM PRIORITY
**Industry:** [Industry] | **Size:** [Employees] | **Location:** [City, Province]
**Why Medium:** [1-2 sentences on strengths/weaknesses]
**Scoring:** Contractor [X]/10, Procurement [X]/10, Domain [X]/10, Budget [X]/10, Geographic [X]/10
**Service Fit:** [Service] - [Brief evidence] | **Value Prop:** [One sentence]
**Entry Points:** 1. [Type]: [Brief] - Ease: [EASY/MOD/COMPLEX] | 2. [Type]: [Brief] - Ease: [EASY/MOD/COMPLEX]
**Outreach:** When: [Condition] | Approach: [1-2 sentences]
**Key Source:** [URL]
```
### 5.6 LOW Priority Format (Table)
```markdown
## Low Priority Prospects (1-4.9)
| Company | Score | Industry | Location | Key Gap |
|---------|-------|----------|----------|---------|
| [Co 1] | [X.X]/10 | [Ind] | [Loc] | [Reason] |
**Common issues:** [Pattern]
```
### 5.7 Market Intelligence & Action Plan
```markdown
## Market Intelligence
**[Industry 1]:** Contractor receptiveness: [H/M/L], Pain points: [List], Engagement: [Type], Procurement: [Open/Mod/Restrictive]
**Entry Points:** [Type] - [X]% ([X] companies) | [Most challenging]: [Type] - [X] companies
**Geographic:** [X]% remote-friendly, Clusters: [Regions]
**Budget:** Enterprise ([X]): $[range], Mid ([X]): $[range]
## Recommended Action Plan
**Immediate (This Week):**
1. [Company 1] - [Action]
2. [Company 2] - [Action]
3. [Company 3] - [Action]
**Short-Term (This Month):** Warm intros: [Actions], Content: [Actions], Procurement: [Actions]
**Medium-Term (Next Quarter):** MEDIUM cultivation: [Actions], Positioning: [Actions]
**Long-Term:** Market expansion: [Recommendations], Differentiation: [Recommendations]
## Appendix: Methodology
**Service Definition:** [Path] v[X] ([Date]), [X] services
**Search:** [X] queries, [Sources], ~[X] minutes
**Scoring:** 5-factor weighted (Contractor 25%, Procurement 20%, Domain 25%, Budget 15%, Geographic 15%)
**Limitations:** Public info only, point-in-time, domain scoring subjective, [evidence gaps]
**Follow-Up Checklist:** [ ] Verify contacts, [ ] Recent news, [ ] Mutual connections, [ ] Job postings, [ ] Events
**Generated:** [ISO8601] | **Command:** /findclient [args] | **Next Update:** [Date +3mo]
```
---
## Phase 6: Save and Summarize
### 6.1 Save Report
Save to: `{config.directories.contractor_root}/prospects/[Domain]_[YYYYMMDD].md` (domain = service category/industry, sanitized PascalCase). Create directory if needed: `mkdir -p {config.directories.contractor_root}/prospects`
### 6.2 Console Summary
```
CLIENT PROSPECT RESEARCH COMPLETE
**Output:** {config.directories.contractor_root}/prospects/[Domain]_[Date].md
**Pipeline:** HIGH (8-10): [X] | MEDIUM (5-7.9): [Y] | LOW (1-4.9): [Z]
**Top 3:** 1. [Co1] ([Score]/10) - [Industry] - [Entry] | 2. [Co2] ... | 3. [Co3] ...
**Market Highlights:** [3 key findings]
**Immediate Actions:** [3 specific actions for top prospects]
**Research:** [X] companies, [Y] searches, ~[Z] min, Evidence: [H/M/L]
**Next:** Review report -> Prioritize top 3 -> Prepare pitches -> Execute strategies -> Quarterly refresh
**Note:** Point-in-time research. Validate before outreach.
```
---
## Error Handling
**No Service Definition:** Stop with message to run `/defineservices` first
**No Prospects:** Suggest broaden criteria, remove filters, review ideal_client profiles, try adjacent industries/regions, use association directories/conferences/LinkedIn Navigator
**All Low Priority:** Note quality concern, suggest review MEDIUM prospects, expand industries, adjust size targets, build credibility first, consider intermediaries
**Web Failures:** Note confidence reduced, mark LOW quality, recommend manual validation, suggest paid databases
**Invalid Filters:** Display valid options (size: startup|mid|enterprise)
**Limit Too High:** Adjust to 50 max, note 15-20min time, suggest multiple runs or focused industry
---
## Usage Examples
1. **Basic:** `/findclient` -> Uses service def, all services, global, limit 20
2. **Industry:** `/findclient --industry="Commercial Real Estate"` -> CRE only
3. **Enterprise + Location:** `/findclient --size=enterprise --location="Toronto" --limit=15` -> 500+ employees, Toronto
4. **Ideal Job:** `/findclient {config.directories.job_postings}/IdealJob_Synthetic_20251201.md --limit=25` -> Merges criteria
5. **Comprehensive:** `/findclient --limit=50` -> All industries, max limit, 15-20min
6. **Startups:** `/findclient --size=startup --industry="AI/ML" --limit=30` -> 1-50 employees, AI/ML
---
## Important Notes
**Ethics:** Public info only, no private data, respect privacy, point-in-time, probabilistic scoring
**Evidence:** HIGH (job posts/portals/reports/press), MED (Glassdoor/LinkedIn/industry reports), LOW (size/industry norms/estimates)
**Scoring:** Systematic, weighted (contractor+domain=50%), evidence-based, transparent. Subjectivity: domain matching, budget estimates, entry ease
**Pre-Outreach:** Fresh news (30 days), verify contact role, confirm warm intro, check portal updates
**Quarterly Refresh:** Run same command every 3mo to track trigger events, procurement cycles, decision-maker changes, market shifts
---
Now executing client discovery research...
No comments yet. Be the first to comment!