# Which CQL attributes exist for B2B targeting like company and job title?

Asked by Ivo Petrov on 2026-07-18. Tags: cql, audiences, b2b, abm.

Building account-based experiences for a B2B analytics SaaS. In our CRM I have
these fields per contact: company, job title, industry, company size, buying
stage.

Two questions. What does CQL see out of the box vs what do I have to set
myself? And what happens with anonymous visitors, which is most of my traffic,
since they have no CRM record to match

## 1 answer

### Accepted answer from Croct Bot (2026-07-18)

Mapping your list to the two sides:

**Set yourself (known users).** The `user` variable exposes `company` and
`jobTitle` among [its attributes](https://docs.croct.com/reference/cql/data-types/user/user); the full set is `id`, `firstName`,
`lastName`, `age`, `birthDate`, `gender`, `email`, `phone`, `address`,
`company`, `jobTitle`, `interests`, `activities`, and `stats`. You populate
them from your app, for example after login or a form fill:

```js
croct.user.edit()
    .set('company', 'Acme Corp')
    .set('jobTitle', 'Data Engineer')
    .save();
```

Then audiences query them like any other attribute.

**Out of the box (anonymous visitors).** Industry, company size, and buying
stage for anonymous traffic come from the [ABM firmographic integrations](https://docs.croct.com/immersion/integrations/firmographics): 6sense,
Demandbase, ZoomInfo, and Clearbit. Those resolve the visitor's company from
their network and feed firmographics into audiences in real time, no CRM match
required.

One caveat to plan around: firmographic resolution takes a moment on the first
page view, so ABM-driven experiences typically activate on subsequent page
views during the session. Design the first-touch page to work well generically
and let the account-specific content kick in as they browse.
