Skip to main content
Use free_simple_company_search to query a shared company dataset with SQL. It is for exact resolution, bounded list building, and coverage review—not live web discovery. This Deepline Native tool reads a shared Snowflake companies table of roughly 35 million source records. It does not call a live provider API. Deepline loads a People Data Labs CSV snapshot into the read-only table.
free_simple_company_search and materialize_free_customer_companies have no Deepline credit charge. They are still bounded: broad queries can time out, and Deepline limits each workspace to five requests per second.

What it is for

Use the free database when your question can be answered by the snapshot’s domain, company name, LinkedIn company URL, industry, location, employee-size bucket, or founding year. For a name-only fallback, use an anchored prefix such as company_name ILIKE 'acme%', then verify the resulting domain. Do not treat a fuzzy name match as an identity match. Use a provider-native company search instead when you need live web coverage, advanced facets, funding or investor filters, hiring signals, strict market sizing totals, or semantic discovery by what a company does. For newly discovered funding rounds, use the Funding data feed.

Snapshot and schema

The production loader expects the raw PDL company CSV header:
Deepline transforms that source into the query table: updated_at is set during Deepline’s table load. It should be read as import/update time for this corpus, not as proof that PDL recently observed the company.

Schema

Query the table as companies. public.companies also works for compatibility.

Start from the CLI

Inspect the live tool schema first:
Then run one bounded query. This exact-domain lookup is the safest starting point for a CRM or CSV export that already contains normalized domains:
The direct command returns matching rows; --out writes row-shaped results to CSV. It does not modify the Database or the shared snapshot.

Practical SQL patterns

Resolve and normalize a target list

Normalize website values to lowercase root domains before putting them in the IN list. The output gives you the snapshot’s company name and LinkedIn URL for review; it does not automatically overwrite CRM values.
For a small list that already has LinkedIn company URLs, use exact equality or IN as well:

Find candidates after an exact miss

Use a prefix only after an exact domain, LinkedIn URL, or company-name lookup misses. Inspect the returned domain before using a candidate downstream:

Build a bounded pilot segment

First count a narrowly defined segment, then request a small page. Employee count is the upper bound of a source size bucket, not a live headcount.

Check coverage and source duplicates

Compare matched_domains with the number of unique normalized domains in your input file. Unmatched domains do not appear in the result, so this tool cannot label them as missing for you.
This query checks duplicate source records for the requested domains. It does not detect duplicate rows in your CRM or CSV.

Query from the API

Use the normal tool execution endpoint:
The response wraps the SQL result in data:

SQL rules and limits

  • SQL must be a single statement.
  • Only SELECT, WITH, or EXPLAIN statements are allowed.
  • The statement must read from companies or public.companies.
  • A top-level LIMIT is required and must be 100000 or less.
  • Queries have a 30-second Snowflake timeout. Broad ILIKE '%keyword%', long OR chains, large country-wide scans, and expensive GROUP BY shapes can time out.
  • Workspaces are rate-limited to five requests per second.
  • Matching records are returned in rows. Use deepline tools execute free_simple_company_search --input "$PAYLOAD" --out companies.csv when you want to save direct CLI results as CSV.

Use inside a Play

Inside a Play, call the tool through ctx.tools.execute. Row-shaped extracted list getters return a Dataset Handle. Pass the rows through the Play output or into another ctx.dataset stage.
After the Play run completes, use the emitted run ID to export the returned dataset:

Save matching companies to your workspace database

To save query results in your Database, use materialize_free_customer_companies. It runs the SQL query and upserts rows into enrichments.companies. The query must return only these company columns:
Example:
Then query the saved rows with query_customer_db:

TAM builder guidance

For TAM work, start here when the ICP can be expressed with exact domains, company names, LinkedIn company URLs, industry, location, employee count, or founding year. Escalate to Dropleads, Apollo, Crustdata, Exa, or known-source extraction when the needed signal is not in this schema.