• Sign In
  • Pricing
  • Sign In
  • Instant Demo
  • Get Started Free
Products
  • HRMS

    Manage employees, track time, & more

  • Invoicing

    Turn time into invoices and deliver in bulk

  • Business Intelligence

    Compile your data into helpful reports

  • Performance Management

    Set goals and track your team

  • Employer of Record

    Built-in payroll outsourcing

Solutions
  • Contract

    Manage all of your contractors on assignment

  • Direct Hire

    Store direct hire starts, invoice, and create reports

  • Owners & Managers

    Performance management, easy-to-use reports

  • Pay & Bill Admins

    Integrated system streamlines your back-office

  • Individual Contributors

    Personal metrics reports, bullpen dashboards

Integrations
  • ActivateStaff logo
    ActivateStaff

    Candidate Engagement

  • Bullhorn logo
    Bullhorn

    Applicant Tracking System

  • JobAdder logo
    JobAdder

    Applicant Tracking System

  • Oorwin logo
    Oorwin

    Applicant Tracking System

  • PrismHR logo
    PrismHR

    Payrolling

  • SmartSearch logo
    SmartSearch

    Applicant Tracking System

  • Sage logo
    Sage

    Accounting | Coming soon!

  • StaffUpApp logo
    StaffUpApp

    Candidate Engagement

  • Top Echelon logo
    Top Echelon

    Applicant Tracking System

  • Quickbooks logo
    QuickBooks Online & Desktop

    Payrolling & Accounting

Resources
Support
  • The Bilflo Blog

    Helpful insights into back-office automation

  • Ebooks

    Dive deeper and improve your processes

  • Automate Your Back Office

    Watch the free webinar

  • Case Studies

    How companies increased cash flow & scaled

  • Press Releases

    Company and product updates

  • FAQ

    Frequently asked questions

  • Knowledge Base

    How-tos and other helpful info

    Contact Support

    Having problems? We can help you

    Contact Sales

    We'll answer all your questions

How to Create a Contract Job

PostedNovember 3, 2021
Last Updated OnJune 8, 2026
ByKevin Nguyen
You are here:
  • Main
  • Contract
  • How to Create a Contract Job
← All Topics

A Contract Job is the placement record — it ties one contractor to one client with a start date, bill rate, and pay rate. You can’t bill or run payroll until a contractor has at least one Contract Job.

Before you start

You need:

  • The contractor already created in Bilflo (see “Adding a Contractor”)
  • The client already created with an active agreement
  • Start date and first week-ending date
  • Bill rate and pay rate for at least Regular hours
  • The workers comp class code to use
  • The work-site address (drives WC and tax setup)
  • At least one approver to receive timecard notifications

You’ll need permission to access Billing → Contract in the sidebar.


Step 1 — Open the new contract job form

  1. From the left sidebar, click Billing → Contract.
  2. Click the New button at the top of the contract list.

You’ll land on the Contract Job Detail screen (URL: /billing/contract/new).


Step 2 — Fill in the standard job info

FieldRequiredNotes
ClientYesStart typing to search; pick from the dropdown. Must already exist.
ContractorYesStart typing the contractor’s name to search and select.
Job TitleYesFree text — e.g., “Anesthesia On-call”.
Job TypeYesDropdown — pick the placement category. Cannot be changed after the job is created, so pick carefully.

The Status field is read-only and shows after approval. New jobs start as Draft.

If the client has no active agreement, you’ll see a warning at the top — get the agreement set up first or the job won’t bill correctly.


Step 3 — Set start and end dates

In the Schedule section:

FieldRequiredWhat it does
Start DateYesThe contractor’s first day on assignment. Can be any day of the week.
First Week Ending DateYesThe end day of the contractor’s first weekly timecard cycle (e.g., Sunday for a Mon–Sun cycle). This sets the weekly cadence for the whole assignment.
End DateNoLeave blank for open-ended assignments. Optional now; you can set it later.

Difference between Start Date and First Week Ending Date:

  • Start Date = hire/assignment date (can be mid-week)
  • First Week Ending Date = the end of the first timecard week (must align with your payroll calendar)
  • Example: contractor starts Tuesday 6/2, your payroll week ends on Sundays → set First Week Ending Date to Sunday 6/7. Their first timecard covers Tue–Sun.

Important date lock: once the contractor submits their first timecard against this job, Client, Contractor, Start Date, and First Week Ending Date all become locked and can’t be changed without admin intervention. Verify these before letting the contractor enter time.


Step 4 — Set the work-site address and Workers Comp code

In the Burden section:

  1. Select the Address (the work-site state drives WC rate and tax setup).
  2. Select the Workers Comp Code from the filtered dropdown — only codes valid for that state appear.

Until you select an Address, Total Burden shows 0% and burden won’t calculate.


Step 5 — Add pay rates and bill rates

Expand the Time and Pay section.

  1. Click + Add Items to open the pay-item picker.
  2. Select the pay items the contractor will be paid/billed for. Common items:
    • Regular
    • Overtime (OT)
    • Double Time (DT)
    • Holiday
    • Sick Time (only if enabled on the contractor profile)
    • Vacation Time (only if enabled on the contractor profile)
  3. For each row, enter:
    • Pay / Cost = what the contractor earns per hour
    • Bill Rate = what the client is invoiced per hour
  4. Repeat for every pay item the assignment needs.

Tips:

  • Always add Regular first; OT/DT are typically a multiple of Regular.
  • Bilflo doesn’t auto-calculate margin or GP in this view — keep a calculator handy if you want to verify markup.
  • Use the trash icon to remove a row.
  • If you don’t see Sick or Vacation in the picker, check that they’re enabled on the contractor’s profile first.

