There’s no need to do it via Ajax, you can use the curl libraries in WordPress to access data from remote sites. WordPress has a nice little interface via WP_HTTP_Curl
for doing exactly that.
Creating posts from the data you retrieve could be done with wp_insert_post()
and changes to posts would likely be done via wp_update_post()
You’re desire to sort by category will need to be a bit more specific, WP automatically creates urls for categories at /category/<cat-slug>
when pretty urls are enabled, there are also mechanisms for easily creating menus using those same category items.
WordPress also has Cron
-like capabilities that can be supplemented with an actual cron job to ensure the tasks are run.