The signals that a company is building an outbound sales team are in what it publishes: the sales roles it opens, how each posting says its leads arrive, the tools those postings name and the ramp they state. This guide shows a seller of sales tools or data how to read them from Sales Team Metrics and Job Postings, what else could explain each one, and the query that tells the two apart.
Which signals show that a company is building an outbound sales team?
Six signals in a company's own postings show that it may be building an outbound sales team: more open development roles, a manager over them, outbound named as the lead source, a falling stated inbound share, account executives asked to prospect, and prospecting tools newly named. Each is a reading, and none proves a plan.
In its guide to the Telemarketing Sales Rule, the US Federal Trade Commission describes an outbound call as one initiated by a telemarketer to a consumer. That description is written for telemarketing calls to consumers. Sales postings draw a similar line in business selling: outbound pipeline starts with the seller's approach, inbound with a buyer's request.
Each signal has a competing explanation, and a test that separates the two.
| Signal | What the postings show | What else could explain it | The test |
|---|---|---|---|
| More development roles | Open SDR and BDR postings rise, in count and as a share of open sales postings | Replacements for leavers, or a board observed for the first time | New postings, baseline ones left out, against closed ones over several windows |
| A manager over them | A development posting flagged as a people manager | A successor to a manager who left | Development postings opened in the windows after it |
| Outbound as the lead source | New postings state outbound or mixed where earlier ones stated inbound | A rewritten template, or too few postings stating any source | The number of postings that state a source, beside every share |
| A falling inbound share | The median stated inbound share drops | One posting moving the median | The count behind the median, and a second week at the new level |
| Account executives who prospect | New account executive postings flagged for outbound prospecting | A full-cycle role that always sourced its own pipeline | The same flag on the company's earlier postings for the role |
| Prospecting tools named | A tool is named in sales postings for the first time | The tool was in use and only the posting text changed | The first week it is named and, where the website shows it, a dated adoption |
SDR and BDR hiring: what job postings for sales development reps signal
SDR and BDR hiring signals an outbound build when three things hold in a company's job postings for sales development reps: the open count rises against the company's own earlier weeks, new postings outnumber closed ones, and the postings describe prospecting. A level count with matched openings and closings is turnover in a team that already exists.
Postings are where the role can be counted company by company. In two searches of O*NET OnLine on 7 October 2026, for sales development representative and for business development representative, we found no occupation named for it. O*NET is the occupational information network developed under the sponsorship of the US Department of Labor. The search for sales development representative returned Sales Representatives of Services, Except Advertising, Insurance, Financial Services, and Travel first, an occupation whose tasks run from identifying prospective customers to supporting clients after a contract is signed.
Sales Team Metrics (company_sales_weekly) has one row per company and closed week, with open sales postings split by role, and the guide to tracking sales team build-out reads the whole sales organisation from it. Here one role matters: sdr_bdr, the label for SDR and BDR postings. The queries are written for PostgreSQL, assume JSON cells loaded as jsonb and empty cells as null, and take every date as a parameter.
select
week_start,
open_sales,
coalesce((by_role ->> 'sdr_bdr')::int, 0) as open_development,
coalesce((by_role ->> 'account_executive')::int, 0) as open_account_executive,
round(100.0 * coalesce((by_role ->> 'sdr_bdr')::int, 0)
/ nullif(open_sales, 0), 1) as development_pct_of_sales,
inbound_share
from company_sales_weekly
where company_id = :company_id
and week_start between cast(:from_week as date) and cast(:to_week as date)
order by week_start;Read the share with the count beside it, against the company's own earlier weeks. The weekly row counts openings and closings for all sales postings together, so the flow for one role comes from Job Postings (job_postings). The next query counts the new development and account executive postings of each 28-day window, numbered back from :as_of, with the flags they carry.
with latest as (
select distinct on (posting_id) *
from job_postings
order by posting_id, last_seen_at desc
)
select
company_id,
sales_labels ->> 'role' as role,
(cast(:as_of as date) - cast(first_seen_at as date)) / 28 as window_no,
count(*) as new_postings,
count(*) filter (where labels ->> 'team_build' = 'true') as team_build,
count(*) filter (where labels ->> 'people_manager' = 'true') as people_manager,
count(*) filter (where sales_labels ->> 'outbound_prospecting' = 'true') as outbound_prospecting,
count(*) filter (where sales_labels ->> 'inbound_leads' = 'true') as inbound_leads,
count(*) filter (where sales_labels ->> 'founding_sales' = 'true') as founding_sales
from latest
where not found_on_first_read
and label_version = :label_version
and sales_label_version = :sales_label_version
and sales_labels ->> 'role' in ('sdr_bdr', 'account_executive')
and cast(first_seen_at as date) <= cast(:as_of as date)
group by 1, 2, 3
order by 1, 2, 3;The first filter keeps out postings already published when the company's board was first observed, and the two version filters, set to the versions on your rows, keep to one definition of every label. For closings, group by the window of closed_at and drop the first filter, because a baseline posting that closes is still a closing.
- Turnover or build. New postings well above closings over three windows read as a build. Near-equal counts read as replacement.
- Team build. The
team_buildflag marks one of several hires growing a team, the plainest sign in the data. - The manager. A development posting with
people_managerset is the seat that runs the team. It supports a build when development postings follow it, and reads as succession when none do.
The inbound leads and outbound split in a sales development representative job description
A sales development representative job description states the split in one of three ways: it names inbound leads to qualify, it names outbound prospecting into accounts the company has chosen, or it names both. Some postings add the inbound share of pipeline as a percentage. A posting that states nothing has no split to read.
The title does not settle it. In its Occupational Outlook Handbook, the US Bureau of Labor Statistics describes inside sales representatives in wholesale and manufacturing as frequently responsible for winning new clients by cold-calling organisations that are not expecting the contact, and as also taking incoming calls from interested customers. One job can run in both directions.
Job Postings records the split twice. The sales facts hold what the posting itself states: a lead source of inbound, outbound or mixed, and the inbound share when it gives a percentage. The sales labels add flags, among them inbound leads and outbound prospecting.
| What the posting states | In the sales facts | How to read it |
|---|---|---|
| The role qualifies leads from marketing, trials or demo requests | Lead source inbound | A response role. Capacity follows demand the company already has |
| The role prospects into target accounts by call and email | Lead source outbound | A prospecting role. The company is paying to start conversations |
| The role works inbound and outbound leads together | Lead source mixed | One team covers both. Watch which way the next postings move |
| A percentage of pipeline is inbound | The inbound share, in percent | The employer's own estimate for that role, as advertised |
| Nothing about where leads come from | An empty lead source | Not known, which is different from no outbound. Leave it out of every share |
The query takes the development postings open on a date and puts the number that state a lead mix beside every figure.
with latest as (
select distinct on (posting_id) *
from job_postings
order by posting_id, last_seen_at desc
)
select
company_id,
count(*) as open_development,
count(*) filter (where sales_facts ->> 'lead_source' is not null) as state_a_source,
count(*) filter (where sales_facts ->> 'lead_source' = 'inbound') as inbound,
count(*) filter (where sales_facts ->> 'lead_source' = 'mixed') as mixed,
count(*) filter (where sales_facts ->> 'lead_source' = 'outbound') as outbound,
count(*) filter (where sales_facts ->> 'inbound_share' is not null) as state_a_share,
percentile_cont(0.5) within group (
order by (sales_facts ->> 'inbound_share')::numeric) as median_inbound_share,
count(*) filter (where sales_facts ->> 'ramp_months' is not null) as state_a_ramp,
percentile_cont(0.5) within group (
order by (sales_facts ->> 'ramp_months')::numeric) as median_ramp_months
from latest
where sales_labels ->> 'role' = 'sdr_bdr'
and cast(first_seen_at as date) <= cast(:as_of as date)
and (closed_at is null or cast(closed_at as date) > cast(:as_of as date))
group by company_id;state_a_source over open_development is the share of postings that state a lead mix. Read the inbound, mixed and outbound counts over state_a_source, never over all postings, and the median inbound share over state_a_share. Run the query for two dates and compare, and as a starting point read a share only over five or more stating postings. Sales Team Metrics gives the median stated inbound share of a company's sales postings each week in inbound_share, and counts of this kind stand behind a move in it.
Inbound and outbound leads in a sales job posting: the role description for an SDR and an AE
The same words read differently by role. An SDR posting that names inbound leads describes a team that answers demand, and one that names outbound describes a team that creates it. An AE posting that names outbound leads describes a closer who also prospects, which a company can ask for with or without a development team.
An AE is an account executive, the role that closes. Read the two roles together, with the flags from the windowed query, and treat each line below as a reading to test.
- Development postings flagged for outbound prospecting, account executive postings without the flag. A separate prospecting team is being put in front of the closers.
- Account executive postings flagged for outbound prospecting, few development postings. Closers are asked to source their own pipeline.
- Development postings flagged for inbound leads only. A response team: demand is arriving.
- A posting flagged as a founding sales hire. The first seller. Read its lead source before calling the motion outbound.
Supporting signals: the tools named and the stated ramp
Two more fields support the reading. Sales Team Metrics counts the sales tools named in open sales postings each week, and this query gives the first week each tool is named for one company.
select
t.tool,
min(s.week_start) as first_week_named,
max(t.postings::int) as most_postings_in_a_week
from company_sales_weekly s
cross join lateral jsonb_each_text(s.tools) as t(tool, postings)
where s.company_id = :company_id
and s.week_start between cast(:from_week as date) and cast(:to_week as date)
group by t.tool
order by first_week_named;A tool whose first week is the first week of your range may have been named earlier, so widen the range before calling it new. Job Postings also flags tool families, and a family is broad. HubSpot's documentation describes its sequences tool as a way to send a timed series of targeted email templates. A posting flagged for the HubSpot family may name that tool or another of the family's products, so the flag supports an outbound reading only beside the lead source.
The website gives an independent date. Technology Changes (company_tech_events), in the marketing stack product, records each technology added between two observations of a company website. Pass the catalogue ids you follow as :technology_ids.
select observed_at, key as technology, technology_name, technology_category
from company_tech_events
where company_id = :company_id
and category = 'technology'
and change = 'added'
and key = any(:technology_ids)
and observed_at >= cast(:from_date as date)
order by observed_at;A detection shows presence on the website, so read a returned row as confirmation.
The second field is the ramp. Where a posting states one, the sales facts carry it in months, and the lead source query returns the median with its count. It is the employer's own figure for how long a new hire takes to reach full output. On the same handbook page the Bureau of Labor Statistics notes that many companies run formal training programmes for beginning wholesale and manufacturing sales representatives, which may last up to one year.
A worked example: Acme Robotics
Acme Robotics is an invented company, and every figure is illustrative.
Assumptions:
- The lead source query is run for two dates 84 days apart, and the windowed query for the three 28-day windows between them.
- No baseline postings fall in the period.
- The floor for reading a share is five stating postings.
- The stated inbound shares are 70 and 90 at the first date, and 20, 25, 30, 40 and 60 at the second.
- The windows hold 4, 5 and 3 new development postings and one closing each. Ten of the 12 new postings carry the team-build flag, and one in the first window the people-manager flag.
| Measure | First date | Second date |
|---|---|---|
| Open sales postings | 20 | 30 |
| Open development postings | 3 | 12 |
| Postings that state a lead source | 2 | 9 |
| Stated inbound, mixed, outbound | 2, 0, 0 | 1, 2, 6 |
| Postings that state an inbound share | 2 | 5 |
| Median stated inbound share | 80 | 30 |
The working, test by test:
- Count. 3 + 12 new - 3 closed = 12 open. Development postings go from 3 of 20 open sales postings, 15.0%, to 12 of 30, 40.0%.
- Turnover or build. 12 new against 3 closed is a net of 9. Ten of the 12, 83.3%, are flagged as team build.
- Manager. The manager posting opens in the first window, and 5 + 3 = 8 development postings open after it.
- Lead source. Stated by 2 of 3 postings, 66.7%, then by 9 of 12, 75.0%. At the first date both say inbound, on a count below the floor. At the second, 6 of 9 say outbound, 66.7%, and 8 of 9 outbound or mixed, 88.9%.
- Inbound share. The median of 70 and 90 is 80, and of 20, 25, 30, 40 and 60 it is 30: a fall of 50 points, on two postings and then five.
Acme Robotics is opening development roles faster than it closes them, after posting a manager role, and its postings now describe outbound work. That is consistent with an outbound team being built, and it remains a reading of what the company advertises. The first-date shares rest on two postings, so trust the direction more than the size. Closings above openings in the next window would end the reading.
How to detect hiring intent from SDR and BDR job postings for signal selling
To detect hiring intent from SDR and BDR job postings, treat each new development posting as a dated statement that the company intends to hire a development rep. For signal selling, rank your target accounts by how many of the six signals agree and how recent they are, and open with what the company itself has published.
A posting records an intention to hire, public before the team exists. For a seller of sales tools or data, the first team-build posting suggests a decision to grow the team, the tools named suggest whether you would complement its stack or replace part of it, and the stated ramp gives the employer's own figure for the months a new hire takes to reach full output.
Score each account with this checklist, one point for each test passed, and run it on sample data first.
- Open development postings are above the company's own level 12 weeks earlier, and above your floor.
- New development postings outnumber closings over three 28-day windows.
- At least half of the new development postings carry the team-build flag.
- A development posting flagged as a people manager opened, and others followed.
- Most postings that state a lead source say outbound or mixed, on a count at or above your floor.
- A prospecting tool is first named after the first week of your range.
Every input is something the company published about a role, so the result stays at company level: which accounts, and in what order. The guide to timing outreach with hiring signals turns such signals into plays, and trigger events for outbound covers the announcements that can confirm a build. Market Series carries weekly series on sales postings by industry, country and size band, among them the sales share of postings and a lead source share, so a company moving with its whole industry can be told from one moving alone.
How to read the result
Lead source, inbound share and ramp are the employer's statements about the role as offered, and a posting that states none stays out of both sides of every share. A team built from people already employed opens no posting, so an absence of signals is no evidence either way.
Job Postings and Sales Team Metrics belong to the hiring product, refreshed daily and delivered by REST API or as bulk files, with postings read from each company's own board. Weekly rows are written once after the week closes and never revised, and the sales labels carry a named version on every posting, so a reading of a past week can be reproduced. The data dictionary defines every field used here.
Frequently asked questions
What does a job posting mean by inbound and outbound leads in a sales role description?
Inbound leads are buyers who came to the company first, through a form, a trial or a demo request, and the role follows them up. Outbound leads are accounts the company chose and approaches first. A sales role description that names both describes one team doing both jobs, and the stated inbound share, where a posting gives one, says how the work divides.
Does hiring SDRs mean a company is building an outbound sales team?
Not by itself. Development reps also qualify inbound leads, and a company replaces the ones who leave. Hiring points to an outbound build when new development postings outnumber closings over several windows, the postings are flagged as team build or as outbound prospecting, and the postings that state a lead source say outbound or mixed.
How many job postings do I need before I trust a stated lead mix?
Enough that one posting cannot move the figure. A starting floor is five postings that state a lead source. Below it, read the direction and leave the percentage aside. Always show the count of stating postings beside the share, because a posting that states nothing is unknown and belongs on neither side of the split.
How early do job postings show an outbound build?
The earliest sign is the first posting, and a build is read over the windows after it. A role is published before anyone is hired into it, so the posting shows the intention at its start. The stated ramp then gives the employer's own figure for how long a new hire takes to reach full output. Add the weeks a posting stays open to the ramp to estimate when the new capacity counts.
Which sales roles should I watch besides SDRs and BDRs?
Account executives and the manager of the development team. Account executive postings flagged for outbound prospecting show closers being asked to source their own pipeline. A development posting flagged as a people manager shows the seat that will run the team, and it supports a build when further development postings open after it.
The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.
What this page says about the products it names was checked against their public documentation on 7 October 2026. Product and company names are trademarks of their owners. Fokals is not affiliated with them or endorsed by them.