Skip to main content
skill CX Codex

x-ray-a-company — Claude Code skill: corporate due diligence

Works a company in four layers: legal entity, ownership, people, infrastructure and risk. Useful before you sign a contract or pay an invoice.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add UseOSINT/Skills --skill x-ray-a-company -a claude-code
Open on GitHub

What x-ray-a-company does

The skill runs corporate due diligence as an ordered workflow. You start by writing down the target, the decision the work supports, the jurisdictions and what is out of bounds. Then it resolves the registration number in a named registry, because without one you have no subject. The trading name on the contract, the brand on the site and the entity liable in court are often three different companies, and every later finding attaches to the wrong one if you assume they match.

From there it maps group structure and beneficial ownership, pulls the officer list from the registry rather than the website, and checks each director's other and prior directorships. A separate layer covers the digital estate: domains, subdomains, registration dates, breach exposure of the email domain. The last pass screens litigation, insolvency, public procurement, sanctions, PEP and adverse media.

Everything stays passive. Reading DNS and certificate logs is fine; authenticating to or probing the company's own systems is not. Several steps lean on other skills from the same repository: who-really-owns-it, find-anyone, recon-a-domain-passively, secrets-in-git-history, what-leaked-about-you. Skip those and you do the matching stages by hand. The skill carries disable-model-invocation: true, so you invoke it explicitly.

What it helps with

  • pin down which legal entity signs your contract
  • vet a supplier before releasing payment
  • trace ownership to a named beneficial owner
  • compare registry officers against the team page
  • surface litigation and insolvency at a director's prior companies

Example prompts for the agent

  • X-ray the company behind example.com before we sign the supply agreement
  • Who actually owns the brand on this invoice? Resolve the entity and its beneficial owners
  • Run due diligence on this counterparty: litigation, insolvency, sanctions, procurement

How to install x-ray-a-company

1Skills CLI (Vercel)

npx skills add UseOSINT/Skills --skill x-ray-a-company -a claude-code

2Manually: put the files in place

~/.claude/skills/x-ray-a-company/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/x-ray-a-company/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about x-ray-a-company

How do I install x-ray-a-company in Claude?

Run npx skills add UseOSINT/Skills --skill x-ray-a-company -a claude-code. The skill lands at ~/.claude/skills/x-ray-a-company/SKILL.md.

What does x-ray-a-company do?

It runs a corporate check in four layers: legal entity and registry, group structure and beneficial ownership, officers and their directorships, then infrastructure and reputational risk. You end up with a defensible picture of who you are dealing with.

Does it need other skills to work?

Its steps call on who-really-owns-it, find-anyone, recon-a-domain-passively, secrets-in-git-history and what-leaked-about-you from the same repository. Without them you handle those stages manually.

Source text

SKILL.md · MIT
---
name: x-ray-a-company
description: >-
  Corporate due-diligence workflow — resolve a brand or website to its registered legal
  entity, map group structure and beneficial ownership, profile officers and directors,
  enumerate the digital estate, and screen litigation, insolvency, procurement, sanctions, PEP
  and adverse media. Use when asked to check out, vet or research a company, verify a supplier
  or counterparty before signing or paying, or assess whether a business is real. Applies to
  vendor and third-party risk, KYC and KYB onboarding, M&A and investor diligence, procurement
  integrity, and shell-company assessment. Reference at useosint.com/skills/x-ray-a-company.
disable-model-invocation: true
---

# X-ray a company

Take a brand, a website, or an invoice and produce a defensible picture of who you
are actually dealing with. Four layers — legal entity, people, infrastructure,
reputation and risk — worked in that order. Skipping the first ruins everything
after it: the trading name on the contract, the brand on the website, and the
entity liable in court are routinely three different things, and every later
finding attaches to the wrong one if you assume they match.

## Step 1 — Authorized scope

Write the target, the decision the work supports, the risk areas in scope, the
jurisdictions involved, and what is out of bounds. Read
[../../ETHICS.md](../../ETHICS.md). Corporate research on public filings is
broadly lawful and often mandatory, but two limits bite. Stay passive toward the
company's own systems — reading DNS and certificate logs is OSINT, authenticating
or probing is not. And named individuals inside the company are still data
subjects: an officer's directorships are fair game, their family is not.

