{"id":26933095,"url":"https://github.com/xiaohan2012/job-tag-cloud","last_synced_at":"2026-06-10T16:31:22.291Z","repository":{"id":29907219,"uuid":"33452994","full_name":"xiaohan2012/job-tag-cloud","owner":"xiaohan2012","description":"A small keyword cloud generator for LinkedIn job search result","archived":false,"fork":false,"pushed_at":"2015-04-06T15:32:05.000Z","size":216,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-04T23:03:03.397Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xiaohan2012.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-05T19:49:59.000Z","updated_at":"2015-04-06T15:32:06.000Z","dependencies_parsed_at":"2022-08-27T02:30:52.220Z","dependency_job_id":null,"html_url":"https://github.com/xiaohan2012/job-tag-cloud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xiaohan2012/job-tag-cloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaohan2012%2Fjob-tag-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaohan2012%2Fjob-tag-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaohan2012%2Fjob-tag-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaohan2012%2Fjob-tag-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xiaohan2012","download_url":"https://codeload.github.com/xiaohan2012/job-tag-cloud/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaohan2012%2Fjob-tag-cloud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34161283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-02T09:17:32.301Z","updated_at":"2026-06-10T16:31:22.272Z","avatar_url":"https://github.com/xiaohan2012.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LinkedIn Job Tag Cloud Generator\n\nA small keyword cloud generator for job search result\n\n\n## What is it?\n\nPython-written Command line tool that:\n\n1. Extract keywords from [LinkedIn job post](https://developer.linkedin.com/docs/rest-api) via [AlchemyAPI](http://www.alchemyapi.com/)\n2. Generates tag cloud graphics using [Python word cloud](https://github.com/amueller/word_cloud)\n\n## Demo\n\nThe tag cloud for `natural language processing`:\n\n![nlp jobs](http://www.cs.helsinki.fi/u/hxiao/nlp_jobs.png)\n\nThe tag cloud for `machine learning`:\n\n![nlp jobs](http://www.cs.helsinki.fi/u/hxiao/ml.png)\n\n\n## Usage\n\nYou need to get OAuth authorization tokens from both *LinkedIn* and *AlchemyAPI* in order to get the job post and extract keywords respectively.\n\n\n### OAuth for LinkedIn and AlchemyAPI\n\n**LinkedIn:**\n\nGo to [LinkedIn REST console](https://apigee.com/console/linkedin), click the `Authetication` dropdown menu and choose `OAuth 2`. Then make some request and you will see the token string in the request parameter.\n\nLast, set the token variable in `credential.sh`.\n\n**AlchemyAPI:**\n\nRegister for an [API key ](http://www.alchemyapi.com/api/register.html) if you don't have one. And follow the [Alchemy Python SDK setup](http://www.alchemyapi.com/developers/getting-started-guide/using-alchemyapi-with-python) to set the OAuth token\n\n### Run the program\n\n```\n./pipeline.sh {job_query_words} {job_post_sample_size} {output}\n```\n\n1. `job_query_words`: url-encoded job search query, such as `natural%20language%20processing`\n2. `job_post_sample_size`: how many job posts do you want to sample\n3. `output`: the output path for the tag cloud\n\n\n## Note:\n1. For free Alchemy API account, there is a daily transaction limit\n2. For LinkedIn user, when crawling the job posts, requests might be forbidden. When this happens, it might work to update the OAuth token as it can expire.\n\n\n## Contributor:\n\n@xiaohan2012\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaohan2012%2Fjob-tag-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiaohan2012%2Fjob-tag-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaohan2012%2Fjob-tag-cloud/lists"}