Jobs · Bid manager at an SME supplier
Bid-ready pack: from 'we are bidding' to the frame the team writes into
We have decided to bid on this tender. What do we write, what do we ask, and what could sink us?
1.2 min · 9 tool calls · 1 source checked
What it usually takes: A bid writing firm puts one tender at anything from a day or two of a bid writer's time to several bid writers working for the whole tender period. vendor estimate: Thornton and Lowe, The cost of outsourced bid writing for public sector tenders
The run
One real run of this job against Victano’s live service. The steps are the playbooks it chains; open one to see each tool call, its arguments and what came back.
Signed in and read the account
Tools used
Victanoreturned authenticated, via, data_as_of, sources_livewhoami0.0 s
Call 1:
whoamiwith{}{"authenticated": true, "via": "key", "data_as_of": "2026-09-23T04:20:37+00:00", "sources_live": ["ted", "cvp", "ft", "lv", "ee", "pl", "fr", "de", "… 10 more"], "sources_late": [], "data_delay": {"hours": 24, "note": "Your tier excludes anything published in the last 24 hours, so every count here is of the delayed corpus. A recently added source loses a far larger share of its rows to this than a long-running one, and can look thinner than it is."}, "email": "jobs-victano@example.test", "tier": "free", "persona": "supplier", "quota_remaining": {"doc_pages_per_day": "unlimited", "list_updates_per_day": "unlimited", "match_profile_per_week": "unlimited", "profiles_max": {"limit": 1, "renews": …Read the specification and find what would sink us
Tools used
Victanoplaybook readget_workflow0.1 s
Call 2:
get_workflowwith{"id": "deep-read"}{"id": "deep-read", "playbook": "# Read the specification and find what would sink us\n\nThis is the workflow that earns the subscription. A human reads sixty pages in two\nhours and skims the middle. You do not have to skim.\n\n## Before you start: how much of this notice can be read here\n\n`get_opportunity` and the first page of `read_document` tell you whether the corpus\nholds the specification or only the notice summary. On some national feeds (measured:\n**0% of open Spanish rows carry selection criteria inside the notice**) the buyer\nkeeps requirements on their portal and Victano holds the summary page only.\n\nWhen …", "personalisation": {"working_language": "en", "persona": "suppl …Victanoreturned opportunity_id, opportunity, data_as_of, sources_liveget_opportunity0.3 s
Call 3:
get_opportunitywith{"id": "ted:650568-2026"}{"opportunity_id": "ted:650568-2026", "opportunity": {"id": "ted:650568-2026", "source": "ted", "source_id": "650568-2026", "type": "tender", "title": "Lithuania – Software maintenance and repair services – Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos, Nr. 6827/2026", "summary": "Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos.", "body_text": "Lithuania – Software maintenance and repair services – Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos, Nr. 6827/2026 Vilniaus universitetas (PV) Vilniaus universite …Victanoreturned opportunity_id, from_page, pages_returned, total_pagesread_document0.2 s
Call 4:
read_documentwith{"id": "ted:650568-2026"}{"opportunity_id": "ted:650568-2026", "from_page": 1, "pages_returned": 1, "total_pages": 1, "text": "Lithuania – Software maintenance and repair services – Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos, Nr. 6827/2026 Vilniaus universitetas (PV) Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos.", "more": false, "source_url": "https://ted.europa.eu/en/notice/-/detail/650568-2026", "data_as_of": "2026-09-23T04:20:37+00:00", "sources_live": ["ted", "cvp", "ft", "lv", "ee", "pl", "fr", "de", "… 10 more"], "sources_late": [], "data_delay": {"hours": 24, "note": "Your tier e …Victanoreturned opportunity_id, from_page, pages_returned, total_pagesread_document0.3 s
Call 5:
read_documentwith{"id": "cvp:9724122"}{"opportunity_id": "cvp:9724122", "from_page": 1, "pages_returned": 1, "total_pages": 1, "text": "Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos, Nr. 6827/2026 Vilniaus universitetas (PV) Atviras konkursas cpv primary: 72267000. cpv division: 72. cpv label: Programinės įrangos priežiūros ir tvarkymo paslaugos. object type: Paslaugos SPK kategorija. procedure kind: Atviras konkursas. contract type: Pirkimo sutartis. eu funded: Ne. duration: 36 months. threshold: Virš. award criterion: Kaina/Sąnaudos. object description: Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo …", "more": …Draft clarification questions before the deadline
Tools used
Victanoplaybook readget_workflow0.1 s
Call 6:
get_workflowwith{"id": "clarification-questions"}{"id": "clarification-questions", "playbook": "# Draft clarification questions before the deadline\n\nClarification questions are the one lever a bidder has to change the shape of a tender\nafter it is published, and they are free. Most small suppliers never ask any, usually\nbecause they assume asking signals weakness. It does not. It signals that someone read\nthe documents.\n\nThe window closes well before the submission deadline, often a week or more before.\nCheck that date first and say it out loud, because missing it means bidding on your\nown guess. On search cards, `get_opportunity` and `read_document`, read\n`clarification_time_left` when …", "personalisation": {"working_language": …You confirm
Recorded:
Checkpoint: I'm assuming the user will send the questions in section 2 through the CVP IS messaging route, and only after checking that the tender pack doesn't already answer them. The rows in section 3 will change once those answers come in.
Build the compliance matrix and response plan
Tools used
Victanoplaybook readget_workflow0.1 s
Call 7:
get_workflowwith{"id": "response-plan"}{"id": "response-plan", "playbook": "# Build the compliance matrix and response plan\n\nThe compliance matrix is the difference between a bid that scores and one that gets\nmarked down for omissions nobody intended. Every requirement in the documents becomes\na row, and every row gets an owner and a place in the response.\n\n## Build the matrix\n\nRead the specification, the selection questionnaire and the scoring guidance together.\nFor every requirement, mandatory or scored, create a row:\n\n| # | Requirement (quoted) | Source doc, section, page | Mandatory or scored | Weight | Where we answer it | Owner | Evidence needed | Status …", "personalisation": {"working_language": "en", "persona" …You confirm
Recorded:
Checkpoint: I'm assuming the user accepts the matrix in section 3 as a starting point that only covers the notice. It will be rebuilt once someone reads the pack on the portal.
Draft the proposal skeleton from the award criteria
Tools used
Victanoplaybook readget_workflow0.1 s
Call 8:
get_workflowwith{"id": "proposal-skeleton"}{"id": "proposal-skeleton", "playbook": "# Draft the proposal skeleton from the award criteria\n\nThe structure of a winning bid is not a matter of taste. It follows the evaluator's\nscoring sheet, because the evaluator reads with that sheet beside them and marks in\nthe order it is written.\n\n## Read the award criteria first\n\n**Ask this corpus for them first.** Where the buyer published the criteria and their\nweights, `read_document` returns `qualification.award_criteria.scored_on` on page 1: the\nbuyer's own wording for each criterion, paired with its number. Beside it,\n`weights_expressed_as` says whether those numbers are percentages …", "personalisation": {"working_language": "en", …Work out where you need a partner
Tools used
Victanoplaybook readget_workflow0.1 s
Call 9:
get_workflowwith{"id": "consortium-fit"}{"id": "consortium-fit", "playbook": "# Work out where you need a partner\n\nSmall suppliers reject good opportunities because of one missing thing: turnover,\na certification, capacity, a country, a reference. EU procurement explicitly allows\ngroups of economic operators to bid jointly, and allows bidders to rely on the\ncapacities of other entities. Most small suppliers do not know this, or do not know\nhow to use it.\n\n## Before you start: what eligibility-screen gave you\n\nThis workflow usually starts from the `eligibility-screen` workflow's output. That\nworkflow produces one of two things:\n\n- **A verdict table** with HAVE / CAN GET …", "personalisation": {"working_language": "en", …Wrote the document from the results
The bid-ready pack it handed back
Bid-ready pack
Checkpoint: I'm assuming the user will send the questions in section 2 through the CVP IS messaging route, and only after checking that the tender pack doesn't already answer them. The rows in section 3 will change once those answers come in.
Checkpoint: I'm assuming the user accepts the matrix in section 3 as a starting point that only covers the notice. It will be rebuilt once someone reads the pack on the portal.
Bid-ready pack: Vilniaus universiteto Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos, Nr. 6827/2026 (ted:650568-2026, also cvp:9724122), Vilniaus universitetas (PV)
Closes 2026-10-23 (22 working days from today, 2026-09-23, counting weekends only; I found no Lithuanian public holiday in between). TED shows the deadline as 2026-10-23T00:00, but CVP gives bid opening: 23/10/2026 12:30. Check the exact submission time on CVP IS. Clarifications close 13/10/2026 23:45 (from the CVP listing). That is 14 working days from today, my own count; Victano gave the date but no countdown. Read: 2 of 2 pages held (TED notice, 1 page; CVP summary, 1 page). Both were read to the end. Not held here: the whole tender pack: the special conditions (specialiosios sąlygos), technical specification, draft contract, ESPD/EBVPD requirements, selection criteria and award-criteria methodology. They are on https://viesiejipirkimai.lt/epps/cft/prepareViewCfTWS.do?resourceId=9724122. The eForms XML (https://ted.europa.eu/en/notice/650568-2026/xml) links to them in cbc:URI. I have no fetch tool in this session, so I couldn't open either.
> First, the main limit: Victano holds only the notice summary. Both sources return criteria_source: "in_documents" and CVP returns qualification.available: false. So this pack does not come from reading the specification. Every section below is a frame built from what the notice holds, and every place that needs the pack or company evidence is marked. The bid decision has not been tested against the requirements yet.
Everything the held text says (source for all quotes below)
From CVP (cvp:9724122, p.1): Atviras konkursas · duration: 36 months · threshold: Virš · award criterion: Kaina/Sąnaudos · legal basis: 2014/24/ES (Klasikinė) · divided into lots: Ne · clarification deadline: 13/10/2026 23:45 · tender validity: 3 months · bid opening: 23/10/2026 12:30 · variants allowed: Ne · eu funded: Ne · CPV 72267000. From TED (p.1): scope sentence only. No contract value is published in either source.
1. What could sink it
Fatal: none found. That is because the selection criteria weren't readable, not because there are none. The bid decision stands only until the pack is read. Things to check first that could be Fatal: minimum turnover or average turnover against the ~€3M; reference contracts ("similar information system" of a stated value or recency); named key experts with qualifications; any required certifications beyond ISO 27001.
Priceable. I can't cost these from the notice. The company must supply the figures.
| Risk | Where | Cost to price in |
|---|---|---|
Award is on Kaina/Sąnaudos (price/cost) with no quality criterion shown, so this is likely a price contest | CVP p.1 | Margin: price near the floor. Get the likely competitor rate from past VU/CVP results (company to estimate) |
| Price held for 36 months; indexation not shown | CVP p.1 duration: 36 months | Wage inflation for 3 years of developer hours if there's no indexation clause (company to estimate, then confirm in the draft contract) |
| Taking over an existing system (maintenance of the current system: documentation, source code, handover from the incumbent not described) | TED p.1 scope | Onboarding and reverse-engineering effort in months 1–3 (company to estimate after reading the spec) |
| Tender validity of 3 months | CVP p.1 | Staffing commitment held open until ~Jan 2027 |
| SLA penalties, liability cap, bid or performance guarantee | not held | Unknown until the draft contract is read |
Clarifiable: there isn't a real bucket, because no specification text was read. The only possible contradiction in the held text is the submission time (TED 00:00 vs CVP opening 12:30). This is most likely just how TED renders the date, so check CVP first.
2. Questions for the buyer (drafts, ready to paste)
Route: the "Klausimai / Susirašinėjimas" (questions / messages) function for this procurement in CVP IS (resourceId 9724122). Deadline: 13/10/2026 23:45. Following the playbook, these are conditional. Send each one only if the pack doesn't answer it. Nothing from the specification can be quoted because none was read.
- „Skelbime nurodytas pasiūlymų vertinimo kriterijus „Kaina/Sąnaudos“. Prašome patvirtinti, ar pasiūlymai bus vertinami tik pagal mažiausią kainą, ar pagal sąnaudas (gyvavimo ciklo sąnaudų metodu); jei pagal sąnaudas – kokios sąnaudų sudedamosios dalys vertinamos?“ (EN: The notice gives the award criterion as "Kaina/Sąnaudos" [price/cost]. Please confirm whether bids are evaluated on lowest price only, or on cost using a life-cycle cost method; and if on cost, which cost components are evaluated.)
- „Sutarties trukmė – 36 mėn. Ar pirkimo sutartyje numatytas kainos perskaičiavimas (indeksavimas)? Jei taip – kokiu indeksu ir kokiu periodiškumu?“ (Is price indexation provided for the 36-month contract?)
- „Ar tiekėjams bus perduota esamos sistemos išeities kodas, techninė dokumentacija ir prieigos iki paslaugų teikimo pradžios, ir ar esamas paslaugų teikėjas privalės dalyvauti perdavime?“ (Handover of source code, documentation and incumbent cooperation.)
- „Kaip bus apskaičiuojama vystymo paslaugų apimtis – fiksuotas valandų skaičius, įkainis už valandą ar užsakymai pagal poreikį? Ar yra nustatytas maksimalus vystymo valandų kiekis?“ (How the development volume is priced.)
- Only if CVP doesn't state the time: „Prašome patvirtinti tikslų pasiūlymų pateikimo termino laiką 2026-10-23.“ (Please confirm the exact submission time on 2026-10-23.)
Answers to watch: #1 (if it's life-cycle cost, the pricing model changes) and #2 (no indexation over 36 months is a margin risk).
3. Compliance matrix (notice-level only)
This matrix has 10 rows, taken from the CVP summary and the TED notice. The pack's selection, technical and contract requirements will add most of the rows.
| # | Requirement (quoted) | Where | Mand./scored | Weight | Where we answer it | Owner | Evidence needed | Status |
|---|---|---|---|---|---|---|---|---|
| 1 | "Gydytojų rezidentų administravimo informacinės sistemos priežiūros ir vystymo paslaugos" | TED p.1 | Mandatory (scope) | – | Technical proposal | [name] | Service description to match the spec | Spec not read |
| 2 | "duration: 36 months" | CVP p.1 | Mandatory | – | Price schedule / contract | [name] | 36-month resourcing plan | Open |
| 3 | "award criterion: Kaina/Sąnaudos" | CVP p.1 | Scored | not published in the notice | Price proposal | [name] | Cost model | Clarify Q1 |
| 4 | "tender validity: 3 months" | CVP p.1 | Mandatory | – | Bid form | [name] | Signed validity statement | Open |
| 5 | "variants allowed: Ne" | CVP p.1 | Mandatory | – | Whole bid (one compliant solution) | [name] | – | Noted |
| 6 | "divided into lots: Ne" | CVP p.1 | Mandatory | – | Bid covers full scope | [name] | – | Noted |
| 7 | "clarification deadline: 13/10/2026 23:45" | CVP p.1 | Procedural | – | Section 2 | [name] | – | Draft ready |
| 8 | "bid opening: 23/10/2026 12:30" / deadline 2026-10-23 | CVP p.1 / TED | Mandatory | – | CVP IS upload | [name] | Upload a day early | Check exact time |
| 9 | Selection criteria (turnover, references, staff, certificates) | pack, not held | Mandatory | – | ESPD/EBVPD | [name] | company: financials, references, CVs, ISO 27001 cert | Not read |
| 10 | Draft contract: SLA, penalties, guarantees, data protection | pack, not held | Mandatory | – | Acceptance statement | [name] | – | Not read |
Backwards timeline (working days): submit by Thu 22 Oct, one day before the deadline as a portal buffer. Independent review Tue 20–Wed 21 Oct. Price and ESPD final Mon 19 Oct. Evidence (references, CVs, financials) gathered by Fri 16 Oct. Clarifications sent well before Tue 13 Oct, aiming for Fri 2 Oct so there's time to act on the answers. Due tomorrow (24 Sep): download the pack from CVP IS, read the selection criteria and technical specification, and rebuild this matrix from them. It fits the timeline if the pack is read this week.
4. Proposal skeleton
I read qualification on page 1 of both sources: there's no scored_on and no types_only, and CVP returns available: false. The only criterion in the held text is the CVP field Kaina/Sąnaudos, so the weighting below is inferred: price or cost at 100%, a guess until the pack confirms it.
| Section | Weight | Word budget | Claim | Evidence slot |
|---|---|---|---|---|
| A. Price / cost proposal (in the buyer's price form) | inferred 100% (not published in the notice) | Buyer's form, exactly as issued | A price for 36 months of maintenance and development that holds up without an abnormally-low-tender challenge | [company: rate card, hours model, indexation assumption] |
| B. Technical compliance (pass/fail, not scored as far as the notice shows) | – (pass/fail) | As short as the spec allows; answer point by point | Covers every spec requirement for maintaining and developing the residents' administration system | [company: similar public-sector IS maintenance references, client, value, years] · [named team CVs] · [ISO 27001 certificate] |
| C. Qualification (ESPD/EBVPD + supporting docs) | – (pass/fail) | ESPD form | Meets all selection criteria | [company: turnover figures, references as required, staff] |
If the pack shows a quality component (e.g. under a cost method), redo section B as scored sections sized by their published weights. Candidate win themes, each needing company proof: public-sector information systems maintained in Vilnius; ISO 27001 for handling health and personal data; a handover plan from the incumbent. Under a price-only award these are qualifiers, not scoring themes.
5. Partner gaps
Question-list mode: no requirement has been confirmed from the documents, so there are no confirmed gaps. I'm not proposing a partner for a requirement nobody has read.
- Could need a partner once the pack is read: a turnover floor above ~€3M; a reference in a medical or health-education domain; a specific certification other than ISO 27001. If one shows up, the likely fit is subcontracting or relying on another entity's capacity (you hold the contract and the partner closes one criterion). The partner must be named in the ESPD at submission, with its own ESPD.
- Time: there are 22 working days in total. A subcontractor or capacity arrangement with a firm you already know is workable if the gap is found by ~2 Oct. A consortium with a new partner isn't realistic in this window.
- Document gaps (read the portal first): selection criteria, key-expert requirements, contract value.
6. Could not verify
- Anything in the tender pack: selection criteria, technical spec, draft contract, SLA and penalties, guarantees, data-processing terms.
- The award criteria weights and whether "Kaina/Sąnaudos" means lowest price or life-cycle cost.
- Estimated contract value (neither source publishes it), so turnover-ratio risk can't be assessed.
- The exact submission time on 23 Oct (TED
00:00vs CVP opening12:30). - Who the incumbent is and how the handover works.
- All company evidence (references, CVs, financials, the ISO 27001 certificate). Baltijos IT Paslaugos UAB has to supply it; none of it was invented here.
The "bid" decision for this tender was already saved in Victano's decision log (2026-09-23). I haven't changed it, because nothing I could read overturns it.
Start it yourself
Connect Victano to Claude, ChatGPT or Cursor (how), then paste this line followed by your own facts.
Where you decide
- Send the clarification questions to the buyer.
- Accept the compliance matrix.
What it will not do
- Write the proposal answers
- Send anything to the buyer
- Invent references, CVs, figures or certificates
The scenario
The company in this run is illustrative and invented. This is exactly what the assistant was
asked, including the job instructions it was given (the job ships to every client as the prompt
job-bid-ready-pack):
The prompt, as sent
Use Victano to run the bid-ready pack job (job-bid-ready-pack) on the tender below: risks, clarification questions, compliance matrix, proposal skeleton and partner gaps.
The situation (illustrative):
Baltijos IT Paslaugos UAB is an invented company used for this demonstration: a 40-person software company in Vilnius that maintains and develops public-sector information systems, ISO 27001 certified, turnover about EUR 3 million. We have decided to bid on Vilnius University's tender for the maintenance and development of its medical residents administration information system, TED notice ted:650568-2026. Build the bid-ready pack. You do not need to wait for me at the checkpoints.
This session is already signed in to Victano with a test account; start with whoami.
Work it as the job "Bid-ready pack: from 'we are bidding' to the frame the team writes into". Read each playbook with get_workflow and follow it, in this order: deep-read, clarification-questions, response-plan, proposal-skeleton, consortium-fit. The job's own instructions follow.
# Bid-ready pack: from "we are bidding" to the frame the team writes into
Sources, not advice: the pack quotes the tender and marks every place where the company must supply its own evidence.
## When
The team has decided to bid on one tender. You are running a whole job: it ends with the pack the team starts writing from. Each stage hands the next its input and delivers something on its own if the conversation is cut short.
## Run
1. **Read it all.** Read `get_workflow('deep-read')`. `get_opportunity` for the record and the document inventory, then `read_document` page by page until `more` is false, noting the page for every finding. Sort the risks into Fatal, Priceable and Clarifiable. If the corpus holds only the notice summary, say so first and carry on with what it holds. A Fatal risk stops the job: say the bid decision no longer holds.
2. **Clarification questions.** Read `get_workflow('clarification-questions')`. From the Clarifiable bucket only; each question quotes its clause; the message states the route and the clarification deadline.
3. **Compliance matrix.** Read `get_workflow('response-plan')`. One row per stated requirement, quoted, with where it appears. Take the award criteria and weights from `qualification.award_criteria.scored_on` on the first page of `read_document` when the buyer published them there, and say whether they are percentages or points.
4. **Proposal skeleton.** Read `get_workflow('proposal-skeleton')`. One section per award criterion, sized by its weight, with the claim each section makes and an evidence slot for each claim.
5. **Partner gaps.** Read `get_workflow('consortium-fit')`. From the requirements the company cannot meet alone: the gap, the structure that fits, what the partner must bring, whether the deadline leaves time.
## Checkpoints
- After the clarification questions: the user sends them. Hand them over ready to paste and carry on; answers change rows, not structure.
- After the compliance matrix: the user accepts it. Show it, then continue unless told otherwise.
## Deliverable
```
Bid-ready pack: <tender title> (<id>), <buyer>
Closes <date> (<working days> working days from <today>). Clarifications close <date>.
Read: <pages read> of <pages held>. Not held here: <documents on the buyer's portal>.
1. What could sink it: Fatal, Priceable (with the cost), Clarifiable, each with where.
2. Questions for the buyer, ready to send, with the route and the deadline.
3. Compliance matrix: # | requirement (quoted) | where | mandatory or scored | weight | where we answer it | owner | evidence needed | status
4. Proposal skeleton: sections in award-criteria order, weight, word budget, the claim, the evidence slot.
5. Partner gaps: gap, structure, what the partner brings, whether time allows it.
6. Could not verify.
```
## Quality
- Requirements are quoted, never paraphrased; every requirement, weight, date and quotation comes from a tool result in this conversation.
- A weight the buyer did not publish reads "not published in the notice"; an inferred weight is labelled inferred.
- Working days, counted from a stated date; the pack says how many pages it read.
## Will not
- Write the proposal answers. It builds the frame a person writes into.
- Send anything to the buyer. The questions are drafts for the user to send.
- Invent evidence: references, CVs, figures and certificates come from the company.
This run is recorded without a person present. At each checkpoint, write one line that starts with "Checkpoint:" stating what you are assuming, then continue. End with the finished work product.Recorded 23 September 2026. Every tool call, notice, date, count and quotation on this page is what
Victano’s live service returned in that run; nothing was edited except by trimming long tool results.
Source file: content/jobs/bid-ready-pack.run.json.