**Done when** the scope note names the decision, risk areas, and jurisdictions,
and states that no interactive testing is authorised.

## Step 2 — Resolve the legal entity first

You are looking for a registration number in a named registry. Until you have
one, you do not have a subject.

| What you hold | Route to the entity |
|---|---|
| A website | Footer, terms, and privacy policy — statutory disclosure rules in much of Europe force the legal name and number onto the site; then confirm in the registry |
| A brand or trading name | Trademark registers give the registered proprietor; national registries index trading names against the registrant |
| An invoice or contract | Company number, VAT/tax number, and registered office are usually on it; verify every one, do not trust the letterhead |
| A listed company | The securities regulator's filing system is richer than the company registry |
| A group name only | Find any one member entity, then walk the chain in both directions |

Run `who-really-owns-it` for the registry mechanics. Record legal name,
registration number, jurisdiction, incorporation date, status, registered office,
officers, and share capital. Prefer the number over the name downstream — names
change, numbers don't. Standard traps: an operating company and a holding company
with near-identical names; a dissolved entity still trading under its old brand;
a brand held by an IP entity in a different jurisdiction from the trading entity;
a website run by a marketing entity that would not be liable for the product.

**Done when** you can name the entity that would be a party to your contract,
with its registry and number, and have stated which other entities share the
brand.

## Step 3 — Group structure and beneficial ownership

Walk up to the ultimate parent and down to the subsidiaries. Sources: filed group
accounts and subsidiary lists, listed-company exhibits enumerating subsidiaries,
beneficial ownership registers, and the shared-officer and shared-address pivots
in `who-really-owns-it`. Cross-border chains are the norm, not a red flag. What
matters is whether the chain ends in a named natural person or dissolves into a
jurisdiction that publishes nothing. Record it as far as it goes and state where
it stopped — "traced to a Cayman entity whose register is not public" is a
finding, not a failure.

Beneficial ownership breaks down four predictable ways: nominees, legally recorded
and economically irrelevant; trusts and foundations, which most registers do not
pierce; layering, where no single register sees the whole chain; and thresholds,
blind by construction to four people each holding just under the line.

**Done when** the ownership chain is drawn to its terminus or to a documented
opacity point, and named beneficial owners are recorded with their source.

## Step 4 — People

Pull the officer list from the registry, not the website — the website shows who
they promote, the registry shows who is legally responsible. For each person who
matters to the decision run `find-anyone`, and run the officer-name pivot in
`who-really-owns-it` for their other and prior directorships. A director with a
trail of dissolved companies, or one on twenty unrelated boards, is a different
risk profile from one with a coherent career.

Employee enumeration — headcount and function mix from professional networks, job
postings, and the team page — tests whether the company is operationally what it
claims. Platform counts include stale and duplicate profiles, exclude non-users,
and skew hard by country and industry: use the shape of the workforce, not the
number.

**Done when** every officer of record is listed with their other directorships
checked, and the workforce claim is corroborated or flagged.

## Step 5 — Digital estate

Run `recon-a-domain-passively` as the entry point; it covers `who-owns-this-domain`,
`find-hidden-subdomains`, and `find-exposed-servers`. What diligence wants from it,
as opposed to security testing: registration dates contradicting the claimed
founding date, infrastructure shared with unrelated brands under one operator,
subdomains revealing unannounced products or partners, and job-posting evidence of
the real stack. Check `secrets-in-git-history` for public repositories and
`what-leaked-about-you` for breach exposure of the email domain.

**Done when** the domain portfolio is enumerated, registration dates are compared
to the corporate timeline, and discrepancies are written down.

## Step 6 — Litigation, insolvency, procurement, and disclosure

- **Litigation.** Court dockets and judgment databases for the entity, its former
  names, and its subsidiaries. Read the disposition, not the filing — being sued
  is not liability, and a settlement tells you less than a judgment.
