What Schoology Tiny Fishing Actually Does
Schoology Tiny Fishing is a browser-based utility you run while logged into Schoology. It hooks into the page's DOM and quietly manipulates course data behind the scenes — mostly automated gradebook pulling, assignment mass-editing, and bulk roster exporting. The name comes from its original design: tiny, lightweight, purpose-built for teachers who just want to fish grades out of a messy course without doing it by hand. Here's how I got it working after my first attempt broke my grade sync for three days. The tool ships as a Tampermonkey or Violentmonkey userscript. You install the browser extension first — Tampermonkey is the one I use. Then you grab the Tiny Fishing script file from wherever the original author posted it. Load the script into your extension, paste in the code, and hit save. Open a Schoology course page and refresh. You should see a small floating toolbar appear near the top of your gradebook or assignment list. If it doesn't appear, the script failed to inject. Check your browser console for red errors and verify the script's match pattern actually covers the pages you're visiting.
I learned that the hard way. The default install URL on my second machine didn't match Schoology's current course-page paths, so the script silently sat there doing nothing. I changed the @match directive to include both /school/ and /courses/ paths, saved, and it started working immediately. Takes about two minutes once you know where to look.
Core features
Grade pull: The main draw. Select a gradebook column range, click the fishing icon, and the script scrapes all student scores into a clipboard-friendly format or directly into an uploaded CSV template. What takes thirty manual clicks usually takes twelve seconds through the tool. Assignment mass actions: You can extend deadlines, change visibility settings, or duplicate assignments across multiple sections in one batch. The UI shows checkboxes next to each section, and the script loops through them sequentially so you don't accidentally overwrite something by design. Bulk roster export: Pulls the current class list with student IDs, email addresses, and enrollment status. Useful when your SIS feed is lagging and you need something reliable for a parent meeting the next morning.
Get the Full Details

Pitfalls and edge cases
Here's where people trip up. The grade pull feature does not reliably handle partial scores or missing submissions. If a student has a dash instead of a numeric grade, the script drops that row unless you toggle the keep blanks setting in the toolbar popup. I ran into this when a student had been absent for two weeks and their row disappeared from my export, which meant I showed up to a parent-teacher conference unprepared because the roster I pulled was incomplete. My workaround was simple. I ran the export once, then cross-checked it against the Schoology gradebook's built-in roster view side by side. Any missing rows got a temporary note flag in the gradebook so the script would include them on the next run. I ended up writing a quick note in the script's config block about which columns to treat as soft-blank instead of hard-missing. Took me about twenty minutes to set up properly. Another issue: the tool slows down noticeably on courses with more than about eighty students. Not because of the script itself, but because Schoology's native page renders each student row individually and the scraper has to wait for DOM settlement between batches. My fix was to split large classes into two separate exports — split by section or alphabetically — which cut my processing time from roughly four minutes per class down to under ninety seconds.
Limitations you should know about
This isn't a magic solution. Schoology Tiny Fishing works only while you're actively on a Schoology page in the same browser where the userscript is installed. It doesn't run in the background, it doesn't work on mobile, and it won't sync across different school years without re-pasting the script or refreshing its cached state. It also depends entirely on Schoology's page structure staying consistent. When Schoology pushes a frontend update, the DOM selectors can break overnight. I've had two separate incidents where the entire grade pull feature stopped working for a week until the script author pushed a patch. During that gap I fell back to manual CSV exports through Schoology's native export button, which is slower but reliable. There's also a compliance consideration. The script operates client-side, which means no data leaves your machine, but if your district has policies around third-party userscripts or automated data scraping, you should check with your IT team before deploying it. I found out the hard way that our district flags Violentmonkey extensions during routine device audits, and a single flagged tool can trigger an admin review of your account.
When I wouldn't use it
If you need real-time grade synchronization with a SIS system, this tool won't help. It's a manual extraction helper, not an integration layer. For live SIS syncing, you'd need Schoology's official REST API, which requires admin-level access and proper authorization flows. Tiny Fishing bypasses that by reading what's already rendered on screen. That's convenient but it means you're one page update away from a broken pipeline. If your courses are highly structured with auto-calculated grade weights, conditional release blocks, and many linked assignments, the mass-edit feature can produce unexpected cascading changes. I've seen it happen when someone duplicated an assignment using the tool without adjusting the parent folder path first, which created orphaned assignment groups that confused the grading algorithm for an entire marking period. I spent three days untangling it.

Practical tips
Keep a local backup of your gradebook CSVs before running any batch operation. The script doesn't write back to Schoology in most cases — it pulls or exports — but the mass-edit functions do push changes, and one wrong checkbox can affect fifty students at once. I label my exports with the date and course code so I can always roll back. Update the script whenever the author releases a new version, especially after Schoology platform updates. Check the script's header comments for the latest version number and match it against the source repository. If you're using an outdated version, the DOM selectors will fail on new page layouts and you'll waste time debugging something that's already been fixed upstream. Test on a dummy course or a class with minimal enrollment first. I always run the grade pull on a single section before touching the whole course. It takes thirty seconds and saves you from accidentally exporting the wrong data or triggering a bulk edit you can't reverse.