AI Adoption GuideProcurementSource
RFP/RFQ auto-drafting
LLM generates an RFP from a structured scope, drawing on clause libraries and past RFPs for the relevant category, using tools like Jaggaer JAI or GEP.
Procurement processRequestApproveSourceEvaluateSelectOrderReceiveReview
By Don, DoneThat’s AI coach · updated
A first draft is not an issued event
The job is a first draft of the RFP or RFQ from a structured scope, the category clause library, and the last similar event. A human still owns the mandatory clauses, the evaluation criteria, and what this event is actually buying.
The draft is a working pack in your sourcing tool. It is not posted. It is not sent. It does not start the Q&A clock. Treating a generated pack as issued is how a half-finished spec, last year's SLA, or a leaked rate card lands in a supplier portal.
Sourcing suites in the Jaggaer, GEP, Coupa, and SAP Ariba class already hold event templates, clause libraries, and prior RFx files. Jaggaer's JAI and GEP are in that class, not a ranking of who drafts a better RFP. The model only writes from the files you allow it to see.
An RFQ prices a locked spec. An RFP still competes approach. If this event is a price sheet against a spec you already own, do not let the last RFP's essay questions pad it. If this event needs a solution, do not shrink it to last year's RFQ columns.
Start from scope, the category library, and the last similar RFP
Feed three inputs. If any is missing, stop and write it. Do not prompt the model from a chat paragraph and call that a scope.
Structured scope. What you are buying, where it happens, volume or capacity, service window, sites, systems, and what is out of scope. If similar requests are still open across plants, check the demand aggregation signal before you draft three near-identical events.
Category clause library. The approved legal, insurance, ESG, data, and audit language for this category and region, with the mandatory set marked so the model can insert it and cannot rewrite it. If the library is a folder of last-issued PDFs, you are copying history, not policy.
Last similar RFP. Same category, similar risk, similar commercial model. Similar means the same kind of buy, not the last file anyone saved in the category folder. Do not load another supplier's confidential specification, interface document, or pricing sheet from a prior bid. Those are their paper. Using them in a new event is how you leak a bidder's rates or clone a proprietary process into a public spec.
Before you generate, pull a market price benchmark you can name. Commercial questions and any target bands should come from that range, not from an incumbent workbook still sitting in the event folder.
Then generate into the event shell you already use. Keep the draft in the suite. Do not export it to a shared drive named "ready to issue."
If you have never sourced this category, say so. There is no similar RFP. The model will fill from a generic template. Generation can still assemble boilerplate and locked clauses. It cannot invent how you buy something you have never bought. A category lead writes that spec.
Trial generation on an RFP you already issued in the same category. The diffs against the issued pack show what the library and the similar-event file taught the model, before a live event.
Illustrative example: refrigerated 3PL for a new DC
This walkthrough uses made-up names. It is not a measured result.
Harborline Foods is opening a refrigerated distribution center in Ohio. Dry grocery 3PL already sits with an incumbent under a contract written for two ambient DCs. The new site needs temperature-controlled storage, outbound to retail DCs, and food-grade handling. The category lead has a structured scope: pallet positions, two temperature bands, peak week volume, warehouse system access, and a go-live window. They load the 3PL warehousing clause library and the last dry-grocery 3PL RFP as the similar event.
The model returns a complete-looking pack: instructions to bidders, a scope narrative, an SLA table, insurance and ESG exhibits, a commercial workbook, and a scorecard copied from the dry event.
Three things are wrong on arrival.
The SLA table is last year's ambient inventory-accuracy and dock-turn measures. This buy needs temperature excursion handling, dwell in blast, and lot-level recall. Pasting the old SLA into a refrigerated event is the usual failure. The table looks finished. It describes the wrong warehouse.
The commercial questions include a line that says confirm the pallet rates in Appendix C. Appendix C is the incumbent's pricing sheet from the last event, still attached to the folder the model was allowed to read. That is another bidder's confidential commercial. It does not belong in a new RFP, not as a target, not as a template, not as a should-cost line. Strip it. Rebuild commercial questions from the scope and from a named benchmark, not from the last winner's workbook.
The coordinator sees a complete pack in the suite and schedules portal release for the next morning. The draft is not issued. Legal has not confirmed the mandatory set. The category lead has not signed the scorecard. The scope still says warehousing and transportation in one section and warehousing only in another. Issuing now starts a clock on the wrong buy.
The useful pass is markup. Keep the structure and the locked exhibits. Rewrite the SLA to this site. Delete the leaked appendix. Split transportation if it is a separate event. Then a person decides the pack can enter legal and ESG review, not the supplier portal.
Lock legal and ESG before the model writes around them
Mandatory clauses are not prompts. They are locked text.
Insurance limits, indemnity, audit rights, data and systems access, labor and ESG exhibits your policy requires for this category: mark them in the library so generation can insert them and cannot paraphrase them. If the model simplifies a food-safety or labor exhibit, you have a different contract, not a shorter RFP.
A human owns that lock. Category, legal, and ESG each confirm the set for this value band and region before anyone treats the pack as review-ready. A clause that was mandatory on the dry-grocery event may be the wrong limit here. A clause that is mandatory here may not have existed in last year's file.
Do not compensate for a thin library by letting the model invent ESG questionnaires. If you cannot point to the approved exhibit, leave a placeholder and a named owner. Invented questions become invented commitments when a supplier answers them.
Those same locked terms should be the ones that later drop into the contract shell. If contract term pre-population has to re-argue insurance or ESG after award, the RFP did not actually lock them.
The scorecard and the buy still belong to the category lead
The model can copy last event's criteria. It cannot decide what you are buying or how you will choose.
Write evaluation criteria for this event: capability, implementation, cost, risk, ESG, whatever you will actually score. Weights must match the buy. A dry-grocery scorecard heavily weighted to price will hide a 3PL that cannot hold temperature. The criteria you issue are the ones proposal scoring against RFP criteria will apply to the PDFs that come back. If the scorecard is a leftover, scoring will faithfully rank the wrong thing.
The same discipline applies to compliance. Requirements written into the RFP are the ones compliance requirement extraction should check in each bid. Do not add a food-grade or certification ask in a sidebar the extractors will miss, and do not leave a library clause in the pack if you will not enforce it.
Name the buy in one sentence a bidder can price. Warehousing only, warehousing plus outbound, or warehousing plus value-added. If the draft still hedges, the event is not ready.
Issue is a human action: mandatory set confirmed, scorecard signed, confidential annexes removed, commercial questions free of another supplier's rates, scope matching the sites you will actually hand over. Until then the pack stays a draft, even when the suite marks it complete.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first