- **Insolvency.** Insolvency registers and statutory gazettes carry winding-up
  petitions, administration, and liquidation notices. Check the officers' prior
  companies; that is where the pattern shows.
- **Procurement.** Public tender and contract-award databases are third-party
  verified revenue — the strongest free evidence of real operations, and badly
  under-used. Debarment and exclusion lists sit alongside them.

Calibrate financial findings to the filing regime first. A listed company files
audited statements, segment detail, related-party transactions, and risk factors.
A small private company in most jurisdictions files an abridged, often unaudited
balance sheet with no profit-and-loss and no turnover figure — so absence of
revenue disclosure there is the legal norm, not evasion. What *is* meaningful:
late filings, repeated auditor changes, auditor resignation, qualified opinions,
charges registered against assets, and accounts that do not square with the
claimed scale of operations. Named sources per risk area:
[reference/diligence-checklist.md](reference/diligence-checklist.md).

**Done when** litigation, insolvency, and procurement each have a sourced finding
or a recorded "searched these databases, nothing found", and financial findings
are framed against what this entity type was required to disclose.

## Step 7 — Sanctions, PEP, and adverse media

Its own step with its own record, because it is the one a regulator or a court
will ask you to evidence. Screen the entity, its parents and subsidiaries, and
every named individual. Primary publishers: OFAC's sanctions list search, the EU
consolidated list, the UK sanctions list, the UN consolidated list. OpenSanctions
aggregates sanctions and PEP datasets across jurisdictions and is the practical
start for a cross-jurisdiction sweep; OCCRP Aleph is a research index, for
investigative rather than compliance screening. PEP status is a risk factor, not
wrongdoing, and it extends to close associates and family — exactly where
automated screening is weakest.

Adverse media means a structured search of news and regulatory announcements
against the entity, its former names, and its principals, in the local language of
every jurisdiction in the chain. An English-only search on a company with a foreign
parent is close to worthless. Record search terms and date range so the negative is
evidentially meaningful.

**Done when** every entity and person in the chain is screened against sanctions
and PEP sources with sources and date recorded, and adverse media is searched in
the relevant languages.

## Step 8 — Shell-company assessment

Score the profile; do not react to one indicator. Weighted catalogue:
[reference/shell-company-red-flags.md](reference/shell-company-red-flags.md).
Core cluster: an address shared by hundreds or thousands of entities;
incorporation shortly before the transaction it is party to; no web presence, or
a domain post-dating the pitch; nominee directors recurring across unrelated
companies; no employees and no accounts showing activity; a name mimicking an
established firm; bank details in a jurisdiction unconnected to the entity, the
directors, or the work. Any one is common and innocent. Four together is the
answer.

**Done when** the entity is scored against the catalogue with each indicator
sourced, and the conclusion states which indicators drove it.

## Step 9 — Report

Hand to `write-the-intel-brief`. Lead with the entity chart — ultimate parent,
intermediate holdings, contracting entity, subsidiaries, key people — then
findings by risk area with source, date, and confidence. Gaps get their own
section; a diligence report that hides what it could not check is worse than one
that found nothing.

**Done when** the brief has an entity chart, per-risk-area findings, an explicit
gaps section, and a stated overall confidence.

## Where this goes wrong

- **Registry data is filed, not verified.** Most registrars check a form is
  complete, not true; a record proves only what was filed and when.
- **Staleness is designed in.** Annual filing cycles put published officers and
  accounts a year or more behind reality, and aggregators lag again on top of
  that — a dissolved company can still show active. Confirm at the registry.
- **Name matching produces both errors at once.** Common names create false
  matches; punctuation, legal-form suffixes, transliteration, and post-merger
  renames create false negatives. Search former names deliberately.
- **Absence of a filing may mean the wrong registry.** Separate federal, state,
  and municipal registers exist, plus separate ones for foreign branches and for
  partnerships and other non-corporate forms.
- **Sanctions screening is noisy.** Transliterated names generate large numbers
  of false hits; a hit is a review trigger, not a finding.
- **Adverse media has a language and wealth bias.** Coverage is thin outside
  major markets, and litigious subjects get coverage removed.

