Chapter 1

Overview

Document Processing & AI Extraction is the fourth stage (S04) of the BidFactory pipeline. After creating a bid from a discovered tender, your next step is to upload the original tender documents and let BidFactory's AI engine extract structured data from them.

This module covers three connected capabilities:

  • Document Management — Upload, organize, and manage tender documents (PDF, DOCX, DOC)
  • AI Extraction — Automatically extract metadata, requirements, evaluation criteria, team needs, pricing formats, and more from uploaded documents
  • RFI Auto-Fill — Generate draft responses to Request for Information questions using AI

End-to-End Workflow

Upload Documents
AI Extraction
Review & Edit
Approve
RFI Auto-Fill

Each step builds on the previous one. Documents feed extraction, extraction results inform your bid strategy, and RFI auto-fill uses both documents and extraction results to draft intelligent responses.

Prerequisites Before you can process documents, you need a bid in the system. See Chapter 5: Creating a New Bid in the main manual.
Chapter 2

Documents Tab

Every bid has a Documents tab accessible from the bid detail page. This is where you manage all tender-related files for the bid.

Navigating to Documents

  1. Open a bid from the Bids list (or navigate directly via /bids/{bid-id}/documents)
  2. Click the Documents tab in the bid detail navigation
  3. If no documents have been uploaded yet, you'll see an empty state with an upload prompt
Documents tab showing empty state with upload area
1 Documents tab — Empty state before any files are uploaded

The empty state clearly shows the upload area and lists the accepted file formats. Once documents are uploaded, they appear in a table with checkboxes for batch operations.

Chapter 3

Uploading Files

Upload Methods

BidFactory supports two ways to upload documents:

  • Drag & Drop — Drag files directly onto the upload zone
  • Click to Browse — Click the upload area to open your file picker

Accepted Formats & Limits

FormatExtensionMax Size
PDF.pdf50 MB
Word Document.docx50 MB
Legacy Word.doc50 MB
Batch Upload You can select multiple files at once. Each file is uploaded individually, and you'll see progress for each.

After Upload

Once files are uploaded, the Documents tab shows them in a table with:

  • Checkbox — For selecting documents for extraction
  • Filename — The original file name
  • Type — File extension / MIME type
  • Size — File size in human-readable format
  • Uploaded — Timestamp showing when the file was added
Documents table showing uploaded files with checkboxes
2 Documents listed after upload — each row has a checkbox for selection
Deletion is Restricted Only users with the Bid Manager role can delete documents. SMEs and Approvers have read-only access to files. Deletion is a soft-delete — the file is marked as inactive but not physically removed.
Chapter 4

Running AI Extraction

AI Extraction is the core intelligence feature of S04. It reads your uploaded tender documents and automatically extracts structured data across nine categories.

Triggering Extraction

  1. In the Documents tab, select one or more documents using the checkboxes
  2. The "Extract with AI" button becomes active when at least one document is selected
  3. Click the button to start extraction
Documents selected with Extract with AI button visible
3 Documents selected — the "Extract with AI" action is ready

Extraction Processing

After triggering, the extraction runs as a background task via the ARQ worker. During processing:

  • The status shows as Pending or Processing
  • A progress message displays the current step (e.g., "Reading documents...", "Analyzing structure...")
  • You can navigate away — the extraction continues in the background
  • The Extraction tab updates automatically when complete
Processing Time Extraction typically takes 30–90 seconds depending on document count and size. Large multi-document extractions may take up to 3 minutes.

Extraction Statuses

StatusMeaning
PendingExtraction queued, waiting for worker
ProcessingAI is actively analyzing documents
CompletedAll data extracted successfully
FailedAn error occurred — check the error message
One at a Time Only one extraction can run per bid at a time. If you trigger a new extraction while one is in progress, you'll get a 409 Conflict error. Wait for the current extraction to finish first.
Chapter 5

Reviewing Extraction Results

Once extraction completes, navigate to the Extraction tab to review results. The data is organized into nine specialized tabs.

Extraction page overview showing tabs and content
4 Extraction page overview — all tabs visible across the top

The Nine Extraction Tabs

