Skip to main content

What Is an Outreach Flow?

An outreach flow is a structured sequence of communication steps that guides your engagement with a contact from first touch to final follow-up. Each step in a flow defines what kind of message to send (email, LinkedIn message, LinkedIn connection request, or phone call), when to send it relative to the previous step, and what the goal of that communication is. Think of a flow as your playbook for a specific type of outreach. Instead of improvising each interaction, you define the sequence once and then execute it consistently across every opportunity.
Flows are the backbone of Recruitier’s outreach system. Every outreach message you send is tied to a step within a flow. This ensures complete tracking of all communication and makes it easy to see exactly where you stand with any opportunity.

Flow Structure

Every outreach flow consists of:
  • A type — whether it is tied to a job (JOB), a company (COMPANY), saved as a reusable template (TEMPLATE), or archived (ARCHIVED).
  • A name — a descriptive label that helps you identify the flow (e.g., “Senior Developer Intro Sequence” or “New Client Pitch”).
  • Ordered steps — each step has a channel, a timing delay, and an optional message. Steps execute in sequence, with the delay measured cumulatively from the flow’s creation date.
Steps are numbered starting from 0 (internally) and must have unique indices within a flow. You cannot have two steps with the same index. The step index determines the execution order of your outreach sequence. Steps are always added to the end of the sequence and cannot be reordered after creation — plan your step order before saving.

Creating a New Sequence from Scratch

1

Open the Sequence Editor

On the Outreach page, click the “Create Sequence” button in the Outreach Flows tab. This opens the sequence editor dialog where you define your sequence name and steps.
2

Name Your Sequence

Give the sequence a clear, descriptive name. Good names indicate the purpose: “Initial Client Outreach - IT Sector,” “Follow-Up Sequence - Senior Roles,” or “Cold LinkedIn Introduction.” You will thank yourself later when browsing a list of 20+ templates.
3

Add Steps

Build your sequence by clicking “Add Step” to add steps one at a time. For each step, configure three fields in a compact row:
  • Name (optional) — A label for the step (e.g., “Introduction Email,” “LinkedIn Follow-Up”).
  • Channel — Email Message, LinkedIn Message, LinkedIn Contact (connection request), or Call.
  • Days — How many days after the previous step this step should be executed. The first step is always set to 0 (send immediately) and cannot be changed.
4

Review Your Steps

After adding all steps, review the sequence. You can remove steps by clicking the delete icon next to each one. If you need to change the order, remove and re-add steps in the desired sequence, since drag-and-drop reordering is not available.
5

Save the Sequence

Click “Create” to save. The sequence is saved as a template available for future use across any job or company. You need at least one step before saving.

Adding Steps to a Flow

Each step represents one action in your outreach sequence. Here is what each field means:
FieldDescriptionExample
ChannelThe communication method for this step. Determines how the outreach is delivered.EMAIL_MESSAGE, LINKEDIN_MESSAGE, LINKEDIN_CONTACT, CALL
NameA short label describing the step’s purpose. Helps you identify steps at a glance.”Introduction Email,” “Follow-Up Call”
Delay in DaysDays to wait before executing this step, counted from the previous step’s scheduled date.0 (immediate), 3, 7

Example Flow: Standard Client Introduction

Here is a typical outreach sequence for introducing your recruitment services to a new prospect:
StepChannelDelayPurpose
1Email0 daysSend a personalized introduction email explaining your services and referencing a specific job opening.
2LinkedIn Connection Request2 daysConnect with the hiring manager on LinkedIn with a short note referencing your email.
3Email5 daysFollow up on the introduction email with additional value (market insights, candidate availability).
4Phone Call3 daysCall the contact to discuss the opportunity directly.
5LinkedIn Message4 daysFinal follow-up via LinkedIn if no response has been received.
In this example, the total sequence spans 14 days from the first email to the final LinkedIn message.

Example Flow: Quick Follow-Up for Urgent Roles

For time-sensitive opportunities, use a compressed timeline:
StepChannelDelayPurpose
1Email0 daysDirect email about the urgent role with candidate profiles ready.
2LinkedIn Message1 dayQuick LinkedIn follow-up referencing the email.
3Phone Call1 dayCall to discuss immediate next steps.
This 3-step, 2-day sequence is aggressive but appropriate when speed matters.

Choosing Channels Per Step

Each channel has its strengths. Here are guidelines for when to use each.

Email (EMAIL_MESSAGE)

Best for detailed, professional first contact. Allows longer messages, rich text formatting, and formal structure. Use email when you need to explain your value proposition or share a pitch deck. Includes open and click tracking.

LinkedIn Message (LINKEDIN_MESSAGE)

Best for warm follow-ups after initial contact. LinkedIn messages are more personal and casual. Use when you already have a connection with the recipient. Messages should be shorter than email — 3-6 sentences.

