December 2025 Changelog

December 2025 Changelog

December made Google Maps write each business to the file the moment it has it. A long run that fell over used to lose everything it had collected. Now you keep what it got to.

Prompt sets also arrived, so one keyword can produce several different articles in one pass, each saved where you tell it.

Read this if you

  • Scrape Google Maps for leads.
  • Want more than one article per keyword.
  • Edit scraped content before it goes into an article.
  • Have had a task refuse to abort.
  • Found stray Chrome folders filling your temp directory.

Google Maps saves as it goes

  • Each place is written to your file as soon as it is scraped, so a run that fails partway leaves you with everything up to that point.
  • Skip places that already have a website. If you are prospecting for businesses without one, you stop paying for the listings you were going to discard.
  • Contact hunting ignores Facebook and Instagram pages, so you get the business site rather than its social profile.
  • Consent screens are handled, listings with no reviews still get their star columns, and reviews are given up to 5 seconds to load before it moves on.
  • Abort works while it is hunting for reviews, and a place that throws a warning no longer leaves the task stuck.
  • Feeding it direct map urls skips opening a browser at all, which is much faster.
  • Each thread logs separately, so you can follow a multithreaded run.
  • Sheets export works again.

Several articles from one keyword

  • Prompt sets let one task run several prompts per keyword, giving you a set of different articles instead of one.
  • Filename strings can contain folders, so 333/%keyword% %number% files each article into its own folder.
  • The number in a filename counts up correctly across a prompt set.
  • The post uploader finds text files in subfolders, so it picks up everything a foldered run produced.

Fix a sentence instead of the article

  • In the content filter, send individual sentences to the AI to rewrite, or delete them outright, before they reach your article.
  • The filter table uses the full height of the window, and the generate button shows it is working.
  • Scraped articles stopped being cut short by the language filter giving up early.
  • Remove HTML keeps your line breaks.

Browsers stop piling up

  • Chrome runs in incognito rather than creating a new profile folder in your temp directory for every task.
  • Every browser window SCM opens is tracked and closed when the app exits, including the two orphans that used to be left behind.
  • Proxies load properly for Google Maps, DuckDuckGo and the dynamic scraper, and a proxy line starting with http:// is accepted.
  • DuckDuckGo, Google Maps and dynamic scraping run through an external Chrome, which is more stable under load.

Abort works

  • Tasks that ignored abort now stop.
  • Editing and saving a task while it is aborting no longer cancels the abort.
  • The static scraper can be aborted early instead of only between pages.

Small things

  • The static page scraper returns results again, its title macro works, and its test button runs enough of the job that the preview matches what you will get.
  • Change the AI model in the chat window, and Ask AI has its own service dropdown separate from the task.
  • Context size is printed in tokens, so you can see how close a prompt is to the limit.
  • Exa.ai joins the search engines, and Gemini supports alternate account logins.
  • Accented characters and symbols display correctly instead of as escape codes, in scraped urls too.
  • Invalid spintax is skipped rather than stopping the spin.
  • The changelog shows how many entries are new since you last looked.
  • The app fits on screens under 768px, with task buttons collapsing into a menu.

Related SCM guides and product history

Full developer changelog

The summary above is written for users. The original 78-item developer changelog is preserved below for exact release detail.

January 1, 2026

  • feat: Post uploader task thread count
  • fix: getKeywordContent URI malformed error

December 28, 2025

  • fix: Check for gmaps consent screens

December 25, 2025

  • fix: chrome browser creating lots of puppet-profile folders in OS temp. Now using incognito instead.
  • feat: gmaps, skip place with website
  • fix: ratelimiter discord any values in queue that are older than 5 mins

December 24, 2025

  • fix: Input box in article preview export spun and test gmaps and paa buttons not editable
  • fix: Fixed parsing and loading of proxies for chrome browser
  • fix: chrome installer 5 sec wait after unpack to give time for files to unlock
  • fix: proxy parsing handle http:// in front of proxy string
  • fix: Broken proxy loading code for gmaps, ddg and dynamic site scraper
  • feat: Add link to accounts page in help section
  • fix: Support forum and home page auto open in your browser now

