my-company-api

$npx mdskill add myapihq/myapi/my-company-api

Query a company database by behavioral signals and firmographics for ABM targeting.

  • Filter companies by Goldfox confidence tier, country, headcount, and page signals.
  • Depends on Goldfox crawl data and integrates with my-audience-api.
  • Uses AND/OR logic across filter fields; empty filter defaults to high confidence.
  • Returns companies with rich signal data for account-based targeting.

SKILL.md

.github/skills/my-company-apiView on GitHub ↗
---
name: my-company-api
version: 1.0.0
description: >
  Company database backed by the Goldfox crawl. Filter companies by Goldfox confidence tier, country/TLD consistency, behavioral page signals (has_careers_page, has_investors_page, has_shop_page, has_c_level, has_decision_maker), legal-entity status, headcount, and source-URL count. Account-based targeting and B2B firmographics.
triggers: [companies, accounts, firmographics, abm, search, filter, goldfox, careers signal, investors, c-level, shop, b2b targeting]
checksum: sha256-pending
---

# MyCompanyAPI

A queryable company database for account-based targeting and B2B firmographics, sourced from the **Goldfox** crawl. Filter by confidence tier, country consistency, behavioral page signals, and quality thresholds — get back companies with rich signal data (headcount estimates, source count, careers/investors/shop presence, legal-entity flag).

## Capabilities
<!-- llm:start -->
Use when:

- Doing account-based targeting (pick companies first, find decision-makers second)
- Researching market segments by behavioral signals ("companies in DE with a careers page AND a c-level present")
- Combining with `my-audience-api` to save a company filter as a reusable audience

Filter contract — shared with `my-people-api` and the `filter` field of `my-audience-api`, minus people-only fields (`seniority`, `email_type`, `min_link_confidence`). OR within an array; AND across fields. **Empty filter = all rows with default confidence=high.**

```json
{
  "confidence":           ["high"],
  "country":              ["US", "DE"],
  "country_consistent":   true,
  "tld_class":            ["cctld"],
  "has_c_level":          true,
  "has_decision_maker":   true,
  "has_careers_page":     true,
  "has_investors_page":   false,
  "has_shop_page":        false,
  "is_registered_entity": true,
  "min_headcount":        5,
  "min_source_count":     3,
  "keyword":              "platform",
  "include_people":       3,
  "limit":                100,
  "offset":               0
}
```

Allowed values:
- **confidence**: `high` (default) / `low` / `very_low`
- **tld_class**: `cctld`, `generic`, `vanity`, `low_trust`, `other`
- **country**: ISO 3166-1 alpha-2; consensus across TLD + address + phone
- **keyword**: substring match on the company's domain
- **include_people**: 0–10; embed up to N people per company in the result

Behavioral signals (booleans):
- `has_c_level` — row has ≥1 person with seniority = c_level
- `has_decision_maker` — row has ≥1 person with seniority ∈ (c_level, vp_director)
- `has_careers_page` — `/careers`, `/jobs`, `/stellen`, `/karriere` etc. (growth-stage proxy)
- `has_investors_page` — `/investors`, `/ir/` (mature/public proxy)
- `has_shop_page` — `/shop`, `/store`, `/products`, `/cart` (e-commerce proxy)
- `is_registered_entity` — name has a recognized legal suffix (GmbH/Ltd/Inc/SARL/…)
- `country_consistent` — TLD + address + phone all agree on country (highest-trust geo)
<!-- llm:end -->

## Commands
<!-- generated:start -->
| Command | What it does |
|---|---|
| `myapi company search [--confidence <csv>] [--country <csv>] [--country-consistent] [--tld-class <csv>] [--has-c-level] [--has-decision-maker] [--has-careers-page] [--has-investors-page] [--has-shop-page] [--is-registered-entity] [--keyword <text>] [--min-headcount N] [--min-source-count N] [--include-people N] [--limit N] [--offset N]` | Filter companies; returns id/domain/name/country/confidence/headcount/sources/signals table |
| `myapi company get <company_id> [--include-people N]` | Get a single company, optionally with embedded people |
<!-- generated:end -->

The `signals` column in the search table compactly shows which behavioral booleans are true (e.g. `c-level,dm,careers`).

## Examples
<!-- llm:start -->
```bash
# 1. Registered DE companies with a careers page (growth signal)
myapi company search --country DE --is-registered-entity --has-careers-page --limit 20

# 2. E-commerce in FR/IT — companies with shop pages
myapi company search --country FR,IT --has-shop-page --confidence high

# 3. High-source-count companies (more validated rows) with embedded people
myapi company search --min-source-count 5 --include-people 3 --json | jq '.companies[0]'

# 4. Single company with up to 5 embedded people
myapi company get auroracloud.com --include-people 5
```

### End-to-end recipe — ABM target account list

```bash
# Save filter as audience (companies)
AID=$(myapi audience create "EU growth-stage SaaS" \
  --source company \
  --filter '{"country":["DE","FR","GB","NL"],"has_careers_page":true,"has_decision_maker":true,"min_source_count":3}' \
  --json | jq -r .id)

# Pull members for outreach planning
myapi audience members $AID --limit 50 --json > accounts.json
```
<!-- llm:end -->

## Notes

- Goldfox confidence tiers matter: `high` (default) is the curated 96.4% of rows; widen with `low` only for spot-check work, and `very_low` rows usually get dropped.
- `seniority`, `email_type`, and `min_link_confidence` are people-only — passing them on company search is silently ignored.
- `include_people` only works on company search/get; people-source already embeds company by default.
- `keyword` is a substring match on the company's **domain** — use `--keyword stripe` to find domains containing "stripe".
- For a persistent account list, use `my-audience-api` with `--source company`.

Run `myapi company --help` for full flag reference.

More from myapihq/myapi