LinkedIn Connection Request (LINKEDIN_CONTACT)

Best for establishing a new relationship. Include a personalized note (up to 300 characters) that references the context of your outreach. Always personalize — generic connection requests get ignored.

Phone Call (CALL)

Best for high-priority follow-ups and closing conversations. Use after email and LinkedIn touches have warmed up the contact. Log the call in your flow to maintain a complete outreach record.
Alternating between channels is more effective than repeating the same channel. An email followed by a LinkedIn message followed by a call covers three different touchpoints. The recipient sees your name in their inbox, their LinkedIn notifications, and their caller ID — making it hard to ignore.

Setting Timing Between Steps

The delay_in_days field controls the pacing of your outreach. Getting the timing right is crucial — too aggressive and you annoy prospects, too slow and you lose momentum.
A general rule of thumb for recruitment outreach timing:
  • Day 0: Initial email or LinkedIn connection request
  • Day 2-3: Second touch on a different channel
  • Day 5-7: Follow-up on the original channel with new value
  • Day 10-14: Final follow-up or escalation
Adjust based on the urgency of the role and the responsiveness of your market. Senior executive roles often need longer gaps (5-7 days between touches), while high-volume tech roles can tolerate shorter ones (2-3 days).
When Recruitier calculates scheduled dates, it adds delays cumulatively. If Step 1 has a 0-day delay, Step 2 has a 3-day delay, and Step 3 has a 5-day delay, then Step 3 is scheduled for day 8 (0 + 3 + 5) after flow creation.
Template flows do not have scheduled dates because they are not tied to a specific opportunity. Scheduled dates are only calculated when a flow is created for an actual job or company. This means templates are purely structural — they define the channels and delays, and the dates are filled in when applied.

Editing Steps

After creating a sequence, you can modify it by clicking the pencil icon on the sequence card to open the editor. The following operations are available:
  • Edit a step: Click on a step to change its channel, name, or delay. The scheduled dates of subsequent steps will be recalculated automatically.
  • Mark a step as done: In the step edit dialog, use the “Mark as done” checkbox to mark a step as completed. You can also uncheck it to mark it as incomplete.
  • Delete a step: Click the delete icon on a step to remove it from the sequence. A confirmation dialog will appear. Subsequent steps shift up to fill the gap.
  • Append a step: Click “Add Step” at the bottom to add a new step to the end of the sequence.
There is no drag-and-drop reordering of steps. Steps are always appended to the end. If you need a different order, delete the steps and re-add them in the desired sequence. Plan your step order before saving when creating a new sequence.
Completed steps retain their original data and completion timestamps. You can toggle a step’s completion status using the “Mark as done” checkbox in the step editor.

Saving Sequence Templates for Reuse

When you create a sequence that works well, save it as a template so you can apply it to future opportunities without rebuilding from scratch. There are two ways to create a template:
  1. Create a template directly: On the Outreach page, click “Create Sequence” in the Outreach Flows tab. This creates a standalone template that is not tied to any job or company.
  2. Save as template during creation: When creating a job or company flow from a job or company detail page, check the “Save as template” checkbox. Optionally provide a separate template name. Recruitier will create both the active sequence (tied to the job/company) and a separate template copy. The template preserves the step structure and timing for future use.

Shared Templates

If you are part of an agency, you can mark templates as “shared.” Shared templates are visible to all members of your agency, promoting consistency across the team’s outreach efforts.
Template TypeVisibilityBest For
PersonalOnly youIndividual outreach patterns, experimental sequences
SharedAll agency membersStandardized team workflows, proven sequences
The sharing is controlled by a toggle switch that appears in the sequence editor when you are part of an agency. Any team member can create a shared template. The toggle is only available when editing an existing template, not during initial creation. Shared templates show the author’s name so you know who created them.

Applying Templates to Jobs

You can apply a saved template to a specific job by clicking “Use Sequence” on the template card. This opens a job selection dialog where you choose which job to apply the sequence to. Recruitier copies the template’s step structure into a new active flow linked to the selected job, calculating scheduled dates based on the current date. The original template remains unchanged.

Best Practices

  • Start simple. A 3-step flow (email, LinkedIn, follow-up email) is often more effective than a 7-step marathon. Test and iterate.
  • Vary your channels. Contacting someone through email and LinkedIn shows persistence without being annoying on a single channel.
  • Personalize every step. Templates define the structure, but each message should include specific details about the job, company, or candidate.
  • Respect timing. Sending two emails in two days feels aggressive. Space your touches appropriately.
  • Name flows descriptively. When you have 50 active flows, “Flow 1” and “Flow 2” are useless. Use names like “VP Engineering - Acme Corp” or “Q1 IT Client Development.”
  • Build 3-4 standard templates. Create templates for your most common scenarios: candidate placement, business development, speculative placement, and job marketing. Then customize from there.

Advanced

How Flows Are Stored and Managed