December 23, 2025

  • fix: SCM would create 2 orphan windows that wouldn't close when the App exited.
  • fix: static scraper, allow early abort.
  • feat: Keep track of all open browser windows and force close them on App exit
  • other: Debug mode will show gmaps browsers for testing
  • fix: Extra args to avoid detection as bot browser
  • fix: gmaps, check that browser restart is ok before trying to use it. Also check URL before trying it in browser.

December 22, 2025

  • fix: Article filenames not logging properly. Correctly increase %number% for prompt sets.
  • feat: article creator, filename string can have folders in it ie 333/%keyword% %number% = folder 333 > article 1 etc
  • feat: Post uploader will find all txt files in subfolders as well (recursive)
  • feat: Folder browser 'open' will go to folder currently selected
  • feat: article creator, ai prompt sets

December 21, 2025

  • fix: duckduckgo invalid arg

December 20, 2025

  • feat: gmaps, write result of each place immediately to file instead of waiting until the end.
  • fix: gmaps places with no reviews correctly adds missing stars columns
  • fix: gmaps wait for reviews to load up to 5secs when trying to find them
  • fix: Align macro button in filename in ai prompt set
  • feat: gmaps add abort handling while looking for reviews
  • fix: Gmaps screenshot error
  • fix: Gmaps correctly detect direct urls so we don't open browsers if not needed
  • fix: Gmaps direct locations not working
  • fix: Aborting job, if you edit it and save, abort gets ignored

December 19, 2025

  • fix: Gmaps, lower impact calls to chrome browser to avoid it locking
  • fix: gmaps, contact search ignore fb and insta pages
  • fix: Google maps scraper stuck after place warning
  • fix: F5 app reload working again
  • feat: article creator ask ai button uses its own ai service dropdown
  • feat: You can change the AI model of chat window
  • style: Title caps for headers and tabs
  • feat: Print context size in tokens
  • fix: API logins in model will use full width
  • fix: retry on place warnings respect search engine retry wait time
  • feat: Duckduckgo, google maps and dynamic site using new external chrome browser method.
  • fix: dont throw error Type Cannot read properties of undefined (reading 'question')
  • fix: Less verbose error messages in log,

December 18, 2025

  • feat: Google maps expand log message to each thread
  • fix: Force close orphan browser windows when scraping and terminate workers
  • feat: Add exa.ai to search engine options

December 17, 2025

  • feat: Added gemini 1 – 2, alt account logins
  • fix: Correctly keep all html entities decoded
  • feat: show a count of new changes since last viewing change log
  • fix: Double decode html entities to fix encoding showing
  • fix: Migrate back to node workers, see if that fixes tasks not starting on OSX etc

December 12, 2025

  • fix: Google maps, sheets export not working

December 11, 2025

  • fix: If invalid spintax is found when spinning, instead of error, ignore it and check next one
  • fix: Potential fix for malformed uri error.
  • fix: Unable to select google search

December 10, 2025

  • fix: Error if ui scale factor is not a number

December 9, 2025

  • fix: content filter box ai generate button not going into loading status
  • fix: content filter table didn't take up full heigh
  • fix: search result limit slider fit on small screen width
  • feat: On small screen width, task action buttons convert to hamburger
  • feat: Content filter, send sentences to ai to rewrite etc Delete sentences as well

December 7, 2025

  • feat: static scraper, if test url is empty prefill with url
  • fix: Test selector button in static scraper completes more steps to make preview more accurate to final result
  • fix: title macro in static page scraper now works
  • fix: Static page scraper wasn't returning any results
  • fix: Preserve new lines if you use 'remove html'

December 5, 2025

  • fix: Sometimes not returning all content in article because the language filtering would exit early.

December 4, 2025

  • fix: abort failing on some tasks
  • style: Selected row on darkly theme was misconfigured to a light blue
  • fix: Sometimes aborting a task would cause IPC channel missing error

December 3, 2025

  • style: Fix layout on small screens <768px
  • fix: Aborting tasks not working
  • fix: When scraping urls, they were not properly uri decoded and showed escaped characters in them

December 2, 2025

  • style: Upgrade internal ui components to v6

See all monthly updates in the SCM changelog archive. New users can also try SCM from the trial signup page.