Methodology
How this data is built
Current snapshot: . 1050 candidate records, 965 unique jobs, 822 admitted across five role families.
Where the jobs come from
Every job originates on an employer’s own applicant tracking system (Greenhouse, Ashby, Workday, Lever and dozens of others) or career site. We do not scrape those systems ourselves. Jobs are retrieved through a paid third-party job-data feed that collects postings from employer ATS platforms and company career sites and removes jobs that have expired on the employer’s site once a day. LinkedIn and other repost aggregators are not a source.
We ask the feed for recent jobs whose titles belong to each family (for example “Demand Generation”, “Lifecycle”, “Paid Media”, “Marketing Operations”, “Head of Growth”), located in the United States or Canada, written in English, tagged with a Marketing category, with recruitment agencies removed. Each pull is capped in size and cost. Title search only nominates candidates; it never decides admission.
What “current” means
A job is current if it was active in the provider’s feed when we pulled it on Sep 26, 2026. The feed covers jobs posted within the last six months that are still live on the employer’s site. Each family’s pull returns the most recently posted matches up to a fixed cap, so older roles that are still open may not appear. Every listing shows its posting date.
What comes from where
We keep three layers of information separate, and so does this site.
| Field | Origin |
|---|---|
| Title, company, listing URL, posting date, ATS name | Employer’s ATS or career site |
| Salary | Employer’s structured salary field when present. Otherwise AI-extracted from the job posting. Each salary records which one was used (see a listing’s “Details and provenance”). |
| Locations and countries | Normalized and geocoded from job-posting location data; the raw location text is kept for auditing |
| Remote / hybrid / on-site | The employer’s explicit remote flag when present, otherwise AI-extracted from the job posting |
| Years of experience, responsibilities summary | AI enrichment from the job posting (labelled as such on the site) |
| Role family, Role DNA signals | Our own semantic classification with Jev (TypeSafe), described below. Separate from the upstream AI enrichment. |
| Counts, shares, medians, posting age | Computed deterministically by our code from the fields above |
Provider timestamps are read as UTC. URLs are canonicalized (https, lowercase host, tracking parameters removed). Raw provider records are stored with every snapshot so any normalized value can be traced back; the only fields we drop are hiring-manager names and emails, which we never use.
Duplicates
Jobs are merged only on strong evidence: the same provider job ID, the same canonical listing URL, or the same company, the same title and an identical description (one posting published once per city, which becomes one job with several locations), or the same title and an identical description posted under two employer names, such as a parent company and its subsidiary. Matching titles alone never merge jobs. This snapshot merged 85 duplicate records.
How a role gets into a family
- Obvious non-matches are excluded by title: internships, sales, product management, design and creative production, engineering and data science roles.
- Jev reads the full description and assigns a probability to each of nine functions: the five families plus SEO, product marketing, generalist marketing and “not primarily marketing”. The last four exist to catch roles outside our scope.
- A role is admitted only if Jev puts at least 80% probability on the five families combined. It is listed under the family Jev ranks highest; when Jev is split and a family named in the title has at least 40%, the title breaks the tie.
- A “Growth Marketing Manager” whose job is mainly buying paid media is listed under Performance Marketing. Each family page can optionally show roles titled as that family whose main work is elsewhere.
This snapshot excluded 143 of 965 unique candidates:
| Not primarily a marketing role (sales, partnerships, product, operations…) | 55 |
| Not clearly within one of the five families | 23 |
| Generalist marketing without a dominant specialty | 18 |
| Internship, co-op or student role | 16 |
| Design or creative production role | 10 |
| Product management role | 8 |
| Primarily SEO (outside the current scope) | 4 |
| Engineering role | 4 |
| Data science or software role | 3 |
| Primarily product marketing (outside the current scope) | 2 |
Salary statistics
- Only salaries the employer disclosed are used. Missing salaries are never estimated.
- Statistics use annual base salaries in USD or CAD, summarized by the midpoint of each range. Hourly, weekly and monthly pay is excluded rather than annualized, as are values outside 20,000–1,000,000 and ranges wider than 3×.
- USD and CAD are reported separately and never converted or combined.
- Every figure shows its sample size (n). Figures based on fewer than 5 salaries are not shown.
Role DNA
Role DNA is our semantic reading of what a role owns, inferred from the job description with Jev, TypeSafe’s structured judgment model (pinned to jev-1.13.0). For each job we ask, in one request:
- Which of the nine functions the role primarily performs (used for admission).
- Whether the role directly owns acquisition, lifecycle, experimentation and SEO, and whether it does hands-on analytics. The questions distinguish ownership from collaboration, adjacent teams, nice-to-have familiarity and generic marketing language.
- Whether the work is primarily strategy, balanced, or primarily hands-on execution, with an explicit “not enough evidence” option.
Jev returns probabilities rather than bare labels. We store every probability, the model version, the question-schema version (role-dna-v1), a hash of the description and the time of evaluation. Unchanged descriptions are never re-evaluated; changed ones are.
What is shown, and why
Before publishing, we audited 40 jobs across all families and outcomes, labelling each description without seeing Jev’s answers and then comparing. Jev matched the reviewer’s primary function on 39 of 40 and the admit/reject decision on 39 of 40 (the miss was a cautious rejection). The display gates below are the levels above which the audit found no false positives. They are conservative gates, not calibrated guarantees: the audit is small, it was conducted by an AI model reviewing the full descriptions rather than by the employers, and it will be repeated when the model or questions change.
| Signal | Shown when |
|---|---|
| Owns acquisition | Jev probability ≥ 0.9 |
| Owns lifecycle | Jev probability ≥ 0.9 |
| Owns experimentation | Jev probability ≥ 0.9 |
| Owns SEO | Jev probability ≥ 0.9 |
| Hands-on analytics | Jev probability ≥ 0.95 |
| Strategy-heavy / Hands-on execution | Jev picks that end with confidence ≥ 0.8. “Balanced” is never shown: Jev uses it too readily to be informative. |
A missing signal means “not confidently established”, never “no”. We do not publish market-wide percentages of Role DNA signals yet; the audit is not large enough to support them.
What this data does and does not represent
- It is a bounded, current sample of employer-posted roles in five families, not a census of the labor market.
- It covers the United States and Canada, English-language postings, and employers whose ATS the provider covers.
- Families covered: Growth Marketing, Demand Generation, Lifecycle Marketing, Performance Marketing, Marketing Operations. Product marketing, SEO, brand, content, social and communications roles are intentionally out of scope.
- Trend claims will appear only once several dated snapshots exist. Every sync is preserved as an immutable, dated snapshot from the first one onward.
Last updated Sep 26, 2026. Questions or corrections about a listing should go to the employer; the listing link always points to their own site. See also About Titleless.fyi.