Build a Target List of off-market companies

Use this when

you want to find companies to buy before they come to market, then reach their owners.

Target List finds off-market companies that fit your acquisition criteria. Add the details you need to prioritize them, get owner contact info, and export a list ready for outreach.

This guide walks you through creating a list, reviewing and refining it, adding company details, and getting contacts.

Step 1: Describe the companies you want

In the left navigation, click AI Target List. Enter your criteria, including industry, location, size, and any exclusions.

For example:

"Independent HVAC service companies in San Diego with revenue over $5M."

You can also attach a document with your criteria. Niche, specific criteria return the best results.

Note: The companies we return fit your criteria. They haven't necessarily said they're for sale.

Create Target List marked on the start page

Step 2: Create the list

Click Create Target List. Research runs in the background, so you can leave the page and come back when your results are ready.

Step 3: Review the results

Open a company to read its profile and sources. Check its business model, location, size, and ownership against your criteria.

Note: We prioritize independent companies and filter out private equity-backed companies, publicly traded companies, and majority-owned corporate subsidiaries. If a company isn't independent, its checkmark in that column is left blank.

Step 4: Refine or expand the list

Click Refine Filters to change your criteria. Use this when results are too broad or miss part of your thesis.

To find more companies with the same criteria, click the results count and choose the option to add results. Review the credit estimate before you confirm.

Note: We return 25 results at a time, starting with independent companies that meet all your criteria. When we can't find more that meet every criterion, we still return companies, but leave the checkmark blank for any criterion they miss. Expect fit to drop the further you expand a list.

Refine Filters and the results count marked

Step 5: Add data columns

Click Add Data Columns. Choose a column from the library or describe your own, such as years in business, estimated revenue, number of employees, or ownership type. We research each company and add the results to your list.

Target List isn't a static database. You can ask for almost any fact about a business, and we'll research it live for every company on your list.

Tip: Add columns like years in business or owner age to spot owners who may be ready to sell.

Note: A blank cell means we couldn't find that information. We leave it blank rather than guess.

Add Data Columns, Get Contact Info, and Export List marked

Step 6: Get contact information

Click Get Contact Info. Choose whether you want email addresses only, or email addresses and phone numbers, for each company's owner or CEO. Pick based on your outreach approach. Adding phone numbers uses more credits.

Review the credit estimate, then confirm. We'll also include LinkedIn profiles where available. Contact research usually finishes within 5-10 minutes, and the page shows when contacts are ready.

Step 7: Export your list

Click Export List to download an Excel file with your companies, data columns, and contacts.

Tip: Wait until contact research finishes before you export. If you exported earlier, export again to include the new details.

How credits work

Credits pay for research: building lists, adding results, data columns, and contacts.

  • Free preview: every approved buyer gets 1,000 credits to try Target List.

  • Paid membership: 5,000 credits each month. Credits refresh on your renewal date and don't carry over.

Check your balance under Credits before you start a new request. Need more? Contact support@privsource.com for pricing.

Frequently asked questions

Are these companies for sale?

Target List finds companies that fit your criteria. Most aren't on the market. That's the point.

How does Target List differ from Buyer List?

Target List finds companies to buy. Buyer List finds buyers for a deal you're selling.

How are the companies researched?

Every list is researched live and checked against paid data sources. Niche criteria work best.

Why is a cell blank?

We couldn't find that fact for that company. We leave it blank rather than guess.

Can I enrich a list I already have?

Target List builds the list for you. Enriching a list you already have is a separate request. Contact support and we'll help.

Do this with Claude

Connect PrivSource to Claude once and run this workflow from a conversation. Same account, same access. Set up the connection

Starter prompt

Full workflow guide →
Copy into Claude

Using PrivSource, build a target list of [describe the companies — e.g. HVAC companies in Texas with 10-50 employees]. Start with 25 rows, show me results as they complete, and suggest data columns worth adding. Ask me before doing anything that consumes credits, including leadership contact research.

Then try

  • “Build a target list of HVAC companies in Texas with 10-50 employees”
  • “Add a data column for commercial vs residential mix”
  • “Request leadership contacts for every row”

Agent instructions

The skill file PrivSource publishes for this workflow. Give it to any agent that supports skills, or read it to see exactly what the tools do.

Raw SKILL.md
Show the full instructions

PrivSource Target Lists

Target Lists find companies matching filters — sector, size, geography, and anything else the description states. Filters describe the target companies themselves, not their acquirers; use buyer-list tools when the user wants acquirers for a company being sold. Builds run asynchronously and can consume credits.

Workflow

  1. Call privsource_whoami if unsure whether the account has target-lists access. When both the buyer and seller accounts have access, create_target_list requires an account_type.
  2. Call list_target_lists to find existing lists before creating a new one.
  3. Call create_target_list with a natural-language description of the companies to find. requested_count defaults to 25 and caps at 1000. Creation can consume credits, so confirm intent first.
  4. Poll get_target_list_current_version while status is analyzing or processing. Call get_target_list_results at any time to read rows as they complete — do not wait for the full build to finish.
  5. The build is done when status is ready, or ready_with_contacts once leadership research completes.

Refining and Growing

  • refine_target_list_filters creates a new version from an updated description and starts a new asynchronous build.
  • add_target_list_rows raises the requested row count for the current version; the new total must exceed the current row count.
  • update_target_list renames or archives/unarchives the list; it never changes filters, rows, or enrichment.
  • cancel_target_list stops an in-progress build or enrichment run.

Enrichment

  • update_target_list_data_columns adds researched company attributes (a title, an optional research instruction, and an expected format) or removes columns by id. Data columns are extra attributes, not contact research.
  • request_target_list_leadership researches CEO/Owner leadership for the rows; include_phone: true adds phone lookups at extra credit cost. Poll get_target_list_current_version while status is processing_contacts until it is ready_with_contacts.

Error Handling

  • Creates, refines, row additions, data columns, and leadership can consume credits — if a tool returns a payment, allowance, or credit error, stop and report the exact message.
  • Versions are immutable history: get_target_list lists them and get_target_list_version fetches one; results default to the current version.
  • Use ids returned by the tools verbatim. Do not synthesize ids.

Exports

Call get_target_list_export with the list id and optional version_number.
The response returns the file directly in export.content. No browser sign-in is needed.
If encoding is base64, decode content to bytes. If it is utf-8, use the text directly.
Save the result using filename and content_type, or analyze the CSV text in the agent.
Check ready first. Unavailable exports return unavailable_reason without file content.
The stored file keeps the selected version’s filters and data columns. Missing files remain unavailable.
dashboard_url is optional context. It is not required to get the file.

Stuck on a step?

Tell us what you need help with.

Related guides