This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

Library Catalog Bulk Hold Placer

Utilities · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — try it free, no account needed.
CategoryUtilities
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

Library Catalog Bulk Hold Placer lets you place holds on multiple books or items in a single operation. Instead of opening each item individually, clicking the hold button, and confirming — repeating this for every single item — this tool provides a unified checklist of all items on the current catalog search results page. You can filter items by title or author to quickly find the ones you want. Select any number of items using checkboxes and click Place Holds. The tool then automatically processes each selected item — clicking the hold or request button and confirming if a confirmation dialog appears. This turns what could be dozens of manual operations into a single batch action, making library catalog management and book reservation significantly faster and more efficient.

WHERE IT RUNS

This script runs on virtually any library catalog web page. It activates on search results pages and item list views across different library catalog systems — including Koha, Evergreen, SirsiDynix, Innovative Interfaces, and other library management systems. It requires the BotGentz extension to inject and execute the script. The tool does not work on mobile apps or native clients — only on web-based library catalogs accessed through a Chromium-based or Firefox browser. It specifically targets *://*/*, meaning it can be used on any library catalog website.

HOW TO USE

After installing the script via BotGentz, navigate to your library's catalog search results page. The tool automatically detects the item list and displays a floating panel on the right side. The panel shows all items on the current page, with checkboxes next to each item entry. Each item displays its title, author, and availability status with a color indicator. Use the search box to filter by title or author to narrow down your selection. Check the boxes for every item you want to place a hold on. Click "Place Holds" and confirm the action. The tool will process each selected item one by one — clicking the hold button and confirming if a confirmation dialog appears. A status message appears when the operation completes, showing how many items were successfully placed on hold. Items that are already checked out can still be placed on hold, and the tool will warn you about them before proceeding.

THE ACTUAL MECHANISM — WHY IT WORKS

Library catalog systems use a variety of front-end frameworks and DOM structures, but they share common patterns for displaying search results and hold functionality. This tool scans the DOM for item containers using common selector patterns found across major library catalog platforms, extracting titles, authors, and availability statuses from the visible text content and data attributes. Each item is assigned a unique identifier from data attributes or checkbox values. When placing holds, the tool locates the hold/request button within each item container — either a direct button, a link, or an action menu option — and triggers a click event. If the catalog shows a confirmation dialog, the tool detects it and clicks the confirm button. This approach works without making direct API calls, which would require authentication credentials and knowledge of each library system's internal API structure. By using the existing UI, the tool works within each library's own permission and validation system, and continues to function even if the underlying API changes. The tool is designed to adapt to different catalog interfaces by trying multiple selector patterns and fallback strategies.

THE PANEL

The floating panel is fully draggable — click and drag the header to reposition it anywhere on the page. The panel's position is saved per site in localStorage, so it reappears exactly where you left it. Double-click the header to snap the panel to the nearest edge (left or right). A collapse button minimizes the panel to a small tab showing a book emoji badge, keeping it out of the way while still accessible. The item list inside the panel is scrollable and resizes vertically based on the number of items. Pressing Escape while the panel is focused closes it completely; reopening is done via a small button injected near the page header. All panel interactions are non-blocking — the host site's main UI remains fully responsive while the panel is open, and the panel updates automatically when you navigate between pages.

PLEASE NOTE

This script requires the BotGentz extension (free) to run user scripts. It works on a best-effort basis across different library catalog systems; some catalogs may have unique DOM structures that require updates if the tool stops working. Check for updated versions within BotGentz's script repository if you encounter issues. This tool does not store, transmit, or log any library item data or patron information — all operations occur locally in your browser with no external network requests except those made by the library catalog itself. Hold placements are applied through the library's own UI event system, so all changes respect your library account permissions and hold policies. The tool does not bypass any library's security or permission system; it simply automates the clicks you would otherwise perform manually. For large result sets, the tool may take several minutes to complete the operation. The tool will warn you if some items are currently checked out, allowing you to proceed or cancel as needed. The availability status is detected based on visual indicators and may not be 100% accurate across all catalog systems — always verify before placing holds.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.