📄
Metadata
Title, buyer, deadlines, contract type, value
Requirements
Mandatory & optional requirements with categories
Evaluation Criteria
Scoring criteria, weights, sub-criteria
🏆
Qualifications
Required certifications, experience, turnover
👥
Team
Required roles, qualifications, FTEs
💰
Pricing
Pricing structure, format requirements
📚
Scope
Project scope summary, deliverables
📅
Key Dates
Submission deadline, Q&A period, contract start
Compliance
Regulatory and compliance requirements

Metadata Tab

The Metadata tab shows the high-level tender information extracted by AI, including:

  • Tender title and reference number
  • Contracting authority (buyer name and address)
  • Contract type (services, supplies, works)
  • Estimated value and currency
  • Submission deadline
  • AI model used and extraction cost
Extraction metadata tab showing extracted tender information
5 Completed extraction — Metadata tab with AI-extracted fields

Requirements Tab

The Requirements tab lists all extracted requirements, each categorized and marked as mandatory or optional:

  • Mandatory — Must be met for a compliant bid
  • Optional — Nice-to-have, may improve scoring

Requirements are grouped by category: Technical, Qualification, Certification, Reference, and Mandatory.

Requirements tab showing categorized requirements list
6 Requirements tab — categorized requirements with mandatory/optional flags

Other Extraction Tabs

The remaining tabs provide specialized views:

Evaluation Criteria, Qualifications & More
  • Evaluation Criteria — Scoring methodology (price/quality ratio, weights for technical criteria)
  • Qualifications — Minimum experience, certifications, financial standing required
  • Team Requirements — Roles, skill profiles, and minimum FTEs the buyer expects
  • Pricing Format — How to structure your pricing (fixed, T&M, rate card, etc.)
  • Scope Summary — AI-generated summary of the project scope and key deliverables
  • Key Dates — Timeline of important milestones (Q&A deadline, submission, contract start)
  • Compliance Items — Specific regulatory, legal, and procedural requirements
Other extraction tabs showing additional data categories
7 Additional extraction tabs — detailed data across all categories
Chapter 6

Editing & Approving Extraction

AI extraction provides an excellent starting point, but you should always review and refine the results. BidFactory supports inline editing for all extracted data.

Editing Metadata & Sections

On any extraction tab, you can edit the AI-generated content:

  1. Click on any field value to enter edit mode
  2. Make your corrections or additions
  3. Click Save to persist changes

All edits are saved via PUT /api/v1/bids/{bid_id}/extract and the reviewed_by field is automatically set to your user ID.

Managing Requirements

The Requirements tab has full CRUD capabilities:

  • Add — Create new requirements the AI may have missed
  • Edit — Change the text, category, or mandatory flag
  • Delete — Remove incorrectly extracted requirements
  • Reorder — Adjust the sort order to match document structure
Batch Updates Changes to requirements are submitted as a batch via PUT /api/v1/bids/{bid_id}/extract/requirements. You can add, edit, and delete multiple requirements in a single operation.

Approving the Extraction

After reviewing and editing, mark the extraction as approved:

  1. Ensure all sections have been reviewed
  2. Click the Approve button
  3. The extraction status changes to Approved
  4. Your name and timestamp are recorded as the reviewer
Extraction page showing approved status badge
8 Extraction overview with approval state — reviewed and approved
Re-extraction You can re-trigger extraction at any time. This creates a new extraction record, preserving the history of previous extractions.
Chapter 7

RFI Auto-Fill

The RFI (Request for Information) module helps you draft responses to tender questionnaires. Using the uploaded documents and extraction results, AI generates initial answers for common RFI questions.

Navigating to RFI

  1. Open the bid detail page
  2. Click the RFI tab in the navigation
  3. If no RFI has been generated yet, you'll see the empty state with an auto-fill button
RFI page showing empty state with auto-fill button
9 RFI page empty state — ready for auto-fill

Triggering Auto-Fill

  1. Select the documents to analyze (the same documents used for extraction)
  2. Click "Auto-Fill RFI"
  3. The AI processes the documents and generates draft responses
  4. Processing happens in the background via the ARQ worker
Best Results Run AI Extraction before RFI Auto-Fill. The RFI module leverages extraction results to produce more accurate and contextual responses.
Chapter 8

Reviewing RFI Responses

Once RFI auto-fill completes, the page shows the generated responses in a structured format.

Response Layout