Rate history: there’s no effective-dated rate-change UI on the job. If a rate changes mid-assignment, you’ll edit it in place — past timecards aren’t recalculated. Note this for retro situations.


Step 6 — Configure burden

After the Address and WC Code are set, the Burden section’s table populates with your company’s default burden items (FICA, FUTA, SUTA, WC, benefits, etc.).

You have three options via the Actions dropdown:

ActionWhen to use
Add itemAdd a custom burden item on top of defaults
Reset burdensWipe overrides and revert to company defaults
OverrideReplace the itemized table with a single flat % for this job

For most jobs, leave the defaults alone — they come from your company-level burden configuration. Use Override only when a specific assignment has a known different burden (MSP flat, atypical WC).

The Total Burden at the bottom of the table is what gets loaded into true cost / GP calc.


Step 7 — Add approvers

Approvers are who reviews and approves the contractor’s timecards each week.

Expand the Approvers section (it’s hidden if your time-collection method is one of the automated types — TimecardMethodId 3, 4, or 10).

  1. Click + Add Approver.
  2. Search by name or email in the modal and select the approver.
  3. For each approver, toggle which actions they can perform:
    • Can Approve Time — the core timecard approval
    • Can Approve Per Diem — per-diem reimbursements
    • Can Approve Expenses — expense reports
    • View Invoices — visibility into client invoices for the job

Approver chain:

  • Use the Up/Down arrows to set the order of approvers.
  • Choose one of two modes:
    • Any sequence — any approver can approve in any order
    • Sequential — set a minimum number of approvals required from N of M approvers (e.g., 2 of 3)

Notes:

  • Approvers must already exist as users in Bilflo — you can’t type a free-form email here.
  • If an approver shows “(no email)”, they were imported as a system placeholder. Update their profile with a real email or they won’t get notifications.
  • Approvers are tied to the Contract Job, not the client. If you have 10 jobs at the same client, each job’s approver list is independent.

Step 8 — Save

There are three save options at the bottom of the form:

ButtonEffectWho can use it
Save DraftSaves as Draft (Status 1). No timecards can be entered yet.Anyone with edit access
Submit for ApprovalRoutes to a supervisor for approval.Non-admin users
Save and ApproveSaves and instantly approves (Status 2). Timecards can be entered immediately.Admins only

Until the job is Approved, no timecards can be entered or billed. Draft is fine for staging; remember to push it through approval before the contractor’s first day.


Setting an End Date later

Once a job is Approved, the End Date field switches to a modal-based control.

  1. Open the contract job.
  2. In the Schedule section, click the End Date control.
  3. In the modal, choose:
    • Set End Date — set a new end date
    • Change — modify an existing end date
    • Clear — remove the end date (assignment becomes open-ended again)

Important:

  • Setting an End Date does not automatically change the job status to Ended/Terminated. You still control status manually.
  • Setting an End Date does not automatically grey out the timecard for periods after the end date in older builds — confirm with QA that your release handles this correctly.
  • End Date can be any day of the week (no period-end validation).
  • For mid-week ends, the contractor can still enter time through the rest of the week unless you also close the job’s status — keep an eye on the first week-ending date after the end date.

Common pitfalls

IssueWhat to do
“Total Burden = 0%”Make sure the Address is selected — burden won’t calculate without it
Sick / Vacation not in pay item pickerEnable them on the contractor’s profile first, then come back
Client picker shows no resultsClient doesn’t exist yet — create the client first, or click “Add new Client” in the modal
Can’t change Client / Contractor / Start DateTimecards have already been submitted — those fields are now locked
End Date set but contractor can still submit time after itStatus may still be Approved — check that the End Date is past the latest week-ending date and consider closing the job after the final timecard
Job is “Draft” and won’t billSubmit for Approval (or Save and Approve as admin) — Draft jobs don’t generate invoices
Bullhorn doesn’t show the new jobBilflo → Bullhorn sync isn’t automatic; the integration uses outbound sync IDs only when explicitly mapped
Approver isn’t getting timecard emailsConfirm their user record has a real email (not a BF.SYSTEM.* placeholder) and that they have Can Approve Time checked

What happens after save

  • The job appears in Billing → Contract with its status.
  • Once Approved, the contractor sees the assignment in their timecard portal starting from the First Week Ending Date.
  • Approvers begin receiving weekly timecard notification emails once timecards are submitted.
  • Burden + bill/pay rates flow into invoice generation and payroll export.

Next steps after creating the job

  1. Verify the contractor can log into their portal and sees the job.
  2. Run a test timecard for the first week and walk through the approval flow.
  3. Generate a sample invoice to confirm bill rate, burden, and any per-diem flow correctly.
  4. If syncing to Bullhorn, manually confirm the placement mapping.
Tags:
  • Contract
Previous How to override contract quantities and rates
Next Deep Dive into Bilflo (Contract Jobs, Timecards, and Business Intelligence)
Table of Contents

Features
  • HRMS
  • Invoicing
  • Business Intelligence
  • Performance Management
  • Employer of Record
Solutions
  • Contract
  • Direct Hire
  • Owners & Managers
  • Pay & Bill Admins
  • Individual Contributors
Integrations
  • Bullhorn
  • JobAdder
  • Oorwin
  • PrismHR
  • SmartSearch
  • Top Echelon
Resources
  • The Bilflo Blog
  • Ebooks
  • Webinar
  • Case Studies
  • FAQ
  • Knowledge Base
  • Developers
Company
  • Pricing
  • Contact
  • Releases
  • Terms & Privacy
  • Cookie Policy

© 2026 Bilflo