Each outreach flow is stored as an OutreachFlow entity in the database with the following key properties:
  • type: Determines the flow’s relationship — JOB flows have a foreign key to a job record, COMPANY flows link to a company record, TEMPLATE flows stand alone, and ARCHIVED is a soft-delete state.
  • Unique constraints: The database enforces a unique constraint on job_id (one flow per job) and company_id (one flow per company). Attempting to create a second flow for a job that already has one will fail. This is by design — it prevents duplicate outreach to the same opportunity.
  • is_shared: Controls visibility across agency members. Only applies to template flows.

How Step Scheduling Works Internally

The scheduled_date for each step is computed, not stored statically. It is calculated as follows:
  1. Start with the flow’s creation date (the anchor date).
  2. For Step 0: scheduled_date = creation_date + step_0.delay_in_days.
  3. For Step N: scheduled_date = step_(N-1).scheduled_date + step_N.delay_in_days.
This means if you change the delay of Step 2, the scheduled dates of Steps 3, 4, and all subsequent steps automatically shift. The system recalculates on every access, so scheduled dates are always current. For template flows, scheduled_date is None because there is no anchor date. When a template is applied to a job or company, the new flow’s creation date becomes the anchor, and all scheduled dates are calculated from that point.

The Step Completion Pipeline

When you mark a step as completed, several things happen in sequence:
  1. The step’s completed flag is set to true and completed_at is set to the current timestamp.
  2. If the step has a message (email or LinkedIn), the message’s status is updated to SENT.
  3. For contact channels (email, LinkedIn message, LinkedIn connection request, or call): the system checks for candidate_job_matches linked to the same job. Any matches in pending, favorited, or reviewing status are automatically moved to contacted. This pipeline integration only applies to job flows, not company or template flows.
  4. The flow’s computed status is recalculated. If all steps are now complete, the flow status becomes COMPLETED.

How Templates Are Applied to Records

When you apply a template to a job or company, the process works like this:
  1. A new OutreachFlow is created with the appropriate type (JOB or COMPANY) and linked to the target record.
  2. Each step from the template is duplicated into the new flow, preserving channels, names, and delays.
  3. Step indices are preserved (0, 1, 2, …) to maintain the original order.
  4. Scheduled dates are calculated using the new flow’s creation date as the anchor.
  5. The template itself is unchanged — it remains available for future use.
This is a deep copy, not a reference. Modifying the new flow does not affect the template, and modifying the template does not affect previously created flows.

Business Logic Rules

The one-flow-per-job and one-flow-per-company constraints are enforced at the database level with unique indexes. If you need to restart outreach for a record, you must first archive the existing flow (changing its type to ARCHIVED), which removes it from the unique constraint and frees the record for a new flow.Archived flows retain all their data — steps, messages, completion history — for audit and analysis purposes. They are simply filtered out of active views.
Steps within a flow are guaranteed to have unique, sequential indices starting from 0. The system enforces this through:
  • Validation on step creation (no duplicate indices).
  • Automatic index recalculation on delete.
  • The step_index is used for ordering in all queries and UI displays.
New steps are always appended to the end of the sequence. If you delete Step 1 from a 4-step flow (indices 0, 1, 2, 3), the remaining steps are reindexed to 0, 1, 2. There is no step reordering functionality — to change order, delete and re-add steps.
Flow status is always computed, never stored. The calculation follows this priority:
  1. If the flow type is ARCHIVED, the status is ARCHIVED.
  2. If the flow has no steps, the status is EMPTY.
  3. If all steps are completed, the status is COMPLETED.
  4. If at least one step is completed, the status is IN_PROGRESS.
  5. If no steps are completed, the status is NOT_STARTED.
This means the status is always accurate and reflects the real state of the flow without needing manual updates.
When composing a message for a step, you can use AI-assisted generation. The AI receives:
  • The step’s channel (to determine message length and format).
  • The flow’s associated job or company context (title, description, contact details).
  • Your selected tone of voice and pitch deck.
  • The step’s position in the sequence (first touch vs. follow-up).
This means the AI generates contextually appropriate messages that fit the step’s role in the overall sequence. A first-touch email will be different from a third-touch follow-up.

Power User Tips

  • Clone and customize: Rather than creating flows from scratch each time, clone a high-performing template and tweak the delays or channels for the specific situation.
  • Track conversion by template: Compare response rates across different templates to identify which outreach patterns work best for your market.
  • Use shorter flows for warm leads: If you have an existing relationship with a company, a 2-step flow (email + call) is often sufficient. Save the 5-step sequences for cold outreach.
  • Build channel-specific templates: Create separate templates for “Email-heavy” and “LinkedIn-heavy” approaches. Some markets respond better to one channel over the other.
  • Archive aggressively: When outreach is done or the opportunity is cold, archive the flow. This keeps your active flow list clean and makes it easier to focus on current opportunities.