Each RFI response includes:

  • Question — The original RFI question extracted from the tender
  • Answer — The AI-generated draft response
  • Confidence — How confident the AI is in the response:
    • High — Strong match with source documents
    • Medium — Partial match, may need manual refinement
    • Low — Limited source data, requires significant manual input
  • Source — Which document and section the answer was derived from
RFI responses showing questions, answers, and confidence levels
10 RFI responses — questions with AI-generated answers and confidence badges

Editing Responses

Review and refine each response:

  1. Click on any answer to enter edit mode
  2. Improve the language, add specifics, or correct inaccuracies
  3. Save your changes
Always Review AI Responses AI-generated answers are drafts. Always verify facts, company-specific details, and technical claims before submitting any RFI response externally.
Chapter 9

Finalizing the RFI

RFI Statuses

StatusMeaning
DraftAuto-filled, awaiting review
ReviewedHuman-reviewed and approved
SubmittedFinalized and sent to the contracting authority

Approving the RFI

  1. Review all responses and ensure accuracy
  2. Change the status to Reviewed
  3. Your user ID and timestamp are recorded
RFI page showing reviewed status
11 RFI approved — status shows "reviewed" with reviewer details
RFI Updates You can update RFI responses at any time via PUT /api/v1/bids/{bid_id}/extract/rfi. Updates can include changed form data, generated documents, and status transitions.
Chapter 10

Roles & Permissions

S04 features are governed by BidFactory's role-based access control. The table below shows what each role can do:

Action Bid Manager SME Approver Admin
Upload documents
Delete documents
View documents
Trigger AI extraction
View extraction results
Edit extraction data
Approve extraction
Trigger RFI auto-fill
Edit RFI responses
Approve RFI
Unauthenticated Access All S04 endpoints require authentication. Requests without a valid JWT token receive a 401 Unauthorized response.
Chapter 11

Troubleshooting

Common Issues

Upload fails with "File too large"

Individual files are limited to 50 MB. If your document exceeds this limit:

  • Split large PDFs into smaller parts using a PDF splitter
  • For DOCX files, remove embedded images that aren't needed for extraction
  • Contact your administrator if you regularly need to upload larger files
Extraction shows "Failed" status

Extraction can fail for several reasons:

  • Corrupted PDF — The document may be password-protected or damaged. Try re-saving it
  • Empty document — The file contains no extractable text (e.g., scanned image without OCR)
  • AI service unavailable — The Claude API may be temporarily down. Wait a few minutes and retry
  • Worker overloaded — The background worker queue may be full. Check the error message for details

Check the error_message field in the extraction status for specific details.

"409 Conflict" when triggering extraction

This means an extraction is already in progress for this bid. Wait for the current extraction to complete (or fail) before triggering a new one. You can check the current status on the Extraction tab.

RFI auto-fill returns incomplete answers

RFI auto-fill quality depends on the source documents:

  • Ensure you've uploaded all relevant tender documents, not just the main notice
  • Run AI Extraction first — the RFI module uses extraction results for context
  • Check the confidence badges: Low confidence answers need manual input
  • Supplement AI-generated answers with your own domain expertise
Extraction results seem incorrect or incomplete

AI extraction is powerful but not perfect. Common reasons for inaccuracies:

  • Complex layouts — Tables, multi-column layouts, and footnotes can confuse the parser
  • Domain jargon — Highly specialized terminology may be misinterpreted
  • Multiple languages — Mixed-language documents may have inconsistent extraction

Always review and correct extraction results before approving. The edit capabilities are designed for exactly this purpose.

API Reference Quick Links

EndpointMethodDescription
/api/v1/bids/{id}/documents/POSTUpload documents
/api/v1/bids/{id}/documents/GETList documents
/api/v1/bids/{id}/documents/{doc_id}DELETESoft-delete a document
/api/v1/bids/{id}/extract/POSTTrigger AI extraction
/api/v1/bids/{id}/extract/GETGet latest extraction
/api/v1/bids/{id}/extract/PUTUpdate extraction data
/api/v1/bids/{id}/extract/requirementsPUTBatch update requirements
/api/v1/bids/{id}/extract/rfiPOSTTrigger RFI auto-fill
/api/v1/bids/{id}/extract/rfiGETGet latest RFI
/api/v1/bids/{id}/extract/rfiPUTUpdate RFI responses