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: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 ascompanies. public.companies also works for compatibility.
Start from the CLI
Inspect the live tool schema first:--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 theIN list. The output gives you the snapshot’s company name and LinkedIn URL
for review; it does not automatically overwrite CRM values.
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
Comparematched_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.
Query from the API
Use the normal tool execution endpoint:data:
SQL rules and limits
- SQL must be a single statement.
- Only
SELECT,WITH, orEXPLAINstatements are allowed. - The statement must read from
companiesorpublic.companies. - A top-level
LIMITis required and must be100000or less. - Queries have a 30-second Snowflake timeout. Broad
ILIKE '%keyword%', longORchains, large country-wide scans, and expensiveGROUP BYshapes can time out. - Workspaces are rate-limited to five requests per second.
- Matching records are returned in
rows. Usedeepline tools execute free_simple_company_search --input "$PAYLOAD" --out companies.csvwhen you want to save direct CLI results as CSV.
Use inside a Play
Inside a Play, call the tool throughctx.tools.execute. Row-shaped extracted
list getters return a Dataset Handle. Pass the rows through the Play output or
into another ctx.dataset stage.
Save matching companies to your workspace database
To save query results in your Database, usematerialize_free_customer_companies. It runs the SQL query and upserts rows
into enrichments.companies.
The query must return only these company columns:
query_customer_db: