Managing Freelancers (Company Side)

This article covers how Core Tenant companies manage their connected freelancers — from viewing profiles and tracking performance to handling applications, invitations, and bookings.

Viewing connected freelancers

Connected freelancers appear within the Crew module alongside internal staff. The Crew List page includes several tabs relevant to freelancer management:

  • Crew list — Displays all crew members, including freelancers. Freelancers are distinguished by a purple “Freelancer Node” chip.
  • Applications — Shows pending freelancer applications with a badge count for unreviewed submissions.
  • Invoices — Lists freelancer-submitted invoices for review and payment.
  • Payments & POs — Manages purchase orders sent to freelancers.

Freelancer detail view

The freelancer detail page (ShowFreelancer.vue) uses a two-column layout to present comprehensive information about a connected freelancer.

Left sidebar (20%)

  • Profile card — Avatar, full name, location, email, phone, and day rate
  • Skills card — Chip list of the freelancer’s skills from the freelancer_skills array on the connection
  • Internal rating card — A private 5-star rating widget. The rating (internal_rating, 1–5) is only visible to your company and is tracked with internal_rating_updated_at and internal_rating_updated_by.
  • Compliance card — PLI status (provider, expiry, coverage amount), right to work status, certifications list with expiry dates, and last sync timestamp (snapshot_synced_at)

Right content area (80%)

  • Stats row — Jobs completed (jobs_completed), hours worked (total_hours_worked), your rating (average_rating), and connected since date
  • Bio card — The freelancer’s personal biography
  • Emergency contact card — Name, relationship, and phone number
  • Professional details — Business/trading name, years of experience, website, hourly and overtime rates
  • Address card — Full postal address
  • Driving & travel card — Licence status, categories (B, C1, C, D1, D, BE, CE), maximum travel distance, and overnight travel preference
  • Equipment card — Equipment the freelancer owns (PRO tier only)
  • Portfolio links — External portfolio and showcase URLs
  • Application message — The original cover letter submitted with the freelancer’s application
  • Internal notes — A private editable text area (internal_notes) visible only to your company
  • Tags — Editable chip tags (tags array) for categorising freelancers within your organisation

Actions

The header provides several action buttons:

  • Book (primary button) — Create a new booking for this freelancer
  • Make Preferred / Remove Preferred — Toggle the is_preferred flag with optional preferred_priority and preferred_roles array
  • View Node Profile — Opens the freelancer’s public Node profile in a new tab
  • Send Message — Open a direct message thread
  • Disconnect — Sever the connection (requires confirmation with optional reason)

FreelancerConnection model

The FreelancerConnection model on the company side tracks the working relationship and performance data:

Performance tracking

  • jobs_completed — Total number of completed bookings
  • total_hours_worked — Cumulative hours logged
  • total_amount_invoiced — Total value of invoices submitted
  • average_rating — Average rating from reviews
  • no_show_count — Number of times the freelancer did not attend
  • cancellation_count — Number of cancelled bookings
  • last_worked_date — Date of the most recent completed job

Blocking

If a freelancer needs to be barred from future bookings, the blocking mechanism records blocked_reason, blocked_by, and blocked_at. A blocked freelancer cannot receive any new booking requests.

Reliability score

The isReliable() method returns true when a freelancer has a completion rate of 85% or higher and at least 5 completed bookings. This helps companies identify their most dependable crew members.

Freelancer applications

When freelancers apply through the Join Crew page, a FreelancerApplication record is created with the following data:

  • Freelancer identification: node_identifier, name, email, phone
  • Profile data: business name, bio, avatar, skills, certifications, equipment summary
  • Application details: cover_letter, proposed_rate, highlighted_skills, portfolio_links

Applications move through four statuses:

  1. Pending — Awaiting review
  2. Shortlisted — Marked for further consideration
  3. Approved — Accepted; a FreelancerConnection is automatically created
  4. Rejected — Declined; a rejection_reason can be provided

Applications can also be auto_approved when configured for trusted sources.

Freelancer invitations

Companies can proactively invite freelancers using the FreelancerInvitation model. Each invitation includes:

  • An optional message to the freelancer
  • An optional lifetime discount_percentage (up to 50%) on the freelancer’s subscription
  • A unique invitation_token for secure URL sharing
  • An expires_at date (defaults to 7 days)

Invitation statuses: pending, accepted, rejected, expired. Reminders can be sent, tracked by reminder_sent_count and last_reminder_sent_at.

Freelancer invoices

Freelancers submit invoices to companies for completed work. On the company side, invoices move through a review workflow:

  • Pending — Submitted by the freelancer, awaiting company review
  • Approved — Accepted by the company for payment
  • Rejected — Returned to the freelancer with notes
  • Paid — Payment has been processed

Purchase orders

Companies can send purchase orders to freelancers to confirm agreed work and rates before a job begins.

Booking workflow

The FreelancerBooking model manages the complete booking lifecycle through the following statuses:

  1. Pending — Company sends a booking request to the freelancer
  2. Accepted — Freelancer accepts the booking (accepted_at recorded)
  3. Confirmed — Final confirmation before work begins (confirmed_at recorded)
  4. In progress — Work is underway
  5. Completed — Job finished successfully (completed_at recorded)

A booking can be declined by the freelancer or cancelled by either party at the pending, accepted, or confirmed stages. Bookings can also be marked as disputed if there is a disagreement about the work or payment.

Tips

  • Use internal ratings to track freelancer quality privately — these are never shared with the freelancer.
  • Set preferred status for your most reliable freelancers to surface them first when scheduling.
  • Review applications promptly — freelancers are more likely to stay engaged when they receive timely responses.
  • Add tags to categorise freelancers by skill set, department, or reliability for quick filtering.
  • Monitor no-show and cancellation counts to identify unreliable freelancers early.

Continue to the next article for troubleshooting common issues with Freelancer Nodes.

Was this article helpful?