## Confidence grading

- **Confirmed** — on a filing at the primary registry or regulator, or in a court
  record, with the document retrieved and dated.
- **Probable** — from a reputable aggregator or a single credible report,
  consistent with the primary record and uncontradicted.
- **Unconfirmed** — company marketing, a single unsourced report, or inference
  from structure alone.
- **Gap** — a source that should hold it returned nothing, or the jurisdiction
  publishes nothing. Name the database and date; a documented negative is a
  deliverable.

Grade ownership claims separately from operational ones. You can be certain who
the registered shareholder is and have no idea who benefits.

## Worked example

Vendor "Halberd Logistics" pitching a supply contract; you hold a website and an
invoice.

1. Site footer names "Halberd Logistics Group Ltd" with a company number; the
   invoice names "Halberd Ops Ltd", a different number. The contracting party is
   the one on the invoice, and it is not the one carrying the brand.
2. Registry: Halberd Ops is fourteen months old, one director, micro-entity
   accounts; the Group entity is nine years old with real accounts. The pitch's
   trading history belongs to an entity you would not be contracting with.
3. Officer pivot on the Halberd Ops director returns two prior companies, both
   dissolved after compulsory strike-off.
4. Dead end: the registered office hosts roughly two hundred entities, but
   resolves to an accountancy practice. Ordinary — weighted low.
5. Domain registered three months before the invoice date against a claimed
   nine-year history. With 2 and 3: contract with the Group entity or not at all.

## Pivots

| Selector produced | Feed into |
|---|---|
| Registry number, officers, shareholders | `who-really-owns-it` |
| Officer or director name | `find-anyone` |
| Primary domain | `recon-a-domain-passively`, `who-owns-this-domain` |
| Officer addresses, phones, associates | `dig-through-data-brokers` |
| Parent or subsidiary entity | Re-enter this workflow at Step 2 |
| Company email domain, public repositories | `what-leaked-about-you`, `secrets-in-git-history` |
| Multi-entity ownership web | `graph-the-network` |
| Finished evidence set | `write-the-intel-brief` |

## Legal notes

KYB, AML, and sanctions-compliance obligations impose source and record-keeping
requirements this workflow does not discharge on its own; for a regulated purpose
your record must show what you searched, when, and with what result. Registry
data often carries reuse conditions and rate limits — use the published APIs and
bulk products rather than scraping. Officer residential addresses and dates of
birth are protected in many registers, and deliberately re-identifying a
protected address is an offence in some jurisdictions.

© UseOSINT · MIT · UseOSINT/Skills

Similar skills

Everything for Security →

From the same set25

is-this-photo-real A skill that checks whether an image or video is authentic: finds the earliest copy, reads metadata, tests lighting and shadows. Useful for fact-checking and manipulation review. CX Codex +1 58,300installs investigate-without-getting-made A skill that keeps your research from tipping off the subject: it maps your attribution surface, separates research identity from real identity, and says when a plain browser is enough. CX Codex +1 58,200installs what-leaked-about-you This skill checks an email, username, phone or name against breach data and explains what each record means. Useful for a self-audit or account-takeover triage. CX Codex +1 57,800installs find-the-original-image Searches multiple image engines for a picture’s source and earliest publication. Use it for photos, avatars, logos, products, buildings, and video keyframes. CX Codex +1 56,500installs find-exposed-servers Discovers exposed hosts, open ports and services using Shodan and Censys scan data without touching the target. Helpful for passive reconnaissance and attack surface audits. CX Codex +1 2,000installs read-deleted-pages Pulls deleted, edited or older web content from the Wayback Machine, archive.today, Common Crawl and Memento. Useful when a page 404s or someone rewrote the copy. CX Codex +1 2,000installs dig-through-data-brokers Guides people-search investigations across data brokers and public records. It generates lead selectors and structures personal privacy audits. CX Codex +1 1,900installs secrets-in-git-history A skill that teaches the agent to hunt API keys, tokens and identities in git history and on GitHub, not just in the checked-out tree. CX Codex +1 1,900installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor