Job Posting System — Full Product Design (PRD/FRD)
1) Purpose & Goals
- Enable vendors/clients to post well-scoped jobs quickly.
- Enable freelancers to discover, evaluate, and apply with clear proposals.
- Improve time-to-hire, quality of matches, and transparency for both sides.
2) User Roles
- Vendor (Client): Posts jobs, reviews applicants, hires, manages contracts.
- Freelancer: Creates profile, searches jobs, applies, messages, delivers work.
- Admin/Moderator: Reviews content, handles reports/disputes, manages categories.
3) Core Entities & Fields (Field-Level Spec)
A. Job (Vendor → “Post a Job” form)
Required fields
- Job Title (text, 10–80 chars)
Example: “Redesign Homepage in Figma”
Validation: Must include a verb + deliverable. - Description (rich text, 200–3000 chars)
Structure prompt shown in UI: Scope, deliverables, success criteria, tech stack, references.
Disallow: Emails/phone numbers if using on-platform messaging only. - Budget Type (enum:
Fixed
,Hourly
) - Budget
- If Fixed:
Min Amount
+Max Amount
(USD/PKR/…) - If Hourly:
Rate Range
+Estimated Hours
- If Fixed:
- Timeline
Start Window
(date range)Deadline
(date) orEstimated Duration
(e.g., 2 weeks)
- Category (select one; hierarchical)
e.g., Design → UI/UX - Skills (multi-select tags; 3–10)
e.g., Figma, Prototyping, Design Systems - Experience Level (enum:
Junior
,Mid
,Senior
) - Engagement Type (enum:
One-off
,Ongoing
,Part-time
,Full-time contract
) - Work Mode (enum:
Remote
,On-site
,Hybrid
+ Location if not remote) - Language(s) (multi-select; proficiency optional)
- Visibility (enum:
Public
,Invite-only
) - Application Questions (0–5 short questions)
e.g., “Share a similar project link.” “What’s your approach and timeline?”
Optional fields
- Attachments (PDF/JPG/PNG/ZIP up to 25MB; up to 5 files) with virus scan
- NDA Required (checkbox; forces NDA acceptance before viewing full details)
- Preferred Timezone/Hours Overlap (text/select)
- Budget Notes (text)
System fields
- Status (enum:
Draft
,Published
,Closed
,Archived
,Flagged
) - Owner (Vendor ID), Created At, Updated At
B. Application (Freelancer → “Apply”)
Required
- Cover Letter/Proposal (300–1500 chars; prompt displayed: approach, milestones, risks)
- Bid
- If job is Fixed → Proposed fixed amount
- If Hourly → Proposed hourly rate + estimated hours
- Proposed Timeline (date or duration)
- Portfolio Links (1–3 URLs) or Attach Samples (up to 3)
- Answers to Vendor Questions (from job)
- NDA Acceptance (if required)
System
- Application Status (enum:
Submitted
,Shortlisted
,Interview
,Offer
,Hired
,Rejected
,Withdrawn
) - Timestamps; Freelancer ID; Job ID
C. Messaging (Vendor ↔ Freelancer)
- Thread per Job + Applicant, attachments allowed (10MB/file), typing indicators, read receipts.
- Safety filters for emails/phones if platform requires on-platform comms.
D. Contract (Post-hire)
- Hire Type (
Fixed
,Hourly
) - Milestones (title, amount, due date) for Fixed; Weekly Timesheets for Hourly
- Escrow (if supported), Cancellation Policy, Dispute Hooks
E. Reviews (post-completion)
- Rating 1–5, Comment, optional skill tags endorsed.
4) Workflows
A. Vendor – Post a Job
- Go to Post a Job → fill fields (guided prompts + char counters).
- Preview job → Publish (or Save as Draft).
- On publish: Confirmation + quick link: “Invite freelancers” / “Share job link”.
Validation & Errors
- Title too short/long → “Use 10–80 characters and be specific (e.g., ‘Build Shopify landing page’).”
- Description missing scope → inline prompt: “Add deliverables and success criteria.”
- Budget missing range → “Enter min & max or switch to Hourly.”
B. Freelancer – Discover & Apply
- Search/Filters: keyword, category, skills, budget range, type, experience level, posted date, language, location, remote only, client rating.
- Job Card shows: title, budget, type, key skills, time posted, badges (NDA/Featured).
- Open Job Details → Apply (if eligible).
- Fill proposal + bid + timeline + answers → Submit (get confirmation & thread).
C. Vendor – Manage Applicants
- Applicants Tab: sortable by rating, relevance, bid, experience.
- Actions: View profile, view proposal, Shortlist, Message, Reject, Make Offer.
- Bulk actions: shortlist/reject multiple.
- Audit: time-stamped changes.
D. Hire → Contract
- Vendor clicks Make Offer → define contract terms → Freelancer Accepts → Contract Active.
- If escrow/payment: prompt to Fund Milestone 1 before work starts.
E. Close Job
- Vendor clicks Close Job (auto when hire is made, optional for multiple hires).
- Remaining applicants notified.
5) Job & Application Lifecycles
Job Status Flow:
Draft → Published → (Flagged) → Closed → Archived
Application Status Flow:
Submitted → Shortlisted → Interview → Offer → (Hired | Rejected | Withdrawn)
Automations
- Auto-close after X days without activity (configurable).
- Nudge emails: “You have 10 new applicants,” “Respond to shortlisted candidates”.
6) Search & Discovery
Filters: keyword, category, skills, budget type & range, experience, posted date, remote, language, client rating.
Sort: Most recent, Budget high→low, Best match (skills/keywords), Most applicants (for social proof).
Saved Jobs & Alerts: Freelancer can save jobs and receive daily/weekly alerts.
7) Dashboards
Vendor Dashboard
- My Jobs: Draft/Published/Closed with counts.
- Applicants per Job: table with status, bid, timeline, rating.
- Messages: centralized inbox.
- Insights: time to first application, avg bid, skill match heatmap.
Freelancer Dashboard
- My Applications: status tracker.
- Recommendations: jobs matching skills history.
- Profile Strength Meter: prompts to improve profile.
Admin Console
- Moderate jobs, approve flagged items, edit categories/skills, run reports, export data.
8) Notifications (Email/In-App)
- Vendor: on new application, new message, acceptance/withdrawal.
- Freelancer: on shortlist/interview/offer/reject, new message, job closed.
- Rate limits to prevent spam; daily digests.
9) Permissions & Policies
- Only verified vendors can publish jobs (optional setting).
- NDA gate: applicants must accept before viewing full specs.
- Anti-spam: cooling-off between posts, profanity/PII filters.
- Reporting: users can report job or applicant; admin receives case.
10) Localization, Currency, Time
- Multi-currency budgets (store in base currency + original).
- Show timezone on deadlines; convert for viewer; date format per locale.
11) File Rules
- Allowed: PDF, DOCX, PNG, JPG, ZIP.
- Size: up to 25MB each, 5 files/job; 10MB/message attachment.
- Virus scan + type validation; strip EXIF for images if needed.
12) Analytics & KPIs
- Jobs Posted, Applications/Job, Time-to-First-Application, Time-to-Hire.
- Fill Rate, Offer Acceptance Rate, Quality Score (based on reviews).
- Funnel for Freelancer: views → clicks → applies → shortlisted → hired.
13) Acceptance Criteria (MVP)
- Vendor can publish a job with all required fields and see it in listings.
- Freelancer can search, view details, and apply with proposal + bid.
- Vendor can shortlist, message, and hire one applicant.
- Notifications sent for each key event.
- Admin can flag/unflag a job and archive it.
14) Example (Fully Filled “Post a Job”)
- Title: “E-commerce Product Page Redesign (Figma + CRO)”
- Description: “We need a CRO-focused redesign of 3 product pages for a Shopify store. Deliverables: wireframes, hi-fi mockups, and a clickable prototype. Success = +10% conversion. Tech: Figma, GA4 insights…”
- Budget Type: Fixed
- Budget Range: $600–$900
- Timeline: Start next week; deadline in 14 days
- Category: Design → UI/UX
- Skills: Figma, UX Writing, CRO, Prototyping, Design Systems
- Experience Level: Mid
- Engagement: One-off
- Work Mode: Remote
- Languages: English (Fluent)
- Questions:
- “Share a similar redesign case study.”
- “Outline your 3-step approach.”
- Attachments: Brand guideline PDF
- NDA: Not required
- Visibility: Public
15) Roadmap (Post-MVP)
- Escrow + Milestones, Interview scheduling, Video calls, AI-assisted job description & proposal scoring, Spam detection, Skill tests, Featured jobs.
16) QA Test Scenarios (Samples)
- Post a job missing budget → inline error; cannot publish.
- Apply without answering vendor questions → blocked with specific error.
- Nudge emails triggered after 48h of no vendor action.
- “Invite-only” job not visible in public listing; invite link works.
- Attachment type spoofing blocked; large files rejected gracefully.